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

class NoSpaceStringsTests(unittest.TestCase):

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

        
        inputs = ([])
        original = copy.deepcopy(inputs)
        correct = []
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on an empty list."
        self.assertTrue(test, message)

        
        inputs = (['a'])
        original = copy.deepcopy(inputs)
        correct = ['a']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with a single string that already has no spaces."
        self.assertTrue(test, message)

        
        inputs = ([' '])
        original = copy.deepcopy(inputs)
        correct = ['']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with one empty space for a string."
        self.assertTrue(test, message)

        
        inputs = (['a a'])
        original = copy.deepcopy(inputs)
        correct = ['aa']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with one string."
        self.assertTrue(test, message)

        
        inputs = (['a  a'])
        original = copy.deepcopy(inputs)
        correct = ['aa']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with one string with two spaces."
        self.assertTrue(test, message)

        
        inputs = ([' ', ' '])
        original = copy.deepcopy(inputs)
        correct = ['', '']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with two strings that are just spaces."
        self.assertTrue(test, message)

        
        inputs = ([' ', 'a a', 'a', 'a  a'])
        original = copy.deepcopy(inputs)
        correct = ['', 'aa', 'a', 'aa']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list with two strings that are just spaces."
        self.assertTrue(test, message)

        
        inputs = (['I am', 'Hello', 'Did you see what is going on?', 'banana cheese warrior', 'What kind of pokemon are you?  How do you do the things you do?'])
        original = copy.deepcopy(inputs)
        correct = ['Iam', 'Hello', 'Didyouseewhatisgoingon?', 'bananacheesewarrior', 'Whatkindofpokemonareyou?Howdoyoudothethingsyoudo?']
        if isinstance(inputs, tuple):
            result = function(*inputs)
        else:
            result = function(inputs)
        test = inputs == original
        message = "Modifies the inputs."
        self.assertTrue(test, message)
        test = result == correct
        message = "Doesn't work on a list of long strings."
        self.assertTrue(test, message)
        
        
if __name__ == "__main__":
    tests = NoSpaceStringsTests()
    tests.test_default_case()