def test_different_len(self): with self.assertRaises(ValueError) as err: annotate([" ", "* ", " "]) self.assertEqual(type(err.exception), ValueError) self.assertEqual( err.exception.args[0], "The board is invalid with current input." )
def test_invalid_char(self): with self.assertRaises(ValueError) as err: annotate(["X * "]) self.assertEqual(type(err.exception), ValueError) self.assertEqual( err.exception.args[0], "The board is invalid with current input." )
def test_no_mines(self): minefield = [" ", " ", " "] out = [" ", " ", " "] self.assertEqual(annotate(minefield), out)
def test_annotate_with_only_mines(self): minefield = ["***", "***", "***"] out = ["***", "***", "***"] self.assertEqual(annotate(minefield), out)
def test_space_surrounded_by_mines(self): minefield = ["***", "* *", "***"] out = ["***", "*8*", "***"] self.assertEqual(annotate(minefield), out)
def test_mine_surrounded_by_spaces(self): minefield = [" ", " * ", " "] out = ["111", "1*1", "111"] self.assertEqual(annotate(minefield), out)
def test_vertical_line_mines_at_edges(self): minefield = ["*", " ", " ", " ", "*"] out = ["*", "1", " ", "1", "*"] self.assertEqual(annotate(minefield), out)
def test_cross(self): minefield = [" * ", " * ", "*****", " * ", " * "] out = [" 2*2 ", "25*52", "*****", "25*52", " 2*2 "] self.assertEqual(annotate(minefield), out)
def test_annotate9(self): minefield = [" ", " * ", " ", " ", " * "] out = [" 111", " 1*1", " 111", "111 ", "1*1 "] self.assertEqual(annotate(minefield), out)
def test_vertical_line(self): minefield = [" ", "*", " ", "*", " "] out = ["1", "*", "2", "*", "1"] self.assertEqual(annotate(minefield), out)
def test_large_annotate(self): minefield = [" * * ", " * ", " * ", " * *", " * * ", " "] out = ["1*22*1", "12*322", " 123*2", "112*4*", "1*22*2", "111111"] self.assertEqual(annotate(minefield), out)
def test_horizontal_line_mines_at_edges(self): minefield = ["* *"] out = ["*1 1*"] self.assertEqual(annotate(minefield), out)
def test_annotate_9(self): self.assertEqual( annotate([" ", " * ", " ", " ", " * "]), [" 111", " 1*1", " 111", "111 ", "1*1 "], )
def test_cross(self): self.assertEqual( annotate([" * ", " * ", "*****", " * ", " * "]), [" 2*2 ", "25*52", "*****", "25*52", " 2*2 "], )
def test_vertical_line(self): self.assertEqual(annotate([" ", "*", " ", "*", " "]), ["1", "*", "2", "*", "1"])
def test_horizontal_line(self): self.assertEqual(annotate([" * * "]), ["1*2*1"])
def test_horizontal_line(self): minefield = [" * * "] out = ["1*2*1"] self.assertEqual(annotate(minefield), out)
def test_invalid_char(self): minefield = ["X * "] with self.assertRaisesWithMessage(ValueError): annotate(minefield)
def test_different_len(self): minefield = [" ", "* ", " "] with self.assertRaisesWithMessage(ValueError): annotate(minefield)
def test_large_annotate(self): minefield = [ " * * ", " * ", " * ", " * *", " * * ", " " ] out = ["1*22*1", "12*322", " 123*2", "112*4*", "1*22*2", "111111"] self.assertEqual(annotate(minefield), out)
def test_no_mines(self): self.assertEqual(annotate([" ", " ", " "]), [" ", " ", " "])
def test_mine_surrounded_by_spaces(self): self.assertEqual(annotate([" ", " * ", " "]), ["111", "1*1", "111"])
def test_no_columns(self): self.assertEqual(annotate([""]), [""])
def test_minefield_with_only_mines(self): self.assertEqual(annotate(["***", "***", "***"]), ["***", "***", "***"])
def test_space_surrounded_by_mines(self): self.assertEqual(annotate(["***", "* *", "***"]), ["***", "*8*", "***"])
def test_no_rows(self): self.assertEqual(annotate([]), [])
def test_horizontal_line_mines_at_edges(self): self.assertEqual(annotate(["* *"]), ["*1 1*"])
def test_vertical_line_mines_at_edges(self): self.assertEqual(annotate(["*", " ", " ", " ", "*"]), ["*", "1", " ", "1", "*"])
def test_invalid_char(self): with self.assertRaisesWithMessage(ValueError): annotate(["X * "])
def test_large_minefield(self): self.assertEqual( annotate( [" * * ", " * ", " * ", " * *", " * * ", " "]), ["1*22*1", "12*322", " 123*2", "112*4*", "1*22*2", "111111"], )
def test_different_len(self): with self.assertRaisesWithMessage(ValueError): annotate([" ", "* ", " "])