bkochuna / ners570f24-SpMV

3 stars 0 forks source link

Storage tests for JDS #54

Open KyleVaughn opened 2 weeks ago

KyleVaughn commented 2 weeks ago

Description:

For the JDS sparse matrix solver, managing the storage, retrieval, and conversion of data is very important. This issue is to write a unit test for the storage mechanisms of the JDS class in SparseMatrix_JDS.cpp. The storage tests will ensure that the correct values are stored in the row pointer, column vector, and value vector. The unit test will also ensure that the rows are being sorted by size (number of elements) in descending order. Finally, the unit test will ensure edge cases such as empty rows and symmetric formats are handled properly.

Tasks:

1) Ensure proper initialization of the required matrix variables (including pointers). 2) Write a test to check the storage format in JDS format. Ensure the row_pointer, col_index, and value vectors are storing the correct values. 3) Write a test to check the conversion of vectors from COO/CSR to JDS. 4) Write a test for a symmetric matrix. 5) Write a test for a matrix with at least 1 empty row.

Definition of done:

This issue is considered resolved when all of the tasks are complete, all tests pass without errors, and edge cases are working properly. The last thing in this issue is to ensure the return value (if there is one) is in the format desired by the code.

AndrewPanter commented 1 week ago

Assigned myself as reviewer.

rsshast commented 1 week ago

I am assigned to this issue

AndrewPanter commented 5 days ago

Really good, concise overview of the issue, Ravi. I'd take a look at the formatting to take the body text out of the header for readability. Additionally, adding checkboxes to the tasks would help keep track of the progress made on the issue. I think the clause in the "Definition of done" section about the edge cases can be removed, as that is encapsulated by the unit tests passing. The last sentence of that section may also work better as a task. Excellent work!