Просмотр исходного кода

test: iterator concepts workarounds

skypjack 1 месяц назад
Родитель
Сommit
f22c7d931b
2 измененных файлов с 16 добавлено и 0 удалено
  1. 1 0
      test/CMakeLists.txt
  2. 15 0
      test/entt/stl/iterator.cpp

+ 1 - 0
test/CMakeLists.txt

@@ -367,6 +367,7 @@ SETUP_BASIC_TEST(
     NAME stl
     SOURCES
         entt/stl/functional.cpp
+        entt/stl/iterator.cpp
         entt/stl/memory.cpp
     DEFS ENTT_USE_STL
 )

+ 15 - 0
test/entt/stl/iterator.cpp

@@ -0,0 +1,15 @@
+#include <gtest/gtest.h>
+#include <entt/entity/sparse_set.hpp>
+#include <entt/stl/iterator.hpp>
+
+TEST(Iterator, Concepts) {
+    using iterator = typename entt::sparse_set::iterator;
+
+    ASSERT_TRUE(entt::stl::bidirectional_iterator<iterator>);
+    ASSERT_TRUE(entt::stl::forward_iterator<iterator>);
+    ASSERT_TRUE(entt::stl::input_iterator<iterator>);
+    ASSERT_TRUE(entt::stl::input_or_output_iterator<iterator>);
+    ASSERT_FALSE((entt::stl::output_iterator<iterator, entt::entity>));
+    ASSERT_TRUE(entt::stl::random_access_iterator<iterator>);
+    ASSERT_TRUE((entt::stl::sentinel_for<iterator, iterator>));
+}