MCPcopy Create free account
hub / github.com/numpy/numpy / test_ufunc_override_methods

Method test_ufunc_override_methods

numpy/core/tests/test_umath.py:3380–3549  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3378 assert_equal(c2.count, 1)
3379
3380 def test_ufunc_override_methods(self):
3381
3382 class A:
3383 def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
3384 return self, ufunc, method, inputs, kwargs
3385
3386 # __call__
3387 a = A()
3388 with assert_raises(TypeError):
3389 np.multiply.__call__(1, a, foo='bar', answer=42)
3390 res = np.multiply.__call__(1, a, subok='bar', where=42)
3391 assert_equal(res[0], a)
3392 assert_equal(res[1], np.multiply)
3393 assert_equal(res[2], '__call__')
3394 assert_equal(res[3], (1, a))
3395 assert_equal(res[4], {'subok': 'bar', 'where': 42})
3396
3397 # __call__, wrong args
3398 assert_raises(TypeError, np.multiply, a)
3399 assert_raises(TypeError, np.multiply, a, a, a, a)
3400 assert_raises(TypeError, np.multiply, a, a, sig='a', signature='a')
3401 assert_raises(TypeError, ncu_tests.inner1d, a, a, axis=0, axes=[0, 0])
3402
3403 # reduce, positional args
3404 res = np.multiply.reduce(a, 'axis0', 'dtype0', 'out0', 'keep0')
3405 assert_equal(res[0], a)
3406 assert_equal(res[1], np.multiply)
3407 assert_equal(res[2], 'reduce')
3408 assert_equal(res[3], (a,))
3409 assert_equal(res[4], {'dtype':'dtype0',
3410 'out': ('out0',),
3411 'keepdims': 'keep0',
3412 'axis': 'axis0'})
3413
3414 # reduce, kwargs
3415 res = np.multiply.reduce(a, axis='axis0', dtype='dtype0', out='out0',
3416 keepdims='keep0', initial='init0',
3417 where='where0')
3418 assert_equal(res[0], a)
3419 assert_equal(res[1], np.multiply)
3420 assert_equal(res[2], 'reduce')
3421 assert_equal(res[3], (a,))
3422 assert_equal(res[4], {'dtype':'dtype0',
3423 'out': ('out0',),
3424 'keepdims': 'keep0',
3425 'axis': 'axis0',
3426 'initial': 'init0',
3427 'where': 'where0'})
3428
3429 # reduce, output equal to None removed, but not other explicit ones,
3430 # even if they are at their default value.
3431 res = np.multiply.reduce(a, 0, None, None, False)
3432 assert_equal(res[4], {'axis': 0, 'dtype': None, 'keepdims': False})
3433 res = np.multiply.reduce(a, out=None, axis=0, keepdims=True)
3434 assert_equal(res[4], {'axis': 0, 'keepdims': True})
3435 res = np.multiply.reduce(a, None, out=(None,), dtype=None)
3436 assert_equal(res[4], {'axis': None, 'dtype': None})
3437 res = np.multiply.reduce(a, 0, None, None, False, 2, True)

Callers

nothing calls this directly

Calls 7

assert_raisesFunction · 0.90
assert_equalFunction · 0.90
accumulateMethod · 0.80
AClass · 0.70
__call__Method · 0.45
reduceMethod · 0.45
outerMethod · 0.45

Tested by

no test coverage detected