mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-17 04:24:00 +00:00
IntegersSubsetMapping: removed exclude operation, it will replaced with more universal "diff" operation in next commit.
Changes was separated onto two commits for better readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159200 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -178,178 +178,4 @@ namespace {
|
||||
EXPECT_EQ(CaseIt->second.getItem(0), Range(Int(i * 10), Int(i * 10 + 9)));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(IntegersSubsetTest, ExcludeTest) {
|
||||
std::vector<Range> Ranges;
|
||||
Ranges.reserve(3);
|
||||
|
||||
Mapping TheMapping;
|
||||
|
||||
// Test case
|
||||
// { {0, 4}, {7, 10} {13, 17} }
|
||||
// sub
|
||||
// { {3, 14} }
|
||||
// =
|
||||
// { {0, 2}, {15, 17} }
|
||||
|
||||
Ranges.push_back(Range(Int(0), Int(4)));
|
||||
Ranges.push_back(Range(Int(7), Int(10)));
|
||||
Ranges.push_back(Range(Int(13), Int(17)));
|
||||
|
||||
Subset TheSubset(Ranges);
|
||||
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(3), Int(14)));
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
TheSubset = TheMapping.getCase();
|
||||
|
||||
EXPECT_EQ(TheSubset.getNumItems(), 2ULL);
|
||||
EXPECT_EQ(TheSubset.getItem(0), Range(Int(0), Int(2)));
|
||||
EXPECT_EQ(TheSubset.getItem(1), Range(Int(15), Int(17)));
|
||||
|
||||
// Test case
|
||||
// { {0, 4}, {7, 10} {13, 17} }
|
||||
// sub
|
||||
// { {0, 4}, {13, 17} }
|
||||
// =
|
||||
// { {7, 10 }
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(0), Int(4)));
|
||||
Ranges.push_back(Range(Int(7), Int(10)));
|
||||
Ranges.push_back(Range(Int(13), Int(17)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.clear();
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(0), Int(4)));
|
||||
Ranges.push_back(Range(Int(13), Int(17)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
TheSubset = TheMapping.getCase();
|
||||
|
||||
EXPECT_EQ(TheSubset.getNumItems(), 1ULL);
|
||||
EXPECT_EQ(TheSubset.getItem(0), Range(Int(7), Int(10)));
|
||||
|
||||
// Test case
|
||||
// { {0, 17} }
|
||||
// sub
|
||||
// { {1, 5}, {10, 12}, {15, 16} }
|
||||
// =
|
||||
// { {0}, {6, 9}, {13, 14}, {17} }
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(0), Int(17)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.clear();
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(1), Int(5)));
|
||||
Ranges.push_back(Range(Int(10), Int(12)));
|
||||
Ranges.push_back(Range(Int(15), Int(16)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
TheSubset = TheMapping.getCase();
|
||||
|
||||
EXPECT_EQ(TheSubset.getNumItems(), 4ULL);
|
||||
EXPECT_EQ(TheSubset.getItem(0), Range(Int(0)));
|
||||
EXPECT_EQ(TheSubset.getItem(1), Range(Int(6), Int(9)));
|
||||
EXPECT_EQ(TheSubset.getItem(2), Range(Int(13), Int(14)));
|
||||
EXPECT_EQ(TheSubset.getItem(3), Range(Int(17)));
|
||||
|
||||
// Test case
|
||||
// { {2, 4} }
|
||||
// sub
|
||||
// { {0, 5} }
|
||||
// =
|
||||
// { empty }
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(2), Int(4)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.clear();
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(0), Int(5)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
EXPECT_TRUE(TheMapping.empty());
|
||||
|
||||
// Test case
|
||||
// { {2, 4} }
|
||||
// sub
|
||||
// { {7, 8} }
|
||||
// =
|
||||
// { {2, 4} }
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(2), Int(4)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.clear();
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(7), Int(8)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
TheSubset = TheMapping.getCase();
|
||||
|
||||
EXPECT_EQ(TheSubset.getNumItems(), 1ULL);
|
||||
EXPECT_EQ(TheSubset.getItem(0), Range(Int(2), Int(4)));
|
||||
|
||||
// Test case
|
||||
// { {3, 7} }
|
||||
// sub
|
||||
// { {1, 4} }
|
||||
// =
|
||||
// { {5, 7} }
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(3), Int(7)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.clear();
|
||||
TheMapping.add(TheSubset);
|
||||
|
||||
Ranges.clear();
|
||||
Ranges.push_back(Range(Int(1), Int(4)));
|
||||
|
||||
TheSubset = Subset(Ranges);
|
||||
|
||||
TheMapping.exclude(TheSubset);
|
||||
|
||||
TheSubset = TheMapping.getCase();
|
||||
|
||||
EXPECT_EQ(TheSubset.getNumItems(), 1ULL);
|
||||
EXPECT_EQ(TheSubset.getItem(0), Range(Int(5), Int(7)));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user