diff --git a/src/clean_code/MathHelper.py b/src/clean_code/MathHelper.py index 9c12beb..268f375 100644 --- a/src/clean_code/MathHelper.py +++ b/src/clean_code/MathHelper.py @@ -1,3 +1,5 @@ +import sys + class MathHelper: def find_largest_number_in_list(self, list_with_numbers): @@ -6,6 +8,7 @@ def find_largest_number_in_list(self, list_with_numbers): :param list_with_numbers: :return: largest number in list, -sys.maxsize -1 for empty list """ - return 0 + max_number = max(list_with_numbers, default=-sys.maxsize-1) + return max_number diff --git a/src/clean_code/StringHelper.py b/src/clean_code/StringHelper.py index ad964cd..e33333a 100644 --- a/src/clean_code/StringHelper.py +++ b/src/clean_code/StringHelper.py @@ -7,9 +7,13 @@ def strings_are_anagrams(self, first_word, second_word): :param second_word: :return: True if the words are an Anagram, False otherwise """ + if type(first_word) is not str or type(second_word) is not str: + raise TypeError('Not a string') + if len(first_word) != len(second_word): return False - for letter in first_word: - if letter not in second_word: + + for letter in first_word.lower(): + if letter not in second_word.lower(): return False - return True + return True diff --git a/src/clean_code/test_StringHelper.py b/src/clean_code/test_StringHelper.py index de29d23..19ed216 100644 --- a/src/clean_code/test_StringHelper.py +++ b/src/clean_code/test_StringHelper.py @@ -1 +1,33 @@ -#TODO: Please write a test for my Anagram function \ No newline at end of file +#TODO: Please write a test for my Anagram function + +import unittest +from src.clean_code.StringHelper import StringHelper + +class Test(unittest.TestCase): + + def setUp(self): + self.string_helper = StringHelper() + self.anagram1 = "mary" + self.anagram2 = "amry" + + def test_strings_are_anagrams_random_anagram(self): + result = self.string_helper.strings_are_anagrams(self.anagram1, self.anagram2) + self.assertTrue(result) + + def test_strings_are_anagrams_empty_string(self): + example_string_1 = "Here comes dots" + example_string_2 = "" + result = self.string_helper.strings_are_anagrams(example_string_1, example_string_2) + self.assertFalse(result) + + def test_strings_are_anagrams_anagram_capitalized(self): + anagram_capitalized = "Amry" + result = self.string_helper.strings_are_anagrams(self.anagram1, anagram_capitalized) + self.assertTrue(result) + + def test_strings_are_anagrams_integer(self): + example_int = 2 + self.assertRaises(TypeError, self.string_helper.strings_are_anagrams, self.anagram1, example_int ) + + +