def test_find_next_empty_bits(self): b = Bitmap(0x0) i = 0 while str(b) == "0xFFFF": n = b.get_next_empty_bits(1) self.assertEqual(n, i) i += 1 b = Bitmap(0xA955) self.assertEqual(b.get_next_empty_bits(2), 9) self.assertEqual(b.get_next_empty_bits(3), 16) b = Bitmap(2 ** 1024 - 1) self.assertEqual(b.get_next_empty_bits(1), -1) b = Bitmap(2 ** 1024 - 1) b.clr_bit(1023) self.assertEqual(b.get_next_empty_bits(1), 1023) self.assertEqual(b.get_next_empty_bits(2), -1) self.assertEqual(b.get_next_empty_bits(0), -1)
def test_clr_bit(self): b = Bitmap(0xAA55) b.clr_bit(0); self.assertEqual(str(b), "0xaa54") b.clr_bit(1); self.assertEqual(str(b), "0xaa54") b.clr_bit(2); self.assertEqual(str(b), "0xaa50") b.clr_bit(4); self.assertEqual(str(b), "0xaa40") b.clr_bit(6); self.assertEqual(str(b), "0xaa00") b.clr_bit(15) self.assertEqual(str(b), "0x2a00") b.set_bit(1023) self.assertTrue(b.is_bit_set(1023) and re.search(r"2a00$", str(b), re.I)) b.clr_bit(1023) self.assertTrue(str(b), "0x2a00") self.assertRaises(TooDamnMuchDammitError, b.clr_bit, 1024)