@ 261106.8
current
#include "wasm/dwarf-ranges.h"
#include "gtest/gtest.h"

using namespace wasm::Debug;

TEST(DwarfRangesTest, Normalize) {
  DwarfRanges ranges{{8, 10}, {2, 4}, {4, 6}, {3, 5}};

  EXPECT_TRUE(ranges.normalize());
  EXPECT_EQ(ranges.get(), (std::vector<DwarfRange>{{2, 6}, {8, 10}}));
  EXPECT_FALSE(ranges.normalize());
}

TEST(DwarfRangesTest, Add) {
  DwarfRanges ranges{{2, 4}, {8, 10}};
  DwarfRanges added{{4, 8}, {12, 14}};

  EXPECT_TRUE(ranges.add(added));
  EXPECT_EQ(ranges.get(), (std::vector<DwarfRange>{{2, 10}, {12, 14}}));
  EXPECT_FALSE(ranges.add({{4, 8}}));
  EXPECT_FALSE(ranges.add({}));
}

TEST(DwarfRangesTest, Contains) {
  DwarfRanges ranges{{0, 4}, {8, 12}};

  EXPECT_TRUE(ranges.contains({{1, 3}, {9, 12}}));
  EXPECT_TRUE(ranges.contains({}));
  EXPECT_FALSE(ranges.contains({{3, 9}}));
  EXPECT_FALSE(ranges.contains({{12, 13}}));
}

TEST(DwarfRangesTest, Overlaps) {
  DwarfRanges ranges{{0, 4}, {8, 12}};

  EXPECT_TRUE(ranges.overlaps({{3, 5}}));
  EXPECT_TRUE(ranges.overlaps({{10, 14}}));
  EXPECT_FALSE(ranges.overlaps({{4, 8}}));
  EXPECT_FALSE(ranges.overlaps({{12, 14}}));
}