def test_jump_outoflimits(self): '''' Must leave current active image unchanged if jump is out of chain limits''' chain.Jump_To_Image(self.p_state, idx_image=5) # jump to non existing self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th chain.Jump_To_Image(self.p_state, idx_image=-5) # jump to non existing (negative) self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_pop_back(self): ''' Must make the image with next smaller index active when the active is poped''' chain.Insert_Image_Before(self.p_state) # add before active self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st chain.Pop_Back(self.p_state) # delete the last (active) self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th self.assertEqual(chain.Get_NOI(self.p_state), 1) # total 1 image
def test_jump(self): ''' Must change the active image to the one pointed by idx_image''' chain.Insert_Image_Before(self.p_state) # active is 1st chain.Jump_To_Image(self.p_state, idx_image=0) # jump to 0th self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th chain.Jump_To_Image(self.p_state, idx_image=1) # jump to 1st self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st
def test_switching(self): ''' For Next in the back and Prev in the front active must remain unchanged''' chain.Insert_Image_Before(self.p_state) # add before active self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st chain.Next_Image(self.p_state) # no next image self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st chain.Prev_Image(self.p_state) # go to prev image self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th chain.Prev_Image(self.p_state) # no prev image self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_replace_outoflimits(self): ''' Must leave current image unchanged if it tries to replace an non existing image''' chain.Replace_Image(self.p_state, idx_image=5) # replace 0th with 5th (not exist) self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th self.assertEqual(chain.Get_NOI(self.p_state), 1) # total 1 image chain.Replace_Image(self.p_state, idx_image=-5) # replace 0th with -5th (not exist) self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th self.assertEqual(chain.Get_NOI(self.p_state), 1) # total 1 image
def test_delete_outoflimits(self): chain.Insert_Image_Before(self.p_state) # active is 1st chain.Insert_Image_Before(self.p_state) # active is 2nd self.assertEqual(system.Get_Index(self.p_state), 2) # active is 2nd self.assertEqual(chain.Get_NOI(self.p_state), 3) # total 3 images # test the deletion of a non existing image with positive idx chain.Delete_Image(self.p_state, idx_image=5) # delete -5th (not exist) self.assertEqual(chain.Get_NOI(self.p_state), 3) # total 3 images # test the deletion of a non existing image with negative idx chain.Delete_Image(self.p_state, idx_image=-5) # delete -5th (not exist) self.assertEqual(chain.Get_NOI(self.p_state), 2) # total 2 images self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st
def test_trivial_switching(self): ''' Next or Prev image in image of length 1 should result to 0th active''' chain.Next_Image(self.p_state) # no next image self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th chain.Prev_Image(self.p_state) # no prev image self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_push_back(self): ''' Must add one image and leave active's index unchanged ''' chain.Push_Back(self.p_state) # add after all self.assertEqual(chain.Get_NOI(self.p_state), 2) # total 2 images self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_insert_before(self): ''' Must reindex (increment by one) active image ''' chain.Insert_Image_Before(self.p_state) # add before active self.assertEqual(chain.Get_NOI(self.p_state), 2) # total 2 images self.assertEqual(system.Get_Index(self.p_state), 1) # active is 1st
def test_insert_after(self): ''' Must leave the index of active image the same ''' chain.Insert_Image_After(self.p_state) # add after active self.assertEqual(chain.Get_NOI(self.p_state), 2) # total 2 images self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_active_image(self): ''' Must return the index of the active image ''' self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_remove_smallest_index_active(self): '''' Must set the active to the image with the smallest index left''' chain.Insert_Image_After(self.p_state) # active is 0th chain.Delete_Image(self.p_state) # delete 0th self.assertEqual(chain.Get_NOI(self.p_state), 1) # total 1 image self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_replace_trivial(self): ''' Must leave active image same if replace by its self''' chain.Replace_Image(self.p_state, idx_image=0) # replace 0th with 0th self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th
def test_jump_trivial(self): ''' Must leave active image same if jump to the active''' chain.Jump_To_Image(self.p_state, idx_image=0) # jump to active itself self.assertEqual(system.Get_Index(self.p_state), 0) # active is 0th (the same)
def test_get_index(self): index = system.Get_Index(self.p_state) self.assertEqual(index, 0)