Ejemplo n.º 1
0
 def test_bit_count_random(self):
     for n in list(range(50)) + [randint(1000, 2000)]:
         a = urandom(n)
         b = urandom(n)
         self.assertEqual(count_and(a, b), (a & b).count())
         self.assertEqual(count_or(a, b), (a | b).count())
         self.assertEqual(count_xor(a, b), (a ^ b).count())
Ejemplo n.º 2
0
    def test_bit_count1(self):
        a = bitarray('001111')
        aa = a.copy()
        b = bitarray('010011')
        bb = b.copy()
        self.assertEqual(count_and(a, b), 2)
        self.assertEqual(count_or(a, b), 5)
        self.assertEqual(count_xor(a, b), 3)
        for f in count_and, count_or, count_xor:
            # not two arguments
            self.assertRaises(TypeError, f)
            self.assertRaises(TypeError, f, a)
            self.assertRaises(TypeError, f, a, b, 3)
            # wrong argument types
            self.assertRaises(TypeError, f, a, '')
            self.assertRaises(TypeError, f, '1', b)
            self.assertRaises(TypeError, f, a, 4)
        self.assertEQUAL(a, aa)
        self.assertEQUAL(b, bb)

        b.append(1)
        for f in count_and, count_or, count_xor:
            self.assertRaises(ValueError, f, a, b)
            self.assertRaises(ValueError, f, bitarray('110', 'big'),
                              bitarray('101', 'little'))
Ejemplo n.º 3
0
 def test_count_byte(self):
     ones = bitarray(8)
     ones.setall(1)
     zeros = bitarray(8)
     zeros.setall(0)
     for i in range(0, 256):
         a = bitarray()
         a.frombytes(bytes(bytearray([i])))
         cnt = a.count()
         self.assertEqual(count_and(a, zeros), 0)
         self.assertEqual(count_and(a, ones), cnt)
         self.assertEqual(count_and(a, a), cnt)
         self.assertEqual(count_or(a, zeros), cnt)
         self.assertEqual(count_or(a, ones), 8)
         self.assertEqual(count_or(a, a), cnt)
         self.assertEqual(count_xor(a, zeros), cnt)
         self.assertEqual(count_xor(a, ones), 8 - cnt)
         self.assertEqual(count_xor(a, a), 0)
Ejemplo n.º 4
0
 def test_bit_count2(self):
     for n in list(range(50)) + [randint(1000, 2000)]:
         a = bitarray()
         a.frombytes(os.urandom(bits2bytes(n)))
         del a[n:]
         b = bitarray()
         b.frombytes(os.urandom(bits2bytes(n)))
         del b[n:]
         self.assertEqual(count_and(a, b), (a & b).count())
         self.assertEqual(count_or(a, b), (a | b).count())
         self.assertEqual(count_xor(a, b), (a ^ b).count())
Ejemplo n.º 5
0
 def test_bit_count_frozen(self):
     a = frozenbitarray('001111')
     b = frozenbitarray('010011')
     self.assertEqual(count_and(a, b), 2)
     self.assertEqual(count_or(a, b), 5)
     self.assertEqual(count_xor(a, b), 3)