TestCharTable( tbl )
checks the character table tbl:
if tbl.centralizers,
tbl.classes, tbl.orders and
the entries of tbl.powermap have same length,
if
the product of tbl.centralizers[i] with
tbl.classes[i] is equal to tbl.order,
if tbl.orders[i] divides tbl.centralizers[i],
if the entries of tbl.classnames and the
corresponding record fields are consistent,
if the first orthogonality
relation for tbl.irreducibles is satisfied,
if
the centralizers agree with the sums of squared absolute values of tbl.irreducibles
and
if powermaps and representative orders are consistent.
If no inconsistency occurs, true is returned, otherwise each
error is signalled, and false is returned at the end.
gap> t:= CharTable("A5");; TestCharTable(t);
true
gap> t.irreducibles[2]:= t.irreducibles[3] - t.irreducibles[1];;
gap> TestCharTable(t);
#E TestCharTable(A5): Scpr( ., X[2], X[1] ) = -1
#E TestCharTable(A5): Scpr( ., X[2], X[2] ) = 2
#E TestCharTable(A5): Scpr( ., X[3], X[2] ) = 1
#E TestCharTable(A5): centralizer orders inconsistent with irreducibles
false