def test_r_base(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) fam_subgroup = SubgroupFamily(PermGroup([a,b])) stab = Partition([[1,3,5,7,9,11],[2,4,6,8,10,12,13]]) fam_part_stab = PartitionStabaliserFamily(stab) size = 13 fam = RefinementUnion([fam_subgroup, fam_part_stab]) fail_con = PartitionStackConstraint() tree_mods = ModifierUnion([fail_con]) mods = ModifierUnion([fam, tree_mods]) ls = LeonSearch(mods, size) ls.initialise_partition_stacks() ls.initialise_r_base() lookup = ls._special_lookup special_levels = sorted(list(lookup.keys())) special_cells = [lookup[level][0] for level in special_levels] special_vals = [lookup[level][1] for level in special_levels] self.assertTrue(ls.left.discrete()) self.assertEqual(special_levels, [1,2,4]) self.assertEqual(special_cells, [1,1,1]) self.assertEqual(special_vals, [1,3,5]) f = ls.left.fix() b = fam_subgroup._group.base self.assertEqual(f[:len(b)], b)