summaryrefslogtreecommitdiff
path: root/test/style/functions.test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/style/functions.test.cpp')
-rw-r--r--test/style/functions.test.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/test/style/functions.test.cpp b/test/style/functions.test.cpp
index 9577bcc633..8553d13349 100644
--- a/test/style/functions.test.cpp
+++ b/test/style/functions.test.cpp
@@ -2,28 +2,31 @@
#include <mbgl/test/util.hpp>
#include <mbgl/style/property_evaluator.hpp>
-#include <mbgl/style/calculation_parameters.hpp>
+#include <mbgl/style/property_evaluation_parameters.hpp>
using namespace mbgl;
using namespace mbgl::style;
float evaluate(PropertyValue<float> value, float zoom) {
- return PropertyValue<float>::visit(value, PropertyEvaluator<float>(CalculationParameters(zoom), 0));
+ return value.evaluate(PropertyEvaluator<float>(PropertyEvaluationParameters(zoom), 0));
}
std::string evaluate(PropertyValue<std::string> value, float zoom) {
- return PropertyValue<std::string>::visit(value, PropertyEvaluator<std::string>(CalculationParameters(zoom), ""));
+ return value.evaluate(PropertyEvaluator<std::string>(PropertyEvaluationParameters(zoom), ""));
+}
+bool evaluate(PropertyValue<bool> value, float zoom) {
+ return value.evaluate(PropertyEvaluator<bool>(PropertyEvaluationParameters(zoom), false));
}
TEST(Function, Constant) {
- EXPECT_EQ(2.0f, evaluate(2, 0));
- EXPECT_EQ(3.8f, evaluate(3.8, 0));
- EXPECT_EQ(22.0f, evaluate(22, 0));
- EXPECT_EQ(2.0f, evaluate(2, 4));
- EXPECT_EQ(3.8f, evaluate(3.8, 4));
- EXPECT_EQ(22.0f, evaluate(22, 4));
- EXPECT_EQ(2.0f, evaluate(2, 22));
- EXPECT_EQ(3.8f, evaluate(3.8, 22));
- EXPECT_EQ(22.0f, evaluate(22, 22));
+ EXPECT_EQ(2.0f, evaluate(PropertyValue<float>(2.0), 0));
+ EXPECT_EQ(3.8f, evaluate(PropertyValue<float>(3.8), 0));
+ EXPECT_EQ(22.0f, evaluate(PropertyValue<float>(22.0), 0));
+ EXPECT_EQ(2.0f, evaluate(PropertyValue<float>(2.0), 4));
+ EXPECT_EQ(3.8f, evaluate(PropertyValue<float>(3.8), 4));
+ EXPECT_EQ(22.0f, evaluate(PropertyValue<float>(22.0), 4));
+ EXPECT_EQ(2.0f, evaluate(PropertyValue<float>(2.0), 22));
+ EXPECT_EQ(3.8f, evaluate(PropertyValue<float>(3.8), 22));
+ EXPECT_EQ(22.0f, evaluate(PropertyValue<float>(22.0), 22));
}
TEST(Function, Stops) {
@@ -50,12 +53,6 @@ TEST(Function, Stops) {
EXPECT_EQ(3.0, evaluate(slope_2, 15));
EXPECT_EQ(3.0, evaluate(slope_2, 22));
- // Test no values.
- Function<float> slope_3({}, 1.75);
- EXPECT_EQ(1, evaluate(slope_3, 2));
- EXPECT_EQ(1, evaluate(slope_3, 6));
- EXPECT_EQ(1, evaluate(slope_3, 12));
-
// Explicit constant slope in fringe regions.
Function<float> slope_4({ { 0, 2 }, { 8, 10 } }, 1);
@@ -66,10 +63,17 @@ TEST(Function, Stops) {
EXPECT_EQ(10, evaluate(slope_4, 8));
// discrete values
- Function<std::string> discrete_0({{ 3, "string0"}, {6, "string1"}, {9, "string2"}}, 1);
+ Function<std::string> discrete_0({{3, "string0"}, {6, "string1"}, {9, "string2"}}, 1);
EXPECT_EQ("string0", evaluate(discrete_0, 2));
EXPECT_EQ("string0", evaluate(discrete_0, 4));
EXPECT_EQ("string1", evaluate(discrete_0, 7));
EXPECT_EQ("string2", evaluate(discrete_0, 9));
EXPECT_EQ("string2", evaluate(discrete_0, 10));
+
+ Function<bool> discreteBool({{1, false}, {3, true}}, 1);
+ EXPECT_FALSE(evaluate(discreteBool, 0));
+ EXPECT_FALSE(evaluate(discreteBool, 1));
+ EXPECT_FALSE(evaluate(discreteBool, 2));
+ EXPECT_TRUE(evaluate(discreteBool, 3));
+ EXPECT_TRUE(evaluate(discreteBool, 4));
}