def test_open_cell(self): field = Field((4, 3), {(0, 0), (2, 0)}) state1 = GameState(field) self.assertTrue(state1.open_cell((10, 10))) self.assertEqual(GameState(field), state1) self.assertTrue(state1.open_cell((3, 2))) self.assertEqual(4, state1.unmarked_cells()) self.assertSetEqual( {state1.get_state((x, y)) for x in (0, 1, 2, 3) for y in (1, 2)}, {CellState.OPENED}) self.assertFalse(state1.open_cell((0, 0))) self.assertEqual(4, state1.unmarked_cells()) state2 = GameState(field) state2.set_flag((2, 2)) self.assertTrue(state2.open_cell((3, 2))) self.assertEqual(8, state2.unmarked_cells()) self.assertSetEqual( {state2.get_state((x, y)) for x in (2, 3) for y in (1, 2)}, {CellState.OPENED, CellState.FLAG}) self.assertTrue(state2.open_cell((2, 2))) self.assertEqual(8, state2.unmarked_cells())
def test_init_state(self): field = Field((2, 2), {(0, 0), (1, 1)}) state = GameState(field) self.assertEqual(0, state.flags()) self.assertEqual(4, state.unmarked_cells()) for cell in ((0, 0), (1, 0), (0, 1), (1, 1)): self.assertEqual(CellState.UNKNOWN, state.get_state(cell)) self.assertFalse(state.check_win())