From bb846fd6cdff84e71741de9428a00137fd5f73a8 Mon Sep 17 00:00:00 2001 From: Anand Thakker Date: Wed, 8 Mar 2017 11:53:44 -0500 Subject: For data-driven paint setters, transition immediately to target value (#8306) Closes #8237 --- test/style/paint_property.test.cpp | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'test') diff --git a/test/style/paint_property.test.cpp b/test/style/paint_property.test.cpp index c70fa101ca..39d31068c1 100644 --- a/test/style/paint_property.test.cpp +++ b/test/style/paint_property.test.cpp @@ -22,6 +22,22 @@ float evaluate(UnevaluatedPaintProperty>& property, Duratio return property.evaluate(evaluator, parameters.now); } +PossiblyEvaluatedPropertyValue evaluate(UnevaluatedPaintProperty>& property, Duration delta = Duration::zero()) { + PropertyEvaluationParameters parameters { + 0, + TimePoint::min() + delta, + ZoomHistory(), + Duration::zero() + }; + + DataDrivenPropertyEvaluator evaluator { + parameters, + 0.0f + }; + + return property.evaluate(evaluator, parameters.now); +} + TEST(UnevaluatedPaintProperty, EvaluateDefaultValue) { UnevaluatedPaintProperty> property; ASSERT_EQ(0.0f, evaluate(property)); @@ -86,3 +102,32 @@ TEST(UnevaluatedPaintProperty, EvaluateTransitionedConstantWithDelay) { ASSERT_FLOAT_EQ(0.823099f, evaluate(t1, 1500ms)); ASSERT_FLOAT_EQ(1.0f, evaluate(t1, 2500ms)); } + +TEST(UnevaluatedPaintProperty, EvaluateDataDrivenValue) { + TransitionOptions transition; + transition.delay = { 1000ms }; + transition.duration = { 1000ms }; + + UnevaluatedPaintProperty> t0 { + DataDrivenPropertyValue(0.0f), + UnevaluatedPaintProperty>(), + TransitionOptions(), + TimePoint::min() + }; + + SourceFunction sourceFunction = { + "property_name", + IdentityStops() + }; + + UnevaluatedPaintProperty> t1 { + DataDrivenPropertyValue(sourceFunction), + t0, + transition, + TimePoint::min() + }; + + ASSERT_TRUE(evaluate(t0, 0ms).isConstant()); + ASSERT_FALSE(evaluate(t1, 0ms).isConstant()) << + "A paint property transition to a data-driven evaluates immediately to the final value (see https://github.com/mapbox/mapbox-gl-native/issues/8237)."; +} -- cgit v1.2.1