void TestGridCellIsInGrid() { // Create a grid. int numberOfRows = 2; int numberOfColumns = 3; TrnGrid* grid = trn_grid_new(numberOfRows, numberOfColumns); TrnPositionInGrid pos; int rowIndex; int columnIndex; // Check position that are in grid for (rowIndex = 0 ; rowIndex < numberOfRows; rowIndex++) { pos.rowIndex = rowIndex; for (columnIndex = 0 ; columnIndex < numberOfColumns ; columnIndex++) { pos.columnIndex = columnIndex; CU_ASSERT_TRUE(trn_grid_cell_is_in_grid(grid, pos)); } } // Check row out of grid from top. pos.rowIndex = -1; for (columnIndex = 0 ; columnIndex < numberOfColumns ; columnIndex++) { pos.columnIndex = columnIndex; CU_ASSERT_FALSE(trn_grid_cell_is_in_grid(grid, pos)); } // Check row out of grid from bottom. pos.rowIndex = numberOfRows; for (columnIndex = 0 ; columnIndex < numberOfColumns ; columnIndex++) { pos.columnIndex = columnIndex; CU_ASSERT_FALSE(trn_grid_cell_is_in_grid(grid, pos)); } // Check column out of grid from left. pos.columnIndex = -1; for (rowIndex = 0 ; rowIndex < numberOfRows; rowIndex++) { pos.rowIndex = rowIndex; CU_ASSERT_FALSE(trn_grid_cell_is_in_grid(grid, pos)); } // Check column out of grid from right. pos.columnIndex = numberOfColumns; for (rowIndex = 0 ; rowIndex < numberOfRows; rowIndex++) { pos.rowIndex = rowIndex; CU_ASSERT_FALSE(trn_grid_cell_is_in_grid(grid, pos)); } }
bool trn_grid_cell_is_in_grid_and_is_void(TrnGrid const * const grid, TrnPositionInGrid const pos) { return trn_grid_cell_is_in_grid(grid,pos) && trn_grid_get_cell(grid, pos) == TRN_TETROMINO_VOID; }