def testDifferentWithMidpoint(self): quests = [ quest_test.QuestByChange({ change_test.Change(1): quest_test.QuestPass(), change_test.Change(9): quest_test.QuestFail(), }) ] state = job_state.JobState(quests, comparison_mode=job_state.PERFORMANCE) state.AddChange(change_test.Change(1)) state.AddChange(change_test.Change(9)) state.ScheduleWork() state.Explore() # The Changes are different. Add the midpoint. expected = [ change_test.Change(1), change_test.Change(5), change_test.Change(9) ] self.assertEqual(state._changes, expected) attempt_count_1 = len(state._attempts[change_test.Change(1)]) attempt_count_2 = len(state._attempts[change_test.Change(5)]) attempt_count_3 = len(state._attempts[change_test.Change(9)]) self.assertEqual(attempt_count_1, attempt_count_2) self.assertEqual(attempt_count_2, attempt_count_3) self.assertEqual([], state.Differences())
def testDifferentNoMidpoint(self): quests = [quest_test.QuestByChange({ change_test.Change(1): quest_test.QuestPass(), change_test.Change(2): quest_test.QuestFail(), })] state = job_state.JobState(quests, comparison_mode=job_state.PERFORMANCE) state.AddChange(change_test.Change(1)) state.AddChange(change_test.Change(2)) state.ScheduleWork() state.Explore() # The Changes are different, but there's no midpoint. We're done. self.assertEqual(len(state._changes), 2) attempt_count_1 = len(state._attempts[change_test.Change(1)]) attempt_count_2 = len(state._attempts[change_test.Change(2)]) self.assertEqual(attempt_count_1, attempt_count_2)
def testDifferentWithMidpoint(self): quests = [ quest_test.QuestByChange({ change_test.Change(1): quest_test.QuestPass(), change_test.Change(9): quest_test.QuestFail(), }) ] state = job_state.JobState(quests, comparison_mode=job_state.PERFORMANCE) state.AddChange(change_test.Change(1)) state.AddChange(change_test.Change(9)) state.ScheduleWork() state.Explore() # The Changes are different. Add the speculated modpoints in a two-level # deep bisection tree, which include 3, 5 (the midpoint between 0 and 9), # and 7. expected = [ change_test.Change(1), change_test.Change(3), change_test.Change(5), change_test.Change(7), change_test.Change(9), ] # View the whole diff in case of failure. self.maxDiff = None self.assertEqual(state._changes, expected) attempt_count_1 = len(state._attempts[change_test.Change(1)]) attempt_count_2 = len(state._attempts[change_test.Change(3)]) attempt_count_3 = len(state._attempts[change_test.Change(5)]) attempt_count_4 = len(state._attempts[change_test.Change(7)]) attempt_count_5 = len(state._attempts[change_test.Change(9)]) self.assertEqual(attempt_count_1, attempt_count_2) self.assertEqual(attempt_count_2, attempt_count_3) self.assertEqual(attempt_count_3, attempt_count_4) self.assertEqual(attempt_count_4, attempt_count_5) self.assertEqual([], state.Differences())