Przeglądaj źródła

test: code coverage

Michele Caini 3 lat temu
rodzic
commit
c38c1454b4
1 zmienionych plików z 24 dodań i 3 usunięć
  1. 24 3
      test/entt/meta/meta_container.cpp

+ 24 - 3
test/entt/meta/meta_container.cpp

@@ -122,6 +122,7 @@ TEST_F(MetaContainer, StdVector) {
     std::vector<int> vec{};
     auto any = entt::forward_as_meta(vec);
     auto view = any.as_sequence_container();
+    auto cview = std::as_const(any).as_sequence_container();
 
     ASSERT_TRUE(view);
     ASSERT_EQ(view.value_type(), entt::resolve<int>());
@@ -149,7 +150,7 @@ TEST_F(MetaContainer, StdVector) {
     ASSERT_EQ(view.begin()->cast<int>(), 0);
     ASSERT_EQ((++view.begin())->cast<int>(), 1);
 
-    ret = view.insert(view.end(), 42);
+    ret = view.insert(cview.end(), 42);
 
     ASSERT_TRUE(ret);
     ASSERT_EQ(*ret, 42);
@@ -161,6 +162,12 @@ TEST_F(MetaContainer, StdVector) {
     ASSERT_EQ(view.size(), 5u);
     ASSERT_EQ(ret->cast<int>(), 1);
 
+    ret = view.erase(cview.begin());
+
+    ASSERT_TRUE(ret);
+    ASSERT_EQ(view.size(), 4u);
+    ASSERT_EQ(ret->cast<int>(), 2);
+
     ASSERT_TRUE(view.clear());
     ASSERT_EQ(view.size(), 0u);
 }
@@ -210,6 +217,7 @@ TEST_F(MetaContainer, StdList) {
     std::list<int> list{};
     auto any = entt::forward_as_meta(list);
     auto view = any.as_sequence_container();
+    auto cview = std::as_const(any).as_sequence_container();
 
     ASSERT_TRUE(view);
     ASSERT_EQ(view.value_type(), entt::resolve<int>());
@@ -237,7 +245,7 @@ TEST_F(MetaContainer, StdList) {
     ASSERT_EQ(view.begin()->cast<int>(), 0);
     ASSERT_EQ((++view.begin())->cast<int>(), 1);
 
-    ret = view.insert(view.end(), 42);
+    ret = view.insert(cview.end(), 42);
 
     ASSERT_TRUE(ret);
     ASSERT_EQ(*ret, 42);
@@ -249,6 +257,12 @@ TEST_F(MetaContainer, StdList) {
     ASSERT_EQ(view.size(), 5u);
     ASSERT_EQ(ret->cast<int>(), 1);
 
+    ret = view.erase(cview.begin());
+
+    ASSERT_TRUE(ret);
+    ASSERT_EQ(view.size(), 4u);
+    ASSERT_EQ(ret->cast<int>(), 2);
+
     ASSERT_TRUE(view.clear());
     ASSERT_EQ(view.size(), 0u);
 }
@@ -257,6 +271,7 @@ TEST_F(MetaContainer, StdDeque) {
     std::deque<int> deque{};
     auto any = entt::forward_as_meta(deque);
     auto view = any.as_sequence_container();
+    auto cview = std::as_const(any).as_sequence_container();
 
     ASSERT_TRUE(view);
     ASSERT_EQ(view.value_type(), entt::resolve<int>());
@@ -284,7 +299,7 @@ TEST_F(MetaContainer, StdDeque) {
     ASSERT_EQ(view.begin()->cast<int>(), 0);
     ASSERT_EQ((++view.begin())->cast<int>(), 1);
 
-    ret = view.insert(view.end(), 42);
+    ret = view.insert(cview.end(), 42);
 
     ASSERT_TRUE(ret);
     ASSERT_EQ(*ret, 42);
@@ -296,6 +311,12 @@ TEST_F(MetaContainer, StdDeque) {
     ASSERT_EQ(view.size(), 5u);
     ASSERT_EQ(ret->cast<int>(), 1);
 
+    ret = view.erase(cview.begin());
+
+    ASSERT_TRUE(ret);
+    ASSERT_EQ(view.size(), 4u);
+    ASSERT_EQ(ret->cast<int>(), 2);
+
     ASSERT_TRUE(view.clear());
     ASSERT_EQ(view.size(), 0u);
 }