12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/usr/bin/env python
- """
- Module-level unit tests.
- """
- import unittest
- import sys
- sys.path.insert(0, '..')
- import bitstring
- import copy
- class ModuleData(unittest.TestCase):
- def testVersion(self):
- self.assertEqual(bitstring.__version__, '3.1.3')
- def testAll(self):
- exported = ['ConstBitArray', 'ConstBitStream', 'BitStream', 'BitArray',
- 'Bits', 'BitString', 'pack', 'Error', 'ReadError',
- 'InterpretError', 'ByteAlignError', 'CreationError', 'bytealigned']
- self.assertEqual(set(bitstring.__all__), set(exported))
- def testReverseDict(self):
- d = bitstring.BYTE_REVERSAL_DICT
- for i in range(256):
- a = bitstring.Bits(uint=i, length=8)
- b = d[i]
- self.assertEqual(a.bin[::-1], bitstring.Bits(bytes=b).bin)
- def testAliases(self):
- self.assertTrue(bitstring.Bits is bitstring.ConstBitArray)
- self.assertTrue(bitstring.BitStream is bitstring.BitString)
- class MemoryUsage(unittest.TestCase):
- def testBaselineMemory(self):
- try:
- import pympler.asizeof.asizeof as size
- except ImportError:
- return
- # These values might be platform dependent, so don't fret too much.
- self.assertEqual(size(bitstring.ConstBitStream([0])), 64)
- self.assertEqual(size(bitstring.Bits([0])), 64)
- self.assertEqual(size(bitstring.BitStream([0])), 64)
- self.assertEqual(size(bitstring.BitArray([0])), 64)
- from bitstring.bitstore import ByteStore
- self.assertEqual(size(ByteStore(bytearray())), 100)
- class Copy(unittest.TestCase):
- def testConstBitArrayCopy(self):
- import copy
- cba = bitstring.Bits(100)
- cba_copy = copy.copy(cba)
- self.assertTrue(cba is cba_copy)
- def testBitArrayCopy(self):
- ba = bitstring.BitArray(100)
- ba_copy = copy.copy(ba)
- self.assertFalse(ba is ba_copy)
- self.assertFalse(ba._datastore is ba_copy._datastore)
- self.assertTrue(ba == ba_copy)
- def testConstBitStreamCopy(self):
- cbs = bitstring.ConstBitStream(100)
- cbs.pos = 50
- cbs_copy = copy.copy(cbs)
- self.assertEqual(cbs_copy.pos, 0)
- self.assertTrue(cbs._datastore is cbs_copy._datastore)
- self.assertTrue(cbs == cbs_copy)
- def testBitStreamCopy(self):
- bs = bitstring.BitStream(100)
- bs.pos = 50
- bs_copy = copy.copy(bs)
- self.assertEqual(bs_copy.pos, 0)
- self.assertFalse(bs._datastore is bs_copy._datastore)
- self.assertTrue(bs == bs_copy)
- class Interning(unittest.TestCase):
- def testBits(self):
- a = bitstring.Bits('0xf')
- b = bitstring.Bits('0xf')
- self.assertTrue(a is b)
- c = bitstring.Bits('0b1111')
- self.assertFalse(a is c)
- def testCBS(self):
- a = bitstring.ConstBitStream('0b11000')
- b = bitstring.ConstBitStream('0b11000')
- self.assertFalse(a is b)
- # self.assertTrue(a._datastore is b._datastore)
-
-
-
-
|