def test_revealing_not_flagged(self): board = generate_board(10, 10, 10) rev = RevealFields(board, 5, 5) rev._reveal_neighbours(5, 5) self.assertEqual(board[5][5].flagged, False) self.assertEqual(board[5][5].revealed, False)
def test_no_mines(self): board = generate_board(5, 5, 0) mines = 0 for i in range(5): for j in range(5): if board[i][j].value == VALUES_OF_BOARD_FIELDS["BOMB"]: mines = mines + 1 self.assertEqual(mines, 0)
def test_normal_case(self): board = generate_board(8, 8, 10) mines = 0 for i in range(8): for j in range(8): if board[i][j].value == VALUES_OF_BOARD_FIELDS["BOMB"]: mines = mines + 1 self.assertEqual(mines, 10)
def _create_game_board(self): """ This function creates the game board with previously given dimensions(self._board_height, self._board_width). The game board contains a specific number of mines(self._number_of_mines). The board consists of buttons (GameButton). """ self._board_array = generate_board(height=self._board_height, width=self._board_width, mine_amount=self._number_of_mines) minimum_height_of_single_button = \ (settings.GAME_BUTTONS_VERSUS_RIGHT_LAYOUT_RATIO * settings.MINIMUM_HEIGHT_OF_THE_WHOLE_APPLICATION) // self._board_height minimum_width_of_single_button =\ (settings.GAME_BUTTONS_VERSUS_RIGHT_LAYOUT_RATIO * settings.MINIMUM_WIDTH_OF_LAYOUT) // self._board_width for row_idx in range(self._board_height): row_of_buttons_gui = QHBoxLayout() row_of_buttons_list = [] for column_idx in range(self._board_width): game_button = GameButton() game_button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) game_button_right_click = partial(self._handle_right_click, row_idx=row_idx, column_idx=column_idx) game_button.customContextMenuRequested.connect( game_button_right_click) game_button.setMinimumHeight(minimum_height_of_single_button) game_button.setMinimumWidth(minimum_width_of_single_button) game_button_click_function = partial(self._game_button_click, row_idx=row_idx, column_idx=column_idx) game_button.clicked.connect(game_button_click_function) row_of_buttons_list.append(game_button) row_of_buttons_gui.addWidget(game_button) self._matrix_of_buttons.append(row_of_buttons_list) self._right_layout.addLayout(row_of_buttons_gui)
def test_correct_size(self): board = generate_board(10, 12, 6) self.assertEqual(len(board), 10) self.assertEqual(len(board[0]), 12)
def test_no_size_but_some_mines(self): with self.assertRaises(IndexError): board = generate_board(0, 0, 5)
def test_pos_both_correct(self): board = generate_board(10, 10, 10) rev = RevealFields(board, 10, 10) self.assertEqual(rev._is_pos_correct(6, 7), True)
def test_pos_second_more(self): board = generate_board(37, 37, 10) rev = RevealFields(board, 37, 37) self.assertEqual(rev._is_pos_correct(9, 40), False)
def test_pos_first_more(self): board = generate_board(7, 21, 10) rev = RevealFields(board, 7, 21) self.assertEqual(rev._is_pos_correct(9, 15), False)
def test__pos_second_less(self): board = generate_board(7, 9, 10) rev = RevealFields(board, 7, 9) self.assertEqual(rev._is_pos_correct(-5, -9), False)
def test_pos_first_less(self): board = generate_board(6, 6, 10) rev = RevealFields(board, 6, 6) self.assertEqual(rev._is_pos_correct(-1, 3), False)