from __future__ import unicode_literals import unittest from anagram import is_anagram class IsAnagramTests(unittest.TestCase): """Tests for is_anagram.""" def test_short_anagram(self): self.assertTrue(is_anagram("tea", "eat")) def test_different_lengths(self): self.assertFalse(is_anagram("tea", "treat")) def test_sink_and_skin(self): self.assertTrue(is_anagram("sink", "skin")) def test_same_letters_different_lengths(self): self.assertFalse(is_anagram("sinks", "skin")) def test_different_capitalization(self): self.assertTrue(is_anagram("Trey", "Yert")) self.assertTrue(is_anagram("Listen", "silent")) # To test the Bonus part of this exercise, comment out the following line @unittest.expectedFailure def test_spaces_ignored(self): phrase1 = "William Shakespeare" phrase2 = "I am a weakish speller" self.assertTrue(is_anagram(phrase1, phrase2)) self.assertFalse(is_anagram("a b c", "a b d")) # To test the Bonus part of this exercise, comment out the following line @unittest.expectedFailure def test_punctation_ignored(self): phrase1 = "A diet" phrase2 = "I'd eat" self.assertTrue(is_anagram(phrase1, phrase2)) # To test the Bonus part of this exercise, comment out the following line @unittest.expectedFailure def test_characters_with_accents(self): self.assertTrue(is_anagram("Siobhán Donaghy", "Shanghai Nobody")) if __name__ == "__main__": unittest.main(verbosity=2)