Co-authored-by: Tim Sylvester <tim@wetdogweather.com> Co-authored-by: Bart Louwers <bart.louwers@gmail.com>
50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#include <mbgl/test/util.hpp>
|
|
|
|
#include <mbgl/util/string_indexer.hpp>
|
|
|
|
#include <cstdint>
|
|
|
|
using namespace mbgl;
|
|
|
|
TEST(StringIndexer, AddStrings) {
|
|
StringIndexer::clear();
|
|
EXPECT_EQ(StringIndexer::size(), 0);
|
|
|
|
const auto id1 = StringIndexer::get("test string1");
|
|
EXPECT_EQ(id1, 0);
|
|
EXPECT_EQ(StringIndexer::size(), 1);
|
|
|
|
const auto id2 = StringIndexer::get("test string2");
|
|
EXPECT_EQ(id2, 1);
|
|
EXPECT_EQ(StringIndexer::size(), 2);
|
|
}
|
|
|
|
TEST(StringIndexer, GetString) {
|
|
StringIndexer::clear();
|
|
EXPECT_EQ(StringIndexer::size(), 0);
|
|
|
|
constexpr auto str = "test string1";
|
|
|
|
const auto id1 = StringIndexer::get(str);
|
|
EXPECT_EQ(id1, 0);
|
|
EXPECT_EQ(StringIndexer::size(), 1);
|
|
|
|
const std::string str1 = StringIndexer::get(id1);
|
|
EXPECT_EQ(str, str1);
|
|
|
|
const auto str2 = str;
|
|
const auto id2 = StringIndexer::get(str2);
|
|
EXPECT_EQ(id1, id2);
|
|
}
|
|
|
|
TEST(StringIndexer, GetOOBIdentity) {
|
|
StringIndexer::clear();
|
|
EXPECT_EQ(StringIndexer::size(), 0);
|
|
|
|
std::string str;
|
|
EXPECT_DEATH_IF_SUPPORTED(str = StringIndexer::get(42), "id < identityToString.size()");
|
|
EXPECT_TRUE(str.empty());
|
|
EXPECT_DEATH_IF_SUPPORTED(str = StringIndexer::get(-1), "id < identityToString.size()");
|
|
EXPECT_TRUE(str.empty());
|
|
}
|