def similar_test(self): similar_to_paint = ['faint', 'saint', 'taint', 'point', 'print', 'pains'] similar_to_coder = ['cider', 'ceder', 'comer', 'coper', 'corer', 'cower', 'cover', 'coyer', 'codex', 'codes'] vocab = Vocabulary() vocab.fetch("dictionary.txt") similar_words = [x for x in vocab.similar("paint")] # get words one character different from 'paint' for item in similar_to_paint: # check that the test words are contained in result list self.assertIn(item, similar_words) similar_words = [x for x in vocab.similar("coder")] # get words one character different from 'coder' for item in similar_to_coder: # check that the test words are contained in result list self.assertIn(item, similar_words) similar_words = [x for x in vocab.similar("zzzzz")] # test non-sense word returns no results self.assertEqual(similar_words, [])
def word_ladder_test(self): slant_to_grain = ['slant', 'plant', 'plank', 'blank', 'bland', 'brand', 'braid', 'brain', 'grain'] smart_to_brain = ['smart', 'start', 'stars', 'sears', 'bears', 'beans', 'brans', 'brand', 'braid', 'brain'] vocab = Vocabulary() vocab.fetch("dictionary.txt") self.assertEqual(vocab.word_ladder('slant', 'grain'), slant_to_grain) self.assertEqual(vocab.word_ladder('smart', 'brain'), smart_to_brain)