def coset_construction_from_schreier_tree_test(self, gens): identity = gens[0] * gens[0]**-1 base, strong_gens, chain_generators, schreier_graphs = schreier_sims_algorithm(gens, identity) no_errors = True for s_g in schreier_graphs[0:-1]: coset_inverses_1 = _coset_rep_inverses(s_g, identity) coset_inverses_2 = [_coset_rep_inverse(i + 1, s_g, identity) for i in range(len(identity))] if coset_inverses_1 != coset_inverses_2: no_errors = False print(coset_inverses_1) print(coset_inverses_2) self.assertTrue(no_errors)
def test_coset_rep_inverses(self): identity = Permutation([1,2,3,4]) b = Permutation([3,2,1,4]) s_g = [identity,None,b,None] self.assertEqual(s_g, _coset_rep_inverses(s_g, identity))