Example #1
0
 def test_explicit(self):
     _set_default_endian('big')
     for i, sa in [(0, '0'), (1, '1'), (2, '10'), (3, '11'), (25, '11001'),
                   (265, '100001001'), (3691038, '1110000101001000011110')]:
         ab = bitarray(sa, 'big')
         al = bitarray(sa[::-1], 'little')
         self.assertEQUAL(int2ba(i), ab)
         self.assertEQUAL(int2ba(i, endian='big'), ab)
         self.assertEQUAL(int2ba(i, endian='little'), al)
         self.assertEqual(ba2int(ab), ba2int(al), i)
Example #2
0
    def test_hex2ba_errors(self):
        self.assertRaises(TypeError, hex2ba, 0)

        for endian in 'little', 'big':
            _set_default_endian(endian)
            self.assertRaises(ValueError, hex2ba, '01a7g89')
            self.assertRaises(UnicodeEncodeError, hex2ba, u'10\u20ac')
            # check for NUL bytes
            for b in b'\0', b'\0f', b'f\0', b'\0ff', b'f\0f', b'ff\0':
                self.assertRaises(ValueError, hex2ba, b)
Example #3
0
 def test_hex2ba(self):
     _set_default_endian('big')
     self.assertEqual(hex2ba(''), bitarray())
     for c in 'e', 'E', b'e', b'E', unicode('e'), unicode('E'):
         a = hex2ba(c)
         self.assertEqual(a.to01(), '1110')
         self.assertEqual(a.endian(), 'big')
     self.assertEQUAL(hex2ba('01'), bitarray('00000001', 'big'))
     self.assertEQUAL(hex2ba('08', 'little'),
                      bitarray('00000001', 'little'))
     self.assertRaises(Exception, hex2ba, '01a7x89')
     self.assertRaises(TypeError, hex2ba, 0)
Example #4
0
 def test_round_trip(self):
     s = ''.join(choice(hexdigits) for _ in range(randint(20, 100)))
     for default_endian in 'big', 'little':
         _set_default_endian(default_endian)
         a = hex2ba(s)
         self.check_obj(a)
         self.assertEqual(len(a) % 4, 0)
         self.assertEqual(a.endian(), default_endian)
         t = ba2hex(a)
         self.assertEqual(t, s.lower())
         b = hex2ba(t, default_endian)
         self.assertEQUAL(a, b)
Example #5
0
 def test_simple(self):
     self.assertRaises(TypeError, strip, '0110')
     self.assertRaises(TypeError, strip, bitarray(), 123)
     self.assertRaises(ValueError, strip, bitarray(), 'up')
     for default_endian in 'big', 'little':
         _set_default_endian(default_endian)
         a = bitarray('00010110000')
         self.assertEQUAL(strip(a), bitarray('0001011'))
         self.assertEQUAL(strip(a, 'left'), bitarray('10110000'))
         self.assertEQUAL(strip(a, 'both'), bitarray('1011'))
         b = frozenbitarray('00010110000')
         c = strip(b, 'both')
         self.assertEqual(c, bitarray('1011'))
         self.assertIsType(c, 'frozenbitarray')
Example #6
0
 def test_hex2ba(self):
     _set_default_endian('big')
     self.assertEqual(hex2ba(''), bitarray())
     for c in 'e', 'E', b'e', b'E', u'e', u'E':
         a = hex2ba(c)
         self.assertEqual(a.to01(), '1110')
         self.assertEqual(a.endian(), 'big')
     self.assertEQUAL(hex2ba('01'), bitarray('0000 0001', 'big'))
     self.assertEQUAL(hex2ba('08', 'little'),
                      bitarray('0000 0001', 'little'))
     self.assertEQUAL(hex2ba('aD'), bitarray('1010 1101', 'big'))
     self.assertEQUAL(hex2ba(b'10aF'), bitarray('0001 0000 1010 1111',
                                                'big'))
     self.assertEQUAL(hex2ba(b'10aF', 'little'),
                      bitarray('1000 0000 0101 1111', 'little'))
Example #7
0
 def test_round_trip(self):
     for i in range(100):
         s = ''.join(choice(hexdigits) for _ in range(randint(0, 1000)))
         for default_endian in 'big', 'little':
             _set_default_endian(default_endian)
             a = hex2ba(s)
             self.assertEqual(len(a) % 4, 0)
             self.assertEqual(a.endian(), default_endian)
             t = ba2hex(a)
             self.assertEqual(t, s.lower())
             b = hex2ba(t, default_endian)
             self.assertEQUAL(a, b)
             # test simple encode / decode implementation
             self.assertEQUAL(a, self.hex2ba(t))
             self.assertEqual(t, self.ba2hex(a))
Example #8
0
    def test_strip1(self):
        self.assertRaises(TypeError, strip, '0110')
        self.assertRaises(TypeError, strip, bitarray(), 123)
        self.assertRaises(ValueError, strip, bitarray(), 'up')
        for default_endian in 'big', 'little':
            _set_default_endian(default_endian)
            a = bitarray('00010110000')
            self.assertEQUAL(strip(a), bitarray('0001011'))
            self.assertEQUAL(strip(a, 'left'), bitarray('10110000'))
            self.assertEQUAL(strip(a, 'both'), bitarray('1011'))
            b = frozenbitarray('00010110000')
            self.assertEqual(strip(b, 'both'), bitarray('1011'))

        for mode in 'left', 'right', 'both':
            self.assertEqual(strip(bitarray('000'), mode), bitarray())
            self.assertEqual(strip(bitarray(), mode), bitarray())
Example #9
0
    def test_1(self):
        for default_endian in 'big', 'little':
            _set_default_endian(default_endian)
            a = zeros(0)
            self.assertEqual(a, bitarray())
            self.assertEqual(a.endian(), default_endian)

            b = zeros(0, endian=None)
            self.assertEqual(b.endian(), default_endian)

            for n in range(100):
                a = zeros(n)
                self.assertEqual(a, bitarray(n * '0'))

            for endian in 'big', 'little':
                a = zeros(3, endian)
                self.assertEqual(a, bitarray('000'))
                self.assertEqual(a.endian(), endian)
Example #10
0
    def test_1(self):
        for default_endian in 'big', 'little':
            _set_default_endian(default_endian)
            a = urandom(0)
            self.assertEqual(a, bitarray())
            self.assertEqual(a.endian(), default_endian)

            b = urandom(0, endian=None)
            self.assertEqual(b.endian(), default_endian)

            for n in range(100):
                a = urandom(n)
                self.assertEqual(len(a), n)
                self.assertEqual(b.endian(), default_endian)

            a = urandom(1000)
            b = urandom(1000)
            self.assertNotEqual(a, b)
            self.assertTrue(400 < a.count() < 600)
            self.assertTrue(400 < b.count() < 600)
Example #11
0
    def test_basic(self):
        for default_endian in 'big', 'little':
            _set_default_endian(default_endian)
            a = urandom(0)
            self.assertEqual(a, bitarray())
            self.assertEqual(a.endian(), default_endian)

            a = urandom(7, endian=None)
            self.assertEqual(len(a), 7)
            self.assertEqual(a.endian(), default_endian)

            for n in range(50):
                a = urandom(n)
                self.assertEqual(len(a), n)
                self.assertEqual(a.endian(), default_endian)

            for endian in 'big', 'little':
                a = urandom(11, endian)
                self.assertEqual(len(a), 11)
                self.assertEqual(a.endian(), endian)
Example #12
0
 def test_explicit(self):
     _set_default_endian('big')
     for i, sa in [(0, '0'), (1, '1'), (2, '10'), (3, '11'), (25, '11001'),
                   (265, '100001001'), (3691038, '1110000101001000011110')]:
         ab = bitarray(sa, 'big')
         al = bitarray(sa[::-1], 'little')
         self.assertEQUAL(int2ba(i), ab)
         self.assertEQUAL(int2ba(i, endian='big'), ab)
         self.assertEQUAL(int2ba(i, endian='little'), al)
         self.assertEqual(ba2int(ab), ba2int(al), i)
         if i == 0 or i >= 512:
             continue
         for n in range(9, 32):
             for endian in 'big', 'little':
                 a = int2ba(i, length=n, endian=endian)
                 self.assertEqual(a.endian(), endian)
                 self.assertEqual(len(a), n)
                 if endian == 'big':
                     f = a.index(1)
                     self.assertEqual(a[:f], bitarray(f * '0'))
                     self.assertEqual(a[f:], ab)
Example #13
0
    def test_basic(self):
        for default_endian in 'big', 'little':
            _set_default_endian(default_endian)
            a = zeros(0)
            self.assertEqual(a, bitarray())
            self.assertEqual(a.endian(), default_endian)

            a = zeros(0, endian=None)
            self.assertEqual(len(a), 0)
            self.assertEqual(a.endian(), default_endian)

            for n in range(100):
                a = zeros(n)
                self.assertEqual(len(a), n)
                self.assertFalse(a.any())
                self.assertEqual(a.count(1), 0)
                self.assertEqual(a, bitarray(n * '0'))

            for endian in 'big', 'little':
                a = zeros(3, endian)
                self.assertEqual(a, bitarray('000'))
                self.assertEqual(a.endian(), endian)
Example #14
0
 def test_base2ba(self):
     _set_default_endian('big')
     for c in 'e', 'E', b'e', b'E', u'e', u'E':
         a = base2ba(16, c)
         self.assertEqual(a.to01(), '1110')
         self.assertEqual(a.endian(), 'big')