Files
python/minesweeper/minesweeper_test.py

81 lines
2.6 KiB
Python
Raw Normal View History

""" Tests for the minesweeper exercise
Implementation note:
The board function must validate its input and raise a
ValueError with a meaningfull error message if the
input turns out to be malformed.
"""
import os
2014-03-28 22:19:26 -03:00
import unittest
from minesweeper import board
2014-03-28 22:19:26 -03:00
class MinesweeperTest(unittest.TestCase):
def test_board1(self):
inp = ["+------+", "| * * |", "| * |", "| * |", "| * *|",
"| * * |", "| |", "+------+"]
out = ["+------+", "|1*22*1|", "|12*322|", "| 123*2|", "|112*4*|",
"|1*22*2|", "|111111|", "+------+"]
self.assertEqual(out, board(inp))
def test_board2(self):
inp = ["+-----+", "| * * |", "| |", "| * |", "| * *|",
"| * * |", "+-----+"]
out = ["+-----+", "|1*2*1|", "|11322|", "| 12*2|", "|12*4*|",
"|1*3*2|", "+-----+"]
self.assertEqual(out, board(inp))
def test_board3(self):
inp = ["+-----+", "| * * |", "+-----+"]
out = ["+-----+", "|1*2*1|", "+-----+"]
self.assertEqual(out, board(inp))
def test_board4(self):
inp = ["+-+", "|*|", "| |", "|*|", "| |", "| |", "+-+"]
out = ["+-+", "|*|", "|2|", "|*|", "|1|", "| |", "+-+"]
self.assertEqual(out, board(inp))
def test_board5(self):
inp = ["+-+", "|*|", "+-+"]
out = ["+-+", "|*|", "+-+"]
self.assertEqual(out, board(inp))
def test_board6(self):
inp = ["+--+", "|**|", "|**|", "+--+"]
out = ["+--+", "|**|", "|**|", "+--+"]
self.assertEqual(out, board(inp))
def test_board7(self):
inp = ["+--+", "|**|", "|**|", "+--+"]
out = ["+--+", "|**|", "|**|", "+--+"]
self.assertEqual(out, board(inp))
def test_board8(self):
inp = ["+---+", "|***|", "|* *|", "|***|", "+---+"]
out = ["+---+", "|***|", "|*8*|", "|***|", "+---+"]
self.assertEqual(out, board(inp))
def test_board9(self):
inp = ["+-----+", "| |", "| * |", "| |", "| |",
"| * |", "+-----+"]
out = ["+-----+", "| 111|", "| 1*1|", "| 111|", "|111 |",
"|1*1 |", "+-----+"]
self.assertEqual(out, board(inp))
def test_different_len(self):
inp = ["+-+", "| |", "|* |", "| |", "+-+"]
self.assertRaises(ValueError, board, inp)
2014-03-28 22:19:26 -03:00
def test_faulty_border(self):
inp = ["+-----+", "* * |", "+-- --+"]
self.assertRaises(ValueError, board, inp)
2014-03-28 22:19:26 -03:00
def test_invalid_char(self):
inp = ["+-----+", "|X * |", "+-----+"]
self.assertRaises(ValueError, board, inp)
2014-03-28 22:19:26 -03:00
if __name__ == '__main__':
unittest.main()