Пример #1
0
 def test_case_two(self):
     x = 0b111000111
     middleish_bits = BitField(6, 7)
     all_bits = BitField(0, 9)
     self.assertEqual(middleish_bits.extract(x), 3)
     self.assertEqual(
         all_bits.extract(x),
         0b111000111)  # check to see if x is altered from extraction
Пример #2
0
 def test_case_one(self):
     x = 0b111000111
     bitfield_low = BitField(0, 3)
     bitfield_mid = BitField(4, 5)
     bitfield_low.insert(x, 1)
     self.assertEqual(bitfield_low.extract(x), 0b111)  # 7
     self.assertEqual(bitfield_mid.extract(x),
                      0)  # middle should still == 0 after insertion
Пример #3
0
 def test_invert(self):
     lowpart = BitField(0, 3)
     midpart = BitField(4, 6)
     highpart = BitField(7, 9)
     for v in range(8):
         packed = 0
         packed = lowpart.insert(v, packed)
         packed = midpart.insert(v, packed)
         packed = highpart.insert(v, packed)
         self.assertEqual(lowpart.extract(packed), v)
         self.assertEqual(midpart.extract(packed), v)
         self.assertEqual(highpart.extract(packed), v)
Пример #4
0
 def test_low_order(self):
     low_4 = BitField(0, 3)
     # A value that fits snugly in the first 4 bits
     self.assertEqual(low_4.insert(13, 0), 13)
     # A value that doesn't fit; some high bits lost
     self.assertEqual(low_4.insert(21, 0), 5)
     # Extract unsigned
     self.assertEqual(low_4.extract(15), 15)
     # Or convert negative numbers
     self.assertEqual(low_4.extract_signed(15), -1)
     # Doesn't clobber other bits
     higher = 15 << 4
     self.assertEqual(low_4.insert(13, higher), 13 + higher)
     # Extraction is masked
     packed = low_4.insert(13, higher)
     self.assertEqual(low_4.extract(packed), 13)
Пример #5
0
 def test_middle_bits(self):
     mid_4 = BitField(4, 7)
     # A value that fits snugly in4 bits
     self.assertEqual(mid_4.insert(13, 0), 13 << 4)
     # A value that doesn't fit; some high bits lost
     self.assertEqual(mid_4.insert(21, 0), 5 << 4)
     # Extract unsigned
     self.assertEqual(mid_4.extract(15 << 4), 15)
     # Or convert negative numbers
     self.assertEqual(mid_4.extract_signed(15 << 4), -1)
Пример #6
0
 def test_middle_bits(self):
     """Extract 5 bits from the middle of a word"""
     middle_bits = BitField(5, 9)
     self.assertEqual(middle_bits.extract(0b1010101101101011), 0b11011)
Пример #7
0
 def test_extract_low(self):
     """Extract low 3 bits"""
     low_bits = BitField(0, 3)
     self.assertEqual(low_bits.extract(0b10101010101), 0b0101)
Пример #8
0
 def test_extract_case(self):
     All_Bits = BitField(0,5)
     self.assertEqual(All_Bits.extract(0b110011), 0b110011)