Exemple #1
0
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)