def test_value(self): self.assertTrue(vec(1, 1)._eq(vec(1, 1))) self.assertTrue(vec(0, 1)._eq(vec(0, 1))) self.assertTrue(vec(0, 2)._eq(vec(0, 2))) self.assertTrue(hBool(True)._eq(hBool(True))) v0 = vec(2, 2) v1 = v0.clone() self.assertTrue(v0._eq(v1)) v1.updateTime = 2 self.assertTrue(v0._eq(v1))
def test_BoolNot(self): for v in [True, False]: res = ~hBool(v) self.assertEqual(res.val, not v) self.assertEqual(res.vldMask, 1) self.assertEqual(res.updateTime, -1)
(None, None, None), (None, 0, None), (None, 1, None), (0, None, None), (0, 0, 0), (0, 1, 1), (1, 1, 0), (s0, 1, ~s0), (s0, 0, s0), (1, s0, ~s0), (0, s0, s0), ] bitvals = {1: hBit(1), 0: hBit(0), None: hBit(None), s0: s1, ~s0: ~s1} boolvals = {1: hBool(1), 0: hBool(0), None: hBool(None), s0: s0, ~s0: ~s0} class OperatorTC(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.n = RtlNetlist() def test_BoolNot(self): for v in [True, False]: res = ~hBool(v) self.assertEqual(res.val, not v) self.assertEqual(res.vldMask, 1) self.assertEqual(res.updateTime, -1) def test_BitNot(self):
def test_BoolAnd(self): for a_in, b_in, out in [(0, 0, 0), (0, 1, 0), (1, 0, 0), (1, 1, 1)]: v0 = hBool(a_in) v1 = hBool(b_in) o = v0 & v1 self.assertValEq(o, out, "%d == %d" % (o.val, out))
def test_BoolEqualNotEqual(self): v0 = hBool(True) v1 = hBool(True) self.assertValEq(v0._eq(v1), True) self.assertNotEqual(v0, hBool(False))
def test_BOOLNeg(self): v0 = hBool(True) self.assertValEq(~v0, False) self.assertValEq(~ ~v0, True)
def test_BOOLNeg(self): v0 = hBool(True) self.assertValEq(~v0, False) self.assertValEq(~~v0, True)
(s0, 1, ~s0), (s0, 0, s0), (1, s0, ~s0), (0, s0, s0), ] bitvals = { 1: hBit(1), 0: hBit(0), None: hBit(None), s0: s1, ~ s0: ~s1 } boolvals = { 1: hBool(1), 0: hBool(0), None: hBool(None), s0: s0, ~ s0: ~s0 } class OperatorTC(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.n = RtlNetlist() def test_BoolNot(self): for v in [True, False]: res = ~hBool(v)