def test_from_json(self): players_json = [ { 'color': "red", 'score': 0, 'places': [] }, { 'color': "black", 'score': 123, 'places': [[2, 3]] }, { 'color': "white", 'score': 321, 'places': [[0, 0], [4, 5]] }, { 'color': "brown", 'score': 7, 'places': [[0, 1], [321, 123]] }, ] board_json = [ [1, 2], [4, 0, 0, 5], [1, 1, 0, 1] ] state_json = {'players': players_json, 'board': board_json} players = [PlayerData.from_json(player) for player in players_json] board = Board.from_json(board_json) self.assertEqual(State(players, board), State.from_json(state_json))
def from_json(value): """ Class method to create a State from a JSON value. JSON value -> State """ players = [PlayerData.from_json(player) for player in value['players']] board = Board.from_json(value['board']) return State(players, board)
def test_create_board_json(self): tiles = [ [1, 2, 3, 0], [4, 0, 0, 5], [1, 1, 0, 1] ] board = Board(3, 4) board.create_board_from_json(tiles) for r in range(0, len(tiles)): for c in range(0, len(tiles[r])): self.assertEqual(board.tiles[c][r].fish, tiles[r][c]) self.assertEqual(board, Board.from_json(tiles))
def test_create_board_json_short_row(self): tiles = [ [1, 2], [4, 0, 0, 5], [1, 1, 0, 1] ] board = Board(3, 4) board.create_board_from_json(tiles) self.assertEqual(board.tiles[2][0].fish, 0) self.assertEqual(board.tiles[3][0].fish, 0) self.assertFalse(board.tiles[2][0].is_active) self.assertFalse(board.tiles[3][0].is_active) self.assertEqual(board, Board.from_json(tiles))