def test_different_left_to_right_word_ten_lines(self): puzzle = [ 'jefblpepre', 'camdcimgtc', 'oivokprjsm', 'pbwasqroua', 'rixilelhrs', 'wolcqlirpc', 'fortranftw', 'alxhpburyi', 'clojurermt', 'jalaycalmp' ] searchAnswer = WordSearch(puzzle).search('fortran') self.assertEqual(searchAnswer, (Point(0, 6), Point(6, 6)))
def test_horizontal_words_different_directions(self): self.assertEqual( self.example.search('clojure'), (Point(0, 9), Point(6, 9)) ) self.assertEqual( self.example.search('elixir'), (Point(5, 4), Point(0, 4)) )
def test_multiple_words(self): puzzle = [ 'jefblpepre', 'camdcimgtc', 'oivokprjsm', 'pbwasqroua', 'rixilelhrs', 'wolcqlirpc', 'fortranftw', 'alxhpburyi', 'jalaycalmp', 'clojurermt' ] searchAnswer = WordSearch(puzzle).search('fortran') self.assertEqual(searchAnswer, (Point(0, 6), Point(6, 6))) searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(0, 9), Point(6, 9)))
def test_different_left_to_right_word_ten_lines(self): puzzle = ('jefblpepre\n' 'camdcimgtc\n' 'oivokprjsm\n' 'pbwasqroua\n' 'rixilelhrs\n' 'wolcqlirpc\n' 'fortranftw\n' 'alxhpburyi\n' 'clojurermt\n' 'jalaycalmp\n') searchAnswer = WordSearch(puzzle).search('fortran') self.assertEqual(searchAnswer, (Point(0, 6), Point(6, 6)))
def test_should_locate_a_left_to_right_word_in_ten_line_grid(self): puzzle = WordSearch([ "jefblpepre", "camdcimgtc", "oivokprjsm", "pbwasqroua", "rixilelhrs", "wolcqlirpc", "screeaumgr", "alxhpburyi", "jalaycalmp", "clojurermt", ]) self.assertEqual(puzzle.search("clojure"), (Point(0, 9), Point(6, 9)))
def test_multiple_words(self): puzzle = ('jefblpepre\n' 'camdcimgtc\n' 'oivokprjsm\n' 'pbwasqroua\n' 'rixilelhrs\n' 'wolcqlirpc\n' 'fortranftw\n' 'alxhpburyi\n' 'jalaycalmp\n' 'clojurermt\n') searchAnswer = WordSearch(puzzle).search('fortran') self.assertEqual(searchAnswer, (Point(0, 6), Point(6, 6))) searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(0, 9), Point(6, 9)))
def test_should_locate_multiple_words(self): puzzle = WordSearch([ "jefblpepre", "camdcimgtc", "oivokprjsm", "pbwasqroua", "rixilelhrs", "wolcqlirpc", "fortranftw", "alxhpburyi", "jalaycalmp", "clojurermt", ]) self.assertEqual(puzzle.search("fortran"), (Point(0, 6), Point(6, 6))) self.assertEqual(puzzle.search("clojure"), (Point(0, 9), Point(6, 9)))
def test_should_locate_multiple_words_written_in_different_horizontal_directions( self): puzzle = WordSearch([ "jefblpepre", "camdcimgtc", "oivokprjsm", "pbwasqroua", "rixilelhrs", "wolcqlirpc", "screeaumgr", "alxhpburyi", "jalaycalmp", "clojurermt", ]) self.assertEqual(puzzle.search("elixir"), (Point(5, 4), Point(0, 4))) self.assertEqual(puzzle.search("clojure"), (Point(0, 9), Point(6, 9)))
def test_should_locate_words_written_top_left_to_bottom_right(self): puzzle = WordSearch([ "jefblpepre", "camdcimgtc", "oivokprjsm", "pbwasqroua", "rixilelhrs", "wolcqlirpc", "screeaumgr", "alxhpburyi", "jalaycalmp", "clojurermt", ]) self.assertEqual(puzzle.search("clojure"), (Point(0, 9), Point(6, 9))) self.assertEqual(puzzle.search("elixir"), (Point(5, 4), Point(0, 4))) self.assertEqual(puzzle.search("ecmascript"), (Point(9, 0), Point(9, 9))) self.assertEqual(puzzle.search("rust"), (Point(8, 4), Point(8, 1))) self.assertEqual(puzzle.search("java"), (Point(0, 0), Point(3, 3)))
def test_different_left_to_right_word(self): puzzle = ['coffeelplx'] searchAnswer = WordSearch(puzzle).search('coffee') self.assertEqual(searchAnswer, (Point(0, 0), Point(5, 0)))
def test_left_to_right_word_different_position(self): puzzle = ['mtclojurer'] searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(2, 0), Point(8, 0)))
def test_left_to_right_word(self): puzzle = ['clojurermt'] searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(0, 0), Point(6, 0)))
def test_diagonal_upper_top_right_to_bottom_left(self): self.assertEqual(self.example.search('ruby'), (Point(7, 5), Point(4, 8)))
def test_diagonal_upper_bottom_left_to_top_right(self): self.assertEqual(self.example.search('lisp'), (Point(2, 5), Point(5, 2)))
def test_should_fail_to_locate_a_word_that_is_not_in_the_puzzle(self): puzzle = WordSearch([ "jefblpepre", "camdcimgtc", "oivokprjsm", "pbwasqroua", "rixilelhrs", "wolcqlirpc", "screeaumgr", "alxhpburyi", "jalaycalmp", "clojurermt", ]) self.assertEqual(puzzle.search("clojure"), (Point(0, 9), Point(6, 9))) self.assertEqual(puzzle.search("elixir"), (Point(5, 4), Point(0, 4))) self.assertEqual(puzzle.search("ecmascript"), (Point(9, 0), Point(9, 9))) self.assertEqual(puzzle.search("rust"), (Point(8, 4), Point(8, 1))) self.assertEqual(puzzle.search("java"), (Point(0, 0), Point(3, 3))) self.assertEqual(puzzle.search("lua"), (Point(7, 8), Point(5, 6))) self.assertEqual(puzzle.search("lisp"), (Point(2, 5), Point(5, 2))) self.assertEqual(puzzle.search("ruby"), (Point(7, 5), Point(4, 8))) self.assertIsNone(puzzle.search("haskell"))
def test_left_to_right_word_three_lines(self): puzzle = ['camdcimgtc', 'jefblpepre', 'clojurermt'] searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(0, 2), Point(6, 2)))
def test_should_locate_one_word_written_left_to_right(self): puzzle = WordSearch(["clojurermt"]) self.assertEqual(puzzle.search("clojure"), (Point(0, 0), Point(6, 0)))
def test_should_locate_the_same_word_written_left_to_right_in_a_different_position( self): puzzle = WordSearch(["mtclojurer"]) self.assertEqual(puzzle.search("clojure"), (Point(2, 0), Point(8, 0)))
def test_should_locate_a_single_word_written_right_to_left(self): puzzle = WordSearch(["rixilelhrs"]) self.assertEqual(puzzle.search("elixir"), (Point(5, 0), Point(0, 0)))
def test_should_locate_a_left_to_right_word_in_three_line_grid(self): puzzle = WordSearch(["camdcimgtc", "jefblpepre", "clojurermt"]) self.assertEqual(puzzle.search("clojure"), (Point(0, 2), Point(6, 2)))
def test_should_locate_a_left_to_right_word_in_two_line_grid(self): puzzle = WordSearch(["jefblpepre", "tclojurerm"]) self.assertEqual(puzzle.search("clojure"), (Point(1, 1), Point(7, 1)))
def test_should_locate_that_different_left_to_right_word_in_a_different_position( self): puzzle = WordSearch(["xcoffeezlp"]) self.assertEqual(puzzle.search("coffee"), (Point(1, 0), Point(6, 0)))
def test_different_left_to_right_word_different_position(self): puzzle = ['xcoffeezlp'] searchAnswer = WordSearch(puzzle).search('coffee') self.assertEqual(searchAnswer, (Point(1, 0), Point(6, 0)))
def test_diagonal_words_top_left_to_bottom_right(self): self.assertEqual(self.example.search('java'), (Point(0, 0), Point(3, 3)))
def test_left_to_right_word_two_lines(self): puzzle = ['jefblpepre', 'tclojurerm'] searchAnswer = WordSearch(puzzle).search('clojure') self.assertEqual(searchAnswer, (Point(1, 1), Point(7, 1)))
def test_diagonal_upper_bottom_right_to_top_left(self): self.assertEqual(self.example.search('lua'), (Point(7, 8), Point(5, 6)))
def test_vertical_words_bottom_to_top(self): self.assertEqual(self.example.search('rust'), (Point(8, 4), Point(8, 1)))
def test_should_locate_a_different_left_to_right_word(self): puzzle = WordSearch(["coffeelplx"]) self.assertEqual(puzzle.search("coffee"), (Point(0, 0), Point(5, 0)))
def test_single_word_right_to_left(self): puzzle = ['rixilelhrs'] searchAnswer = WordSearch(puzzle).search('elixir') self.assertEqual(searchAnswer, (Point(5, 0), Point(0, 0)))
def test_vertical_words_top_to_bottom(self): self.assertEqual(self.example.search('ecmascript'), (Point(9, 0), Point(9, 9)))