def test_graph_property(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') eq_(id(word_ladder._graph_diff_length), id(word_ladder.graph)) word_ladder.find_path('flux', 'sail') eq_(id(word_ladder._graph_same_length), id(word_ladder.graph))
def test_find_path_if_words_are_defined_trough_instance_variables(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.start = 'sail' word_ladder.end = 'fear' eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear'])
def test_graph_is_reused_among_executions(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') _id = id(word_ladder.graph) word_ladder.find_path('Jeanne', 'sail') eq_(_id, id(word_ladder.graph)) word_ladder.find_path('fear', 'sail') _id = id(word_ladder.graph) word_ladder.find_path('flux', 'fear') eq_(_id, id(word_ladder.graph))
def test_find_path_caching(self): self.clean_tmp_files() word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'scratch') word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'memory') word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'pickling')
def test_start_or_end_not_defined_raises_words_not_defined_exception(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path()
class TestWordLadder(unittest.TestCase): def setUp(self): self.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) def test_word_list_is_created(self): ok_(isinstance(self.word_ladder.words, list)) def test_find_path_same_length(self): eq_(self.word_ladder.find_path('fear', 'fear'), ['fear']) eq_(self.word_ladder.find_path('fear', 'sail'), ['fear', 'hear', 'heir', 'hair', 'hail', 'sail']) def test_find_path_different_length(self): self.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) eq_(self.word_ladder.find_path('Abe', 'Abel'), ['Abe', 'Abel']) def test_find_path_not_found(self): eq_(self.word_ladder.find_path('Abelardo', 'Abel'), None) def test_find_path_different_length_going_up_and_down(self): self.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'fixture.1')) eq_(self.word_ladder.find_path('a', 'eoha'), ['a', 'ai', 'aie', 'wie', 'wieo', 'ieo', 'eo', 'eoh', 'eoha']) def test_words_has_same_length_method(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) eq_(word_ladder.words_has_same_length(), None) word_ladder.start = '1234' eq_(word_ladder.words_has_same_length(), None) word_ladder.end = '1234' eq_(word_ladder.words_has_same_length(), True) word_ladder.start = '12345' eq_(word_ladder.words_has_same_length(), False) @raises(WordsNotDefined) def test_start_or_end_not_defined_raises_words_not_defined_exception(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path() def test_graph_is_reused_among_executions(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') _id = id(word_ladder.graph) word_ladder.find_path('Jeanne', 'sail') eq_(_id, id(word_ladder.graph)) word_ladder.find_path('fear', 'sail') _id = id(word_ladder.graph) word_ladder.find_path('flux', 'fear') eq_(_id, id(word_ladder.graph)) def test_graph_property(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') eq_(id(word_ladder._graph_diff_length), id(word_ladder.graph)) word_ladder.find_path('flux', 'sail') eq_(id(word_ladder._graph_same_length), id(word_ladder.graph)) def test_find_path_if_words_are_defined_trough_instance_variables(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.start = 'sail' word_ladder.end = 'fear' eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear']) def test_find_path_if_words_are_defined_at_instance_declaration_time(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4'), 'sail', 'fear') eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear'])
def test_find_path_if_words_are_defined_at_instance_declaration_time(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4'), 'sail', 'fear') eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear'])
class TestWordLadder(unittest.TestCase): @classmethod def setUpClass(cls): cls.clean_tmp_files() cls.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) @classmethod def clean_tmp_files(cls): for f in os.listdir(WordLadder.tmp): if re.search('.*_(SAME|DIFF)', f): os.remove(os.path.join(WordLadder.tmp, f)) def test_find_path_caching(self): self.clean_tmp_files() word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'scratch') word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'memory') word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.find_path('fear', 'fear'), ['fear'] eq_(word_ladder._retrieval_method, 'pickling') def test_word_list_is_created(self): ok_(isinstance(self.word_ladder.words, list)) def test_find_path_same_length(self): eq_(self.word_ladder.find_path('fear', 'fear'), ['fear']) eq_(self.word_ladder.find_path('fear', 'sail'), ['fear', 'hear', 'heir', 'hair', 'hail', 'sail']) def test_find_path_different_length(self): self.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) eq_(self.word_ladder.find_path('Abe', 'Abel'), ['Abe', 'Abel']) def test_find_path_not_found(self): eq_(self.word_ladder.find_path('Abelardo', 'Abel'), None) def test_find_path_different_length_going_up_and_down(self): self.word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'fixture.1')) eq_(self.word_ladder.find_path('a', 'eoha'), ['a', 'ai', 'aie', 'wie', 'wieo', 'ieo', 'eo', 'eoh', 'eoha']) def test_words_has_same_length_method(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) eq_(word_ladder.words_has_same_length(), None) word_ladder.start = '1234' eq_(word_ladder.words_has_same_length(), None) word_ladder.end = '1234' eq_(word_ladder.words_has_same_length(), True) word_ladder.start = '12345' eq_(word_ladder.words_has_same_length(), False) @raises(WordsNotDefined) def test_start_or_end_not_defined_raises_words_not_defined_exception(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path() def test_graph_is_reused_among_executions(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') _id = id(word_ladder.graph) word_ladder.find_path('Jeanne', 'sail') eq_(_id, id(word_ladder.graph)) word_ladder.find_path('fear', 'sail') _id = id(word_ladder.graph) word_ladder.find_path('flux', 'fear') eq_(_id, id(word_ladder.graph)) def test_graph_property(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words')) word_ladder.find_path('Abe', 'Abel') eq_(id(word_ladder._graph_diff_length), id(word_ladder.graph)) word_ladder.find_path('flux', 'sail') eq_(id(word_ladder._graph_same_length), id(word_ladder.graph)) def test_find_path_if_words_are_defined_trough_instance_variables(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4')) word_ladder.start = 'sail' word_ladder.end = 'fear' eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear']) def test_find_path_if_words_are_defined_at_instance_declaration_time(self): word_ladder = WordLadder( os.path.join(word_lists_dir, 'word_lists', 'linux_english_words_length_4'), 'sail', 'fear') eq_(word_ladder.find_path(), ['sail', 'hail', 'hair', 'heir', 'hear', 'fear'])