def test_add_answer(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_answer(4)
     box.add_answer(5)
     self.assertEqual(box, SudokuBox(5))
     self.assertNotEqual(box, SudokuBox(4))
     with self.assertRaises(OverflowError):
         box.add_answer(10)
     with self.assertRaises(OverflowError):
         box.add_answer(0)
 def test_add_answer_stored_in_right_location(self):
     from sudoku_board import SudokuBoard, SudokuBox
     board = SudokuBoard()
     board.add_answer(1, 2,
                      4)  # board uses indexing starting at 1 instead of 0
     self.assertEqual(board.get_sudoku_box(1, 2), SudokuBox(4))
     with self.assertRaises(IndexError):
         board.add_answer(0, 0, 4)
 def test__str__(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_answer(4)
     box.add_guess(4)
     box.add_guess(5)
     self.assertEqual(box.__str__(), '4')
 def test_add_guess(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_guess(4)
     box.add_guess(5)
     self.assertTrue(box.answer == 0 and 5 in box.guesses
                     and 4 in box.guesses)
     with self.assertRaises(OverflowError):
         box.add_guess(10)
     with self.assertRaises(OverflowError):
         box.add_guess(0)
 def test_remove_guess(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_guess(4)
     box.add_guess(5)
     box.remove_guess(4)
     self.assertTrue(box == SudokuBox() and 5 in box.guesses
                     and not 4 in box.guesses)
 def test_show_guesses(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_guess(4)
     box.add_guess(5)
     self.assertEqual(box.get_guesses(), [4, 5])
     self.assertNotEqual(box.get_guesses(), [4, 6])
 def test_clear_guesses(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_guess(4)
     box.add_guess(5)
     box.clear_guesses()
     self.assertFalse(bool(box.guesses))
 def test__eq__(self):
     from sudoku_board import SudokuBox
     box = SudokuBox(2)
     self.assertEqual(box, SudokuBox(2))
     self.assertNotEqual(box, SudokuBox(1))
 def test_erase_answer_original_number(self):
     from sudoku_board import SudokuBox
     box = SudokuBox(4)
     box.erase_answer()
     self.assertEqual(box.answer, 4)
 def test_add_answer_preloaded_number(self):
     from sudoku_board import SudokuBox
     box = SudokuBox(1)
     self.assertFalse(box.add_answer(2))
     self.assertEqual(box, SudokuBox(1))
 def test_create_box_no_parameter(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     self.assertTrue(box.answer == 0 and not box.original_number
                     and not bool(box.guesses))
 def test_get_sudoku_box_number_not_between(self):
     from sudoku_board import SudokuBoard, SudokuBox
     board = SudokuBoard()
     board.add_answer(1, 1, 1)
     self.assertEqual(board.get_sudoku_box(1, 1), SudokuBox(1))
 def test_erase_answer(self):
     from sudoku_board import SudokuBox
     box = SudokuBox()
     box.add_answer(4)
     box.erase_answer()
     self.assertEqual(box.answer, 0)