コード例 #1
0
ファイル: test_heap.py プロジェクト: hoangt/ms3
    def test_heap2(self):
        h = Heap(1, 1, 1, -1, -1)
        h.reset(1024, '')
        gen = h.run()

        expected = [
            (AccessType.WRITE, 1024, 4),    # initialize
            (AccessType.IDLE, 0, 0),        # 'consume'
            (AccessType.READ, 1024, 4),     # read size
            (AccessType.WRITE, 1024, 4),    # increment size
            (AccessType.WRITE, 1028, 4),    # write first
            (AccessType.READ, 1024, 4),     # read size
            (AccessType.WRITE, 1024, 4),    # decrement size
            (AccessType.READ, 1028, 4),     # read result
            (AccessType.READ, 1028, 4),     # read for over-write
            (AccessType.WRITE, 1028, 4),    # overwrite
            (AccessType.IDLE, 0, 0),        # 'produce'
        ]
        for e in expected:
            actual = next(gen)
            self.assertEqual(actual, e)
コード例 #2
0
ファイル: test_heap.py プロジェクト: hoangt/ms3
    def test_heap1(self):
        h = Heap(0, 1, 2, 3, 4)
        h.reset(1024, '')
        gen = h.run()

        # Initialize
        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        # Insert 1
        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.CONSUME)
        self.assertEqual(addr, 3)
        self.assertEqual(size, 0)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        # Insert 2
        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.CONSUME)
        self.assertEqual(addr, 3)
        self.assertEqual(size, 0)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1032)
        self.assertEqual(size, 4)

        # Remove 1
        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1032)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.PRODUCE)
        self.assertEqual(addr, 4)
        self.assertEqual(size, 0)

        # Remove 2
        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1024)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.READ)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.WRITE)
        self.assertEqual(addr, 1028)
        self.assertEqual(size, 4)

        t, addr, size = next(gen)
        self.assertEqual(t, AccessType.PRODUCE)
        self.assertEqual(addr, 4)
        self.assertEqual(size, 0)