-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Hi
almostEqual tests for absolute tolerance such that small values are always considered equal whereas big values are not.
With actual function
function almostEqual (left, right, tol) {
return Math.abs(left - right) <= tol
}
the tests will pass when left === tol and right === 0 which may be weird, but is will not pass for big numbers.
Instead,
function almostEqual (left, right, tol) {
return Math.abs(left - right) <= tol * (Math.abs(left)+Math.abs(right)+1) // the +1 for small
}
will pass only on rounding errors, whatever the magnitude of arguments is, either known in advance or not.
Thanks
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels