Exemplo n.º 1
0
class PageCreatorTest(unittest.TestCase):

    # Arrange
    def setUp(self):
        self.page_creator = PageCreator()
        self.pcb = PCB(0, 20, BlockHolder(None))

    def test_whenICreatePagesForPCB_ThenTheInfoHolderHasThemAsItShould(self):
        self.page_creator.create(self.pcb, 5)
        self.assertEqual(len(self.pcb.get_info_holder().get_hold()), 4)

    def test_whenICreatePagesForPCB_ThenTheInfoTheyHaveIsCorrect(self):
        self.page_creator.create(self.pcb, 5)
        page1 = self.pcb.get_info_holder().get_hold()[0]
        page2 = self.pcb.get_info_holder().get_hold()[1]
        page3 = self.pcb.get_info_holder().get_hold()[2]
        page4 = self.pcb.get_info_holder().get_hold()[3]

        self.assertEqual(page1.get_starting_index(), 0)
        self.assertEqual(page1.get_ending_index(), 4)
        self.assertEqual(page1.get_amount_of_instructions(), 5)

        self.assertEqual(page2.get_starting_index(), 5)
        self.assertEqual(page2.get_ending_index(), 9)
        self.assertEqual(page2.get_amount_of_instructions(), 5)

        self.assertEqual(page3.get_starting_index(), 10)
        self.assertEqual(page3.get_ending_index(), 14)
        self.assertEqual(page3.get_amount_of_instructions(), 5)

        self.assertEqual(page4.get_starting_index(), 15)
        self.assertEqual(page4.get_ending_index(), 19)
        self.assertEqual(page4.get_amount_of_instructions(), 5)
Exemplo n.º 2
0
class PageCreatorTest(unittest.TestCase):

    # Arrange
    def setUp(self):
        self.page_creator = PageCreator()
        self.pcb = PCB(0, 20, BlockHolder(None))

    def test_whenICreatePagesForPCB_ThenTheInfoHolderHasThemAsItShould(self):
        self.page_creator.create(self.pcb, 5)
        self.assertEqual(len(self.pcb.get_info_holder().get_hold()), 4)

    def test_whenICreatePagesForPCB_ThenTheInfoTheyHaveIsCorrect(self):
        self.page_creator.create(self.pcb, 5)
        page1 = self.pcb.get_info_holder().get_hold()[0]
        page2 = self.pcb.get_info_holder().get_hold()[1]
        page3 = self.pcb.get_info_holder().get_hold()[2]
        page4 = self.pcb.get_info_holder().get_hold()[3]

        self.assertEqual(page1.get_starting_index(), 0)
        self.assertEqual(page1.get_ending_index(), 4)
        self.assertEqual(page1.get_amount_of_instructions(), 5)

        self.assertEqual(page2.get_starting_index(), 5)
        self.assertEqual(page2.get_ending_index(), 9)
        self.assertEqual(page2.get_amount_of_instructions(), 5)

        self.assertEqual(page3.get_starting_index(), 10)
        self.assertEqual(page3.get_ending_index(), 14)
        self.assertEqual(page3.get_amount_of_instructions(), 5)

        self.assertEqual(page4.get_starting_index(), 15)
        self.assertEqual(page4.get_ending_index(), 19)
        self.assertEqual(page4.get_amount_of_instructions(), 5)
Exemplo n.º 3
0
 def setUp(self):
     self.frame1 = Frame(0, 9, BlockHolder(None))
     self.frame2 = Frame(1, 9, BlockHolder(None))
     self.frame3 = Frame(2, 9, BlockHolder(None))
     self.frame4 = Frame(3, 9, BlockHolder(None))
     self.frames = [self.frame1, self.frame2, self.frame3, self.frame4]
     self.frame_manager = FrameManager(self.frames)
     self.page_creator = PageCreator()
     self.pcb = PCB(0, 30, BlockHolder(None))
     self.page_creator.create(self.pcb, 5)
Exemplo n.º 4
0
class FrameManagerTest(unittest.TestCase):

    # Arrange
    def setUp(self):
        self.frame1 = Frame(0, 9, BlockHolder(None))
        self.frame2 = Frame(1, 9, BlockHolder(None))
        self.frame3 = Frame(2, 9, BlockHolder(None))
        self.frame4 = Frame(3, 9, BlockHolder(None))
        self.frames = [self.frame1, self.frame2, self.frame3, self.frame4]
        self.frame_manager = FrameManager(self.frames)
        self.page_creator = PageCreator()
        self.pcb = PCB(0, 30, BlockHolder(None))
        self.page_creator.create(self.pcb, 5)

    def test_whenIAssignAPCBTheFirstTime_ThenFrameManagerUsesTheFirstFrame(self):
        # Pages
        first_frame = self.frame_manager.get_frames()[0]

        self.frame_manager.assign_page_to_frame(self.pcb)
        first_pcb_page = self.pcb.get_info_holder().get_hold()[0]
        self.assertEquals(first_frame.get_page(), first_pcb_page)

    def test_whenTheFirstPCBPageIsUsedAndPCBIsAssigned_ThenFrameManagerUsesTheSecondFrame(self):
        # Pages
        first_pcb_page = self.pcb.get_info_holder().get_hold()[0]
        second_pcb_page =self.pcb.get_info_holder().get_hold()[1]

        self.frame_manager.assign_page_to_frame(self.pcb)
        first_pcb_page.set_used()

        self.frame_manager.assign_page_to_frame(self.pcb)
        second_frame = self.frame_manager.get_frames()[1]
        self.assertEquals(second_frame.get_page(), second_pcb_page)

    def test_whenAllFramesAreUsedAndPCBAssignsOneMorePage_ThenTheYoungestFrameGetsEmpty(self):
        # Pages
        first_pcb_page = self.pcb.get_info_holder().get_hold()[0]
        second_pcb_page =self.pcb.get_info_holder().get_hold()[1]
        third_pcb_page = self.pcb.get_info_holder().get_hold()[2]
        forth_pcb_page = self.pcb.get_info_holder().get_hold()[3]
        fifth_pcb_page = self.pcb.get_info_holder().get_hold()[4]

        self.frame_manager.assign_page_to_frame(self.pcb)
        first_pcb_page.set_used()
        self.frame_manager.assign_page_to_frame(self.pcb)
        second_pcb_page.set_used()
        self.frame_manager.assign_page_to_frame(self.pcb)
        third_pcb_page.set_used()
        self.frame_manager.assign_page_to_frame(self.pcb)
        forth_pcb_page.set_used()

        forth_frame = self.frame_manager.get_frames()[3]

        self.frame_manager.assign_page_to_frame(self.pcb)
        self.assertEqual(forth_frame.get_page(), fifth_pcb_page)
Exemplo n.º 5
0
 def setUp(self):
     self.page_creator = PageCreator()
     self.pcb = PCB(0, 20, BlockHolder(None))
Exemplo n.º 6
0
 def setUp(self):
     self.page_creator = PageCreator()
     self.pcb = PCB(0, 20, BlockHolder(None))