END_TEST START_TEST(eina_test_resize) { Eina_Matrixsparse *matrix = NULL; Eina_Bool r; unsigned long i, j; unsigned long nrows, ncols; long data[MAX_ROWS][MAX_COLS]; for (i = 0; i < MAX_ROWS; i++) for (j = 0; j < MAX_COLS; j++) data[i][j] = 0; eina_init(); matrix = eina_matrixsparse_new(MAX_ROWS, MAX_COLS, eina_matrixsparse_free_cell_cb, data); fail_if(matrix == NULL); /* cell insertion */ data[0][5] = 5; data[1][0] = 10; data[1][3] = 13; data[1][6] = 16; data[1][9] = 19; data[1][8] = 18; data[1][7] = 17; data[2][8] = 28; data[2][7] = 27; data[2][6] = 26; data[3][0] = 30; data[3][5] = 35; data[3][6] = 36; data[3][7] = 37; data[3][9] = 39; data[3][0] = 30; data[4][8] = 48; data[4][2] = 42; data[4][3] = 43; data[4][7] = 47; data[4][6] = 46; data[5][3] = 53; data[6][3] = 63; data[6][4] = 64; data[6][6] = 66; data[7][3] = 73; data[7][7] = 77; data[8][8] = 88; matrixsparse_initialize(matrix, data, MAX_ROWS, MAX_COLS); eina_matrixsparse_size_get(matrix, &nrows, &ncols); fail_if(nrows != MAX_ROWS || ncols != MAX_COLS); r = eina_matrixsparse_size_set(matrix, nrows - 2, ncols - 2); fail_if(r == EINA_FALSE); data[1][9] = 0; data[1][8] = 0; data[2][8] = 0; data[3][9] = 0; data[4][8] = 0; data[8][8] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 1); fail_if(r == EINA_FALSE); data[0][5] = 0; data[1][3] = 0; data[1][6] = 0; data[1][7] = 0; data[2][7] = 0; data[2][6] = 0; data[3][5] = 0; data[3][6] = 0; data[3][7] = 0; data[4][2] = 0; data[4][3] = 0; data[4][7] = 0; data[4][6] = 0; data[5][3] = 0; data[6][3] = 0; data[6][4] = 0; data[6][6] = 0; data[7][3] = 0; data[7][7] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 1, 1); fail_if(r == EINA_FALSE); data[3][0] = 0; data[1][0] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 4); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 2, &data[4][2]); fail_if(r == EINA_FALSE); data[4][2] = 42; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 1); fail_if(r == EINA_FALSE); data[4][2] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); eina_matrixsparse_free(matrix); eina_shutdown(); }
/** * Resize matrix to given number of rows and columns. */ void ewk_tile_matrix_resize(Ewk_Tile_Matrix *tm, unsigned long cols, unsigned long rows) { EINA_SAFETY_ON_NULL_RETURN(tm); eina_matrixsparse_size_set(tm->matrix, rows, cols); }