summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnand Thakker <github@anandthakker.net>2017-11-08 11:13:53 -0500
committerAnand Thakker <github@anandthakker.net>2017-11-08 11:13:53 -0500
commit46c2e34158220639c864722c2ac2c00f2c05f288 (patch)
tree9b5f729e287c196a14ae8b2acca496d26f52d5a2
parentd0666c90400f139d0739f838c571dd6eafa2300f (diff)
downloadqtlocation-mapboxgl-upstream/expressions.tar.gz
Couple more cleanupsupstream/expressions
-rw-r--r--cmake/test-files.cmake2
-rw-r--r--include/mbgl/style/expression/interpolate.hpp38
-rw-r--r--test/style/expression/expression.test.cpp (renamed from test/style/expression/is_expression.test.cpp)0
3 files changed, 15 insertions, 25 deletions
diff --git a/cmake/test-files.cmake b/cmake/test-files.cmake
index 5df5fb38d1..31747e1d45 100644
--- a/cmake/test-files.cmake
+++ b/cmake/test-files.cmake
@@ -88,7 +88,7 @@ set(MBGL_TEST_FILES
test/style/conversion/stringify.test.cpp
# style/expression
- test/style/expression/is_expression.test.cpp
+ test/style/expression/expression.test.cpp
test/style/expression/util.test.cpp
# style
diff --git a/include/mbgl/style/expression/interpolate.hpp b/include/mbgl/style/expression/interpolate.hpp
index cb3bfe8b4a..2dcb5a32a4 100644
--- a/include/mbgl/style/expression/interpolate.hpp
+++ b/include/mbgl/style/expression/interpolate.hpp
@@ -140,7 +140,20 @@ public:
return upper.error();
}
- return interpolate({*lower, *upper}, t);
+ if (!lower->is<T>()) {
+ return EvaluationError {
+ "Expected value to be of type " + toString(valueTypeToExpressionType<T>()) +
+ ", but found " + toString(typeOf(*lower)) + " instead."
+ };
+ }
+
+ if (!upper->is<T>()) {
+ return EvaluationError {
+ "Expected value to be of type " + toString(valueTypeToExpressionType<T>()) +
+ ", but found " + toString(typeOf(*upper)) + " instead."
+ };
+ }
+ return util::interpolate(lower->get<T>(), upper->get<T>(), t);
}
}
@@ -157,29 +170,6 @@ public:
}
return false;
}
-
-
-private:
- static EvaluationResult interpolate(const Range<Value>& outputs, const double t) {
- optional<T> lower = fromExpressionValue<T>(outputs.min);
- if (!lower) {
- // TODO - refactor fromExpressionValue to return EvaluationResult<T> so as to
- // consolidate DRY up producing this error message.
- return EvaluationError {
- "Expected value to be of type " + toString(valueTypeToExpressionType<T>()) +
- ", but found " + toString(typeOf(outputs.min)) + " instead."
- };
- }
- const optional<T> upper = fromExpressionValue<T>(outputs.max);
- if (!upper) {
- return EvaluationError {
- "Expected value to be of type " + toString(valueTypeToExpressionType<T>()) +
- ", but found " + toString(typeOf(outputs.min)) + " instead."
- };
- }
- T result = util::interpolate(*lower, *upper, t);
- return toExpressionValue(result);
- }
};
} // namespace expression
diff --git a/test/style/expression/is_expression.test.cpp b/test/style/expression/expression.test.cpp
index 694569695c..694569695c 100644
--- a/test/style/expression/is_expression.test.cpp
+++ b/test/style/expression/expression.test.cpp