Testing Modules¶
CuPy offers testing utilities to support unit testing.
They are under namespace cupy.testing.
Standard Assertions¶
The assertions have same names as NumPy’s ones.
The difference from NumPy is that they can accept both numpy.ndarray
and cupy.ndarray.
cupy.testing.assert_allclose |
Raises an AssertionError if objects are not equal up to desired tolerance. |
cupy.testing.assert_array_almost_equal |
Raises an AssertionError if objects are not equal up to desired precision. |
cupy.testing.assert_array_almost_equal_nulp |
Compare two arrays relatively to their spacing. |
cupy.testing.assert_array_max_ulp |
Check that all items of arrays differ in at most N Units in the Last Place. |
cupy.testing.assert_array_equal |
Raises an AssertionError if two array_like objects are not equal. |
cupy.testing.assert_array_list_equal |
Compares lists of arrays pairwise with assert_array_equal. |
cupy.testing.assert_array_less |
Raises an AssertionError if array_like objects are not ordered by less than. |
NumPy-CuPy Consistency Check¶
The following decorators are for testing consistency between CuPy’s functions and corresponding NumPy’s ones.
cupy.testing.numpy_cupy_allclose |
Decorator that checks NumPy results and CuPy ones are close. |
cupy.testing.numpy_cupy_array_almost_equal |
Decorator that checks NumPy results and CuPy ones are almost equal. |
cupy.testing.numpy_cupy_array_almost_equal_nulp |
Decorator that checks results of NumPy and CuPy are equal w.r.t. |
cupy.testing.numpy_cupy_array_max_ulp |
Decorator that checks results of NumPy and CuPy ones are equal w.r.t. |
cupy.testing.numpy_cupy_array_equal |
Decorator that checks NumPy results and CuPy ones are equal. |
cupy.testing.numpy_cupy_array_list_equal |
Decorator that checks the resulting lists of NumPy and CuPy’s one are equal. |
cupy.testing.numpy_cupy_array_less |
Decorator that checks the CuPy result is less than NumPy result. |
cupy.testing.numpy_cupy_raises |
Decorator that checks the NumPy and CuPy throw same errors. |
Parameterized dtype Test¶
The following decorators offer the standard way for parameterized test with respect to single or the combination of dtype(s).
cupy.testing.for_dtypes |
Decorator for parameterized dtype test. |
cupy.testing.for_all_dtypes |
Decorator that checks the fixture with all dtypes. |
cupy.testing.for_float_dtypes |
Decorator that checks the fixture with float dtypes. |
cupy.testing.for_signed_dtypes |
Decorator that checks the fixture with signed dtypes. |
cupy.testing.for_unsigned_dtypes |
Decorator that checks the fixture with unsinged dtypes. |
cupy.testing.for_int_dtypes |
Decorator that checks the fixture with integer and optionally bool dtypes. |
cupy.testing.for_complex_dtypes |
Decorator that checks the fixture with complex dtypes. |
cupy.testing.for_dtypes_combination |
Decorator that checks the fixture with a product set of dtypes. |
cupy.testing.for_all_dtypes_combination |
Decorator that checks the fixture with a product set of all dtypes. |
cupy.testing.for_signed_dtypes_combination |
Decorator for parameterized test w.r.t. |
cupy.testing.for_unsigned_dtypes_combination |
Decorator for parameterized test w.r.t. |
cupy.testing.for_int_dtypes_combination |
Decorator for parameterized test w.r.t. |
Parameterized order Test¶
The following decorators offer the standard way to parameterize tests with orders.
cupy.testing.for_orders |
Decorator to parameterize tests with order. |
cupy.testing.for_CF_orders |
Decorator that checks the fixture with orders ‘C’ and ‘F’. |