assertFloatsAlmostEqual¶
- lsst.utils.tests.assertFloatsAlmostEqual(testCase: TestCase, lhs: Union[float, ndarray], rhs: Union[float, ndarray], rtol: Optional[float] = 2.220446049250313e-16, atol: Optional[float] = 2.220446049250313e-16, relTo: Optional[float] = None, printFailures: bool = True, plotOnFailure: bool = False, plotFileName: Optional[str] = None, invert: bool = False, msg: Optional[str] = None, ignoreNaNs: bool = False) 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. will returnTrue
).- msg
str
, optional String to append to the error message when assert fails.
- ignoreNaNs
bool
, optional If
True
(False
is default) mask out any NaNs from operand arrays before performing comparisons if they are in the same locations; NaNs in different locations are trigger test assertion failures, even wheninvert=True
. Scalar NaNs are treated like arrays containing only NaNs of the same shape as the other operand, and no comparisons are performed if both sides are scalar NaNs.
- testCase
- Raises:
- AssertionError
The values are not almost equal.