示例#1
0
 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]])
示例#2
0
 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]))
示例#3
0
    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])
示例#4
0
 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]))
示例#5
0
 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)
示例#6
0
 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()
示例#7
0
    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
示例#8
0
    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])
示例#9
0
    def test_richcmp(self):
        # FIXME should be self.assertEqual and self.assertNotEqual
        assert BooleanMat([True, False], [False, True]) == \
               BooleanMat([True, False], [False, True])
        assert not BooleanMat([True, False], [False, True]) != \
                   BooleanMat([True, False], [False, True])
        assert not BooleanMat([True, False], [False, True]) == \
                   BooleanMat([False, False], [False, True])
        assert BooleanMat([False]) < BooleanMat([True])
        assert not BooleanMat([False, True, True],
                              [True, True, False],
                              [False, False, False]) < \
                   BooleanMat([False, True, False],
                              [True, False, False],
                              [False, False, True])
        assert BooleanMat([False]) <= BooleanMat([False])
        assert BooleanMat([True, False], [False, True]) > \
               BooleanMat([True, False], [False, False])
        assert not BooleanMat([True, False], [False, True]) > \
                   BooleanMat([True, False], [False, True])
        assert 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)
示例#10
0
 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])