diff options
Diffstat (limited to 'test/style/function/camera_function.test.cpp')
-rw-r--r-- | test/style/function/camera_function.test.cpp | 59 |
1 files changed, 6 insertions, 53 deletions
diff --git a/test/style/function/camera_function.test.cpp b/test/style/function/camera_function.test.cpp index 59e3f2cef3..1f7e81fc2c 100644 --- a/test/style/function/camera_function.test.cpp +++ b/test/style/function/camera_function.test.cpp @@ -3,19 +3,15 @@ #include <mbgl/renderer/property_evaluator.hpp> #include <mbgl/renderer/property_evaluation_parameters.hpp> +#include <mbgl/style/expression/dsl.hpp> using namespace mbgl; using namespace mbgl::style; +using namespace mbgl::style::expression::dsl; float evaluate(PropertyValue<float> value, float zoom) { return value.evaluate(PropertyEvaluator<float>(PropertyEvaluationParameters(zoom), 0)); } -std::string evaluate(PropertyValue<std::string> value, float 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(CameraFunction, Constant) { EXPECT_EQ(2.0f, evaluate(PropertyValue<float>(2.0), 0)); @@ -29,51 +25,8 @@ TEST(CameraFunction, Constant) { EXPECT_EQ(22.0f, evaluate(PropertyValue<float>(22.0), 22)); } -TEST(CameraFunction, Stops) { - // Explicit constant slope in fringe regions. - CameraFunction<float> slope_1(ExponentialStops<float> { { { 0, 1.5 }, { 6, 1.5 }, { 8, 3 }, { 22, 3 } }, 1.75}); - EXPECT_EQ(1.5, evaluate(slope_1, 0)); - EXPECT_EQ(1.5, evaluate(slope_1, 4)); - EXPECT_EQ(1.5, evaluate(slope_1, 6)); - ASSERT_FLOAT_EQ(2.0454545454545454, evaluate(slope_1, 7)); - EXPECT_EQ(3.0, evaluate(slope_1, 8)); - EXPECT_EQ(3.0, evaluate(slope_1, 9)); - EXPECT_EQ(3.0, evaluate(slope_1, 15)); - EXPECT_EQ(3.0, evaluate(slope_1, 22)); - - - // Test constant values in fringe regions. - CameraFunction<float> slope_2(ExponentialStops<float> { { { 6, 1.5 }, { 8, 3 } }, 1.75 }); - EXPECT_EQ(1.5, evaluate(slope_2, 0)); - EXPECT_EQ(1.5, evaluate(slope_2, 4)); - EXPECT_EQ(1.5, evaluate(slope_2, 6)); - ASSERT_FLOAT_EQ(2.0454545454545454, evaluate(slope_2, 7)); - EXPECT_EQ(3.0, evaluate(slope_2, 8)); - EXPECT_EQ(3.0, evaluate(slope_2, 9)); - EXPECT_EQ(3.0, evaluate(slope_2, 15)); - EXPECT_EQ(3.0, evaluate(slope_2, 22)); - - - // Explicit constant slope in fringe regions. - CameraFunction<float> slope_4(ExponentialStops<float> { { { 0, 2 }, { 8, 10 } }, 1 }); - EXPECT_EQ(2, evaluate(slope_4, 0)); - EXPECT_EQ(3, evaluate(slope_4, 1)); - EXPECT_EQ(4, evaluate(slope_4, 2)); - EXPECT_EQ(4.75, evaluate(slope_4, 2.75)); - EXPECT_EQ(10, evaluate(slope_4, 8)); - - // discrete values - CameraFunction<std::string> discrete_0(IntervalStops<std::string> { {{3, "string0"}, {6, "string1"}, {9, "string2"}} }); - 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)); - - CameraFunction<bool> discreteBool(IntervalStops<bool> { {{1, false}, {3, true}} }); - 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)); +TEST(CameraFunction, Expression) { + CameraFunction<float> function(interpolate(linear(), zoom(), 0.0, literal(0.0), 1.0, literal(1.0))); + EXPECT_EQ(0.0, evaluate(function, 0.0)); + EXPECT_EQ(0.5, evaluate(function, 0.5)); } |