summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-10-19 11:36:31 +0000
committerArne H Juul <arnej@yahooinc.com>2021-10-19 11:36:31 +0000
commite75c880c158bd8a4b3cf3f1d7701d6855c9f260d (patch)
treee29ca5f07bc3b29e050f7d03c7178e7249b18f20 /searchlib/src/tests
parentfffd70f34626517e54bcf8b24a29f584b0cd17fb (diff)
extend unit test
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r--searchlib/src/tests/query/querybuilder_test.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/searchlib/src/tests/query/querybuilder_test.cpp b/searchlib/src/tests/query/querybuilder_test.cpp
index b421084bbef..80ccd494ef6 100644
--- a/searchlib/src/tests/query/querybuilder_test.cpp
+++ b/searchlib/src/tests/query/querybuilder_test.cpp
@@ -47,7 +47,7 @@ PredicateQueryTerm::UP getPredicateQueryTerm() {
template <class NodeTypes>
Node::UP createQueryTree() {
QueryBuilder<NodeTypes> builder;
- builder.addAnd(11);
+ builder.addAnd(12);
{
builder.addRank(2);
{
@@ -110,6 +110,11 @@ Node::UP createQueryTree() {
builder.addStringTerm(str[6], view[6], id[6], weight[7]);
}
builder.add_nearest_neighbor_term("query_tensor", "doc_tensor", id[3], weight[5], 7, true, 33, 100100.25);
+ builder.addAndNot(2);
+ {
+ builder.add_true_node();
+ builder.add_false_node();
+ }
}
Node::UP node = builder.build();
ASSERT_TRUE(node.get());
@@ -172,10 +177,12 @@ void checkQueryTreeTypes(Node *node) {
typedef typename NodeTypes::WeakAnd WeakAnd;
typedef typename NodeTypes::PredicateQuery PredicateQuery;
typedef typename NodeTypes::RegExpTerm RegExpTerm;
+ typedef typename NodeTypes::True TrueNode;
+ typedef typename NodeTypes::False FalseNode;
ASSERT_TRUE(node);
auto* and_node = as_node<And>(node);
- EXPECT_EQUAL(11u, and_node->getChildren().size());
+ EXPECT_EQUAL(12u, and_node->getChildren().size());
auto* rank = as_node<Rank>(and_node->getChildren()[0]);
EXPECT_EQUAL(2u, rank->getChildren().size());
@@ -292,6 +299,13 @@ void checkQueryTreeTypes(Node *node) {
EXPECT_EQUAL(id[3], nearest_neighbor->getId());
EXPECT_EQUAL(weight[5].percent(), nearest_neighbor->getWeight().percent());
EXPECT_EQUAL(7u, nearest_neighbor->get_target_num_hits());
+
+ and_not = as_node<AndNot>(and_node->getChildren()[11]);
+ EXPECT_EQUAL(2u, and_not->getChildren().size());
+ auto* true_node = as_node<TrueNode>(and_not->getChildren()[0]);
+ auto* false_node = as_node<FalseNode>(and_not->getChildren()[1]);
+ EXPECT_TRUE(true_node);
+ EXPECT_TRUE(false_node);
}
struct AbstractTypes {
@@ -316,6 +330,8 @@ struct AbstractTypes {
typedef search::query::WeakAnd WeakAnd;
typedef search::query::PredicateQuery PredicateQuery;
typedef search::query::RegExpTerm RegExpTerm;
+ typedef search::query::TrueQueryNode True;
+ typedef search::query::FalseQueryNode False;
};
// Builds a tree with simplequery and checks that the results have the