Skip to content

Commit 29bfba9

Browse files
committed
Test: refactor tests for matrix_opt for coverage
1 parent d13785c commit 29bfba9

File tree

1 file changed

+31
-84
lines changed

1 file changed

+31
-84
lines changed

experimental/test/test_CFL_optimized_matrix_opt.c

Lines changed: 31 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,27 @@ static void test_compare_matrices_function(void) {
128128
#if LAGRAPH_SUITESPARSE
129129
setup();
130130

131-
Matrix A = make_simple_matrix(5);
132-
Matrix B = make_simple_matrix_inverted(5);
131+
{
132+
Matrix A = make_simple_matrix(5);
133+
Matrix B = CFL_matrix_create(5, 5);
133134

134-
TEST_CHECK(!compare_matrices(A, B));
135-
TEST_CHECK(compare_matrices(A, A));
136-
TEST_CHECK(compare_matrices(B, B));
135+
TEST_CHECK(!compare_matrices(A, B));
137136

138-
CFL_matrix_free(&A);
139-
CFL_matrix_free(&B);
137+
CFL_matrix_free(&A);
138+
CFL_matrix_free(&B);
139+
}
140+
141+
{
142+
Matrix A = make_simple_matrix(5);
143+
Matrix B = make_simple_matrix_inverted(5);
144+
145+
TEST_CHECK(!compare_matrices(A, B));
146+
TEST_CHECK(compare_matrices(A, A));
147+
TEST_CHECK(compare_matrices(B, B));
148+
149+
CFL_matrix_free(&A);
150+
CFL_matrix_free(&B);
151+
}
140152

141153
teardown();
142154
#endif
@@ -439,36 +451,7 @@ static void test_CFL_format_dup_format(void) {
439451
TEST_CHECK(A.nvals == B.nvals);
440452
TEST_CHECK(A.base != B.base);
441453

442-
GrB_Index nvals_A = A.nvals;
443-
GrB_Index nvals_B = B.nvals;
444-
445-
GrB_Index *rows_A = malloc(nvals_A * sizeof(GrB_Index));
446-
GrB_Index *cols_A = malloc(nvals_A * sizeof(GrB_Index));
447-
bool *vals_A = malloc(nvals_A * sizeof(bool));
448-
449-
GrB_Index *rows_B = malloc(nvals_B * sizeof(GrB_Index));
450-
GrB_Index *cols_B = malloc(nvals_B * sizeof(GrB_Index));
451-
bool *vals_B = malloc(nvals_B * sizeof(bool));
452-
453-
GrB_Matrix_extractTuples_BOOL(rows_A, cols_A, vals_A, &nvals_A, A.base);
454-
GrB_Matrix_extractTuples_BOOL(rows_B, cols_B, vals_B, &nvals_B, B.base);
455-
456-
bool equal = true;
457-
for (GrB_Index i = 0; i < nvals_A; i++) {
458-
bool found = false;
459-
for (GrB_Index j = 0; j < nvals_B; j++) {
460-
if (rows_A[i] == rows_B[j] && cols_A[i] == cols_B[j] &&
461-
vals_A[i] == vals_B[j]) {
462-
found = true;
463-
break;
464-
}
465-
}
466-
if (!found) {
467-
equal = false;
468-
break;
469-
}
470-
}
471-
TEST_CHECK(equal);
454+
TEST_CHECK(compare_matrices(A, B));
472455

473456
// NULL Matrix
474457
GrB_Matrix old_base = A.base;
@@ -962,59 +945,23 @@ static Matrix make_block_vector(size_t n, size_t alpha, Matrix_block format) {
962945

963946
return CFL_matrix_from_base(result);
964947

965-
case VEC_HORIZ:
966-
GrB_Matrix_new(&result, GrB_BOOL, n, n * alpha);
967-
for (size_t i = 0; i < n * alpha; i++) {
968-
for (size_t j = 0; j < n; j++) {
969-
bool value = j == (i + 5 % n) || j == ((i + 6) % n) ? true : false;
970-
if (!value)
971-
continue;
972-
973-
GrB_Matrix_setElement_BOOL(result, value, i, j);
974-
}
975-
}
976-
977-
return CFL_matrix_from_base(result);
948+
default:
949+
break;
978950
}
979-
}
980951

981-
static Matrix make_lazy_block_matrix(size_t base_matrices_count) {
982-
size_t n = 0;
983-
Matrix base_matrices[base_matrices_count];
984-
// 1 -> 1, 2 -> 11, 3 -> 111, 4 -> 1111
985-
for (size_t i = 0; i < base_matrices_count; i++) {
986-
n *= 10;
987-
n++;
988-
}
952+
// VEC_HORIZ:
953+
GrB_Matrix_new(&result, GrB_BOOL, n, n * alpha);
954+
for (size_t i = 0; i < n * alpha; i++) {
955+
for (size_t j = 0; j < n; j++) {
956+
bool value = j == (i + 5 % n) || j == ((i + 6) % n) ? true : false;
957+
if (!value)
958+
continue;
989959

990-
size_t tmp_n = 0;
991-
for (size_t i = 0; i < base_matrices_count; i++) {
992-
tmp_n *= 10;
993-
tmp_n++;
994-
GrB_Matrix base_matrix;
995-
GrB_Matrix_new(&base_matrix, GrB_BOOL, n, n);
996-
for (size_t j = 0; j < tmp_n; j++) {
997-
// i+1 for future testing of sorting matrices
998-
GrB_Matrix_setElement_BOOL(base_matrix, true, (i + 1) % base_matrices_count,
999-
j);
960+
GrB_Matrix_setElement_BOOL(result, value, i, j);
1000961
}
1001-
1002-
base_matrices[(i + 1) % base_matrices_count] = CFL_matrix_from_base(base_matrix);
1003-
}
1004-
1005-
GrB_Matrix _result;
1006-
GrB_Matrix_new(&_result, GrB_BOOL, n, n);
1007-
Matrix result = CFL_matrix_from_base_lazy(_result);
1008-
1009-
result.is_lazy = true;
1010-
result.base_matrices_count = base_matrices_count;
1011-
for (size_t i = 0; i < base_matrices_count; i++) {
1012-
result.base_matrices[i] = base_matrices[i];
1013962
}
1014963

1015-
CFL_matrix_update(&result);
1016-
1017-
return result;
964+
return CFL_matrix_from_base(result);
1018965
}
1019966

1020967
// TODO: create equality check with basic mxm

0 commit comments

Comments
 (0)