got down to the MDB_DUP... flags, some more tests, some docs
This commit is contained in:
parent
180c40370c
commit
f00f017b16
2 changed files with 73 additions and 13 deletions
|
@ -1,5 +1,7 @@
|
|||
#include <gtest/gtest.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
#include "base.h"
|
||||
#include "storage.h"
|
||||
|
||||
|
@ -10,7 +12,8 @@ protected:
|
|||
tu1(db->getStorage<int16_t, uint16_t>("sameSizeInts")),
|
||||
tu2(db->getStorage<std::string, int8_t>("stringInt")),
|
||||
tu3(db->getStorage<float, float>("floatFloat")),
|
||||
tu4(db->getStorage<uint16_t, double>("intDouble")) {}
|
||||
tu4(db->getStorage<uint16_t, double>("intDouble")),
|
||||
tu5(db->getStorage<float, int64_t>("floatLong")) {}
|
||||
|
||||
~DuplicatesTest() {}
|
||||
|
||||
|
@ -18,6 +21,7 @@ protected:
|
|||
uint32_t getTU2Flags() const {return tu2->flags();}
|
||||
uint32_t getTU3Flags() const {return tu3->flags();}
|
||||
uint32_t getTU4Flags() const {return tu4->flags();}
|
||||
uint32_t getTU5Flags() const {return tu5->flags();}
|
||||
|
||||
static void SetUpTestSuite() {
|
||||
if (db == nullptr) {
|
||||
|
@ -26,6 +30,7 @@ protected:
|
|||
db->addStorage<std::string, int8_t>("stringInt", true);
|
||||
db->addStorage<float, float>("floatFloat", true);
|
||||
db->addStorage<uint16_t, double>("intDouble", true);
|
||||
db->addStorage<float, int64_t>("floatLong", true);
|
||||
|
||||
db->open();
|
||||
}
|
||||
|
@ -44,6 +49,7 @@ protected:
|
|||
LMDBAL::Storage<std::string, int8_t>* tu2;
|
||||
LMDBAL::Storage<float, float>* tu3;
|
||||
LMDBAL::Storage<uint16_t, double>* tu4;
|
||||
LMDBAL::Storage<float, int64_t>* tu5;
|
||||
};
|
||||
|
||||
LMDBAL::Base* DuplicatesTest::db = nullptr;
|
||||
|
@ -53,6 +59,7 @@ TEST_F(DuplicatesTest, FlagsUnique) {
|
|||
uint32_t tu2Flags = getTU2Flags();
|
||||
uint32_t tu3Flags = getTU3Flags();
|
||||
uint32_t tu4Flags = getTU4Flags();
|
||||
uint32_t tu5Flags = getTU5Flags();
|
||||
|
||||
EXPECT_TRUE(tu1Flags & MDB_INTEGERKEY);
|
||||
EXPECT_TRUE(tu1Flags & MDB_DUPSORT);
|
||||
|
@ -61,8 +68,8 @@ TEST_F(DuplicatesTest, FlagsUnique) {
|
|||
|
||||
EXPECT_FALSE(tu2Flags & MDB_INTEGERKEY);
|
||||
EXPECT_TRUE(tu2Flags & MDB_DUPSORT);
|
||||
EXPECT_FALSE(tu2Flags & MDB_DUPFIXED);
|
||||
EXPECT_TRUE(tu2Flags & MDB_INTEGERDUP);
|
||||
EXPECT_TRUE(tu2Flags & MDB_DUPFIXED);
|
||||
EXPECT_FALSE(tu2Flags & MDB_INTEGERDUP);
|
||||
|
||||
EXPECT_FALSE(tu3Flags & MDB_INTEGERKEY);
|
||||
EXPECT_TRUE(tu3Flags & MDB_DUPSORT);
|
||||
|
@ -73,6 +80,11 @@ TEST_F(DuplicatesTest, FlagsUnique) {
|
|||
EXPECT_TRUE(tu4Flags & MDB_DUPSORT);
|
||||
EXPECT_TRUE(tu4Flags & MDB_DUPFIXED);
|
||||
EXPECT_FALSE(tu4Flags & MDB_INTEGERDUP);
|
||||
|
||||
EXPECT_FALSE(tu5Flags & MDB_INTEGERKEY);
|
||||
EXPECT_TRUE(tu5Flags & MDB_DUPSORT);
|
||||
EXPECT_TRUE(tu5Flags & MDB_DUPFIXED);
|
||||
EXPECT_TRUE(tu5Flags & MDB_INTEGERDUP);
|
||||
}
|
||||
|
||||
TEST_F(DuplicatesTest, AddingPairUnique) {
|
||||
|
@ -131,4 +143,25 @@ TEST_F(DuplicatesTest, AddingPairUnique) {
|
|||
EXPECT_EQ(tu4->count(), 4);
|
||||
EXPECT_EQ(tu4->getRecord(172), 0.00000001);
|
||||
EXPECT_EQ(tu4->getRecord(327), 463.28348); //since they are not int's they are compared sort of lexicographically
|
||||
|
||||
tu5->addRecord(-84.7, 45656753);
|
||||
EXPECT_THROW(tu5->addRecord(-84.7, 45656753), LMDBAL::Exist);
|
||||
tu5->addRecord(-84.7, 45656754);
|
||||
int64_t intMax = std::numeric_limits<int32_t>::max();
|
||||
int64_t intMin = std::numeric_limits<int32_t>::min();
|
||||
int64_t longMax = std::numeric_limits<int64_t>::max();
|
||||
int64_t longMin = std::numeric_limits<int64_t>::min();
|
||||
|
||||
tu5->addRecord(52.87, intMax);
|
||||
EXPECT_THROW(tu5->addRecord(52.87, intMax), LMDBAL::Exist);
|
||||
tu5->addRecord(52.87, intMin);
|
||||
EXPECT_THROW(tu5->addRecord(52.87, intMin), LMDBAL::Exist);
|
||||
tu5->addRecord(52.87, longMax);
|
||||
EXPECT_THROW(tu5->addRecord(52.87, longMax), LMDBAL::Exist);
|
||||
tu5->addRecord(52.87, longMin);
|
||||
EXPECT_THROW(tu5->addRecord(52.87, longMin), LMDBAL::Exist);
|
||||
|
||||
EXPECT_EQ(tu5->count(), 6);
|
||||
EXPECT_EQ(tu5->getRecord(-84.7), 45656753);
|
||||
EXPECT_EQ(tu5->getRecord(52.87), intMax);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue