/*
Element Operations.
*/
inform("Testing Element Operators.", 2);

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

w(
  l302!(1,8,11,2)(3,5,13,4)(6,9)(7,21)(10,19)(12,18,24,23)(14,17,22,16)(15,20)
    ne l302b*l302c*l302e,
  "multn: elt: l302.");
w( s16b*s16d ne s16!(1,8,13)(2,11,15)(6,10,14)(7,12,16),
  "multn: elt: s16.");
w( p11n6a*p11n6c*p11n6b ne p11n6!(1,8,7,3)(2,6,9,5),
  "multn: elt: p11n6.");

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

w( (ir12a*ir12b*ir12c)^-1 ne ir12!(4,5,6)(7,8,9)(10,11,12),
  "invsn: ir12.");
w( (im21a*im21b)^-1 ne
	  im21!(1,18,17,2,6,7,3)(4,10,14,15,20,11,5)(8,12,16,21,13,19,9),
  "invsn: im21.");
w( s12b^-1*s12a ne s12!(1,4,11)(2,5,12)(3,6,10), "invsn: s12.");
w( a437.1^-3 ne a437.1, "invsn: a437.");
w( ra4.1^-1 ne ra4.1, "invsn: ra4.");

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

w( a10x^7 ne a10!(1,8,2,4,7,9)(3,10), "exptn: a10.");
w( int12.2^3 ne Id(int12), "exptn: int12.");
w( int12.3^3 ne int12!(4,7)(5,8)(6,9), "exptn: int12.");
w( (p16a*p16c)^4 ne p16!(1,16,12,9,14)(2,4,7,3,8)(5,11,6,15,13),
  "exptn: p16,");
w(
  l303!(1,3,6)(2,13,15)(4,7,11)(5,10,8)(9,12,17)(14,19,23)(16,21,18)(20,24,22)
    ne l303a^2*l303b^4,
  "exptn: l303.");

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

w( ir12b^(ir12a^ir12c) ne ir12!(1,2,3)(4,5,6)(10,11,12),
  "cnjgn: elt:ir12.");
w( r12.1^r12.3 ne r12.1, "cnjgn: elt: r12.");
w( (p12n4f*p12n4a)^(p12n4d^2) ne p12n4!(1,2,3)(4,8,6,7,5,9)(11,12),
  "cnjgn: elt: p12n4.");
w( s16d^s16b ne s16!(1,8,13,9)(2,11,15,5)(3,6,10,14)(4,7,12,16),
  "cnjgn: elt: s16.");

// Commutator.
inform("Commutators.", 3);

w( (int12.1, int12!(1,2,3)) ne Id(int12), "cmmtr: elt: int12.");
w( (a10x, a10y) ne a10!(1,9,3,6,5,2,8,10,7), "cmmtr: elt: a10.");
w( (p10n7a,p10n7c*p10n7b) ne p10n7!(1,5,9)(2,6,7)(3,4,8),
  "cmmtr: elt: p10n7.");
w( l302a*(l302c*l302e,l302d^l302b) ne l302!(1,14,6,19,3)(2,16,10,9,4)
  (5,11,17,15,20)(7,21,13,8,22), "cmmtr: elt: l302.");
w( (im24a,im24b) ne im24!(1,3,10,7,19,23,22,17,16,6)
  (2,5,15,18,21,24,20,8,9,4)(11,14)(12,13), "cmmtr: elt: im24.");

// Order of elements.
inform("Order of elements.", 3);

w( Order(im21a) ne 2, "order: elt: im21.");
w( Order(s12b) ne 6, "order: elt: s12." );
w( Order(p8n5c*p8n5a) ne 7, "order: elt: p8n5.");
w( Order(a437.3) ne 7, "order: elt: a437.");
w( Order(ra4.2) ne 3, "order: elt: ra4." );
