| from typing import Callable |
| |
| import pytest |
| |
| from numpy import array_api as xp |
| |
| |
| def p(func: Callable, *args, **kwargs): |
| f_sig = ", ".join( |
| [str(a) for a in args] + [f"{k}={v}" for k, v in kwargs.items()] |
| ) |
| id_ = f"{func.__name__}({f_sig})" |
| return pytest.param(func, args, kwargs, id=id_) |
| |
| |
| @pytest.mark.parametrize( |
| "func, args, kwargs", |
| [ |
| p(xp.can_cast, 42, xp.int8), |
| p(xp.can_cast, xp.int8, 42), |
| p(xp.result_type, 42), |
| ], |
| ) |
| def test_raises_on_invalid_types(func, args, kwargs): |
| """Function raises TypeError when passed invalidly-typed inputs""" |
| with pytest.raises(TypeError): |
| func(*args, **kwargs) |