sparse_set.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include <gtest/gtest.h>
  2. #include <sparse_set.hpp>
  3. TEST(SparseSetNoType, Functionalities) {
  4. using SparseSet = entt::SparseSet<unsigned int>;
  5. SparseSet set;
  6. ASSERT_TRUE(set.empty());
  7. ASSERT_EQ(set.size(), 0u);
  8. ASSERT_EQ(set.begin(), set.end());
  9. ASSERT_FALSE(set.has(0));
  10. ASSERT_FALSE(set.has(42));
  11. ASSERT_EQ(set.construct(42), 0u);
  12. ASSERT_FALSE(set.empty());
  13. ASSERT_EQ(set.size(), 1u);
  14. ASSERT_NE(set.begin(), set.end());
  15. ASSERT_FALSE(set.has(0));
  16. ASSERT_TRUE(set.has(42));
  17. auto begin = set.begin();
  18. ASSERT_EQ(*begin, 42u);
  19. ASSERT_EQ(++begin, set.end());
  20. ASSERT_EQ(set.get(42), 0u);
  21. ASSERT_EQ(set.destroy(42), 0u);
  22. ASSERT_TRUE(set.empty());
  23. ASSERT_EQ(set.size(), 0u);
  24. ASSERT_EQ(set.begin(), set.end());
  25. ASSERT_FALSE(set.has(0));
  26. ASSERT_FALSE(set.has(42));
  27. ASSERT_EQ(set.construct(42), 0u);
  28. set.reset();
  29. ASSERT_TRUE(set.empty());
  30. ASSERT_EQ(set.size(), 0u);
  31. ASSERT_EQ(set.begin(), set.end());
  32. ASSERT_FALSE(set.has(0));
  33. ASSERT_FALSE(set.has(42));
  34. }
  35. TEST(SparseSetWithType, Functionalities) {
  36. using SparseSet = entt::SparseSet<unsigned int, int>;
  37. SparseSet set;
  38. ASSERT_TRUE(set.empty());
  39. ASSERT_EQ(set.size(), 0u);
  40. ASSERT_EQ(set.begin(), set.end());
  41. ASSERT_FALSE(set.has(0));
  42. ASSERT_FALSE(set.has(42));
  43. ASSERT_EQ(set.construct(42, 3), 3);
  44. ASSERT_FALSE(set.empty());
  45. ASSERT_EQ(set.size(), 1u);
  46. ASSERT_NE(set.begin(), set.end());
  47. ASSERT_FALSE(set.has(0));
  48. ASSERT_TRUE(set.has(42));
  49. auto begin = set.begin();
  50. ASSERT_EQ(*begin, 42u);
  51. ASSERT_EQ(set.get(42), 3);
  52. ASSERT_EQ(++begin, set.end());
  53. set.destroy(42);
  54. ASSERT_TRUE(set.empty());
  55. ASSERT_EQ(set.size(), 0u);
  56. ASSERT_EQ(set.begin(), set.end());
  57. ASSERT_FALSE(set.has(0));
  58. ASSERT_FALSE(set.has(42));
  59. ASSERT_EQ(set.construct(42, 12), 12);
  60. set.reset();
  61. ASSERT_TRUE(set.empty());
  62. ASSERT_EQ(set.size(), 0u);
  63. ASSERT_EQ(set.begin(), set.end());
  64. ASSERT_FALSE(set.has(0));
  65. ASSERT_FALSE(set.has(42));
  66. }