assertFloatsAlmostEqual

lsst.utils.tests.assertFloatsAlmostEqual(testCase: unittest.case.TestCase, lhs: Union[float, numpy.ndarray], rhs: Union[float, numpy.ndarray], rtol: Optional[float, None] = 2.220446049250313e-16, atol: Optional[float, None] = 2.220446049250313e-16, relTo: Optional[float, None] = None, printFailures: bool = True, plotOnFailure: bool = False, plotFileName: Optional[str, None] = None, invert: bool = False, msg: Optional[str, None] = None, ignoreNaNs: bool = False) → None

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) <= atol

If 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.TestCase

Instance 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 : 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 implement assertFloatsNotEqual, which should generally be used instead for clarity. will return True).

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 when invert=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.

Raises:
AssertionError

The values are not almost equal.