update Bits; tests passing
This commit is contained in:
@@ -90,7 +90,7 @@ class TestBits(TestCase):
|
||||
with self.subTest("testcase[\"int\"]: " + str(testcase["int"]) \
|
||||
+ " [without leading zeros]"):
|
||||
self.assertEqual(testcase["bitsObject"].bin(pad=False),
|
||||
testcase["bits"].strip("0"))
|
||||
testcase["bits"].lstrip("0"))
|
||||
|
||||
def test_reverse(self):
|
||||
"""
|
||||
@@ -102,6 +102,48 @@ class TestBits(TestCase):
|
||||
self.assertEqual(testcase["bitsObject"].bin(),
|
||||
testcase["bits"][::-1])
|
||||
|
||||
def test_membership_operators(self):
|
||||
"""
|
||||
Test the membership operator (x in y)
|
||||
"""
|
||||
with self.subTest("should all be True"):
|
||||
for i in range(1, 256):
|
||||
self.assertTrue(i in Bits(255), f"Bits({i}) in Bits(255) fail")
|
||||
with self.subTest("should all be False"):
|
||||
for i in range(1, 256):
|
||||
self.assertFalse(i in Bits(0), f"Bits({i}) in Bits(0) fail")
|
||||
with self.subTest("should pass"):
|
||||
self.assertIn(1, Bits("00100111"), "1 in Bits(39)")
|
||||
self.assertIn(2, Bits(39), "2 in Bits(39)")
|
||||
self.assertIn(4, Bits(39), "4 in Bits(39)")
|
||||
self.assertNotIn(8, Bits(39), "8 in Bits(39)")
|
||||
self.assertNotIn(16, Bits(39), "16 in Bits(39)")
|
||||
self.assertIn(32, Bits(39), "32 in Bits(39)")
|
||||
self.assertNotIn(64, Bits(39), "64 in Bits(39)")
|
||||
self.assertNotIn(128, Bits(39), "128 in Bits(39)")
|
||||
|
||||
def test_binary_operations(self):
|
||||
self.assertEqual((Bits("00000100") << 3), Bits("00100000"),
|
||||
"Bits(4) << 3 == Bits(32)")
|
||||
self.assertEqual((Bits("00100000") << 1), Bits("01000000"),
|
||||
"Bits(32) << 1 == Bits(64)")
|
||||
self.assertEqual((Bits(64) >> 2), Bits(16),
|
||||
"Bits(64) >> 2 == Bits(16)")
|
||||
self.assertEqual(( 2 << Bits(6)), Bits(128),
|
||||
"2 << Bits(6) == Bits(128)")
|
||||
self.assertEqual((Bits(255) & Bits(64)), Bits(64),
|
||||
"Bits(255) and Bits(64) == Bits(64)")
|
||||
self.assertNotEqual((Bits(32) & Bits(64)), Bits(64),
|
||||
"Bits(32) and Bits(64) != Bits(64)")
|
||||
self.assertEqual((Bits(2) | Bits(32)), 34,
|
||||
"Bits(2) or Bits(32) == 34")
|
||||
self.assertEqual((Bits(80) | Bits(64)), Bits(80),
|
||||
"Bits(80) or Bits(64) == Bits(80)")
|
||||
self.assertEqual((Bits(80) ^ Bits(64)), Bits(16),
|
||||
"Bits(80) xor Bits(64) == Bits(16)")
|
||||
self.assertEqual((Bits(80) & Bits(64)), Bits(64),
|
||||
"Bits(80) and Bits(64) == Bits(64)")
|
||||
|
||||
def test_comparisons(self):
|
||||
"""
|
||||
Test the comparison operators
|
||||
|
Reference in New Issue
Block a user