multiple delete entry scenarios
| 509 | |
| 510 | // multiple delete entry scenarios |
| 511 | void test_RGMatrix_del_entry() { |
| 512 | GrB_Type t = GrB_UINT64; |
| 513 | RG_Matrix A = NULL; |
| 514 | GrB_Matrix M = NULL; |
| 515 | GrB_Matrix DP = NULL; |
| 516 | GrB_Matrix DM = NULL; |
| 517 | GrB_Info info = GrB_SUCCESS; |
| 518 | GrB_Index nvals = 0; |
| 519 | GrB_Index nrows = 100; |
| 520 | GrB_Index ncols = 100; |
| 521 | GrB_Index i = 0; |
| 522 | GrB_Index j = 1; |
| 523 | uint64_t x = 1; |
| 524 | bool entry_deleted = false; |
| 525 | |
| 526 | info = RG_Matrix_new(&A, t, nrows, ncols); |
| 527 | TEST_ASSERT(info == GrB_SUCCESS); |
| 528 | |
| 529 | // get internal matrices |
| 530 | M = RG_MATRIX_M(A); |
| 531 | DP = RG_MATRIX_DELTA_PLUS(A); |
| 532 | DM = RG_MATRIX_DELTA_MINUS(A); |
| 533 | |
| 534 | //-------------------------------------------------------------------------- |
| 535 | // remove none existing entry |
| 536 | //-------------------------------------------------------------------------- |
| 537 | |
| 538 | info = RG_Matrix_removeEntry_UINT64(A, i, j, x, &entry_deleted); |
| 539 | TEST_ASSERT(info == GrB_NO_VALUE); |
| 540 | |
| 541 | // matrix should not contain any entries in either DP or DM |
| 542 | TEST_ASSERT(RG_Matrix_Synced(A)); |
| 543 | |
| 544 | //-------------------------------------------------------------------------- |
| 545 | // remove none flushed addition |
| 546 | //-------------------------------------------------------------------------- |
| 547 | |
| 548 | // set element at position i,j |
| 549 | info = RG_Matrix_setElement_UINT64(A, x, i, j); |
| 550 | TEST_ASSERT(info == GrB_SUCCESS); |
| 551 | |
| 552 | // remove element at position i,j |
| 553 | info = RG_Matrix_removeEntry_UINT64(A, i, j, x, &entry_deleted); |
| 554 | TEST_ASSERT(info == GrB_SUCCESS); |
| 555 | |
| 556 | // matrix should be mark as dirty |
| 557 | TEST_ASSERT(RG_Matrix_isDirty(A)); |
| 558 | |
| 559 | //-------------------------------------------------------------------------- |
| 560 | // validations |
| 561 | //-------------------------------------------------------------------------- |
| 562 | |
| 563 | // A should be empty |
| 564 | RG_Matrix_nvals(&nvals, A); |
| 565 | TEST_ASSERT(nvals == 0); |
| 566 | |
| 567 | // M should be empty |
| 568 | M_EMPTY(); |
nothing calls this directly
no test coverage detected