def test__word_ladder_fuzz(): with open('words5.dict') as f: words = f.readlines() words = list(set([word.strip() for word in words])) for i in range(20): word1 = random.choice(words) word2 = random.choice(words) res1 = word_ladder(word1, word2) if res1 is not None: res2 = word_ladder(word2, word1) assert res1 is None and res2 is None or len(res1) == len(res2)
def test_no_path(self): start = 'hit' end = 'cog' words = ["hot", "dot", "dog", "lot", "log"] result = word_ladder(start, end, words) self.assertFalse(result)
def test_word_ladder(self): start = 'hit' end = 'cog' words = ["hot", "dot", "dog", "lot", "log", "cog"] result = word_ladder(start, end, words) result_set = [set(r) for r in result] self.assertIn(set(["hit", "hot", "dot", "dog", "cog"]), result_set) self.assertIn(set(["hit", "hot", "lot", "log", "cog"]), result_set)
def test_word_ladder_w_out_path(self): start = 'hit' end = 'bag' res = word_ladder(start, end, self.words) self.assertIsNone(res)
def test__word_ladder_7(): ladder = word_ladder('babes', 'child') assert verify_word_ladder(ladder) and len(ladder) == 9
def test__word_ladder_6(): ladder = word_ladder('phone', 'stone') assert verify_word_ladder(ladder) and len(ladder) == 3
def test__word_ladder_4(): ladder = word_ladder('dears', 'fears') assert verify_word_ladder(ladder) and len(ladder) == 2
def test__word_ladder_2(): ladder = word_ladder('aloof', 'aloof') assert verify_word_ladder(ladder) and len(ladder) == 1
def test__word_ladder_17(): assert word_ladder('data', 'structures') is None
def test__word_ladder_16(): assert word_ladder('aloof', 'money') is None
def test__word_ladder_15(): assert word_ladder('atlas', 'zebra') is None
def test__word_ladder_14(): ladder = word_ladder('money', 'stone') assert verify_word_ladder(ladder) and len(ladder) == 10
def test__word_ladder_12(): ladder = word_ladder('smart', 'money') assert verify_word_ladder(ladder) and len(ladder) == 11
def test__word_ladder_10(): ladder = word_ladder('angel', 'devil') assert verify_word_ladder(ladder) and len(ladder) == 9
def test__word_ladder_16b(): assert word_ladder('money', 'aloof') is None
def test__word_ladder_15b(): assert word_ladder('zebra', 'atlas') is None