def test_kmp(self):
        for i in range(100):
            # Generate random substring
            n = randrange(1, 5)
            substring = gen_substring(n)

            # Compare bruteforce vs KMP solution
            bruteforce = bruteforce_get_pos(substring)
            kmp = kmp_get_pos(substring)
            self.assertEqual(bruteforce, kmp)
 def test111_from_example(self):
     s = "111"
     self.assertEqual(kmp_get_pos(s), 12)
 def test6789_from_example(self):
     s = "6789"
     self.assertEqual(kmp_get_pos(s), 6)