import unittest
import io
import re
from unittest import mock
import math
import student_X as main #Replace student_X with your filename 
    
    
    
 

class MiddleCharTests(unittest.TestCase):

    def test_default_case(self):
        function = main.middle_char
        
        
        test = False
        try:
            incorrect = ""
            result = function.__doc__.strip()
            test = incorrect != result
        except:
            pass

        message = "No docstring."
        self.assertTrue(test, message)

        
        inputs = ("are")

        test = False
        correct = 'r'
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't return the correct character ('r') on the string 'are'."
        self.assertTrue(test, message)

        
        inputs = ("fake")

        test = False
        incorrect = 'a'
        correct = 'k'
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)

        test = result != incorrect
        message = "Seems to round to the left on even-length strings."
        self.assertTrue(test, message)
            
        test = correct == result
        message = "Doesn't return the correct character ('k') on the string 'fake'."
        self.assertTrue(test, message)

        
        inputs = ("bananaboy")

        test = False
        correct = 'n'
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't always return the correct character for odd-length strings."
        self.assertTrue(test, message)

        
        inputs = ("bananatime")

        test = False
        correct = 'a'
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't always return the correct character for even-length strings."
        self.assertTrue(test, message)
        
        
if __name__ == "__main__":
    tests = MiddleCharTests()
    tests.test_default_case()