def testBits(self): MASK32 = 0xFFFFFFFF MASK64 = (MASK32 << 32) | MASK32 values = [ (9, 312), (1, 0), (1, 1), (32, 0), (64, 0), (32, MASK32), (64, MASK64), ] out = Writer() for bits, value in values: self.assertTrue(value >= 0) self.assertTrue(value <= MASK64) out.writeBits(bits, value) pack = out.finish() ipack = Reader(pack) for bits, value in values: nvalue = ipack.readBits(bits) self.assertEquals(value, nvalue) left = ipack.stream.read() self.assertFalse(left)