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)[source]¶ Highly-configurable floating point comparisons for scalars and arrays.
The test assertion will fail if all elements lhs and rhs are not equal to within the tolerances specified by rtol and atol. More precisely, the comparison is:
abs(lhs - rhs) <= relTo*rtol OR abs(lhs - rhs) <= atolIf rtol or atol is None, that term in the comparison is not performed at all.
When not specified, relTo is the elementwise maximum of the absolute values of lhs and rhs. If set manually, it should usually be set to either lhs or rhs, or a scalar value typical of what is expected.
Parameters: testCase :
unittest.TestCaseInstance the test is part of.
lhs : scalar or array-like
LHS value(s) to compare; may be a scalar or array-like of any dimension
rhs : scalar or array-like
RHS value(s) to compare; may be a scalar or array-like of any dimension
rtol :
floator NoneRelative tolerance for comparison; defaults to double-precision epsilon.
atol :
floator NoneAbsolute tolerance for comparison; defaults to double-precision epsilon.
relTo :
floatValue to which comparison with rtol is relative.
printFailures :
boolUpon failure, print all inequal elements as part of the message.
plotOnFailure :
boolUpon failure, plot the originals and their residual with matplotlib. Only 2-d arrays are supported.
plotFileName :
strFilename to save the plot to. If None, the plot will be displayed in a window.
invert :
boolIf True, invert the comparison and fail only if any elements are equal. Used to implement assertFloatsNotEqual, which should generally be used instead for clarity.
msg :
strString to append to the error message when assert fails.