holoviews.element.comparison module#
Helper classes for comparing the equality of two HoloViews objects.
These classes are designed to integrate with unittest.TestCase (see the tests directory) while making equality testing easily accessible to the user.
For instance, to test if two Matrix objects are equal you can use:
Comparison.assertEqual(matrix1, matrix2)
This will raise an AssertionError if the two matrix objects are not equal, including information regarding what exactly failed to match.
Note that this functionality could not be provided using comparison methods on all objects as comparison operators only return Booleans and thus would not supply any information regarding why two elements are considered different.
- class holoviews.element.comparison.Comparison[source]#
Bases:
ComparisonInterfaceClass used for comparing two HoloViews objects, including complex composite objects. Comparisons are available as classmethods, the most general being the assertEqual method that is intended to work with any input.
For instance, to test if two Image objects are equal you can use:
Comparison.assertEqual(matrix1, matrix2)
- assert_array_almost_equal_fn(desired, *, decimal=6, err_msg='', verbose=True)#
Raises an AssertionError if two objects are not equal up to desired precision.
Note
It is recommended to use one of assert_allclose, assert_array_almost_equal_nulp or assert_array_max_ulp instead of this function for more consistent floating point comparisons.
The test verifies identical shapes and that the elements of
actualanddesiredsatisfy:abs(desired-actual) < 1.5 * 10**(-decimal)
That is a looser test than originally documented, but agrees with what the actual implementation did up to rounding vagaries. An exception is raised at shape mismatch or conflicting values. In contrast to the standard usage in numpy, NaNs are compared like numbers, no assertion is raised if both objects have NaNs in the same positions.
- Parameters:
- actualarray_like
The actual object to check.
- desiredarray_like
The desired, expected object.
- decimal
int,optional Desired precision, default is 6.
- err_msg
str,optional The error message to be printed in case of failure.
- verbosebool,
optional If True, the conflicting values are appended to the error message.
- Raises:
AssertionErrorIf actual and desired are not equal up to specified precision.
See also
assert_allcloseCompare two array_like objects for equality with desired relative and/or absolute precision.
assert_array_almost_equal_nulp,assert_array_max_ulp,assert_equal
Examples
the first assert does not raise an exception
>>> np.testing.assert_array_almost_equal([1.0,2.333,np.nan], ... [1.0,2.333,np.nan])
>>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan], ... [1.0,2.33339,np.nan], decimal=5) Traceback (most recent call last): ... AssertionError: Arrays are not almost equal to 5 decimals Mismatched elements: 1 / 3 (33.3%) Max absolute difference among violations: 6.e-05 Max relative difference among violations: 2.57136612e-05 ACTUAL: array([1. , 2.33333, nan]) DESIRED: array([1. , 2.33339, nan])
>>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan], ... [1.0,2.33333, 5], decimal=5) Traceback (most recent call last): ... AssertionError: Arrays are not almost equal to 5 decimals nan location mismatch: ACTUAL: array([1. , 2.33333, nan]) DESIRED: array([1. , 2.33333, 5. ])
- class holoviews.element.comparison.ComparisonInterface[source]#
Bases:
objectThis class is designed to allow equality testing to work seamlessly with unittest.TestCase as a mix-in by implementing a compatible interface (namely the assertEqual method).
The assertEqual class method is to be overridden by an instance method of the same name when used as a mix-in with TestCase. The contents of the equality_type_funcs dictionary is suitable for use with TestCase.addTypeEqualityFunc.
- classmethod assertEqual(first, second, msg=None)[source]#
Classmethod equivalent to unittest.TestCase method
- failureException#
alias of
AssertionError
- class holoviews.element.comparison.ComparisonTestCase(*args, **kwargs)[source]#
Bases:
Comparison,TestCaseClass to integrate the Comparison class with unittest.TestCase.
- class holoviews.element.comparison.IPTestCase(*args, **kwargs)[source]#
Bases:
ComparisonTestCaseThis class extends ComparisonTestCase to handle IPython specific objects and support the execution of cells and magic.