bkochuna / ners570f23-SpMV

1 stars 0 forks source link

Add assembleStorage and disassembleStorage tests for ELL #41

Open KyleVaughn opened 11 months ago

KyleVaughn commented 11 months ago

Description:

Unit tests for assembleStorage and disassembleStorage for ELL. These tests are used to check ELL matrix data structure and the accuracy of ELL method. They help us by identifying and resolving any potential issues or discrepancies in how data is packed and unpacked within the ELL matrix.

Tasks:

Some tips for writing these tests:

  1. Create a dataset and store it in SparseMatrix.
  2. Create the reference answer/result to the assembleStorage and disassembleStorage for ELL.
  3. Call assembleStorage and compare the colIdx vector, value vector, and the matrix multiplication result to the reference results.
  4. Repeat this to check disassembleStorage.

Definition of done:

Tests will catch all bugs of assembleStorage and disassembleStorage for ELL. Guarantee that these functions work correctly under different conditions. Ensure that future changes and optimizations to these functions do not introduce regressions

KyleVaughn commented 11 months ago

Review by @preetb1199

Its probably insignificant but could write description and definition of done in next line so it is not printed in header and looks more systematic. Also, Labels and Projects not assigned.

For description one can add the main need of having any changes or adding any functions like you could add to the description the need(or their significance) to have assembleStorage and disassembleStorage tests; like "These methods are essential for the correct functioning of the ELL matrix data structure, and ensuring their accuracy is crucial. They help us by identifying and resolving any potential issues or discrepancies in how data is packed and unpacked within the ELL matrix."

In the tasks it is necessary to mention about handling various matrix sizes, data types, and edge cases. Something like:

  • [ ] Correct assembly and disassembly of a variety of matrices with different sparsity patterns.
  • [ ] Valid handling of matrices with zero values.
  • [ ] Verification of the functions when dealing with different data types (e.g., integers, floating-point numbers).
  • [ ] Performance testing for handling large matrices.
  • [ ] Ensuring that the edge cases are correctly fed in (when moving from one row to the next)

Additional points for description of done:

  • Guarantee that these functions work correctly under different conditions.
  • Ensure that future changes and optimizations to these functions do not introduce regressions
shujhan commented 11 months ago

Thanks for these comments!!! They helped a lot!!!!!