コード例 #1
0
 def test_schreier_sims_algorithm_fixed_base(self):
     cf  =Permutation.read_cycle_form
     a = cf([[1, 2]],4)
     b = cf([[1,2,3,4]], 4)
     c = cf([[2, 3, 4]], 4)
     d = cf([[2, 3], [1,4]], 4)
     e = cf([], 4)
     info = schreier_sims_algorithm_fixed_base([], [1,2,3,4], e)
     self.assertEquals(info, ([],[],[],[]))
     info = schreier_sims_algorithm_fixed_base([e,e,e,e], [1,2,3,4], e)
     self.assertEquals(info, ([],[],[],[]))
     base, gens, c_gens, graphs = schreier_sims_algorithm_fixed_base([a,b], [4,3], e)
     self.assertEquals(len(base), 3)
     self.assertEquals(base[:2], [4,3])
     base, gens, c_gens, graphs = schreier_sims_algorithm_fixed_base([c,d], [4,1], e)
     self.assertEquals(base[:2], [4,1])
     siftee = membership_siftee(a, graphs, base, e)
     self.assertNotEqual(siftee, e)
     siftee = membership_siftee(cf([[1,2,3]],4), graphs, base, e)
     self.assertEqual(siftee, e)
     base, gens, c_gens, graphs = schreier_sims_algorithm_fixed_base([c], [1,2,3,4], e)
     self.assertEquals(base[:2], [1,2])
     siftee = membership_siftee(a, graphs, base, e)
     self.assertNotEqual(siftee, e)
     siftee = membership_siftee(cf([[2,4,3]],4), graphs, base, e)
     self.assertEqual(siftee, e)        
コード例 #2
0
 def test_naive_schreier_sims_algorithm(self):
     cf  =Permutation.read_cycle_form
     a = cf([[1, 2]],4)
     b = cf([[1,2,3,4]], 4)
     c = cf([[2, 3, 4]], 4)
     d = cf([[2, 3],[1,4]], 4)
     e = cf([], 4)
     info = naive_schreier_sims_algorithm([], e)
     self.assertEquals(info, ([],[],[],[]))
     info = naive_schreier_sims_algorithm([e,e,e,e], e)
     self.assertEquals(info, ([],[],[],[]))
     base, gens, c_gens, graphs = naive_schreier_sims_algorithm([c,d], e)
     self.assertEquals(len(base), 2)
     siftee = membership_siftee(a, graphs, base, e)
     self.assertNotEqual(siftee, e)
     siftee = membership_siftee(cf([[1,2,3]],4), graphs, base, e)
     self.assertEqual(siftee, e)        
コード例 #3
0
ファイル: group.py プロジェクト: cyberewok/cgt-sandpit
 def __contains__(self, key):
     return self.identity == schreier_sims_tools.membership_siftee(
         key, self.schreier_graphs, self.base, self.identity
     )