|
1 | 1 | from algorithms.map import ( |
2 | 2 | HashTable, ResizableHashTable, |
3 | | - Node, SeparateChainingHashTable |
| 3 | + Node, SeparateChainingHashTable, |
| 4 | + word_pattern, |
| 5 | + is_isomorphic, |
| 6 | + is_anagram |
4 | 7 | ) |
5 | 8 |
|
6 | 9 | import unittest |
@@ -147,6 +150,28 @@ def test_get_none_if_key_missing_and_hash_collision(self): |
147 | 150 | self.assertEqual(None, m.get(11)) |
148 | 151 |
|
149 | 152 |
|
| 153 | +class TestWordPattern(unittest.TestCase): |
| 154 | + def test_word_pattern(self): |
| 155 | + self.assertTrue(word_pattern("abba", "dog cat cat dog")) |
| 156 | + self.assertFalse(word_pattern("abba", "dog cat cat fish")) |
| 157 | + self.assertFalse(word_pattern("abba", "dog dog dog dog")) |
| 158 | + self.assertFalse(word_pattern("aaaa", "dog cat cat dog")) |
| 159 | + |
| 160 | + |
| 161 | +class TestIsSomorphic(unittest.TestCase): |
| 162 | + def test_is_isomorphic(self): |
| 163 | + self.assertTrue(is_isomorphic("egg", "add")) |
| 164 | + self.assertFalse(is_isomorphic("foo", "bar")) |
| 165 | + self.assertTrue(is_isomorphic("paper", "title")) |
| 166 | + |
| 167 | + |
| 168 | +class TestIsAnagram(unittest.TestCase): |
| 169 | + def test_is_anagram(self): |
| 170 | + self.assertTrue(is_anagram("anagram", "nagaram")) |
| 171 | + self.assertFalse(is_anagram("rat", "car")) |
| 172 | + |
| 173 | + |
| 174 | + |
150 | 175 |
|
151 | 176 | if __name__ == "__main__": |
152 | 177 | unittest.main() |
0 commit comments