Skip to content

Commit 284d3f0

Browse files
committed
added another test case
1 parent fefd5e0 commit 284d3f0

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

test/recovery_test.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,27 @@ TEST(RecoveryTestSuite, RecoveryZeroOrOne) {
2525
ASSERT_EQ(result.result, SUCCESS);
2626
}
2727

28+
TEST(RecoveryTestSuite, RecoveryExtremelySmall) {
29+
SparseRecovery recovery(1 << 13, 16, 1, get_seed());
30+
auto result = recovery.recover();
31+
ASSERT_EQ(result.recovered_indices.size(), 0);
32+
ASSERT_EQ(result.result, SUCCESS);
33+
recovery.update(5);
34+
ASSERT_EQ(recovery.recover().recovered_indices.size(), 1);
35+
ASSERT_EQ(recovery.recover().recovered_indices[0], 5);
36+
std::unordered_set<vec_t> inserted;
37+
for (vec_t i = 0; i < 8; i++) {
38+
recovery.update(i);
39+
inserted.insert(i);
40+
}
41+
inserted.erase(5); // 5 was already inserted
42+
auto result2 = recovery.recover();
43+
ASSERT_EQ(result2.result, SUCCESS);
44+
ASSERT_EQ(result2.recovered_indices.size(), 7);
45+
std::unordered_set<vec_t> recovered2(result2.recovered_indices.begin(), result2.recovered_indices.end());
46+
ASSERT_EQ(recovered2, inserted);
47+
}
48+
2849
TEST(RecoveryTestSuite, RecoveryMediumSize) {
2950
SparseRecovery recovery(1 << 20, 1 << 10, 1, get_seed());
3051
auto result = recovery.recover();

0 commit comments

Comments
 (0)