summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHaidong Ji2019-03-17 11:53:40 -0500
committerHaidong Ji2019-03-17 11:53:40 -0500
commit151a820c72161aacde623b444ab1f137689a36f5 (patch)
treec728f6f809033ccfbb8e88fc4ceee39ddb79b0f6 /tests
parent20bda975f02bdf906e924f176c27fd95df8c8424 (diff)
Rabin-Karp string search done!
Not too bad to convert Java to Python. Converting the for loop and playing indexing is interesting, good exercise.
Diffstat (limited to 'tests')
-rw-r--r--tests/hash_substringTest.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/hash_substringTest.py b/tests/hash_substringTest.py
new file mode 100644
index 0000000..4c8fd5c
--- /dev/null
+++ b/tests/hash_substringTest.py
@@ -0,0 +1,31 @@
+import unittest
+
+from sources.hash_substring import get_occurrences, rabin_karp
+
+
+class MyTestCase(unittest.TestCase):
+
+ def test1(self):
+ result = get_occurrences('aba', 'abacaba')
+ result = rabin_karp('aba', 'abacaba')
+ self.assertEqual(len(result), 2)
+ self.assertEqual(result[0], 0)
+ self.assertEqual(result[1], 4)
+
+ def test2(self):
+ result = get_occurrences('Test', 'testTesttesT')
+ result = rabin_karp('Test', 'testTesttesT')
+ self.assertEqual(len(result), 1)
+ self.assertEqual(result[0], 4)
+
+ def test3(self):
+ result = get_occurrences('aaaaa', 'baaaaaaa')
+ result = rabin_karp('aaaaa', 'baaaaaaa')
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result[0], 1)
+ self.assertEqual(result[1], 2)
+ self.assertEqual(result[2], 3)
+
+
+if __name__ == '__main__':
+ unittest.main()