assertFloatsAlmostEqual¶
-
lsst.utils.tests.
assertFloatsAlmostEqual
(testCase, lhs, rhs, rtol=2.220446049250313e-16, atol=2.220446049250313e-16, relTo=None, printFailures=True, plotOnFailure=False, plotFileName=None, invert=False, msg=None)¶ Highly-configurable floating point comparisons for scalars and arrays.
The test assertion will fail if all elements
lhs
andrhs
are not equal to within the tolerances specified byrtol
andatol
. More precisely, the comparison is:abs(lhs - rhs) <= relTo*rtol OR abs(lhs - rhs) <= atol
If
rtol
oratol
isNone
, that term in the comparison is not performed at all.When not specified,
relTo
is the elementwise maximum of the absolute values oflhs
andrhs
. If set manually, it should usually be set to eitherlhs
orrhs
, or a scalar value typical of what is expected.- Parameters
- testCase
unittest.TestCase
Instance the test is part of.
- lhsscalar or array-like
LHS value(s) to compare; may be a scalar or array-like of any dimension.
- rhsscalar or array-like
RHS value(s) to compare; may be a scalar or array-like of any dimension.
- rtol
float
, optional Relative tolerance for comparison; defaults to double-precision epsilon.
- atol
float
, optional Absolute tolerance for comparison; defaults to double-precision epsilon.
- relTo
float
, optional Value to which comparison with rtol is relative.
- printFailures
bool
, optional Upon failure, print all inequal elements as part of the message.
- plotOnFailure
bool
, optional Upon failure, plot the originals and their residual with matplotlib. Only 2-d arrays are supported.
- plotFileName
str
, optional Filename to save the plot to. If
None
, the plot will be displayed in a window.- invert
bool
, optional If
True
, invert the comparison and fail only if any elements are equal. Used to implementassertFloatsNotEqual
, which should generally be used instead for clarity.- msg
str
, optional String to append to the error message when assert fails.
- testCase
- Raises
- AssertionError
The values are not almost equal.