import unittest import io import re from unittest import mock import math import student_X as main #Replace student_X with your filename class ShrinkifyTests(unittest.TestCase): def test_default_case(self): function = main.shrinkify test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = ([]) correct = [] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a the empty list." self.assertTrue(test, message) inputs = ([0]) correct = [] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with one small element." self.assertTrue(test, message) inputs = ([1]) correct = [] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with one smallish element." self.assertTrue(test, message) inputs = ([2]) correct = [1] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with one smallish element." self.assertTrue(test, message) inputs = ([-2]) correct = [-1] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with one smallish element." self.assertTrue(test, message) inputs = ([1, 1, -3, 3, 5, 33, -7, 5]) correct = [-1.5, 1.5, 2.5, 16.5, -3.5, 2.5] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a longer list." self.assertTrue(test, message) inputs = ([-1.2, 22, 344, 38, -52, 33446690, 1.5, .88, 70, 52]) correct = [11, 172, 19, -26, 16723345.0, 35, 26] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a long list." self.assertTrue(test, message) inputs = ([0, 1, 2]) correct = [1] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with three elements." self.assertTrue(test, message) inputs = ([0, -1, -2, -3, 4]) correct = [-1, -1.5, 2.0] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with five elements." self.assertTrue(test, message) inputs = ([50, 10, 200, 30, -40, -50, 60, 70, 80, -90, 100]) correct = [25, 5, 100, 15, -20, -25, 30, 35, 40, -45, 50] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Not void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list where no elements will get removed." self.assertTrue(test, message) if __name__ == "__main__": tests = ShrinkifyTests() tests.test_default_case()