def test_partition_backtrack_subgroup_leon_paper(self): cf = Permutation.read_cycle_form a = cf([[2,3],[4,6],[5,8],[9,11]], 13) b = cf([[1,2,4,7,9,3,5,6,8,10,11,12,13]], 13) G = PermGroup([a,b]) fam_subgroup = SubgroupFamily(G) prop_subgroup = SubgroupProperty(G) stab = Partition([[1,3,5,7,9,11],[2,4,6,8,10,12,13]]) fam_part_stab = PartitionStabaliserFamily(stab) prop_part_stab = PartitionStabaliserProperty(stab) size = 13 fam = Refinement([fam_subgroup, fam_part_stab]) prop = CosetProperty([prop_subgroup, prop_part_stab]) pbw = PBW(prop, fam, size) gens = pbw.find_partition_backtrack_subgroup() cand_G = PermGroup(gens) leon_gens = [] leon_gens.append(cf([[2,12],[4,10],[5,7],[6,8]],13)) leon_gens.append(cf([[2,8],[3,5],[4,6],[10,12]],13)) leon_gens.append(cf([[1,9],[2,4],[6,8],[10,12]],13)) leon_G = PermGroup(leon_gens) third_source = [] for ele in G._list_elements(): if prop.check(ele): third_source.append(ele) self.assertEqual(cand_G.order(), leon_G.order()) for perm in leon_gens: self.assertTrue(perm in G) self.assertTrue(perm in cand_G)
def test_order(self): cf = lambda x : Permutation.read_cycle_form(x,6) g1 = cf([[1,4,5,2,3]]) g2 = cf([[1,2],[3,4]]) g3 = cf([[1,2],[6,5]]) G = PermGroup([g1,g2,g3]) self.assertEqual(G.order(), 360)