diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /streamingvisitors/src/tests/querywrapper |
Publish
Diffstat (limited to 'streamingvisitors/src/tests/querywrapper')
5 files changed, 122 insertions, 0 deletions
diff --git a/streamingvisitors/src/tests/querywrapper/.gitignore b/streamingvisitors/src/tests/querywrapper/.gitignore new file mode 100644 index 00000000000..3c8a4b1c9f8 --- /dev/null +++ b/streamingvisitors/src/tests/querywrapper/.gitignore @@ -0,0 +1,4 @@ +.depend +Makefile +querywrapper_test +streamingvisitors_querywrapper_test_app diff --git a/streamingvisitors/src/tests/querywrapper/CMakeLists.txt b/streamingvisitors/src/tests/querywrapper/CMakeLists.txt new file mode 100644 index 00000000000..501b1eee1a9 --- /dev/null +++ b/streamingvisitors/src/tests/querywrapper/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(streamingvisitors_querywrapper_test_app + SOURCES + querywrapper.cpp + DEPENDS + streamingvisitors_searchvisitor +) +vespa_add_test(NAME streamingvisitors_querywrapper_test_app COMMAND streamingvisitors_querywrapper_test_app) diff --git a/streamingvisitors/src/tests/querywrapper/DESC b/streamingvisitors/src/tests/querywrapper/DESC new file mode 100644 index 00000000000..dfdd9d55a8e --- /dev/null +++ b/streamingvisitors/src/tests/querywrapper/DESC @@ -0,0 +1 @@ +Test of the query wrapper used by the rank processor. diff --git a/streamingvisitors/src/tests/querywrapper/FILES b/streamingvisitors/src/tests/querywrapper/FILES new file mode 100644 index 00000000000..91138d25b2e --- /dev/null +++ b/streamingvisitors/src/tests/querywrapper/FILES @@ -0,0 +1 @@ +querywrapper.cpp diff --git a/streamingvisitors/src/tests/querywrapper/querywrapper.cpp b/streamingvisitors/src/tests/querywrapper/querywrapper.cpp new file mode 100644 index 00000000000..b717962d920 --- /dev/null +++ b/streamingvisitors/src/tests/querywrapper/querywrapper.cpp @@ -0,0 +1,108 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/vespalib/testkit/testapp.h> +#include <iostream> +#include <vespa/searchlib/query/tree/querybuilder.h> +#include <vespa/searchlib/query/tree/simplequery.h> +#include <vespa/searchlib/query/tree/stackdumpcreator.h> + +#include <vespa/searchvisitor/querywrapper.h> + +using namespace search; +using namespace search::query; + +namespace storage { + +class QueryWrapperTest : public vespalib::TestApp +{ +private: + void testQueryWrapper(); + +public: + int Main(); +}; + +void +QueryWrapperTest::testQueryWrapper() +{ + EmptyQueryNodeResult empty; + PhraseQueryNode * null = NULL; + { + QueryBuilder<SimpleQueryNodeTypes> builder; + builder.addAnd(3); + { + builder.addStringTerm("a", "", 0, Weight(0)); + builder.addPhrase(3, "", 0, Weight(0)); + { + builder.addStringTerm("b", "", 0, Weight(0)); + builder.addStringTerm("c", "", 0, Weight(0)); + builder.addStringTerm("d", "", 0, Weight(0)); + } + builder.addStringTerm("e", "", 0, Weight(0)); + } + Node::UP node = builder.build(); + vespalib::string stackDump = StackDumpCreator::create(*node); + Query q(empty, stackDump); + QueryWrapper wrap(q); + QueryWrapper::TermList & tl = wrap.getTermList(); + + QueryTermList terms; + q.getLeafs(terms); + ASSERT_TRUE(tl.size() == 5 && terms.size() == 5); + for (size_t i = 0; i < 5; ++i) { + EXPECT_EQUAL(tl[i].getTerm(), terms[i]); + std::cout << "t[" << i << "]:" << terms[i] << std::endl; + } + + QueryNodeRefList phrases; + q.getPhrases(phrases); + for (size_t i = 0; i < phrases.size(); ++i) { + std::cout << "p[" << i << "]:" << phrases[i] << std::endl; + } + EXPECT_EQUAL(phrases.size(), 1u); + ASSERT_TRUE(phrases.size() == 1); + EXPECT_EQUAL(tl[0].getParent(), null); + EXPECT_EQUAL(tl[1].getParent(), phrases[0]); + EXPECT_EQUAL(tl[2].getParent(), phrases[0]); + EXPECT_EQUAL(tl[3].getParent(), phrases[0]); + EXPECT_EQUAL(tl[4].getParent(), null); + + EXPECT_EQUAL(tl[0].getIndex(), 0u); + EXPECT_EQUAL(tl[1].getIndex(), 0u); + EXPECT_EQUAL(tl[2].getIndex(), 1u); + EXPECT_EQUAL(tl[3].getIndex(), 2u); + EXPECT_EQUAL(tl[4].getIndex(), 0u); + + EXPECT_TRUE(!tl[0].isFirstPhraseTerm()); + EXPECT_TRUE( tl[1].isFirstPhraseTerm()); + EXPECT_TRUE(!tl[2].isFirstPhraseTerm()); + EXPECT_TRUE(!tl[3].isFirstPhraseTerm()); + EXPECT_TRUE(!tl[4].isFirstPhraseTerm()); + + EXPECT_TRUE(!tl[0].isPhraseTerm()); + EXPECT_TRUE( tl[1].isPhraseTerm()); + EXPECT_TRUE( tl[2].isPhraseTerm()); + EXPECT_TRUE( tl[3].isPhraseTerm()); + EXPECT_TRUE(!tl[4].isPhraseTerm()); + + EXPECT_EQUAL(tl[0].getPosAdjust(), 0u); + EXPECT_EQUAL(tl[1].getPosAdjust(), 2u); + EXPECT_EQUAL(tl[2].getPosAdjust(), 2u); + EXPECT_EQUAL(tl[3].getPosAdjust(), 2u); + EXPECT_EQUAL(tl[4].getPosAdjust(), 0u); + } +} + +int +QueryWrapperTest::Main() +{ + TEST_INIT("querywrapper_test"); + + testQueryWrapper(); + + TEST_DONE(); +} + +} // namespace storage + +TEST_APPHOOK(storage::QueryWrapperTest) |