MCPcopy Index your code
hub / github.com/dask/dask / test_binary_ufunc

Function test_binary_ufunc

dask/array/tests/test_ufunc.py:187–224  ·  view source on GitHub ↗
(ufunc)

Source from the content-addressed store, hash-verified

185
186@pytest.mark.parametrize("ufunc", binary_ufuncs)
187def test_binary_ufunc(ufunc):
188 dafunc = getattr(da, ufunc)
189 npfunc = getattr(np, ufunc)
190
191 arr1 = np.random.randint(1, 100, size=(20, 20))
192 darr1 = da.from_array(arr1, 3)
193
194 arr2 = np.random.randint(1, 100, size=(20, 20))
195 darr2 = da.from_array(arr2, 3)
196
197 # applying Dask ufunc doesn't trigger computation
198 assert isinstance(dafunc(darr1, darr2), da.Array)
199 assert_eq(dafunc(darr1, darr2), npfunc(arr1, arr2))
200
201 # applying NumPy ufunc triggers computation or is lazy
202 assert isinstance(npfunc(darr1, darr2), da.Array)
203 assert_eq(npfunc(darr1, darr2), npfunc(arr1, arr2))
204
205 # applying Dask ufunc to normal ndarray triggers computation
206 assert isinstance(dafunc(arr1, arr2), np.ndarray)
207 assert_eq(dafunc(arr1, arr2), npfunc(arr1, arr2))
208
209 # with scalar
210 assert isinstance(dafunc(darr1, 10), da.Array)
211 assert_eq(dafunc(darr1, 10), npfunc(arr1, 10))
212
213 with warnings.catch_warnings(): # overflow in ldexp
214 warnings.filterwarnings("ignore", category=RuntimeWarning)
215 assert isinstance(dafunc(10, darr1), da.Array)
216 assert_eq(dafunc(10, darr1), npfunc(10, arr1))
217
218 assert isinstance(dafunc(arr1, 10), np.ndarray)
219 assert_eq(dafunc(arr1, 10), npfunc(arr1, 10))
220
221 with warnings.catch_warnings(): # overflow in ldexp
222 warnings.filterwarnings("ignore", category=RuntimeWarning)
223 assert isinstance(dafunc(10, arr1), np.ndarray)
224 assert_eq(dafunc(10, arr1), npfunc(10, arr1))
225
226
227def test_ufunc_outer():

Callers

nothing calls this directly

Calls 2

assert_eqFunction · 0.90
randintMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…