diff options
author | Joel Kuntz <Frozenfire92@users.noreply.github.com> | 2024-05-06 09:23:37 -0300 |
---|---|---|
committer | Joel Kuntz <Frozenfire92@users.noreply.github.com> | 2024-05-07 19:37:29 -0300 |
commit | 26feefa91ce5016de507c658bfafb4d3b84b8a6c (patch) | |
tree | 896b838f92a48957f421495b4efdcf1cbbad18f8 | |
parent | 7ebc866418b075df58cbe4e31fcf8b0c3acd70a1 (diff) | |
download | redot-engine-26feefa91ce5016de507c658bfafb4d3b84b8a6c.tar.gz |
Add notes for remap's return when istart and istop are the same
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
Co-Authored-By: kleonc <9283098+kleonc@users.noreply.github.com>
-rw-r--r-- | doc/classes/@GlobalScope.xml | 1 | ||||
-rw-r--r-- | tests/core/math/test_math_funcs.h | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 26bf515135..4b32acaaa0 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -1097,6 +1097,7 @@ remap(75, 0, 100, -1, 1) # Returns 0.5 [/codeblock] For complex use cases where multiple ranges are needed, consider using [Curve] or [Gradient] instead. + [b]Note:[/b] If [code]istart == istop[/code], the return value is undefined (most likely NaN, INF, or -INF). </description> </method> <method name="rid_allocate_id"> diff --git a/tests/core/math/test_math_funcs.h b/tests/core/math/test_math_funcs.h index 0a9d9c97d9..f2eae3a20d 100644 --- a/tests/core/math/test_math_funcs.h +++ b/tests/core/math/test_math_funcs.h @@ -381,6 +381,9 @@ TEST_CASE_TEMPLATE("[Math] remap", T, float, double) { CHECK(Math::remap((T)-100.0, (T)-100.0, (T)-200.0, (T)0.0, (T)-1000.0) == doctest::Approx((T)0.0)); CHECK(Math::remap((T)-200.0, (T)-100.0, (T)-200.0, (T)0.0, (T)-1000.0) == doctest::Approx((T)-1000.0)); CHECK(Math::remap((T)-250.0, (T)-100.0, (T)-200.0, (T)0.0, (T)-1000.0) == doctest::Approx((T)-1500.0)); + + // Note: undefined behaviour can happen when `p_istart == p_istop`. We don't bother testing this as it will + // vary between hardware and compilers properly implementing IEEE 754. } TEST_CASE_TEMPLATE("[Math] angle_difference", T, float, double) { |