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'])
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') == []
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']
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') == []
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') == []