diff options
author | Lucas Wojciechowski <lucas@mapbox.com> | 2018-04-23 15:28:19 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-05-09 16:08:50 -0700 |
commit | 41fcbe5e8877c1f5062f29b1cebfb93148fbe7c0 (patch) | |
tree | 8925b70dfb29349f1713b05871f6e6cfe39ffea9 | |
parent | f88c3066dc8d1f3b1c251a0ed3d8bb51ee7c3d7d (diff) | |
download | qtlocation-mapboxgl-41fcbe5e8877c1f5062f29b1cebfb93148fbe7c0.tar.gz |
Revive all tests
-rw-r--r-- | include/mbgl/style/expression/compound_expression.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/expression/compound_expression.cpp | 4 | ||||
-rw-r--r-- | test/api/query.test.cpp | 69 | ||||
-rw-r--r-- | test/renderer/group_by_layout.test.cpp | 20 |
4 files changed, 52 insertions, 43 deletions
diff --git a/include/mbgl/style/expression/compound_expression.hpp b/include/mbgl/style/expression/compound_expression.hpp index adb7a3ac71..345b70c23a 100644 --- a/include/mbgl/style/expression/compound_expression.hpp +++ b/include/mbgl/style/expression/compound_expression.hpp @@ -141,6 +141,8 @@ ParseResult createCompoundExpression(const CompoundExpressionRegistry::Definitio ParseResult createCompoundExpression(const std::string& name, std::vector<std::unique_ptr<Expression>> args, ParsingContext& ctx); + +ParseResult createCompoundExpression(const std::string& name, ParsingContext& ctx); ParseResult createCompoundExpression(const std::string& name, std::unique_ptr<Expression> arg1, diff --git a/src/mbgl/style/expression/compound_expression.cpp b/src/mbgl/style/expression/compound_expression.cpp index fb28eaf383..b372b4ebb0 100644 --- a/src/mbgl/style/expression/compound_expression.cpp +++ b/src/mbgl/style/expression/compound_expression.cpp @@ -707,6 +707,10 @@ ParseResult createCompoundExpression(const Definition& definition, return ParseResult(); } +ParseResult createCompoundExpression(const std::string& name, ParsingContext& ctx) { + return createCompoundExpression(name, std::vector<std::unique_ptr<Expression>>(), ctx); +} + ParseResult createCompoundExpression(const std::string& name, std::unique_ptr<Expression> arg1, ParsingContext& ctx) { diff --git a/test/api/query.test.cpp b/test/api/query.test.cpp index 036e67af15..ffab52692b 100644 --- a/test/api/query.test.cpp +++ b/test/api/query.test.cpp @@ -13,6 +13,7 @@ using namespace mbgl; using namespace mbgl::style; +using namespace mbgl::style::expression; namespace { @@ -65,24 +66,24 @@ TEST(Query, QueryRenderedFeaturesFilterLayer) { EXPECT_EQ(features4.size(), 1u); } -// TODO write new tests -//TEST(Query, QueryRenderedFeaturesFilter) { -// QueryTest test; -// -// auto zz = test.map.pixelForLatLng({ 0, 0 }); -// -// const EqualsFilter eqFilter = { "key1", std::string("value1") }; -// auto features1 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{}, { eqFilter }}); -// EXPECT_EQ(features1.size(), 1u); -// -// const IdentifierNotEqualsFilter idNotEqFilter = { std::string("feature1") }; -// auto features2 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{{ "layer4" }}, { idNotEqFilter }}); -// EXPECT_EQ(features2.size(), 0u); -// -// const GreaterThanFilter gtFilter = { "key2", 1.0 }; -// auto features3 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{ }, { gtFilter }}); -// EXPECT_EQ(features3.size(), 1u); -//} +TEST(Query, QueryRenderedFeaturesFilter) { + QueryTest test; + ParsingContext context; + + auto zz = test.map.pixelForLatLng({ 0, 0 }); + + const Filter eqFilter(createCompoundExpression("filter-==", createLiteral("key1"), createLiteral("value1"), context)); + auto features1 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{}, { eqFilter }}); + EXPECT_EQ(features1.size(), 1u); + + const Filter idNotEqFilter(createCompoundExpression("!", std::move(*createCompoundExpression("filter-id-==", createLiteral("feature1"), context)), context)); + auto features2 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{{ "layer4" }}, { idNotEqFilter }}); + EXPECT_EQ(features2.size(), 0u); + + const Filter gtFilter(createCompoundExpression("filter->", createLiteral("key2"), createLiteral(1.0), context)); + auto features3 = test.frontend.getRenderer()->queryRenderedFeatures(zz, {{ }, { gtFilter }}); + EXPECT_EQ(features3.size(), 1u); +} TEST(Query, QuerySourceFeatures) { QueryTest test; @@ -107,20 +108,20 @@ TEST(Query, QuerySourceFeaturesOptionValidation) { ASSERT_EQ(features.size(), 0u); } -// TODO write new tests -//TEST(Query, QuerySourceFeaturesFilter) { -// QueryTest test; -// -// const EqualsFilter eqFilter = { "key1", std::string("value1") }; -// auto features1 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { eqFilter }}); -// EXPECT_EQ(features1.size(), 1u); -// -// const IdentifierNotEqualsFilter idNotEqFilter = { std::string("feature1") }; -// auto features2 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { idNotEqFilter }}); -// EXPECT_EQ(features2.size(), 0u); -// -// const GreaterThanFilter gtFilter = { "key2", 1.0 }; -// auto features3 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { gtFilter }}); -// EXPECT_EQ(features3.size(), 1u); -//} +TEST(Query, QuerySourceFeaturesFilter) { + QueryTest test; + ParsingContext context; + + const Filter eqFilter(createCompoundExpression("filter-==", createLiteral("key1"), createLiteral("value1"), context)); + auto features1 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { eqFilter }}); + EXPECT_EQ(features1.size(), 1u); + + const Filter idNotEqFilter(createCompoundExpression("!", std::move(*createCompoundExpression("filter-id-==", createLiteral("feature1"), context)), context)); + auto features2 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { idNotEqFilter }}); + EXPECT_EQ(features2.size(), 0u); + + const Filter gtFilter(createCompoundExpression("filter->", createLiteral("key2"), createLiteral(1.0), context)); + auto features3 = test.frontend.getRenderer()->querySourceFeatures("source4", {{}, { gtFilter }}); + EXPECT_EQ(features3.size(), 1u); +} diff --git a/test/renderer/group_by_layout.test.cpp b/test/renderer/group_by_layout.test.cpp index c480b66ffa..6cf17e2279 100644 --- a/test/renderer/group_by_layout.test.cpp +++ b/test/renderer/group_by_layout.test.cpp @@ -5,9 +5,11 @@ #include <mbgl/style/layers/background_layer.hpp> #include <mbgl/style/layers/circle_layer.hpp> #include <mbgl/style/layers/line_layer.hpp> +#include <mbgl/style/expression/compound_expression.hpp> using namespace mbgl; using namespace mbgl::style; +using namespace mbgl::style::expression; static std::vector<std::unique_ptr<RenderLayer>> toRenderLayers(const std::vector<std::unique_ptr<Layer>>& layers) { std::vector<std::unique_ptr<RenderLayer>> result; @@ -35,15 +37,15 @@ TEST(GroupByLayout, UnrelatedType) { ASSERT_EQ(2u, result.size()); } -// TODO write new test -//TEST(GroupByLayout, UnrelatedFilter) { -// std::vector<std::unique_ptr<Layer>> layers; -// layers.push_back(std::make_unique<LineLayer>("a", "source")); -// layers.push_back(std::make_unique<LineLayer>("b", "source")); -// layers[0]->as<LineLayer>()->setFilter(EqualsFilter()); -// auto result = groupByLayout(toRenderLayers(layers)); -// ASSERT_EQ(2u, result.size()); -//} +TEST(GroupByLayout, UnrelatedFilter) { + std::vector<std::unique_ptr<Layer>> layers; + layers.push_back(std::make_unique<LineLayer>("a", "source")); + layers.push_back(std::make_unique<LineLayer>("b", "source")); + ParsingContext context; + layers[0]->as<LineLayer>()->setFilter(Filter(createCompoundExpression("filter-has-id", context))); + auto result = groupByLayout(toRenderLayers(layers)); + ASSERT_EQ(2u, result.size()); +} TEST(GroupByLayout, UnrelatedLayout) { std::vector<std::unique_ptr<Layer>> layers; |