def test_factorisation(self):
     S = FroidurePin(Transformation([1, 0, 1]), Transformation([0, 0, 0]))
     self.assertEqual(S.size(), 4)
     self.assertEqual(std.distance(S.cbegin(), S.cend()), S.size())
     self.assertEqual(
         [S.factorisation(x) for x in range(S.size())], [[0], [1], [0, 0], [1, 0]]
     )
     with self.assertRaises(LibsemigroupsCppyyException):
         S.factorisation(4)
     # check again because of some bug in an early version of
     # unwrap(_return_value)
     self.assertEqual(
         [S.factorisation(x) for x in range(S.size())], [[0], [1], [0, 0], [1, 0]]
     )
     with self.assertRaises(LibsemigroupsCppyyException):
         S.factorisation(Transformation([1, 1, 2]))
     self.assertEqual(std.distance(S.cbegin(), S.cend()), S.size())
     self.assertEqual([S.factorisation(x) for x in S], [[0], [1], [0, 0], [1, 0]])
示例#2
0
 def test_aaa_bug(self):
     ReportGuard(False)
     S = FroidurePin(Transformation([1, 0, 1]), Transformation([0, 0, 0]))
     S.run()
     self.assertEqual(std.distance(S.cbegin(), S.cend()), 4)
     self.assertEqual(
         list(S),
         [
             Transformation([1, 0, 1]),
             Transformation([0, 0, 0]),
             Transformation([0, 1, 0]),
             Transformation([1, 1, 1]),
         ],
     )
示例#3
0
    def test_bug1_works_yes(self):
        ReportGuard(False)
        # S = FpSemigroup()
        # S.set_alphabet("01")

        # S.add_rule("000", "0")
        # S.add_rule("1111", "1")
        # S.add_rule("01110", "00")
        # S.add_rule("1001", "11")
        # S.add_rule("001010101010", "00")
        # S.run()
        # S.rules()

        S = FroidurePin(Transformation([1, 0, 1]), Transformation([0, 0, 0]))
        S.run()
        self.assertEqual(std.distance(S.cbegin(), S.cend()), S.size())