def test_sign_extend(self): """Test sign extension of Bus""" b = Bus(2, 3) seb = b.sign_extend(4) self.assertEqual(len(seb), 4) self.assertEqual(int(seb.signal), 15) b.signal = 1 self.assertEqual(int(seb.signal), 1)
def test_branch(self): """Test branching feature""" a = Bus(1) branched_a = a.branch(4) self.assertEqual(len(branched_a), 4) self.assertEqual(branched_a.signal, Signal(0, 4)) a.signal = 1 self.assertEqual(branched_a.signal, Signal(2**4 - 1, 4))
def test_slicing(self): """Test Bus slicing feature. Test index and ranges""" b = Bus(4) b.signal = 0b1010 bits = [0, 1, 0, 1] for subbus, bit in zip(b, bits): self.assertEqual(int(subbus.signal), bit) b_slice = b[2:] self.assertEqual(b_slice.signal, Signal(2, 2)) b_slice.signal = 0b11 self.assertEqual(b.signal, Signal(14, 4))
def test_basic(self): b = Bus(4) self.assertEqual(len(b), 4) self.assertEqual(b.signal, Signal(0, 4)) b.signal = 10 self.assertEqual(b.signal, Signal(10, 4))