Ejemplo n.º 1
0
 def test_simplify5(self):
     shift1 = Shift(self.bank, join.Join(), -10)
     shift2 = Shift(shift1, self.main, -25)
     simplified = shift2.simplify()
     simplified.reset(self.machine)
     s = "(shift (value 23)(bank (mock (join)))(memory (mock)))"
     self.assertEqual(str(simplified), s)
Ejemplo n.º 2
0
    def test_negative(self):
        shift = Shift(self.bank, self.main, -2)
        shift.reset(self.machine)

        t = shift.process(0, False, 0, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank.reads, 1)
        self.assertEqual(self.bank.writes, 0)
        self.assertEqual(self.main.reads, 1)
        self.assertEqual(self.main.writes, 0)
        self.assertEqual(self.main.last_addr, 0)
        self.assertEqual(self.main.last_size, 8)
        self.assertEqual(self.bank.last_addr, 0)
        self.assertEqual(self.bank.last_size, 8)

        t = shift.process(0, False, 1, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank.reads, 2)
        self.assertEqual(self.bank.writes, 0)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 0)
        self.assertEqual(self.main.last_addr, 1)
        self.assertEqual(self.main.last_size, 1)
        self.assertEqual(self.bank.last_addr, 1)
        self.assertEqual(self.bank.last_size, 1)

        t = shift.process(0, True, 1, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank.reads, 2)
        self.assertEqual(self.bank.writes, 1)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 1)
        self.assertEqual(self.main.last_addr, 1)
        self.assertEqual(self.main.last_size, 1)
        self.assertEqual(self.bank.last_addr, 1)
        self.assertEqual(self.bank.last_size, 1)

        t = shift.process(0, True, 9, 4)
        self.assertEqual(t, 800)
        self.assertEqual(self.bank.reads, 2)
        self.assertEqual(self.bank.writes, 2)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 2)
        self.assertEqual(self.main.last_addr, 9)
        self.assertEqual(self.main.last_size, 4)
        self.assertEqual(self.bank.last_addr, (1 << 30) | 1)
        self.assertEqual(self.bank.last_size, 4)
Ejemplo n.º 3
0
 def test_path(self):
     shift = Shift(self.bank, self.main, 5)
     self.assertEqual(shift.get_path_length(), 0)
Ejemplo n.º 4
0
 def test_cost(self):
     shift = Shift(self.bank, self.main, 5)
     self.assertEqual(shift.get_cost(), 0)
Ejemplo n.º 5
0
    def test_positive(self):
        shift = Shift(self.bank, self.main, 1)
        shift.reset(self.machine)

        t = shift.process(0, False, 0, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank.reads, 1)
        self.assertEqual(self.bank.writes, 0)
        self.assertEqual(self.main.reads, 1)
        self.assertEqual(self.main.writes, 0)
        self.assertEqual(self.main.last_addr, 0)
        self.assertEqual(self.main.last_size, 8)
        self.assertEqual(self.bank.last_addr, 0)
        self.assertEqual(self.bank.last_size, 8)

        t = shift.process(0, False, 1, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank.reads, 2)
        self.assertEqual(self.bank.writes, 0)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 0)
        self.assertEqual(self.main.last_addr, 1)
        self.assertEqual(self.main.last_size, 1)
        self.assertEqual(self.bank.last_addr, 1)
        self.assertEqual(self.bank.last_size, 1)

        t = shift.process(0, True, 1, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank.reads, 2)
        self.assertEqual(self.bank.writes, 1)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 1)
        self.assertEqual(self.main.last_addr, 1)
        self.assertEqual(self.main.last_size, 1)
        self.assertEqual(self.bank.last_addr, 1)
        self.assertEqual(self.bank.last_size, 1)

        t = shift.process(0, False, 16, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank.reads, 3)
        self.assertEqual(self.bank.writes, 1)
        self.assertEqual(self.main.reads, 3)
        self.assertEqual(self.main.writes, 1)
        self.assertEqual(self.main.last_addr, 16)
        self.assertEqual(self.main.last_size, 8)
        self.assertEqual(self.bank.last_addr, 32)
        self.assertEqual(self.bank.last_size, 8)

        t = shift.process(0, False, 1 << 31, 4)
        self.assertEqual(t, 800)
        self.assertEqual(self.bank.reads, 4)
        self.assertEqual(self.bank.writes, 1)
        self.assertEqual(self.main.reads, 4)
        self.assertEqual(self.main.writes, 1)
        self.assertEqual(self.main.last_addr, 1 << 31)
        self.assertEqual(self.main.last_size, 4)
        self.assertEqual(self.bank.last_addr, 8)
        self.assertEqual(self.bank.last_size, 4)

        t = shift.process(0, False, 105, 2)
        self.assertEqual(t, 400)
        self.assertEqual(self.bank.reads, 5)
        self.assertEqual(self.bank.writes, 1)
        self.assertEqual(self.main.reads, 5)
        self.assertEqual(self.main.writes, 1)
        self.assertEqual(self.main.last_addr, 105)
        self.assertEqual(self.main.last_size, 2)
        self.assertEqual(self.bank.last_addr, 209)
        self.assertEqual(self.bank.last_size, 2)
Ejemplo n.º 6
0
 def test_simplify4(self):
     shift1 = Shift(self.bank, join.Join(), 1)
     shift2 = Shift(shift1, self.main, 2)
     simplified = shift2.simplify()
     s = "(shift (value 3)(bank (mock (join)))(memory (mock)))"
     self.assertEqual(str(simplified), s)
Ejemplo n.º 7
0
 def test_simplify3(self):
     shift = Shift(self.join, self.main, 1)
     simplified = shift.simplify()
     self.assertEqual(simplified, self.main)
Ejemplo n.º 8
0
 def test_simplify2(self):
     shift = Shift(self.bank, self.main, 0)
     simplified = shift.simplify()
     self.assertEqual(simplified, self.bank)