import unittest import io import re from unittest import mock import math import copy import student_X as main #Replace student_X with your filename class IndexOfMaxInRangeTests(unittest.TestCase): def test_default_case(self): function = main.index_of_max_in_range test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = ([10], 0, 0) correct = 0 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the list only has one element." self.assertTrue(test, message) inputs = ([-20, -33, -2024], 0, 2) correct = 0 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where everything in the list is negative." self.assertTrue(test, message) inputs = ([10, 9, 8, 7], 0, 3) correct = 0 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the largest element is the first one in the list." self.assertTrue(test, message) inputs = ([10, 9, 8, 11], 0, 3) correct = 3 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the largest element is last in the list." self.assertTrue(test, message) inputs = ([10, 9, 7, 6, 8, 12], 1, 3) correct = 1 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the largest element is first in the range." self.assertTrue(test, message) inputs = ([10, 9, 7, 10, 8, 12], 1, 3) correct = 3 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the largest element is last in the range." self.assertTrue(test, message) inputs = ([-20, -50, -15, -20, -8, -9, -77, -11, -80, -12], 1, 6) correct = 4 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case where the largest element is in the middle of the range." self.assertTrue(test, message) inputs = ([15, 6, 7, 8, 9, 10, 13, 10, 11, 10, 9, 8, 7, 6, 20], 4, 9) correct = 6 original = copy.deepcopy(inputs) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a case with a long list." self.assertTrue(test, message) if __name__ == "__main__": tests = IndexOfMaxInRangeTests() tests.test_default_case()