def test_substring_empty_trie(self):
     """
     Tests substring operations on an empty trie.
     """
     trie = naive_suffix_trie.build_suffix_trie("")
     assert naive_suffix_trie.substring(trie, "")
     assert not naive_suffix_trie.substring(trie, "a")
 def test_substring_single_element_trie(self):
     """
     Tests substring operations on a single element trie.
     """
     trie = naive_suffix_trie.build_suffix_trie("a")
     assert naive_suffix_trie.substring(trie, "")
     assert naive_suffix_trie.substring(trie, "a")
     assert not naive_suffix_trie.substring(trie, "b")
     assert not naive_suffix_trie.substring(trie, "ab")
 def test_substring_multi_element_trie(self):
     """
     Tests substring operations on a multi-element trie.
     """
     trie = naive_suffix_trie.build_suffix_trie("abba")
     expected = ["", "a", "ab", "abb", "abba", "b", "bb", "bba", "ba"]
     unexpected = ["aba", "aa", "abbaa"]
     for val in expected:
         assert naive_suffix_trie.substring(trie, val)
     for val in unexpected:
         assert not naive_suffix_trie.substring(trie, val)