|
@@ -13,10 +13,9 @@
|
|
|
#include <entt/meta/meta.hpp>
|
|
#include <entt/meta/meta.hpp>
|
|
|
#include <entt/meta/resolve.hpp>
|
|
#include <entt/meta/resolve.hpp>
|
|
|
#include "../common/config.h"
|
|
#include "../common/config.h"
|
|
|
|
|
+#include "../common/empty.h"
|
|
|
#include "../common/non_default_constructible.h"
|
|
#include "../common/non_default_constructible.h"
|
|
|
|
|
|
|
|
-struct invalid {};
|
|
|
|
|
-
|
|
|
|
|
TEST(MetaContainer, Invalid) {
|
|
TEST(MetaContainer, Invalid) {
|
|
|
ASSERT_FALSE(entt::meta_any{42}.as_sequence_container());
|
|
ASSERT_FALSE(entt::meta_any{42}.as_sequence_container());
|
|
|
ASSERT_FALSE(entt::meta_any{42}.as_associative_container());
|
|
ASSERT_FALSE(entt::meta_any{42}.as_associative_container());
|
|
@@ -90,7 +89,7 @@ TEST(SequenceContainer, StdVector) {
|
|
|
auto ret = view.insert(it, 0);
|
|
auto ret = view.insert(it, 0);
|
|
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(ret, test::empty{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
@@ -150,7 +149,7 @@ TEST(SequenceContainer, StdVectorBool) {
|
|
|
auto ret = view.insert(it, true);
|
|
auto ret = view.insert(it, true);
|
|
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(ret, test::empty{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, false));
|
|
ASSERT_TRUE(view.insert(++ret, false));
|
|
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
@@ -236,7 +235,7 @@ TEST(SequenceContainer, StdList) {
|
|
|
auto ret = view.insert(it, 0);
|
|
auto ret = view.insert(it, 0);
|
|
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(ret, test::empty{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
@@ -291,7 +290,7 @@ TEST(SequenceContainer, StdDeque) {
|
|
|
auto ret = view.insert(it, 0);
|
|
auto ret = view.insert(it, 0);
|
|
|
|
|
|
|
|
ASSERT_TRUE(ret);
|
|
ASSERT_TRUE(ret);
|
|
|
- ASSERT_FALSE(view.insert(ret, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(ret, test::empty{}));
|
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
ASSERT_TRUE(view.insert(++ret, 1.));
|
|
|
|
|
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
@@ -462,8 +461,8 @@ TEST(AssociativeContainer, StdMap) {
|
|
|
|
|
|
|
|
ASSERT_EQ(view.find(3)->second.cast<char>(), 'd');
|
|
ASSERT_EQ(view.find(3)->second.cast<char>(), 'd');
|
|
|
|
|
|
|
|
- ASSERT_FALSE(view.insert(invalid{}, 'a'));
|
|
|
|
|
- ASSERT_FALSE(view.insert(1, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(test::empty{}, 'a'));
|
|
|
|
|
+ ASSERT_FALSE(view.insert(1, test::empty{}));
|
|
|
|
|
|
|
|
ASSERT_TRUE(view.insert(0, 'a'));
|
|
ASSERT_TRUE(view.insert(0, 'a'));
|
|
|
ASSERT_TRUE(view.insert(1., static_cast<int>('b')));
|
|
ASSERT_TRUE(view.insert(1., static_cast<int>('b')));
|
|
@@ -472,8 +471,8 @@ TEST(AssociativeContainer, StdMap) {
|
|
|
ASSERT_EQ(view.find(0)->second.cast<char>(), 'a');
|
|
ASSERT_EQ(view.find(0)->second.cast<char>(), 'a');
|
|
|
ASSERT_EQ(view.find(1.)->second.cast<char>(), 'b');
|
|
ASSERT_EQ(view.find(1.)->second.cast<char>(), 'b');
|
|
|
|
|
|
|
|
- ASSERT_EQ(view.erase(invalid{}), 0u);
|
|
|
|
|
- ASSERT_FALSE(view.find(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_EQ(view.erase(test::empty{}), 0u);
|
|
|
|
|
+ ASSERT_FALSE(view.find(test::empty{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
|
|
|
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
@@ -506,7 +505,7 @@ TEST(AssociativeContainer, StdSet) {
|
|
|
|
|
|
|
|
ASSERT_EQ(view.find(3)->first.cast<int>(), 3);
|
|
ASSERT_EQ(view.find(3)->first.cast<int>(), 3);
|
|
|
|
|
|
|
|
- ASSERT_FALSE(view.insert(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(test::empty{}));
|
|
|
|
|
|
|
|
ASSERT_TRUE(view.insert(.0));
|
|
ASSERT_TRUE(view.insert(.0));
|
|
|
ASSERT_TRUE(view.insert(1));
|
|
ASSERT_TRUE(view.insert(1));
|
|
@@ -515,8 +514,8 @@ TEST(AssociativeContainer, StdSet) {
|
|
|
ASSERT_EQ(view.find(0)->first.cast<int>(), 0);
|
|
ASSERT_EQ(view.find(0)->first.cast<int>(), 0);
|
|
|
ASSERT_EQ(view.find(1.)->first.cast<int>(), 1);
|
|
ASSERT_EQ(view.find(1.)->first.cast<int>(), 1);
|
|
|
|
|
|
|
|
- ASSERT_EQ(view.erase(invalid{}), 0u);
|
|
|
|
|
- ASSERT_FALSE(view.find(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_EQ(view.erase(test::empty{}), 0u);
|
|
|
|
|
+ ASSERT_FALSE(view.find(test::empty{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
|
|
|
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
@@ -553,8 +552,8 @@ TEST(AssociativeContainer, DenseMap) {
|
|
|
|
|
|
|
|
ASSERT_EQ(view.find(3)->second.cast<char>(), 'd');
|
|
ASSERT_EQ(view.find(3)->second.cast<char>(), 'd');
|
|
|
|
|
|
|
|
- ASSERT_FALSE(view.insert(invalid{}, 'a'));
|
|
|
|
|
- ASSERT_FALSE(view.insert(1, invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(test::empty{}, 'a'));
|
|
|
|
|
+ ASSERT_FALSE(view.insert(1, test::empty{}));
|
|
|
|
|
|
|
|
ASSERT_TRUE(view.insert(0, 'a'));
|
|
ASSERT_TRUE(view.insert(0, 'a'));
|
|
|
ASSERT_TRUE(view.insert(1., static_cast<int>('b')));
|
|
ASSERT_TRUE(view.insert(1., static_cast<int>('b')));
|
|
@@ -563,8 +562,8 @@ TEST(AssociativeContainer, DenseMap) {
|
|
|
ASSERT_EQ(view.find(0)->second.cast<char>(), 'a');
|
|
ASSERT_EQ(view.find(0)->second.cast<char>(), 'a');
|
|
|
ASSERT_EQ(view.find(1.)->second.cast<char>(), 'b');
|
|
ASSERT_EQ(view.find(1.)->second.cast<char>(), 'b');
|
|
|
|
|
|
|
|
- ASSERT_EQ(view.erase(invalid{}), 0u);
|
|
|
|
|
- ASSERT_FALSE(view.find(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_EQ(view.erase(test::empty{}), 0u);
|
|
|
|
|
+ ASSERT_FALSE(view.find(test::empty{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
|
|
|
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
@@ -601,7 +600,7 @@ TEST(AssociativeContainer, DenseSet) {
|
|
|
|
|
|
|
|
ASSERT_EQ(view.find(3)->first.cast<int>(), 3);
|
|
ASSERT_EQ(view.find(3)->first.cast<int>(), 3);
|
|
|
|
|
|
|
|
- ASSERT_FALSE(view.insert(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_FALSE(view.insert(test::empty{}));
|
|
|
|
|
|
|
|
ASSERT_TRUE(view.insert(.0));
|
|
ASSERT_TRUE(view.insert(.0));
|
|
|
ASSERT_TRUE(view.insert(1));
|
|
ASSERT_TRUE(view.insert(1));
|
|
@@ -610,8 +609,8 @@ TEST(AssociativeContainer, DenseSet) {
|
|
|
ASSERT_EQ(view.find(0)->first.cast<int>(), 0);
|
|
ASSERT_EQ(view.find(0)->first.cast<int>(), 0);
|
|
|
ASSERT_EQ(view.find(1.)->first.cast<int>(), 1);
|
|
ASSERT_EQ(view.find(1.)->first.cast<int>(), 1);
|
|
|
|
|
|
|
|
- ASSERT_EQ(view.erase(invalid{}), 0u);
|
|
|
|
|
- ASSERT_FALSE(view.find(invalid{}));
|
|
|
|
|
|
|
+ ASSERT_EQ(view.erase(test::empty{}), 0u);
|
|
|
|
|
+ ASSERT_FALSE(view.find(test::empty{}));
|
|
|
ASSERT_EQ(view.size(), 5u);
|
|
ASSERT_EQ(view.size(), 5u);
|
|
|
|
|
|
|
|
ASSERT_EQ(view.erase(0), 1u);
|
|
ASSERT_EQ(view.erase(0), 1u);
|