def test_init(self): BooleanMat([[True, True], [False, False]]) BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) BooleanMat([[True]]) BooleanMat([[True, False], [False, True]]) BooleanMat([[1, 0], [0, 0]])
def test_repr(self): self.assertEqual( BooleanMat([[True, True], [False, False]]).__repr__(), "11000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n", ) self.assertEqual( BooleanMat( [[False, True, True], [True, True, False], [False, False, False]] ).__repr__(), "01100000\n" + "11000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n" + "00000000\n", )
def test_degree(self): self.assertEqual( BooleanMat([[True, True], [False, False]]).degree(), 2) self.assertEqual( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]).degree(), 3) self.assertEqual(BooleanMat([True]).degree(), 1)
def test_degree(self): self.assertEqual(Degree(BooleanMat([[True, True], [False, False]])), 8) self.assertEqual( Degree( BooleanMat([[False, True, True], [True, True, False], [False, False, False]])), 8, ) self.assertEqual(Degree(BooleanMat([[True]])), 8)
def test_rows(self): self.assertEqual( BooleanMat([[True, True], [False, False]]).rows(), [ [1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], ], ) self.assertEqual( BooleanMat( [[False, True, True], [True, True, False], [False, False, False]] ).rows(), [ [0, 1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], ], ) self.assertEqual( BooleanMat([[False]]).rows(), [ [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], ], ) self.assertEqual( One(BooleanMat([[0, 0], [0, 0]])).rows(), [ [1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1], ], )
def test_rows(self): self.assertEqual( BooleanMat([[True, True], [False, False]]).rows(), [[True, True], [False, False]]) self.assertEqual( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]).rows(), [[False, True, True], [True, True, False], [False, False, False]]) self.assertEqual(BooleanMat([[False]]).rows(), [[False]]) self.assertEqual( BooleanMat([[0, 0], [0, 0]]).identity().rows(), [[1, 0], [0, 1]])
def test_identity(self): A = BooleanMat([[True, True], [False, False]]) BM = type(A) self.assertEqual(One(A), BM.one()) self.assertEqual( One( BooleanMat([[False, True, True], [True, True, False], [False, False, False]])), BM.one(8), ) self.assertEqual(One(BooleanMat([[False]])), BM.one(8))
def test_identity(self): self.assertEqual( One(BooleanMat([[True, True], [False, False]])), libsemigroups_cppyy.BMat8.one(8), ) self.assertEqual( One( BooleanMat([[False, True, True], [True, True, False], [False, False, False]])), libsemigroups_cppyy.BMat8.one(8), ) self.assertEqual(One(BooleanMat([[False]])), libsemigroups_cppyy.BMat8.one(8))
def test_mul(self): (self.assertEqual( BooleanMat([[True, False], [False, True]]) * BooleanMat([[False, False], [False, True]]), BooleanMat([[False, False], [False, True]]), )) self.assertEqual( BooleanMat([[False]]) * BooleanMat([[True]]), BooleanMat([[False]])) (self.assertEqual( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) * BooleanMat([[False, True, False], [True, False, False], [False, False, True]]), BooleanMat([[True, False, True], [True, True, False], [False, False, False]]), ))
def test_init_fail(self): with self.assertRaises(TypeError): BooleanMat(True) with self.assertRaises(TypeError): BooleanMat(set([True, False]), set([False, True])) with self.assertRaises(TypeError): BooleanMat(26) with self.assertRaises(TypeError): BooleanMat([[1., 0.], [0., 1.]]) with self.assertRaises(TypeError): BooleanMat([[True, False], ["i", range(10)]]) with self.assertRaises(ValueError): BooleanMat([[True], [False]]) with self.assertRaises(ValueError): BooleanMat([[True, False], [False, False], [True, True]]) with self.assertRaises(ValueError): BooleanMat([[True, True, False], [False, False]]) with self.assertRaises(ValueError): BooleanMat()
def test_identity(self): self.assertEqual( BooleanMat([[True, True], [False, False]]).identity(), BooleanMat([[True, False], [False, True]])) self.assertEqual( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]).identity(), BooleanMat([[True, False, False], [False, True, False], [False, False, True]])) self.assertEqual(BooleanMat([False]).identity(), BooleanMat([True]))
def test_repr(self): self.assertEqual( eval(BooleanMat([[True, True], [False, False]]).__repr__()), BooleanMat([[True, True], [False, False]])) self.assertEqual( eval( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]).__repr__()), BooleanMat([[False, True, True], [True, True, False], [False, False, False]])) self.assertEqual( eval( BooleanMat([[True, False, False], [False, True, False], [False, False, True]]).__repr__()), BooleanMat([[True, False, False], [False, True, False], [False, False, True]]))
def test_richcmp(self): self.assertEqual(BooleanMat([[True, False], [False, True]]), BooleanMat([[True, False], [False, True]])) self.assertFalse( BooleanMat([[True, False], [False, True]]) != BooleanMat( [[True, False], [False, True]])) self.assertFalse( BooleanMat([[True, False], [False, True]]) == BooleanMat( [[False, False], [False, True]])) self.assertLess(BooleanMat([[False]]), BooleanMat([[True]])) self.assertFalse( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) < BooleanMat([[ False, True, False ], [True, False, False], [False, False, True]])) self.assertLessEqual(BooleanMat([[False]]), BooleanMat([[False]])) self.assertGreater(BooleanMat([[True, False], [False, True]]), BooleanMat([[True, False], [False, False]])) self.assertFalse( BooleanMat([[True, False], [False, True]]) > BooleanMat( [[True, False], [False, True]])) self.assertGreaterEqual(BooleanMat([[False]]), BooleanMat([[False]])) with self.assertRaises(TypeError): (Bipartition([1, -2], [-1, 2]) >= BooleanMat([False, False], [True, False])) with self.assertRaises(TypeError): BooleanMat([False, False], [True, False]) < Transformation([0, 1]) with self.assertRaises(TypeError): (BooleanMat([True, False], [False, True]) == PartialPerm([0], [1], 2))
def test_richcmp(self): self.assertEqual( BooleanMat([[True, False], [False, True]]), BooleanMat([[True, False], [False, True]]), ) self.assertFalse( BooleanMat([[True, False], [False, True]]) != BooleanMat( [[True, False], [False, True]])) self.assertFalse( BooleanMat([[True, False], [False, True]]) == BooleanMat( [[False, False], [False, True]])) self.assertLess(BooleanMat([[False]]), BooleanMat([[True]])) self.assertFalse( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) < BooleanMat([[ False, True, False ], [True, False, False], [False, False, True]])) # self.assertLessEqual(BooleanMat([[False]]), BooleanMat([[False]])) self.assertGreater( BooleanMat([[True, False], [False, True]]), BooleanMat([[True, False], [False, False]]), ) self.assertFalse( BooleanMat([[True, False], [False, True]]) > BooleanMat( [[True, False], [False, True]]))
def test_getitem(self): self.assertEqual(BooleanMat([[1, 0], [0, 0]])[0], [1, 0]) self.assertEqual(BooleanMat([[1, 0], [0, 0]])[1], [0, 0]) with self.assertRaises(IndexError): BooleanMat([[1, 0, 1], [1, 0, 0], [0, 1, 1]])[3]
def test_mul(self): (self.assertEqual( BooleanMat([[True, False], [False, True]]) * BooleanMat([[False, False], [False, True]]), BooleanMat([[False, False], [False, True]]))) self.assertEqual( BooleanMat([[False]]) * BooleanMat([[True]]), BooleanMat([[False]])) (self.assertEqual( BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) * BooleanMat([[False, True, False], [True, False, False], [False, False, True]]), BooleanMat([[True, False, True], [True, True, False], [False, False, False]]))) with self.assertRaises(TypeError): BooleanMat([[True, True], [False, False]]) * Transformation([1, 1]) with self.assertRaises(TypeError): BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) * PartialPerm([0, 1], [1, 2], 3) with self.assertRaises(TypeError): BooleanMat([[True]]) * [[True]] with self.assertRaises(TypeError): BooleanMat([[True, False], [False, True]]) * Bipartition( [1, 2], [-1], [-2]) with self.assertRaises(ValueError): (BooleanMat([[False, True, True], [True, True, False], [False, False, False]]) * BooleanMat([[True, False], [False, True]]))
def test_dealloc(self): A = BooleanMat([[True, False], [True, True]]) B = BooleanMat([[False, False], [False, True]]) del A, B assert 'A' not in globals() assert 'B' not in globals()
def test_pow(self): self.assertEqual( BooleanMat([[True, False], [False, True]])**30, BooleanMat([[True, False], [False, True]])) self.assertEqual( BooleanMat([[True, False], [True, True]])**7, BooleanMat([[True, False], [True, True]])) self.assertEqual(BooleanMat([[True]])**26, BooleanMat([True])) with self.assertRaises(TypeError): BooleanMat([[True, False], [True, True]])**'i' with self.assertRaises(TypeError): BooleanMat([[True]])**range(10) with self.assertRaises(TypeError): BooleanMat([[True]])**BooleanMat([[True]]) self.assertEqual( BooleanMat([[True, False], [True, True]])**0, BooleanMat([[1, 0], [0, 1]])) with self.assertRaises(ValueError): BooleanMat([[False, True, True], [True, True, False], [False, False, False]])**-7