import unittest import io import re from unittest import mock import math import student_X as main #Replace student_X with your filename class IsPalindromeTests(unittest.TestCase): def test_default_case(self): function = main.is_palindrome test = False try: incorrect = "" result = function.__doc__.strip() test = incorrect != result except: pass self.assertTrue(test, "No docstring") inputs = ("") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a the empty string.") inputs = ("x") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a single-character string.") inputs = ("xx") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a 2-character-long palindrome.") inputs = ("lil") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a short odd-length palindrome.") inputs = ("toot") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a 4-character-long palindrome.") inputs = ("amanaplanacanalpanama") test = False correct = True if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a long odd-length palindrome.") inputs = ("to") test = False correct = False if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a short non-palindrome.") inputs = ("tott") test = False correct = False if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a short non-palindrome where the first and last letters are the same.") inputs = ("abcdefghijklmnlkjihgfedcba") test = False correct = False if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = correct == result self.assertTrue(test, "Doesn't work on a long non-palindrome.") if __name__ == "__main__": tests = IsPalindromeTests() tests.test_default_case()