ImmutableMapTest.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //===----------- ImmutableMapTest.cpp - ImmutableMap unit tests ------------===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. #include "gtest/gtest.h"
  10. #include "llvm/ADT/ImmutableMap.h"
  11. using namespace llvm;
  12. namespace {
  13. TEST(ImmutableMapTest, EmptyIntMapTest) {
  14. ImmutableMap<int, int>::Factory f;
  15. EXPECT_TRUE(f.getEmptyMap() == f.getEmptyMap());
  16. EXPECT_FALSE(f.getEmptyMap() != f.getEmptyMap());
  17. EXPECT_TRUE(f.getEmptyMap().isEmpty());
  18. ImmutableMap<int, int> S = f.getEmptyMap();
  19. EXPECT_EQ(0u, S.getHeight());
  20. EXPECT_TRUE(S.begin() == S.end());
  21. EXPECT_FALSE(S.begin() != S.end());
  22. }
  23. TEST(ImmutableMapTest, MultiElemIntMapTest) {
  24. ImmutableMap<int, int>::Factory f;
  25. ImmutableMap<int, int> S = f.getEmptyMap();
  26. ImmutableMap<int, int> S2 = f.add(f.add(f.add(S, 3, 10), 4, 11), 5, 12);
  27. EXPECT_TRUE(S.isEmpty());
  28. EXPECT_FALSE(S2.isEmpty());
  29. EXPECT_EQ(nullptr, S.lookup(3));
  30. EXPECT_EQ(nullptr, S.lookup(9));
  31. EXPECT_EQ(10, *S2.lookup(3));
  32. EXPECT_EQ(11, *S2.lookup(4));
  33. EXPECT_EQ(12, *S2.lookup(5));
  34. EXPECT_EQ(5, S2.getMaxElement()->first);
  35. EXPECT_EQ(3U, S2.getHeight());
  36. }
  37. }