def from_dict(d):
    """Create a new instance of the class with attributes initialized to
    match those in the given dictionary."""
    dimensions = d['dimensions']
    bombs = []
    game = lab.HyperMinesGame(dimensions, bombs)
    for i in ('board', 'state', 'mask'):
        setattr(game, i, d[i])
    return game
 def test_newlarge4dgame(self):
     """ Testing new_game on a large 4-D board """
     with open("test_outputs/test_newlarge4dgame.json") as f:
         expected = json.load(f)
     with open("test_inputs/test_newlarge4dgame.json") as f:
         inputs = json.load(f)
     result = lab.HyperMinesGame(inputs["dimensions"], inputs["bombs"])
     for i in ('dimensions', 'board', 'mask', 'state'):
         self.assertEqual(getattr(result, i), expected[i])
Example #3
0
 def test3d(self):
     game = lab.HyperMinesGame([3, 3, 3], [[0, 0, 1]])
     game.dig([0, 0, 0])
     game.dig([2, 2, 2])
     game.dig([0, 0, 2])
     expected = [[['1', '_', '1'], ['1', '1', '1'], [' ', ' ', ' ']],
                 [['1', '1', '1'], ['1', '1', '1'], [' ', ' ', ' ']],
                 [[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']]]
     self.assertEqual(game.render(), expected)
Example #4
0
 def test_3_dim(self):
     dims = [4, 5, 2]
     bombs = [[2, 3, 0], [1, 0, 1], [3, 4, 0]]
     digs = [[0, 0, 1], [3, 4, 0]]
     expected = [1, 1]
     g = lab.HyperMinesGame(dims, bombs)
     for i in range(2):
         res = g.dig(digs[i])
         self.assertEqual(res, expected[i])
Example #5
0
 def test_1_dim(self):
     dims = [10]
     bombs = [[2], [5]]
     digs = [[1], [9]]
     expected = [1, 4]
     g = lab.HyperMinesGame(dims, bombs)
     for i in range(2):
         res = g.dig(digs[i])
         self.assertEqual(res, expected[i])
Example #6
0
    def test_3D(self):
        game = lab.HyperMinesGame([3, 3, 2], [[1, 2, 0]])

        dig_result = game.dig([2, 1, 0])
        dig_expected = 1

        dig_result2 = game.dig([0, 0, 0])
        dig_expected2 = 11

        self.assertEqual(dig_result, dig_expected)
        self.assertEqual(dig_result2, dig_expected2)
Example #7
0
    def test_2D(self):
        game = lab.HyperMinesGame([3, 3], [[0, 2], [0, 0]])

        dig_result = game.dig([0, 1])
        dig_expected = 1

        dig_result2 = game.dig([2, 0])
        dig_expected2 = 6

        self.assertEqual(dig_result, dig_expected)
        self.assertEqual(dig_result2, dig_expected2)
 def _test_integration(self, n):
     with open("test_outputs/test_integration%s.json" % n) as f:
         expected = json.load(f)
     with open("test_inputs/test_integration%s.json" % n) as f:
         inputs = json.load(f)
     g = lab.HyperMinesGame(inputs['dimensions'], inputs['bombs'])
     for location, results in zip(inputs['digs'], expected):
         squares_revealed, game, rendered, rendered_xray = results
         res = g.dig(location)
         self.assertEqual(res, squares_revealed)
         for i in ('dimensions', 'board', 'mask', 'state'):
             self.assertEqual(getattr(g, i), game[i])
         self.assertEqual(g.render(), rendered)
         self.assertEqual(g.render(True), rendered_xray)
Example #9
0
 def test2d(self):
     game = lab.HyperMinesGame([5, 6], [[3, 3], [4, 3], [3, 4]])
     game.dig([4, 5])
     game.dig([0, 0])
     expected = [[' ', ' ', ' ', ' ', ' ', ' '],
                 [' ', ' ', ' ', ' ', ' ', ' '],
                 [' ', ' ', '1', '2', '2', '1'],
                 [' ', ' ', '2', '_', '_', '_'],
                 [' ', ' ', '2', '_', '_', '1']]
     expected_xray = [[' ', ' ', ' ', ' ', ' ', ' '],
                      [' ', ' ', ' ', ' ', ' ', ' '],
                      [' ', ' ', '1', '2', '2', '1'],
                      [' ', ' ', '2', '.', '.', '1'],
                      [' ', ' ', '2', '.', '3', '1']]
     self.assertEqual(game.render(), expected)
     self.assertEqual(game.render(True), expected_xray)
Example #10
0
    def test_1D(self):
        game = lab.HyperMinesGame([5], [[0], [3]])

        dig_result = game.dig([2])
        dig_expected = 1

        state_result = game.state
        expected_state = "ongoing"

        dig_result2 = game.dig([0])
        dig_expected2 = 1

        state_result2 = game.state
        expected_state2 = "defeat"

        self.assertEqual(dig_result, dig_expected)
        self.assertEqual(dig_result2, dig_expected2)
        self.assertEqual(state_result, expected_state)
        self.assertEqual(state_result2, expected_state2)
Example #11
0
def ui_new_game(d):
    global current_game
    current_game = lab.HyperMinesGame(d["dimensions"], d["bombs"])
    return
Example #12
0
 def test1d(self):
     game = lab.HyperMinesGame([10], [[4], [6]])
     game.dig([1])
     game.dig([6])
     expected = [' ', ' ', ' ', '1', '_', '_', '.', '_', '_', '_']
     self.assertEqual(game.render(), expected)