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

class FibonacciTests(unittest.TestCase):

    def test_default_case(self):
        function = main.fibonacci

        incorrect = ""
        try:
            doc = function.__doc__
            doc = doc.strip()
        except:
            doc = ""
        test = doc != incorrect
        message = "No docstring."
        self.assertTrue(test, message)


        
        inputs = (0)

        test = False
        correct = 0
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't work for the first base case."
        self.assertTrue(test, message)


        
        inputs = (1)

        test = False
        correct = 1
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't work for the second base case."
        self.assertTrue(test, message)

        

        inputs = (10)

        test = False
        correct = 55
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = correct == result
        message = "Doesn't return 55 as the 10eth element of the fibonacci sequence."
        self.assertTrue(test, message)
        
        
        
if __name__ == "__main__":
    tests = FibonacciTests()
    tests.test_default_case()