def test_commutators(): a = Permutation([1, 0, 2, 4, 3]) b = Permutation([0, 1, 3, 2, 4]) G = PermutationGroup([a,b]) C = G.commutator() assert C.order() == 3 assert C.is_normal(G) assert C.is_subgroup(G) assert not G.is_subgroup(C) gens_cube = [[1, 3, 5, 7, 0, 2, 4, 6], [1, 3, 0, 2, 5, 7, 4, 6]] gens = [Permutation(p) for p in gens_cube] G = PermutationGroup(gens) C = G.commutator() assert C.order() == 12
def test_commutators(): a = Permutation([1, 0, 2, 4, 3]) b = Permutation([0, 1, 3, 2, 4]) G = PermutationGroup([a, b]) C = G.commutator() assert C.order() == 3 assert C.is_normal(G) assert C.is_subgroup(G) assert not G.is_subgroup(C) gens_cube = [[1, 3, 5, 7, 0, 2, 4, 6], [1, 3, 0, 2, 5, 7, 4, 6]] gens = [Permutation(p) for p in gens_cube] G = PermutationGroup(gens) C = G.commutator() assert C.order() == 12
def test_rubik1(): gens = rubik_cube_generators() gens1 = [gens[0]] + [p**2 for p in gens[1:]] G1 = PermutationGroup(gens1) assert G1.order() == 19508428800 gens2 = [p**2 for p in gens] G2 = PermutationGroup(gens2) assert G2.order() == 663552 assert G2.is_subgroup(G1) C1 = G1.commutator() assert C1.order() == 4877107200 assert C1.is_subgroup(G1) assert not G2.is_subgroup(C1)