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’.