예제 #1
0
 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)        
예제 #2
0
 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))