def test_complete(self):
     strings = ['ABC', 'ABD', 'A', 'XYZ']
     tree = PrefixTree(strings)
     # Verify completions for all substrings
     assert tree.complete('ABC') == ['ABC']
     assert tree.complete('ABD') == ['ABD']
     assert tree.complete('AB') == ['ABC', 'ABD']
     assert tree.complete('BC') == []
     assert tree.complete('BD') == []
     assert tree.complete('A') == ['A', 'ABC', 'ABD']
     assert tree.complete('B') == []
     assert tree.complete('C') == []
     assert tree.complete('D') == []
     assert tree.complete('XYZ') == ['XYZ']
     assert tree.complete('XY') == ['XYZ']
     assert tree.complete('YZ') == []
     assert tree.complete('X') == ['XYZ']
     assert tree.complete('Y') == []
     assert tree.complete('Z') == []
     # Verify empty prefix string as input - aka "suggestions" feature
     completions_with_empty_string = tree.complete('')
     # Check length only
     assert len(completions_with_empty_string) == len(strings)
     # Ignore order
     self.assertCountEqual(completions_with_empty_string, strings)
def game():
    print("\nWelcome to Autocomplete\n")

    word_part = input("Give me a word part\n\n")
    # checks emptiness
    if not word_part:
        print("You must enter a word part\n")
        sys.exit(1)

    loads = load("/usr/share/dict/words")
    tree = PrefixTree(loads)
    words = tree.complete(word_part)
    results = print("{} results were found".format(len(words)))
    number = input("How many results would you like?\n")

    # checks edge cases for results display
    if (len(number) <= 0) or not (number.isdigit()):
        print("You must input a positive number :)")
        sys.exit()

    count = 0

    # retrives set number of results
    if 0 < len(words):
        if len(words) < int(number):
            print("Sorry there's not that many but here's what we got\n")
            number = len(words)

        print()

        while (count < int(number)):
            sentence = "    {}.    {}".format((count + 1), words[count])
            print(sentence)
            count += 1
 def test_complete(self):
     strings = ['ABC', 'ABD', 'A', 'XYZ']
     tree = PrefixTree(strings)
     # Verify completions for all substrings
     assert tree.complete('ABC') == ['ABC']
     assert tree.complete('ABD') == ['ABD']
     assert tree.complete('AB') == ['ABC', 'ABD']
     assert tree.complete('BC') == []
     assert tree.complete('BD') == []
     assert tree.complete('A') == ['A', 'ABC', 'ABD']
     assert tree.complete('B') == []
     assert tree.complete('C') == []
     assert tree.complete('D') == []
     assert tree.complete('XYZ') == ['XYZ']
     assert tree.complete('XY') == ['XYZ']  # FIXED FROM []
     assert tree.complete('YZ') == []
     assert tree.complete('X') == ['XYZ']
     assert tree.complete('Y') == []
     assert tree.complete('Z') == []
     assert tree.complete('') == sorted(['ABC', 'ABD', 'A', 'XYZ'])
예제 #4
0
 def test_complete(self):
     strings = ['ABC', 'ABD', 'A', 'XYZ']
     tree = PrefixTree(strings)
     # Verify completions for all substrings
     assert tree.complete('ABC') == ['ABC']
     assert tree.complete('ABD') == ['ABD']
     assert tree.complete('AB') == ['ABC', 'ABD']
     assert tree.complete('BC') == []
     assert tree.complete('BD') == []
     assert tree.complete('A') == ['A', 'ABC', 'ABD']
     assert tree.complete('B') == []
     assert tree.complete('C') == []
     assert tree.complete('D') == []
     assert tree.complete('XYZ') == ['XYZ']
     assert tree.complete('XY') == [
         'XYZ'
     ]  # changed test, I believe it was faulty before
     assert tree.complete('YZ') == []
     assert tree.complete('X') == ['XYZ']
     assert tree.complete('Y') == []
     assert tree.complete('Z') == []
예제 #5
0
    def test_complete(self):
        strings = ['ABC', 'ABD', 'A', 'XYZ', 'HELLO', 'HELP']
        tree = PrefixTree(strings)
        # Verify completions for all substrings
        assert tree.complete('ABC') == ['ABC']
        assert tree.complete('ABD') == ['ABD']
        assert tree.complete('AB') == ['ABC', 'ABD']
        assert tree.complete('BC') == []
        assert tree.complete('BD') == []
        assert tree.complete('A') == ['A', 'ABC', 'ABD']
        assert tree.complete('B') == []
        assert tree.complete('C') == []
        assert tree.complete('D') == []
        assert tree.complete('XYZ') == ['XYZ']
        assert tree.complete('XY') == ['XYZ']
        assert tree.complete('YZ') == []
        assert tree.complete('X') == ['XYZ']
        assert tree.complete('Y') == []
        assert tree.complete('Z') == []

        assert tree.complete('HEL') == ['HELLO', 'HELP']
예제 #6
0
 def test_complete(self):
     strings = ['abc', 'abd', 'a', 'xyz']
     tree = PrefixTree(strings)
     # Verify completions for all substrings
     assert tree.complete('abc') == ['abc']
     assert tree.complete('abd') == ['abd']
     assert tree.complete('ab') == ['abc', 'abd']
     assert tree.complete('bc') == []
     assert tree.complete('bd') == []
     assert tree.complete('a') == ['a', 'abc', 'abd']
     assert tree.complete('b') == []
     assert tree.complete('c') == []
     assert tree.complete('d') == []
     assert tree.complete('xyz') == ['xyz']
     assert tree.complete('xy') == ['xyz']
     assert tree.complete('yz') == []
     assert tree.complete('x') == ['xyz']
     assert tree.complete('y') == []
     assert tree.complete('z') == []
예제 #7
0
 def test_tedium(self):
     """Test how tedious testing can be"""
     tree = PrefixTree()
     input_strings = ['Anisha Bayti', 'Anisha Bobeesha', 'Anisha Jain', 'Mushu the Cat', 'Mushu the Dragon']
     for ordinal, string in enumerate(input_strings):
         tree.insert(string)
         tree_strings = tree.strings()
         assert len(tree_strings) == ordinal + 1
     assert tree.complete('A') == input_strings[:3]
     assert tree.complete('Anisha') == input_strings[:3]
     assert tree.complete('Anisha J') == [input_strings[2]]
     assert tree.complete('M') == input_strings[3:]
     assert tree.complete('Mushu') == input_strings[3:]
     assert tree.complete('Mushu the D') == [input_strings[4]]
     assert tree.complete('Adriana') == []