import unittest import io import re from unittest import mock import math import student_X as main #Replace student_X with your filename class SwapElementsTests(unittest.TestCase): def test_default_case(self): function = main.swap_elements test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = ([1], 0, 0) correct = ([1], 0, 0) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a case where the list only has one element." self.assertTrue(test, message) inputs = ([1, 2], 0, 0) correct = ([1, 2], 0, 0) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a case when the two indices are the same." self.assertTrue(test, message) inputs = ([1, 2], 0, 1) correct = ([2, 1], 0, 1) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on a list with two elements." self.assertTrue(test, message) inputs = ([1, 2, 3], 0, 2) correct = ([3, 2, 1], 0, 2) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work when swapping the first and last elements." self.assertTrue(test, message) inputs = ([1, 2, 3, 4], 0, 2) correct = ([3, 2, 1, 4], 0, 2) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work when swapping the first element with one in the middle." self.assertTrue(test, message) inputs = ([0, 1, 2, 3, 4], 1, 3) correct = ([0, 3, 2, 1, 4], 1, 3) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work when swapping two elements in the middle of the list." self.assertTrue(test, message) inputs = ([0, 1, 2, 3, 4], 3, 1) correct = ([0, 3, 2, 1, 4], 3, 1) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work when the two indices are in decreasing order." self.assertTrue(test, message) inputs = (["a", "b", "c", "d", "e", "f", "g", "h"], 2, 4) correct = (["a", "b", "e", "d", "c", "f", "g", "h"], 2, 4) if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == None message = "Isn't void." self.assertTrue(test, message) test = inputs == correct message = "Doesn't work on my long list of strings." self.assertTrue(test, message) if __name__ == "__main__": tests = SwapElementsTests() tests.test_default_case()