def test_make_ladder(): english_words = load_words() wl = WordLadder('dog', 'puppy', english_words) word_ladder = wl.make_ladder() assert repr(word_ladder) == "dog" + "\t" + "cog" + "\t" + "cop" + "\t"\ + "copy" + "\t" + "coppy" + "\t"\ + "poppy" + "\t" + "puppy" + "\t" wl = WordLadder('sad', 'happy', english_words) word_ladder = wl.make_ladder() assert repr(word_ladder) == "sad" + "\t" + "gad" + "\t"\ + "gap" + "\t" + "gapy" + "\t"\ + "gappy" + "\t" + "happy" + "\t" wl = WordLadder('red', 'yellow', english_words) word_ladder = wl.make_ladder() assert repr(word_ladder) == "red" + "\t" + "bed" + "\t"\ + "bel" + "\t" + "bell" + "\t"\ + "bello" + "\t" + "bellow" + "\t"\ + "yellow" + "\t" wl = WordLadder('command', 'line', english_words) word_ladder = wl.make_ladder() assert repr(word_ladder) == "command" + "\t" + "commend" + "\t"\ + "compend" + "\t" + "comped" + "\t"\ + "coped" + "\t" + "loped" + "\t"\ + "lope" + "\t" + "lone" + "\t"\ + "line" + "\t"
def test_make_ladder(): word_list = load_words("cat", "hat") ladder = WordLadder("cat", "hat", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == ["cat", "hat"] word_list = load_words("love", "hate") ladder = WordLadder("love", "hate", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == ["love", "hove", "have", "hate"] word_list = load_words("angel", "devil") ladder = WordLadder("angel", "devil", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == [ "angel", "anger", "aeger", "leger", "lever", "level", "devel", "devil" ] word_list = load_words("earth", "ocean") ladder = WordLadder("earth", "ocean", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == [ "earth", "barth", "barih", "baris", "batis", "bitis", "aitis", "antis", "antas", "antal", "ontal", "octal", "octan", "ocean" ] # Different length test cases word_list = load_words("cat", "five") ladder = WordLadder("cat", "five", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == ["cat", "fat", "fit", "fie", "five"] word_list = load_words("five", "cat") ladder = WordLadder("five", "cat", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == ["five", "cive", "cave", "cate", "cat"] word_list = load_words("dog", "puppy") ladder = WordLadder("dog", "puppy", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == [ "dog", "cog", "cop", "copy", "coppy", "poppy", "puppy" ] word_list = load_words("sad", "happy") ladder = WordLadder("sad", "happy", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == ["sad", "gad", "gap", "gapy", "gappy", "happy"] word_list = load_words("red", "yellow") ladder = WordLadder("red", "yellow", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == [ "red", "bed", "bel", "bell", "bello", "bellow", "yellow" ] word_list = load_words("command", "line") ladder = WordLadder("command", "line", word_list) word_ladder = ladder.make_ladder() assert word_ladder.items == [ "command", "commend", "compend", "comped", "coped", "loped", "lope", "lone", "line" ]
def test_make_ladder(): test_ladder1 = WordLadder('cat', 'hat', valid_words[3]) test_ladder2 = WordLadder('love', 'hate', valid_words[4]) test_ladder3 = WordLadder('angel', 'devil', valid_words[5]) test_ladder4 = WordLadder('earth', 'ocean', valid_words[5]) assert test_ladder1.make_ladder().size() == 2 assert test_ladder2.make_ladder().size() == 4 assert test_ladder3.make_ladder().size() == 8 assert test_ladder4.make_ladder().size() == 14
def test_make_ladder(): wordlist = set() with open('words_alpha.txt') as word_file: for line in word_file: word = line.strip().split() wordlist.add(word[0]) ladder = WordLadder("cat", "hat", wordlist) assert repr(ladder.make_ladder()) == "cat\that\t" ladder = WordLadder("love", "hate", wordlist) assert repr(ladder.make_ladder()) == "love\thove\thave\thate\t"
def test_make_ladder(): """test make_ladder method of WordLadder class""" wordlist = [ "love", "hove", "have", "hate", "lone", "hone", "hale", "bate", "life" ] world_ladder = WordLadder("love", "hate", wordlist) res = world_ladder.make_ladder() assert res == "love\thove\thave\thate\t"
def test_make_ladder(): valid_words = {} with open('words_alpha.txt') as word_file: for w in word_file.read().split(): if len(w) in valid_words.keys(): # Add to an existing set valid_words[len(w)].add(w) else: # Initialize a set with one element valid_words[len(w)] = {w} wl = WordLadder("cat", "hat", valid_words[len("cat")]) assert wl.make_ladder().items[0] == "cat" wl = WordLadder("love", "hate", valid_words[len("love")]) assert wl.make_ladder().items[-1] == "hate" wl = WordLadder("data", "code", valid_words[len("data")]) assert len(wl.make_ladder().items) == 5 wl = WordLadder("angel", "devil", valid_words[len("angel")]) assert "anger" in wl.make_ladder().items
def test_make_ladder(): english_words = load_words() wl = WordLadder('cat', 'hat', english_words[len('cat')]) word_ladder = wl.make_ladder() assert repr(word_ladder) == "cat" + "\t" + "hat" + "\t" wl = WordLadder('love', 'hate', english_words[len('love')]) word_ladder = wl.make_ladder() assert repr(word_ladder) == "love" + "\t" + "hove" + "\t"\ + "have" + "\t" + "hate" + "\t" wl = WordLadder('earth', 'ocean', english_words[len('earth')]) word_ladder = wl.make_ladder() assert repr(word_ladder) == "earth" + "\t" + "barth" + "\t"\ + "barih" + "\t" + "baris" + "\t"\ + "batis" + "\t" + "bitis" + "\t"\ + "aitis" + "\t" + "antis" + "\t"\ + "antas" + "\t" + "antal" + "\t"\ + "ontal" + "\t" + "octal" + "\t"\ + "octan" + "\t" + "ocean" + "\t"
def test_make_ladder(): english_words = load_words() w1, w2 = 'love', 'hate' wl = WordLadder(w1, w2, english_words[len(w1)]) word_ladder = wl.make_ladder() expected = ['love', 'hove', 'have', 'hate'] flag = True for i in reversed(range(len(expected))): if expected[i] != word_ladder.pop(): flag = False assert flag
def main(): """Run an interactive command line to let the user input word pairs and generate word ladders""" english_words = load_words() # print(english_words[len('hel')]) while True: w1, w2 = input("> ").split() # Create a WordLadder object wl = WordLadder(w1, w2, english_words[len(w1)]) # Generate the word ladder word_ladder = wl.make_ladder() print("Ladder: ", word_ladder)
def main(): """Run an interactive command line to let the user input word pairs and generate word ladders""" english_words = load_words() while True: w1, w2 = input("> ").split() start_time = time.time() # Create a WordLadder object wl = WordLadder(w1, w2, english_words[len(w1)]) # Generate the word ladder word_ladder = wl.make_ladder() print("Ladder: ", word_ladder) print("Entire execution tooke %s seconds ---" % (time.time() - start_time))
def main(): """Run an interactive command line to let the user input word pairs and generate word ladders""" english_words = load_words() # print(english_words[len('hel')]) while True: w1, w2 = input("> ").split() # Create a WordLadder object if len(w1) < len(w2): vary_length_words = {w1} for i in range(len(w1), len(w2) + 1): vary_length_words = vary_length_words | english_words[i] elif len(w1) > len(w2): vary_length_words = {w2} for i in range(len(w2), len(w1) + 1): vary_length_words = vary_length_words | english_words[i] else: vary_length_words = english_words[len(w1)] wl = WordLadder(w1, w2, vary_length_words) # Generate the word ladder word_ladder = wl.make_ladder() print("Ladder: ", word_ladder)
def main(): """Run an interactive command line to let the user input word pairs and generate word ladders""" english_words = load_words() while True: w1, w2 = input("> ").split() if len(w1) == len(w2): # Everything same with word_ladder_app wl = WordLadder(w1, w2, english_words[len(w1)]) word_ladder = wl.make_ladder() print("Ladder: ", word_ladder) else: # a set of words for adding later check_words_set = set() diff = abs(len(w1) - len(w2)) initial_insertion = "a" if len(w1) < len(w2): shorter = len(w1) longer = len(w2) start = w1 end = w2 else: shorter = len(w2) longer = len(w1) start = w2 end = w1 # add words with length in range of shorter to longer for i in range(shorter, longer + 1): for j in english_words[i]: check_words_set.add(j) ec = ExtraCredit(start, end, check_words_set) word_ladder = ec.make_ladder() # normal print if start with w1 if start == w1: print("Ladder: ", word_ladder) # reverse if start with w2 elif start == w2: print("Ladder: ", reverse_ladder(word_ladder))