@@ -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