Beispiel #1
0
 def test_all_suffix_tree(self):
   N, A = 10, ['a', 'b']
   for n in range(2, N + 1):
     for t in itertools.product(A, repeat = n):
       t = '#' + ''.join(t)
       reference = suffix_tree.naive(t, n)
       self.check_suffix_trees(t, n, reference)
Beispiel #2
0
 def test_random_suffix_tree(self, _, algorithm, links):
     T, n, A = 100, 200, ['a', 'b']
     for _ in range(T):
         t = rand.random_word(n, A)
         reference = (suffix_tree.naive(t, n),
                      get_suffix_links(*suffix_tree.mccreight(t, n))[1])
         self.check_suffix_trees(t, n, reference, algorithm, links)
Beispiel #3
0
 def test_all_suffix_tree(self, _, algorithm, links):
     N, A = 10, ['a', 'b']
     for n in range(2, N + 1):
         for t in itertools.product(A, repeat=n):
             t = '#' + ''.join(t)
             reference = (suffix_tree.naive(t, n),
                          get_suffix_links(*suffix_tree.mccreight(t, n))[1])
             self.check_suffix_trees(t, n, reference, algorithm, links)
 def check_no_match(self, t, w, n, m):
     for algorithm in EXACT_STRING_MATCHING_ALGORITHMS:
         self.assertFalse(
             list(algorithm(t, w, n, m)),
             'Algorithm {}, text {}, pattern {}'.format(
                 algorithm.__name__, t, w))
     self.assertFalse(
         list(suffix_tree.contains(suffix_tree.naive(t, n), t, w, n, m)),
         'Suffix tree, text {}, pattern {}'.format(t, w))
     self.assertFalse(
         list(suffix_array.contains(suffix_array.naive(t, n), t, w, n, m)),
         'Suffix array, text {}, pattern {}'.format(t, w))
 def check_get_all_exact_matches(self, t, w, n, m, reference):
     for algorithm in EXACT_STRING_MATCHING_ALGORITHMS:
         self.assertEqual(
             list(algorithm(t, w, n, m)), reference,
             'Algorithm {}, text {}, pattern {}'.format(
                 algorithm.__name__, t, w))
     self.assertEqual(
         list(suffix_tree.contains(suffix_tree.naive(t, n), t, w, n, m)),
         reference, 'Suffix tree, text {}, pattern {}'.format(t, w))
     self.assertEqual(
         list(suffix_array.contains(suffix_array.naive(t, n), t, w, n, m)),
         reference, 'Suffix array, text {}, pattern {}'.format(t, w))
Beispiel #6
0
 def test_random_suffix_tree(self):
   T, n, A = 100, 200, ['a', 'b']
   for _ in range(T):
     t = rand.random_word(n, A)
     reference = suffix_tree.naive(t, n)
     self.check_suffix_trees(t, n, reference)