Skip to content

Commit 452c0de

Browse files
committed
fix: correct test cases
1 parent 9249d63 commit 452c0de

File tree

2 files changed

+75
-104
lines changed

2 files changed

+75
-104
lines changed

experimental/algorithm/LAGraph_RPQMatrix.c

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,14 @@ static GrB_Info LAGraph_RpqMatrixLor(RpqMatrixPlan *plan, char *msg)
6767
GrB_Matrix lhs_mat = lhs->res_mat;
6868
GrB_Matrix rhs_mat = rhs->res_mat;
6969

70-
GRB_TRY(GrB_eWiseAdd(plan->res_mat, GrB_NULL, GrB_NULL,
71-
op, lhs_mat, rhs_mat, GrB_DESC_R));
70+
GrB_Index width, height;
71+
GrB_Matrix_nrows(&height, rhs_mat);
72+
GrB_Matrix_ncols(&width, lhs_mat);
73+
GrB_Matrix res;
74+
GrB_Matrix_new(&res, GrB_BOOL, height, width);
75+
GRB_TRY(GrB_eWiseAdd(res, GrB_NULL, GrB_NULL,
76+
GrB_LOR, lhs_mat, rhs_mat, GrB_DESC_R));
77+
plan->res_mat = res;
7278

7379
return (GrB_SUCCESS);
7480
}
@@ -83,11 +89,6 @@ static GrB_Info LAGraph_RpqMatrixConcat(RpqMatrixPlan *plan, char *msg)
8389
RpqMatrixPlan *lhs = plan->lhs;
8490
RpqMatrixPlan *rhs = plan->rhs;
8591

86-
GrB_Index nvalsA, nvalsB;
87-
GrB_Matrix_nvals(&nvalsA, lhs->mat);
88-
GrB_Matrix_nvals(&nvalsB, rhs->mat);
89-
fprintf(stderr, "\nDEBUG: A:%lu and B:%lu in Concat\n", nvalsA, nvalsB);
90-
9192
LG_ASSERT(lhs != NULL, GrB_NULL_POINTER);
9293
LG_ASSERT(rhs != NULL, GrB_NULL_POINTER);
9394

@@ -97,22 +98,15 @@ static GrB_Info LAGraph_RpqMatrixConcat(RpqMatrixPlan *plan, char *msg)
9798
GrB_Matrix lhs_mat = lhs->res_mat;
9899
GrB_Matrix rhs_mat = rhs->res_mat;
99100

100-
GrB_Matrix_nvals(&nvalsA, lhs_mat);
101-
GrB_Matrix_nvals(&nvalsB, rhs_mat);
102-
fprintf(stderr, "\nDEBUG: A:%lu and B:%lu in Concat after traversal\n", nvalsA, nvalsB);
103-
fprintf(stderr, "\nDEBUG: before mxm\n");
104-
105101
GrB_Index width, height;
106102
GrB_Matrix_nrows(&height, rhs_mat);
107103
GrB_Matrix_ncols(&width, lhs_mat);
108104
GrB_Matrix res;
109105
GrB_Matrix_new(&res, GrB_BOOL, height, width);
110106
GRB_TRY(GrB_mxm(res, GrB_NULL, GrB_NULL,
111-
sr, lhs_mat, rhs_mat, GrB_DESC_R));
107+
GrB_LOR_LAND_SEMIRING_BOOL, lhs_mat, rhs_mat, GrB_DESC_R));
112108
// GrB_mxm(plan->res_mat, GrB_NULL, GrB_NULL, GrB_LOR_LAND_SEMIRING_BOOL, lhs_mat, rhs_mat, GrB_NULL);
113109
plan->res_mat = res;
114-
GrB_Matrix_nvals(&nvalsA, plan->res_mat);
115-
fprintf(stderr, "\nDEBUG: A:%lu after mxm in Concat\n", nvalsA);
116110

117111
return (GrB_SUCCESS);
118112
}
@@ -152,19 +146,20 @@ static GrB_Info LAGraph_RpqMatrixKleene(RpqMatrixPlan *plan, char *msg)
152146
GrB_Matrix BPE;
153147
GRB_TRY(GrB_Matrix_new(&BPE, GrB_BOOL, n, n));
154148
GRB_TRY(GrB_eWiseAdd(BPE, GrB_NULL, GrB_NULL,
155-
op, B, E, GrB_DESC_R));
149+
GrB_LOR, B, E, GrB_DESC_R));
156150
// S <- S x (B + E)
157151
GrB_Matrix S, T;
158152
GRB_TRY(GrB_Matrix_dup(&S, E));
159153

160154
bool changed = true;
161155
GrB_Index nnz_S = n, nnz_T = 0;
156+
162157
while (changed)
163158
{
164159
// T = S * (B + E)
165160
GRB_TRY(GrB_Matrix_new(&T, GrB_BOOL, n, n));
166161
GRB_TRY(GrB_mxm(T, GrB_NULL, GrB_NULL,
167-
sr, S, BPE, GrB_DESC_R));
162+
GrB_LOR_LAND_SEMIRING_BOOL, S, BPE, GrB_DESC_R));
168163

169164
GRB_TRY(GrB_Matrix_nvals(&nnz_T, T));
170165
if (nnz_T != nnz_S)
@@ -191,19 +186,13 @@ GrB_Info LAGraph_RPQMatrix(RpqMatrixPlan *plan, char *msg)
191186
{
192187
if (plan->res_mat != NULL)
193188
{
194-
GrB_Index result;
195-
GrB_Matrix_nvals(&result, plan->res_mat);
196-
fprintf(stderr, "\nDEBUG: res_mat in LAGraph_RPQMatrix: %lu", result);
197189
return (GrB_SUCCESS);
198190
}
199191

200192
switch (plan->op)
201193
{
202194
case RPQ_MATRIX_OP_LABEL:
203195
LG_ASSERT(plan->lhs == NULL && plan->rhs == NULL, GrB_INVALID_VALUE);
204-
GrB_Index result;
205-
GrB_Matrix_nvals(&result, plan->mat);
206-
fprintf(stderr, "\nDEBUG: res_mat in LAGraph_RPQMatrix switch: %lu", result);
207196
plan->res_mat = plan->mat;
208197
return (GrB_SUCCESS);
209198
case RPQ_MATRIX_OP_LOR:
@@ -215,14 +204,11 @@ GrB_Info LAGraph_RPQMatrix(RpqMatrixPlan *plan, char *msg)
215204
default:
216205
LG_ASSERT(false, GrB_INVALID_VALUE);
217206
}
218-
GrB_Index result;
219-
GrB_Matrix_nvals(&result, plan->res_mat);
220-
fprintf(stderr, "\nDEBUG: res_mat in LAGraph_RPQMatrix end: %lu", result);
221207
return (GrB_SUCCESS);
222208
}
223209

224210
GrB_Info LAGraph_RpqMatrix_initialize()
225211
{
226-
sr = LAGraph_any_one_bool;
227-
op = GxB_ANY_BOOL_MONOID;
212+
sr = GrB_LOR_LAND_SEMIRING_BOOL;
213+
op = GrB_LOR;
228214
}

experimental/test/test_RPQMatrix.c

Lines changed: 61 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,6 @@ char msg[LAGRAPH_MSG_LEN];
99
#define LEN 512
1010

1111
//****************************************************************************
12-
// void test_RPQMatrixKleene(void)
13-
// {
14-
// LAGraph_Init(msg);
15-
// const char *nameA = "rpq_data/a.mtx";
16-
// FILE *fA = fopen(nameA, "r");
17-
// TEST_CHECK(fA != NULL);
18-
// GrB_Matrix A;
19-
// OK(LAGraph_MMRead(&A, fA, msg));
20-
// OK(fclose(fA));
21-
// RpqMatrixPlan graphA = {
22-
// .op = RPQ_MATRIX_OP_LABEL,
23-
// .lhs = NULL,
24-
// .rhs = NULL,
25-
// .mat = A,
26-
// .res_mat = NULL
27-
// };
28-
// RpqMatrixPlan graphKleene = {
29-
// .op = RPQ_MATRIX_OP_KLEENE,
30-
// .lhs = NULL,
31-
// .rhs = &graphA,
32-
// .mat = NULL,
33-
// .res_mat = NULL
34-
// };
35-
// GrB_Info res = LAGraph_RpqMatrix(&graphKleene,msg);
36-
// GrB_Matrix result_matrix = graphKleene.res_mat;
37-
// GrB_Index result;
38-
// GrB_Matrix_nvals(&result,result_matrix);
39-
// LAGraph_Finalize(msg);
40-
// }
4112

4213
void test_RPQMatrixConc(void)
4314
{
@@ -90,64 +61,78 @@ void test_RPQMatrixConc(void)
9061
.mat = NULL,
9162
.res_mat = NULL
9263
};
93-
GrB_Index expected_nvasl = 3;
64+
GrB_Index expected_nvasl = 14;
9465
GrB_Info res = LAGraph_RPQMatrix(&graphKleene,msg);
95-
GrB_Matrix result_matrix = graphConcat.res_mat;
66+
GrB_Matrix result_matrix = graphKleene.res_mat;
9667
GrB_Index result;
9768
GrB_Matrix_nvals(&result,result_matrix);
9869
fprintf(stderr,"\nDEBUG: result: %lu",result);
9970
TEST_CHECK(result == expected_nvasl);
10071
LAGraph_Finalize(msg);
10172
}
10273

103-
// void test_RPQMatrixLor(void)
104-
// {
105-
// LAGraph_Init(msg);
106-
// const char *nameA = "rpq_data/a.mtx";
107-
// const char *nameB = "rpq_data/b.mtx";
108-
// snprintf (filename, LEN, LG_DATA_DIR "%s", name) ;
109-
110-
// snprintf (filename, LEN, LG_DATA_DIR "%s", name) ;
74+
void test_RPQMatrixLor(void)
75+
{
76+
LAGraph_Init(msg);
77+
LAGraph_RpqMatrix_initialize();
78+
const char *nameA = "rpq_data/a.mtx";
79+
const char *nameB = "rpq_data/b.mtx";
80+
char filenameA [LEN+1] ;
81+
char filenameB [LEN+1] ;
82+
snprintf (filenameA, LEN, LG_DATA_DIR "%s", nameA) ;
83+
snprintf (filenameB, LEN, LG_DATA_DIR "%s", nameB) ;
84+
FILE *fA = fopen(filenameA, "r");
85+
FILE *fB = fopen(filenameB, "r");
86+
GrB_Matrix A, B;
87+
OK(LAGraph_MMRead(&A, fA, msg));
88+
OK(LAGraph_MMRead(&B, fB, msg));
89+
OK(fclose(fA));
90+
OK(fclose(fB));
11191

112-
// FILE *fA = fopen(nameA, "r");
113-
// FILE *fB = fopen(nameB, "r");
114-
// TEST_CHECK(fA != NULL);
115-
// TEST_CHECK(fB != NULL);
116-
// GrB_Matrix A, B;
117-
// OK(LAGraph_MMRead(&A, fA, msg));
118-
// OK(LAGraph_MMRead(&A, fB, msg));
119-
// OK(fclose(fA));
120-
// OK(fclose(fB));
121-
// RpqMatrixPlan graphA = {
122-
// .op = RPQ_MATRIX_OP_LABEL,
123-
// .lhs = NULL,
124-
// .rhs = NULL,
125-
// .mat = A,
126-
// .res_mat = NULL
127-
// };
128-
// RpqMatrixPlan graphB = {
129-
// .op = RPQ_MATRIX_OP_LABEL,
130-
// .lhs = NULL,
131-
// .rhs = NULL,
132-
// .mat = B,
133-
// .res_mat = NULL
134-
// };
135-
// RpqMatrixPlan graphLor = {
136-
// .op = RPQ_MATRIX_OP_LOR,
137-
// .lhs = &graphA,
138-
// .rhs = &graphB,
139-
// .mat = NULL,
140-
// .res_mat = NULL
141-
// };
142-
// GrB_Info res = LAGraph_RpqMatrix(&graphLor,msg);
143-
// GrB_Matrix result_matrix = graphLor.res_mat;
144-
// GrB_Index result;
145-
// GrB_Matrix_nvals(&result,result_matrix);
146-
// LAGraph_Finalize(msg);
147-
// }
92+
GrB_Index nvalsA, nvalsB;
93+
GrB_Matrix_nvals(&nvalsA,A);
94+
GrB_Matrix_nvals(&nvalsB,B);
95+
fprintf(stderr,"\nDEBUG: A:%lu and B:%lu\n",nvalsA,nvalsB);
96+
RpqMatrixPlan graphA = {
97+
.op = RPQ_MATRIX_OP_LABEL,
98+
.lhs = NULL,
99+
.rhs = NULL,
100+
.mat = A,
101+
.res_mat = NULL
102+
};
103+
RpqMatrixPlan graphB = {
104+
.op = RPQ_MATRIX_OP_LABEL,
105+
.lhs = NULL,
106+
.rhs = NULL,
107+
.mat = B,
108+
.res_mat = NULL
109+
};
110+
RpqMatrixPlan graphLor = {
111+
.op = RPQ_MATRIX_OP_LOR,
112+
.lhs = &graphA,
113+
.rhs = &graphB,
114+
.mat = NULL,
115+
.res_mat = NULL
116+
};
117+
RpqMatrixPlan graphKleene = {
118+
.op = RPQ_MATRIX_OP_KLEENE,
119+
.lhs = NULL,
120+
.rhs = &graphLor,
121+
.mat = NULL,
122+
.res_mat = NULL
123+
};
124+
GrB_Index expected_nvasl = 35;
125+
GrB_Info res = LAGraph_RPQMatrix(&graphKleene,msg);
126+
GrB_Matrix result_matrix = graphKleene.res_mat;
127+
GrB_Index result;
128+
GrB_Matrix_nvals(&result,result_matrix);
129+
fprintf(stderr,"\nDEBUG: result: %lu",result);
130+
TEST_CHECK(result == expected_nvasl);
131+
LAGraph_Finalize(msg);
132+
}
148133

149134
TEST_LIST = {
150135
// {"RPQMatrixKleene", test_RPQMatrixKleene},
151136
{"RPQMatrixConc", test_RPQMatrixConc},
152-
// {"RPQMatrixLor", test_RPQMatrixLor},
137+
{"RPQMatrixLor", test_RPQMatrixLor},
153138
{NULL, NULL}};

0 commit comments

Comments
 (0)