def check_froidure_pin_transf2(T): add = list(range(3, 16)) if T is Transf16 else [] gens = [ T.make([1, 0, 2] + add), T.make([1, 2, 0] + add), ] S = FroidurePin(gens) S.run() assert list(S) == [ T.make([1, 0, 2] + add), T.make([1, 2, 0] + add), T.make([0, 1, 2] + add), T.make([2, 1, 0] + add), T.make([0, 2, 1] + add), T.make([2, 0, 1] + add), ] assert list(S.sorted()) == [ T.make([0, 1, 2] + add), T.make([0, 2, 1] + add), T.make([1, 0, 2] + add), T.make([1, 2, 0] + add), T.make([2, 0, 1] + add), T.make([2, 1, 0] + add), ]
def check_initialisation(self, t): ReportGuard(False) x = t() x.set_alphabet("ba") x.add_rule([0, 1], [1, 0]) with self.assertRaises(RuntimeError): x.add_rule([0, 1], [2]) S = FroidurePin([Transf([1, 2, 0]), Transf([1, 0, 2])]) S.run() x.add_rules(S) self.assertEqual(x.size(), 2) x = t() x.set_alphabet("abBe") x.set_identity("e") x.set_inverses("aBbe") x.add_rule("bb", "B") x.add_rule("BaBa", "abab") self.assertEqual(x.size(), 24) x = t() x.set_alphabet(1) x.set_identity(0) self.assertEqual(x.size(), 1)