summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-06-16 10:16:11 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-06-16 12:46:12 -0700
commite361bcf66823daa9ae6cae571193a5ba9613c3de (patch)
treed60071749713126967f9d2f69764bc1f040c746d /test
parente1b0f94be0228d41e881aa52ff9529e815e5d59b (diff)
downloadqtlocation-mapboxgl-e361bcf66823daa9ae6cae571193a5ba9613c3de.tar.gz
[core] Fix composite function approximation for non-integer stops
Diffstat (limited to 'test')
-rw-r--r--test/style/function/composite_function.test.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/style/function/composite_function.test.cpp b/test/style/function/composite_function.test.cpp
index e0804d4b27..09b79a8b8f 100644
--- a/test/style/function/composite_function.test.cpp
+++ b/test/style/function/composite_function.test.cpp
@@ -44,3 +44,28 @@ TEST(CompositeFunction, ZoomInterpolation) {
}), 0.0f)
.evaluate(0.0f, oneInteger, -1.0f)) << "Should interpolate TO the first stop";
}
+
+TEST(CompositeFunction, Issue8460) {
+ CompositeFunction<float> fn1("property", CompositeExponentialStops<float>({
+ {15.0f, {{uint64_t(1), 0.0f}}},
+ {15.2f, {{uint64_t(1), 600.0f}}},
+ }), 0.0f);
+
+ EXPECT_NEAR( 0.0f, fn1.evaluate(15.0f, oneInteger, -1.0f), 0.00);
+ EXPECT_NEAR(300.0f, fn1.evaluate(15.1f, oneInteger, -1.0f), 0.01);
+ EXPECT_NEAR(600.0f, fn1.evaluate(15.2f, oneInteger, -1.0f), 0.00);
+ EXPECT_NEAR(600.0f, fn1.evaluate(16.0f, oneInteger, -1.0f), 0.00);
+
+ CompositeFunction<float> fn2("property", CompositeExponentialStops<float>({
+ {15.0f, {{uint64_t(1), 0.0f}}},
+ {15.2f, {{uint64_t(1), 300.0f}}},
+ {18.0f, {{uint64_t(1), 600.0f}}},
+ }), 0.0f);
+
+ EXPECT_NEAR( 0.0f, fn2.evaluate(15.0f, oneInteger, -1.0f), 0.00);
+ EXPECT_NEAR(150.0f, fn2.evaluate(15.1f, oneInteger, -1.0f), 0.01);
+ EXPECT_NEAR(300.0f, fn2.evaluate(15.2f, oneInteger, -1.0f), 0.00);
+ EXPECT_NEAR(385.71f, fn2.evaluate(16.0f, oneInteger, -1.0f), 0.01);
+ EXPECT_NEAR(600.0f, fn2.evaluate(18.0f, oneInteger, -1.0f), 0.00);
+ EXPECT_NEAR(600.0f, fn2.evaluate(19.0f, oneInteger, -1.0f), 0.00);
+}