|
|
@@ -5,17 +5,17 @@
|
|
|
#include <entt/meta/meta.hpp>
|
|
|
#include <entt/meta/resolve.hpp>
|
|
|
|
|
|
+struct invalid_type {};
|
|
|
+
|
|
|
struct MetaContainer: ::testing::Test {
|
|
|
void SetUp() override {
|
|
|
using namespace entt::literals;
|
|
|
|
|
|
entt::meta<double>()
|
|
|
- .type("double"_hs)
|
|
|
- .conv<int>();
|
|
|
+ .type("double"_hs);
|
|
|
|
|
|
entt::meta<int>()
|
|
|
- .type("int"_hs)
|
|
|
- .conv<char>();
|
|
|
+ .type("int"_hs);
|
|
|
}
|
|
|
|
|
|
void TearDown() override {
|
|
|
@@ -132,7 +132,7 @@ TEST_F(MetaContainer, StdVector) {
|
|
|
auto ret = view.insert(it, 0);
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, 'c'));
|
|
|
+ ASSERT_FALSE(view.insert(ret, invalid_type{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
@@ -175,7 +175,7 @@ TEST_F(MetaContainer, StdArray) {
|
|
|
|
|
|
ASSERT_FALSE(ret);
|
|
|
ASSERT_FALSE(view.insert(it, 'c'));
|
|
|
- ASSERT_FALSE(view.insert(++it, 1));
|
|
|
+ ASSERT_FALSE(view.insert(++it, 1.));
|
|
|
|
|
|
ASSERT_EQ(view.size(), 3u);
|
|
|
ASSERT_EQ((*view.begin()).cast<int>(), 2);
|
|
|
@@ -209,8 +209,8 @@ TEST_F(MetaContainer, StdMap) {
|
|
|
|
|
|
ASSERT_EQ((*view.find(3)).second.cast<char>(), 'd');
|
|
|
|
|
|
- ASSERT_FALSE(view.insert('a', 'a'));
|
|
|
- ASSERT_FALSE(view.insert(1, 1.));
|
|
|
+ ASSERT_FALSE(view.insert(invalid_type{}, 'a'));
|
|
|
+ ASSERT_FALSE(view.insert(1, invalid_type{}));
|
|
|
|
|
|
ASSERT_TRUE(view.insert(0, 'a'));
|
|
|
ASSERT_TRUE(view.insert(1., static_cast<int>('b')));
|
|
|
@@ -219,17 +219,17 @@ TEST_F(MetaContainer, StdMap) {
|
|
|
ASSERT_EQ((*view.find(0)).second.cast<char>(), 'a');
|
|
|
ASSERT_EQ((*view.find(1.)).second.cast<char>(), 'b');
|
|
|
|
|
|
- ASSERT_FALSE(view.erase('c'));
|
|
|
+ ASSERT_FALSE(view.erase(invalid_type{}));
|
|
|
+ ASSERT_FALSE(view.find(invalid_type{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
- ASSERT_FALSE(view.find('c'));
|
|
|
|
|
|
ASSERT_TRUE(view.erase(0));
|
|
|
ASSERT_EQ(view.size(), 4u);
|
|
|
ASSERT_EQ(view.find(0), view.end());
|
|
|
|
|
|
- (*view.find(1)).second.cast<char &>() = 'f';
|
|
|
+ (*view.find(1.)).second.cast<char &>() = 'f';
|
|
|
|
|
|
- ASSERT_EQ((*view.find(1)).second.cast<char>(), 'f');
|
|
|
+ ASSERT_EQ((*view.find(1.f)).second.cast<char>(), 'f');
|
|
|
|
|
|
ASSERT_TRUE(view.erase(1.));
|
|
|
ASSERT_TRUE(view.clear());
|
|
|
@@ -253,26 +253,26 @@ TEST_F(MetaContainer, StdSet) {
|
|
|
|
|
|
ASSERT_EQ((*view.find(3)).first.cast<int>(), 3);
|
|
|
|
|
|
- ASSERT_FALSE(view.insert('0'));
|
|
|
+ ASSERT_FALSE(view.insert(invalid_type{}));
|
|
|
|
|
|
- ASSERT_TRUE(view.insert(0));
|
|
|
+ ASSERT_TRUE(view.insert(.0));
|
|
|
ASSERT_TRUE(view.insert(1));
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
ASSERT_EQ((*view.find(0)).first.cast<int>(), 0);
|
|
|
ASSERT_EQ((*view.find(1.)).first.cast<int>(), 1);
|
|
|
|
|
|
- ASSERT_FALSE(view.erase('c'));
|
|
|
+ ASSERT_FALSE(view.erase(invalid_type{}));
|
|
|
+ ASSERT_FALSE(view.find(invalid_type{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
- ASSERT_FALSE(view.find('c'));
|
|
|
|
|
|
ASSERT_TRUE(view.erase(0));
|
|
|
ASSERT_EQ(view.size(), 4u);
|
|
|
ASSERT_EQ(view.find(0), view.end());
|
|
|
|
|
|
- ASSERT_EQ((*view.find(1)).first.try_cast<int>(), nullptr);
|
|
|
- ASSERT_NE((*view.find(1)).first.try_cast<const int>(), nullptr);
|
|
|
- ASSERT_EQ((*view.find(1)).first.cast<const int &>(), 1);
|
|
|
+ ASSERT_EQ((*view.find(1.f)).first.try_cast<int>(), nullptr);
|
|
|
+ ASSERT_NE((*view.find(1.)).first.try_cast<const int>(), nullptr);
|
|
|
+ ASSERT_EQ((*view.find(true)).first.cast<const int &>(), 1);
|
|
|
|
|
|
ASSERT_TRUE(view.erase(1.));
|
|
|
ASSERT_TRUE(view.clear());
|
|
|
@@ -478,7 +478,7 @@ TEST_F(MetaContainer, StdVectorBool) {
|
|
|
auto ret = view.insert(it, true);
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, 'c'));
|
|
|
+ ASSERT_FALSE(view.insert(ret, invalid_type{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, false));
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|