Esempio n. 1
0
 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))
Esempio n. 2
0
    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))
Esempio n. 3
0
 def test_load_bad(self):
     with self.assertRaises(ValueError):
         GameState.fromstr('1,1,0:2;0,0:1', Field((3, 3), {}))
Esempio n. 4
0
 def test_str(self):
     field = Field((4, 4), {(0, 0), (3, 3)})
     state = GameState(field)
     self.assertEqual(state, GameState.fromstr(str(state), field))