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>
This commit is contained in:
Joel Kuntz 2024-05-06 09:23:37 -03:00
parent 7ebc866418
commit 26feefa91c
2 changed files with 4 additions and 0 deletions

View File

@ -1097,6 +1097,7 @@
remap(75, 0, 100, -1, 1) # Returns 0.5 remap(75, 0, 100, -1, 1) # Returns 0.5
[/codeblock] [/codeblock]
For complex use cases where multiple ranges are needed, consider using [Curve] or [Gradient] instead. 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> </description>
</method> </method>
<method name="rid_allocate_id"> <method name="rid_allocate_id">

View File

@ -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)-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)-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)); 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) { TEST_CASE_TEMPLATE("[Math] angle_difference", T, float, double) {