def test_save_and_load(self): field = Field((4, 4), {(0, 2), (3, 1), (1, 1), (2, 3), (0, 1), (1, 0)}) state = GameState(field) state.open_cell((0, 0)) for cell in ((1, 0), (0, 1), (1, 1)): state.set_flag(cell) self.assertEqual(state, GameState.fromstr(str(state), field))
def test_handler_load(self): field = Field((3, 3), {(1, 0)}) state = GameState(field) state.set_flag((0, 0)) state.open_cell((2, 2)) callargs = [] loaded = GameState.fromstr(str(state), field, lambda *args: callargs.append(args)) self.assertEqual(7, len(callargs)) self.assertSetEqual( {((x, y), CellState.OPENED) for x in (0, 1, 2) for y in (1, 2)} | {((0, 0), CellState.FLAG)}, set(callargs))
def test_load_bad(self): with self.assertRaises(ValueError): GameState.fromstr('1,1,0:2;0,0:1', Field((3, 3), {}))
def test_str(self): field = Field((4, 4), {(0, 0), (3, 3)}) state = GameState(field) self.assertEqual(state, GameState.fromstr(str(state), field))