helper.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <gtest/gtest.h>
  2. #include <entt/core/hashed_string.hpp>
  3. #include <entt/entity/helper.hpp>
  4. #include <entt/entity/registry.hpp>
  5. #include <entt/core/type_traits.hpp>
  6. TEST(Helper, AsView) {
  7. entt::registry registry;
  8. const entt::registry cregistry;
  9. ([](entt::view<entt::exclude_t<>, int>) {})(entt::as_view{registry});
  10. ([](entt::view<entt::exclude_t<int>, char, double>) {})(entt::as_view{registry});
  11. ([](entt::view<entt::exclude_t<int>, const char, double>) {})(entt::as_view{registry});
  12. ([](entt::view<entt::exclude_t<int>, const char, const double>) {})(entt::as_view{registry});
  13. }
  14. TEST(Helper, AsGroup) {
  15. entt::registry registry;
  16. const entt::registry cregistry;
  17. ([](entt::group<entt::exclude_t<int>, entt::get_t<char>, double>) {})(entt::as_group{registry});
  18. ([](entt::group<entt::exclude_t<int>, entt::get_t<const char>, double>) {})(entt::as_group{registry});
  19. ([](entt::group<entt::exclude_t<int>, entt::get_t<const char>, const double>) {})(entt::as_group{registry});
  20. }
  21. TEST(Helper, Tag) {
  22. entt::registry registry;
  23. const auto entity = registry.create();
  24. registry.assign<entt::tag<"foobar"_hs>>(entity);
  25. registry.assign<int>(entity, 42);
  26. int counter{};
  27. ASSERT_FALSE(registry.has<entt::tag<"barfoo"_hs>>(entity));
  28. ASSERT_TRUE(registry.has<entt::tag<"foobar"_hs>>(entity));
  29. for(auto entt: registry.view<int, entt::tag<"foobar"_hs>>()) {
  30. (void)entt;
  31. ++counter;
  32. }
  33. ASSERT_NE(counter, 0);
  34. for(auto entt: registry.view<entt::tag<"foobar"_hs>>()) {
  35. (void)entt;
  36. --counter;
  37. }
  38. ASSERT_EQ(counter, 0);
  39. }