From 46ffec4090cfdb1194e88cc91f0726ec39a98355 Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Tue, 13 Feb 2018 16:00:22 -0800 Subject: Remove Filter::operator()(const Feature&) --- include/mbgl/style/filter.hpp | 2 -- include/mbgl/style/filter_evaluator.hpp | 11 ----------- test/style/filter.test.cpp | 25 +++++++++++-------------- 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index e27c3bfc10..9ab7e2e950 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -275,8 +275,6 @@ class Filter : public FilterBase { public: using FilterBase::FilterBase; - bool operator()(const Feature&) const; - template bool operator()(const GeometryTileFeature&) const; diff --git a/include/mbgl/style/filter_evaluator.hpp b/include/mbgl/style/filter_evaluator.hpp index 747627210d..6d5a7581d9 100644 --- a/include/mbgl/style/filter_evaluator.hpp +++ b/include/mbgl/style/filter_evaluator.hpp @@ -241,17 +241,6 @@ private: } }; -inline bool Filter::operator()(const Feature& feature) const { - return operator()(apply_visitor(ToFeatureType(), feature.geometry), feature.id, [&] (const std::string& key) -> optional { - auto it = feature.properties.find(key); - if (it == feature.properties.end()) - return {}; - return it->second; - - // TODO include GeoJSONFeature-wrapped feature - }, expression::EvaluationContext { 0.0 } ); -} - template bool Filter::operator()(const GeometryTileFeature& feature) const { return operator()(feature.getType(), feature.getID(), [&] (const auto& key) { return feature.getValue(key); }, expression::EvaluationContext { &feature }); diff --git a/test/style/filter.test.cpp b/test/style/filter.test.cpp index 73f8e7626d..a67e418456 100644 --- a/test/style/filter.test.cpp +++ b/test/style/filter.test.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -17,10 +18,8 @@ Filter parse(const char * expression) { return *filter; } -Feature feature(const PropertyMap& properties, const Geometry& geometry = Point()) { - Feature result { geometry }; - result.properties = properties; - return result; +StubGeometryTileFeature feature(const PropertyMap& properties) { + return StubGeometryTileFeature { properties }; } TEST(Filter, EqualsString) { @@ -46,15 +45,15 @@ TEST(Filter, EqualsNumber) { TEST(Filter, EqualsType) { Filter f = parse(R"(["==", "$type", "LineString"])"); - ASSERT_FALSE(f(feature({{}}, Point()))); - ASSERT_TRUE(f(feature({{}}, LineString()))); + ASSERT_FALSE(f(StubGeometryTileFeature({}, FeatureType::Point, {}, {}))); + ASSERT_TRUE(f(StubGeometryTileFeature({}, FeatureType::LineString, {}, {}))); } TEST(Filter, InType) { Filter f = parse(R"(["in", "$type", "LineString", "Polygon"])"); - ASSERT_FALSE(f(feature({{}}, Point()))); - ASSERT_TRUE(f(feature({{}}, LineString()))); - ASSERT_TRUE(f(feature({{}}, Polygon()))); + ASSERT_FALSE(f(StubGeometryTileFeature({}, FeatureType::Point, {}, {}))); + ASSERT_TRUE(f(StubGeometryTileFeature({}, FeatureType::LineString, {}, {}))); + ASSERT_TRUE(f(StubGeometryTileFeature({}, FeatureType::Polygon, {}, {}))); } TEST(Filter, Any) { @@ -110,14 +109,12 @@ TEST(Filter, NotHas) { } TEST(Filter, ID) { - Feature feature1 { Point() }; - feature1.id = { uint64_t(1234) }; + StubGeometryTileFeature feature1 { FeatureIdentifier{ int64_t{ 1234 } }, {}, {}, {} }; ASSERT_TRUE(parse("[\"==\", \"$id\", 1234]")(feature1)); ASSERT_FALSE(parse("[\"==\", \"$id\", \"1234\"]")(feature1)); - - Feature feature2 { Point() }; - feature2.properties["id"] = { uint64_t(1234) }; + + StubGeometryTileFeature feature2 { {{ "id", uint64_t(1234) }} }; ASSERT_FALSE(parse("[\"==\", \"$id\", 1234]")(feature2)); } -- cgit v1.2.1