aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp')
-rw-r--r--searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp172
1 files changed, 60 insertions, 112 deletions
diff --git a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
index 2379213b87b..ef0fd56840a 100644
--- a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
+++ b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
@@ -56,6 +56,18 @@ bool got_global_filter(Blueprint &b) {
return (static_cast<MyLeaf &>(b)).got_global_filter();
}
+void check_sort_order(IntermediateBlueprint &self, std::vector<Blueprint*> unordered, std::vector<size_t> order) {
+ ASSERT_EQUAL(unordered.size(), order.size());
+ std::vector<Blueprint::UP> children;
+ for (auto *child: unordered) {
+ children.push_back(std::unique_ptr<Blueprint>(child));
+ }
+ self.sort(children);
+ for (size_t i = 0; i < children.size(); ++i) {
+ EXPECT_EQUAL(children[i].get(), unordered[order[i]]);
+ }
+}
+
TEST("test AndNot Blueprint") {
AndNotBlueprint b;
{ // combine
@@ -86,20 +98,12 @@ TEST("test AndNot Blueprint") {
EXPECT_EQUAL(true, got_global_filter(a.getChild(1)));
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(10).create());
- Blueprint::UP c2 = ap(MyLeafSpec(20).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c1.get(), children[0]);
- EXPECT_EQUAL(c3.get(), children[1]);
- EXPECT_EQUAL(c4.get(), children[2]);
- EXPECT_EQUAL(c2.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(10).create(),
+ MyLeafSpec(20).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {0, 2, 3, 1});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -161,20 +165,12 @@ TEST("test And Blueprint") {
EXPECT_EQUAL(true, got_global_filter(a.getChild(1)));
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(20).create());
- Blueprint::UP c2 = ap(MyLeafSpec(40).create());
- Blueprint::UP c3 = ap(MyLeafSpec(10).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c3.get(), children[0]);
- EXPECT_EQUAL(c1.get(), children[1]);
- EXPECT_EQUAL(c4.get(), children[2]);
- EXPECT_EQUAL(c2.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(20).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(30).create()},
+ {2, 0, 3, 1});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -241,20 +237,12 @@ TEST("test Or Blueprint") {
EXPECT_EQUAL(true, got_global_filter(o.getChild(o.childCnt() - 1)));
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(10).create());
- Blueprint::UP c2 = ap(MyLeafSpec(20).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c3.get(), children[0]);
- EXPECT_EQUAL(c4.get(), children[1]);
- EXPECT_EQUAL(c2.get(), children[2]);
- EXPECT_EQUAL(c1.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(10).create(),
+ MyLeafSpec(20).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {2, 3, 1, 0});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -290,20 +278,12 @@ TEST("test Near Blueprint") {
EXPECT_EQUAL(0u, a.exposeFields().size());
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(40).create());
- Blueprint::UP c2 = ap(MyLeafSpec(10).create());
- Blueprint::UP c3 = ap(MyLeafSpec(30).create());
- Blueprint::UP c4 = ap(MyLeafSpec(20).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c2.get(), children[0]);
- EXPECT_EQUAL(c4.get(), children[1]);
- EXPECT_EQUAL(c3.get(), children[2]);
- EXPECT_EQUAL(c1.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(40).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(30).create(),
+ MyLeafSpec(20).create()},
+ {1, 3, 2, 0});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -339,20 +319,12 @@ TEST("test ONear Blueprint") {
EXPECT_EQUAL(0u, a.exposeFields().size());
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(20).create());
- Blueprint::UP c2 = ap(MyLeafSpec(10).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c1.get(), children[0]);
- EXPECT_EQUAL(c2.get(), children[1]);
- EXPECT_EQUAL(c3.get(), children[2]);
- EXPECT_EQUAL(c4.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(20).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {0, 1, 2, 3});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -396,20 +368,12 @@ TEST("test Rank Blueprint") {
EXPECT_EQUAL(true, got_global_filter(a.getChild(1)));
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(20).create());
- Blueprint::UP c2 = ap(MyLeafSpec(10).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c1.get(), children[0]);
- EXPECT_EQUAL(c2.get(), children[1]);
- EXPECT_EQUAL(c3.get(), children[2]);
- EXPECT_EQUAL(c4.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(20).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {0, 1, 2, 3});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -469,20 +433,12 @@ TEST("test SourceBlender Blueprint") {
EXPECT_EQUAL(0u, a->getState().numFields());
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(20).create());
- Blueprint::UP c2 = ap(MyLeafSpec(10).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c1.get(), children[0]);
- EXPECT_EQUAL(c2.get(), children[1]);
- EXPECT_EQUAL(c3.get(), children[2]);
- EXPECT_EQUAL(c4.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(20).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {0, 1, 2, 3});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));
@@ -1080,20 +1036,12 @@ TEST("test WeakAnd Blueprint") {
EXPECT_EQUAL(0u, a.exposeFields().size());
}
{
- std::vector<Blueprint *> children;
- Blueprint::UP c1 = ap(MyLeafSpec(10).create());
- Blueprint::UP c2 = ap(MyLeafSpec(20).create());
- Blueprint::UP c3 = ap(MyLeafSpec(40).create());
- Blueprint::UP c4 = ap(MyLeafSpec(30).create());
- children.push_back(c1.get());
- children.push_back(c2.get());
- children.push_back(c3.get());
- children.push_back(c4.get());
- b.sort(children);
- EXPECT_EQUAL(c1.get(), children[0]);
- EXPECT_EQUAL(c2.get(), children[1]);
- EXPECT_EQUAL(c3.get(), children[2]);
- EXPECT_EQUAL(c4.get(), children[3]);
+ check_sort_order(b,
+ {MyLeafSpec(20).create(),
+ MyLeafSpec(10).create(),
+ MyLeafSpec(40).create(),
+ MyLeafSpec(30).create()},
+ {0, 1, 2, 3});
}
{
EXPECT_EQUAL(true, b.inheritStrict(0));