Пример #1
0
 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)
Пример #2
0
 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))
Пример #3
0
    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))
Пример #4
0
 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))