test_bitstore.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env python
  2. import unittest
  3. import sys
  4. sys.path.insert(0, '..')
  5. from bitstring import ByteStore, ConstByteStore, equal, offsetcopy
  6. class OffsetCopy(unittest.TestCase):
  7. def testStraightCopy(self):
  8. s = ByteStore(bytearray([10, 5, 1]), 24, 0)
  9. t = offsetcopy(s, 0)
  10. self.assertEqual(t._rawarray, bytearray([10, 5, 1]))
  11. def testOffsetIncrease(self):
  12. s = ByteStore(bytearray([1, 1, 1]), 24, 0)
  13. t = offsetcopy(s, 4)
  14. self.assertEqual(t.bitlength, 24)
  15. self.assertEqual(t.offset, 4)
  16. self.assertEqual(t._rawarray, bytearray([0, 16, 16, 16]))
  17. class Equals(unittest.TestCase):
  18. def testBothSingleByte(self):
  19. s = ByteStore(bytearray([128]), 3, 0)
  20. t = ByteStore(bytearray([64]), 3, 1)
  21. u = ByteStore(bytearray([32]), 3, 2)
  22. self.assertTrue(equal(s, t))
  23. self.assertTrue(equal(s, u))
  24. self.assertTrue(equal(u, t))
  25. def testOneSingleByte(self):
  26. s = ByteStore(bytearray([1, 0]), 2, 7)
  27. t = ByteStore(bytearray([64]), 2, 1)
  28. self.assertTrue(equal(s, t))
  29. self.assertTrue(equal(t, s))