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

class EndsWithTests(unittest.TestCase):

    def test_default_case(self):
        function = main.ends_with
        
        test = False
        try:
            incorrect = ""
            result = function.__doc__
            result = result.strip()
            test = incorrect != result
        except:
            pass
        message = "No docstring."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', '')
        correct = True
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the second parameter is the empty string."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', 'r')
        correct = True
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the second parameter is only the last character of the first parameter."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', 'venusaur')
        correct = True
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the two parameters are equal."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', 'saur')
        correct = True
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the second parameter is the last half of the first parameter."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', 'yyz')
        correct = False
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the second parameter is not a substring, much less a suffix."
        self.assertTrue(test, message)


        
        inputs = ('venusaur', 'usau')
        correct = False
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = result == correct
        message = "Doesn't work when the second parameter is a substring, but not a suffix."
        self.assertTrue(test, message)
        
        
if __name__ == "__main__":
    tests = EndsWithTests()
    tests.test_default_case()