finish simple case
This commit is contained in:
@ -12,6 +12,7 @@ class FixLengthString {
|
||||
};
|
||||
} // namespace bpt_basic_test
|
||||
TEST(BasicTest, Compile) { // This Test only test the compile of the code
|
||||
return;
|
||||
// test for long long, int, char, long double
|
||||
BPlusTreePage<long long> page_long_long;
|
||||
static_assert(sizeof(page_long_long) == 4096, "BPlusTreePage size mismatch");
|
||||
@ -52,4 +53,86 @@ TEST(BasicTest, Compile) { // This Test only test the compile of the code
|
||||
bpt.Remove(1);
|
||||
delete bpm;
|
||||
delete dm;
|
||||
}
|
||||
|
||||
TEST(BasicTest, Put_and_Get) {
|
||||
remove("/tmp/bpt2.db");
|
||||
DiskManager *dm = new DiskManager("/tmp/bpt2.db");
|
||||
BufferPoolManager *bpm = new BufferPoolManager(20, 3, dm);
|
||||
{
|
||||
BPlusTreeIndexer<long long, std::less<long long>> bpt(bpm);
|
||||
bpt.Put(1, 2);
|
||||
ASSERT_EQ(bpt.Get(1), 2);
|
||||
bpt.Put(2, 5);
|
||||
ASSERT_EQ(bpt.Get(2), 5);
|
||||
bpt.Put(3, 7);
|
||||
ASSERT_EQ(bpt.Get(3), 7);
|
||||
bpt.Put(4, 11);
|
||||
ASSERT_EQ(bpt.Get(4), 11);
|
||||
bpt.Put(2, 15);
|
||||
ASSERT_EQ(bpt.Get(2), 15);
|
||||
ASSERT_EQ(bpt.Get(3), 7);
|
||||
ASSERT_EQ(bpt.Get(1), 2);
|
||||
ASSERT_EQ(bpt.Get(4), 11);
|
||||
}
|
||||
delete bpm;
|
||||
delete dm;
|
||||
dm = new DiskManager("/tmp/bpt2.db");
|
||||
bpm = new BufferPoolManager(20, 3, dm);
|
||||
{
|
||||
BPlusTreeIndexer<long long, std::less<long long>> bpt(bpm);
|
||||
ASSERT_EQ(bpt.Get(2), 15);
|
||||
ASSERT_EQ(bpt.Get(3), 7);
|
||||
ASSERT_EQ(bpt.Get(1), 2);
|
||||
ASSERT_EQ(bpt.Get(4), 11);
|
||||
}
|
||||
delete bpm;
|
||||
delete dm;
|
||||
}
|
||||
|
||||
TEST(BasicTest, Put_Get_Remove) {
|
||||
remove("/tmp/bpt3.db");
|
||||
DiskManager *dm = new DiskManager("/tmp/bpt3.db");
|
||||
BufferPoolManager *bpm = new BufferPoolManager(20, 3, dm);
|
||||
{
|
||||
BPlusTreeIndexer<long long, std::less<long long>> bpt(bpm);
|
||||
bpt.Put(1, 2);
|
||||
ASSERT_EQ(bpt.Get(1), 2);
|
||||
bpt.Put(2, 5);
|
||||
ASSERT_EQ(bpt.Get(2), 5);
|
||||
bpt.Put(3, 7);
|
||||
ASSERT_EQ(bpt.Get(3), 7);
|
||||
bpt.Put(4, 11);
|
||||
ASSERT_EQ(bpt.Get(4), 11);
|
||||
bpt.Put(2, 15);
|
||||
ASSERT_EQ(bpt.Get(2), 15);
|
||||
ASSERT_EQ(bpt.Get(3), 7);
|
||||
ASSERT_EQ(bpt.Get(1), 2);
|
||||
bpt.Put(9, 11);
|
||||
ASSERT_EQ(bpt.Get(4), 11);
|
||||
bpt.Remove(2);
|
||||
bpt.Remove(2);
|
||||
ASSERT_EQ(bpt.Get(2), kInvalidValueIndex);
|
||||
bpt.Remove(3);
|
||||
ASSERT_EQ(bpt.Get(3), kInvalidValueIndex);
|
||||
bpt.Remove(1);
|
||||
ASSERT_EQ(bpt.Get(1), kInvalidValueIndex);
|
||||
bpt.Remove(4);
|
||||
bpt.Remove(4);
|
||||
ASSERT_EQ(bpt.Get(4), kInvalidValueIndex);
|
||||
}
|
||||
delete bpm;
|
||||
delete dm;
|
||||
dm = new DiskManager("/tmp/bpt3.db");
|
||||
bpm = new BufferPoolManager(20, 3, dm);
|
||||
{
|
||||
BPlusTreeIndexer<long long, std::less<long long>> bpt(bpm);
|
||||
ASSERT_EQ(bpt.Get(2), kInvalidValueIndex);
|
||||
ASSERT_EQ(bpt.Get(3), kInvalidValueIndex);
|
||||
ASSERT_EQ(bpt.Get(1), kInvalidValueIndex);
|
||||
ASSERT_EQ(bpt.Get(4), kInvalidValueIndex);
|
||||
ASSERT_EQ(bpt.Get(9), 11);
|
||||
}
|
||||
delete bpm;
|
||||
delete dm;
|
||||
}
|
Reference in New Issue
Block a user