def test_subgroup_family(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 = SubgroupFamily(PermGroup([a,b])) stack = PartitionStack([0]*13,[-1]*13) stack.extend(0,[1,3,5,7,9,11]) stack.extend(1,[1]) stack.extend(1,[3]) func1 = fam.extension_functions(stack)[1] extend = lambda x:fam.extension_functions(x)[0](x) extend(stack) after = Partition([[4,6,8,10,13],[5,7,9,11],[1],[3],[2,12]]) self.assertEqual(stack[-1],after) stack.extend(1,[5]) extend(stack) extend(stack) extend(stack) extend(stack) extend(stack) extend(stack) self.assertFalse(stack.discrete()) extend(stack) self.assertTrue(stack.discrete()) right_before = PartitionStack.single_partition_stack([[2,4,6,8,10,12,13],[1,5,7,11],[9],[3]]) func1(right_before) right_after = Partition([[2,6,8,12,13],[1,5,7,11],[9],[3],[4,10]]) self.assertEqual(right_before[-1],right_after)
def test_single_partition_stack(self): stack = PartitionStack([0,0,1,1,2,2],[-1,-1,0,0,0,0]) part = Partition([[1,2],[3,4],[5,6]]) self.assertEqual(stack[-1], part) self.assertEqual(stack, PartitionStack.single_partition_stack(part))