@@ -242,7 +242,9 @@ TYPED_TEST(FP16SVSTest, svs_bulk_vectors_add_delete_test) {
242242 // Delete almost all vectors
243243 const size_t keep_num = 10 ;
244244 ASSERT_EQ (svs_index->deleteVectors (ids.data (), n - keep_num), n - keep_num);
245- ASSERT_EQ (VecSimIndex_IndexSize (index), keep_num);
245+ ASSERT_EQ (VecSimIndex_IndexSize (index), n);
246+ ASSERT_EQ (index->indexLabelCount (), keep_num);
247+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), n - keep_num);
246248
247249 auto verify_res_after_delete = [&](size_t id, double score, size_t index) {
248250 EXPECT_EQ (id, n - keep_num + index);
@@ -252,6 +254,12 @@ TYPED_TEST(FP16SVSTest, svs_bulk_vectors_add_delete_test) {
252254 // Thread 0: Couldn't find key.
253255 runTopKSearchTest (index, query, keep_num, verify_res_after_delete, nullptr , BY_ID);
254256
257+ // Delete rest of the vectors
258+ // num_marked_deleted should reset.
259+ ASSERT_EQ (svs_index->deleteVectors (ids.data () + n - keep_num, keep_num), keep_num);
260+ ASSERT_EQ (VecSimIndex_IndexSize (index), 0 );
261+ ASSERT_EQ (index->indexLabelCount (), 0 );
262+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), 0 );
255263 VecSimIndex_Free (index);
256264}
257265
@@ -334,14 +342,18 @@ TYPED_TEST(FP16SVSTest, svs_reindexing_same_vector) {
334342 for (size_t i = 0 ; i < n - 1 ; i++) {
335343 VecSimIndex_DeleteVector (index, i);
336344 }
337- ASSERT_EQ (VecSimIndex_IndexSize (index), 1 );
345+ ASSERT_EQ (VecSimIndex_IndexSize (index), n);
346+ ASSERT_EQ (index->indexLabelCount (), 1 );
347+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), n - 1 );
338348
339349 // Reinsert the same vectors under the same ids.
340350 for (size_t i = 0 ; i < n; i++) {
341351 // i / 10 is in integer (take the "floor value).
342352 this ->GenerateAndAddVector (index, dim, i, i / 10 );
343353 }
344- ASSERT_EQ (VecSimIndex_IndexSize (index), n);
354+ ASSERT_EQ (VecSimIndex_IndexSize (index), 2 * n);
355+ ASSERT_EQ (index->indexLabelCount (), n);
356+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), n);
345357
346358 // Run the same query again.
347359 runTopKSearchTest (index, query, k, verify_res);
@@ -388,14 +400,18 @@ TYPED_TEST(FP16SVSTest, svs_reindexing_same_vector_different_id) {
388400 for (size_t i = 0 ; i < n - 1 ; i++) {
389401 VecSimIndex_DeleteVector (index, i);
390402 }
391- ASSERT_EQ (VecSimIndex_IndexSize (index), 1 );
403+ ASSERT_EQ (VecSimIndex_IndexSize (index), n);
404+ ASSERT_EQ (index->indexLabelCount (), 1 );
405+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), n - 1 );
392406
393407 // Reinsert the same vectors under different ids than before.
394408 for (size_t i = 0 ; i < n; i++) {
395409 this ->GenerateAndAddVector (index, dim, i + 10 ,
396410 i / 10 ); // i / 10 is in integer (take the "floor" value).
397411 }
398- ASSERT_EQ (VecSimIndex_IndexSize (index), n);
412+ ASSERT_EQ (VecSimIndex_IndexSize (index), 2 * n);
413+ ASSERT_EQ (index->indexLabelCount (), n);
414+ ASSERT_EQ (svs_index->getNumMarkedDeleted (), n);
399415
400416 // Run the same query again.
401417 auto verify_res_different_id = [&](size_t id, double score, size_t index) {
@@ -787,7 +803,8 @@ TYPED_TEST(FP16SVSTest, test_delete_vector) {
787803
788804 // Here the shift should happen.
789805 VecSimIndex_DeleteVector (index, 1 );
790- ASSERT_EQ (VecSimIndex_IndexSize (index), n - 1 );
806+ ASSERT_EQ (VecSimIndex_IndexSize (index), n);
807+ ASSERT_EQ (index->indexLabelCount (), n - 1 );
791808
792809 float16 query[dim];
793810 this ->GenerateVector (query, dim, 0.0 );
@@ -2750,7 +2767,7 @@ TYPED_TEST(FP16SVSTieredIndexTest, KNNSearch) {
27502767 VecSimIndex_DeleteVector (svs_index, i);
27512768 }
27522769 ASSERT_EQ (flat_index->indexSize (), n * 2 / 3 );
2753- ASSERT_EQ (svs_index->indexSize (), n / 2 );
2770+ ASSERT_EQ (svs_index->indexLabelCount (), n / 2 );
27542771 k = n * 2 / 3 ;
27552772 cur_memory_usage = allocator->getAllocationSize ();
27562773 runTopKSearchTest (tiered_index, query_0, k, ver_res_0);
@@ -2765,7 +2782,7 @@ TYPED_TEST(FP16SVSTieredIndexTest, KNNSearch) {
27652782 VecSimIndex_DeleteVector (flat_index, i);
27662783 }
27672784 ASSERT_EQ (flat_index->indexSize (), n / 6 );
2768- ASSERT_EQ (svs_index->indexSize (), n / 2 );
2785+ ASSERT_EQ (svs_index->indexLabelCount (), n / 2 );
27692786 k = n / 4 ;
27702787 cur_memory_usage = allocator->getAllocationSize ();
27712788 runTopKSearchTest (tiered_index, query_0, k, ver_res_0);
@@ -2779,7 +2796,7 @@ TYPED_TEST(FP16SVSTieredIndexTest, KNNSearch) {
27792796 this ->GenerateAndAddVector (flat_index, dim, i, i);
27802797 }
27812798 ASSERT_EQ (flat_index->indexSize (), n * 2 / 3 );
2782- ASSERT_EQ (svs_index->indexSize (), 0 );
2799+ ASSERT_EQ (svs_index->indexLabelCount (), 0 );
27832800 k = n / 3 ;
27842801 cur_memory_usage = allocator->getAllocationSize ();
27852802 runTopKSearchTest (tiered_index, query_0, k, ver_res_0);
0 commit comments