inform("Testing conjugacy functions.", 2);
inform("Calculation of Classes.", 3);

w(bClass(a4, a4!(1,2,3)*a4!(2,3,4)), "class: a4.");
w(cClass(a437, a437.2), "class: a437.");
w(eClass(r12, r12.3), "class: r12.");

inform("Conjugacy.", 3);
inform("Elements.", 4);

w(
    cConj(a10, a10!(1,4,7)(5,10)(2,3,6,8), a10!(1,6,7)(8,10)(4,5,2,3)),
    "cnjgy: elt: a10."
);
w(dConj(ir12, ir12a, ir12b*ir12c), "cnjgy: elt: ir12.");

inform("Subgroups.", 4);

w(cConj(t12, ir12^(t12!(1,8,7)(11,2)), ir12), "cnjgy: sgp: ir12.");
w(
    cConj(
	a10, sub<a10 | (1,3,2,6)(2,10)^a10x, (3,7,5)(2,1,6)^a10x>,
	sub<a10 | (1,3,2,6)(2,10), (3,7,5)(2,1,6)>^a10y
    ), "cnjgy: sgp: a10."
);

// Classes.
inform("Classes.", 3);

w(bClsSm(r12), "clses: r12.");
w(bClsSm(a437), "clses: a437.");
w(bClsMd(p12n4),"clses: p12n4.");
w(bClsMd(s12), "clses: s12.");
w(bClsMd(ra4), "clses: ra4.");
w(
    bNclasses(
	sub<im21 |
	    (1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16),
	    (7,9)(8,10)(11,13)(12,14),
	    (5,6)(11,13)(12,14)(20,21),
	    (1,3)(2,4)(7,11)(8,12)(9,13)(10,14)(15,16)(20,21),
	    (5,6)(8,10)(12,14)(15,16),
	    (1,2)(5,21,6,20)(11,14,13,12)(17,19)
	>
    ), "nclses: s12."
);
w(bNclasses(ir12), "nclses: ir12.");
w(dNclasses(a437), "nclses: a437.");
w(dNclasses(ra4), "nclses: ra4.");

// EXPONENT.
inform("Exponent.", 3);

w(bExponent(ra4), "expont: ra4.");
w(bExponent(a437),"expont: a437.");
w(eExponent(s12), "expont: s12.");
w(eExponent(sub<t7 | (1,2,3,4,5,6), (1,2)>), "expont: t7.");
