def test_double_start(self):
     found_words = find_words("*ŻA* LDEF_R", self.dictionary_words)
     self.assertEqual(found_words, [
         'DOŻA', 'DRAŻA', 'DRŻAŁ', 'DUŻA', 'DŻAG', 'DŻAUL', 'DŻAULE',
         'DŻAZ', 'GREŻA', 'JEŻA', 'LEŻA', 'LEŻAK', 'LEŻAŁ', 'LOŻA', 'RADŻA',
         'RÓŻA', 'RYŻA', 'RŻAŁ', 'RŻANE', 'SERŻA', 'UŻAL', 'ZDŻAR', 'ŻAB',
         'ŻAD', 'ŻADEM', 'ŻADEN', 'ŻADNE', 'ŻADU', 'ŻADY', 'ŻAGLE', 'ŻAK',
         'ŻAL', 'ŻALĄ', 'ŻALE', 'ŻALEM', 'ŻALEŃ', 'ŻALĘ', 'ŻALI', 'ŻALNE',
         'ŻALU', 'ŻALŻE', 'ŻANR', 'ŻAR', 'ŻARĆ', 'ŻAREŁ', 'ŻAREM', 'ŻAREN',
         'ŻARLE', 'ŻARLI', 'ŻARŁ', 'ŻARN', 'ŻARNE', 'ŻART', 'ŻARTE', 'ŻARU',
         'ŻARY', 'ŻARZ', 'ŻARZE'
     ])
Exemple #2
0
from src.input import parse_user_input, IncorrectInputException, read_words_from_dictionary, create_letter_score_dict
from src.solver import find_words

if __name__ == '__main__':
    print("Starting program")

    words = read_words_from_dictionary()
    letter_score_dict = create_letter_score_dict()

    while True:
        user_input = input("Enter phrase or 'q' to exit program  ")
        if user_input is "q": break

        try:
            found_words = find_words(user_input, words)
            map_letter_to_score = lambda letter: letter_score_dict.get(letter)
            words_with_score = {
                word: sum(map(map_letter_to_score, word))
                for word in found_words
            }
            sorted_words = sorted(words_with_score.items(),
                                  key=operator.itemgetter(1),
                                  reverse=True)

            if len(sorted_words) == 0:
                print("Sorry any words match")
                continue

            for w, s in sorted_words:
                print(str(w) + " \t " + str(s))
 def test_polish_letters(self):
     found_words = find_words("A. ABCŻ", self.dictionary_words)
     self.assertEqual(found_words, ["AA", "AŻ"])
 def test_blank(self):
     found_words = find_words("B.K _", self.dictionary_words)
     self.assertListEqual(found_words,
                          sorted(['BAK', 'BEK', 'BOK', 'BUK', 'BYK']))
 def test_find_rybak_bak_byk(self):
     found_words = find_words("*B.K* RYA", self.dictionary_words)
     self.assertListEqual(found_words,
                          sorted(["RYBAK", "BAK", "BYK", "BYKA"]))
 def test_find_aa_ad(self):
     found_words = find_words("A. ABCD", self.dictionary_words)
     self.assertEqual(found_words, ["AA", "AD"])