summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/code_generators/generate_umath.py9
-rw-r--r--numpy/core/tests/test_ufunc.py14
2 files changed, 18 insertions, 5 deletions
diff --git a/numpy/core/code_generators/generate_umath.py b/numpy/core/code_generators/generate_umath.py
index aad7c9a05..760b9c919 100644
--- a/numpy/core/code_generators/generate_umath.py
+++ b/numpy/core/code_generators/generate_umath.py
@@ -431,6 +431,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'greater_equal':
Ufunc(2, 1, None,
@@ -438,6 +439,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'less':
Ufunc(2, 1, None,
@@ -445,6 +447,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'less_equal':
Ufunc(2, 1, None,
@@ -452,6 +455,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'equal':
Ufunc(2, 1, None,
@@ -459,6 +463,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'not_equal':
Ufunc(2, 1, None,
@@ -466,6 +471,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(noobj, out='?', simd=[('avx2', ints)]),
[TypeDescription('O', FullTypeDescr, 'OO', 'O')],
+ TD('O', out='?'),
),
'logical_and':
Ufunc(2, 1, True_,
@@ -473,6 +479,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(nodatetime_or_obj, out='?', simd=[('avx2', ints)]),
TD(O, f='npy_ObjectLogicalAnd'),
+ TD(O, f='npy_ObjectLogicalAnd', out='?'),
),
'logical_not':
Ufunc(1, 1, None,
@@ -480,6 +487,7 @@ defdict = {
None,
TD(nodatetime_or_obj, out='?', simd=[('avx2', ints)]),
TD(O, f='npy_ObjectLogicalNot'),
+ TD(O, f='npy_ObjectLogicalNot', out='?'),
),
'logical_or':
Ufunc(2, 1, False_,
@@ -487,6 +495,7 @@ defdict = {
'PyUFunc_SimpleBinaryComparisonTypeResolver',
TD(nodatetime_or_obj, out='?', simd=[('avx2', ints)]),
TD(O, f='npy_ObjectLogicalOr'),
+ TD(O, f='npy_ObjectLogicalOr', out='?'),
),
'logical_xor':
Ufunc(2, 1, False_,
diff --git a/numpy/core/tests/test_ufunc.py b/numpy/core/tests/test_ufunc.py
index 707c690dd..d9f961581 100644
--- a/numpy/core/tests/test_ufunc.py
+++ b/numpy/core/tests/test_ufunc.py
@@ -1090,14 +1090,18 @@ class TestUfunc(object):
return '=='
arr0d = np.array(HasComparisons())
- assert_equal(arr0d == arr0d, True)
- assert_equal(np.equal(arr0d, arr0d), True) # normal behavior is a cast
+ assert_equal(arr0d == arr0d, '==')
+ assert_equal(np.equal(arr0d, arr0d), '==')
+ assert_equal(np.equal(arr0d, arr0d, dtype=bool), True)
assert_equal(np.equal(arr0d, arr0d, dtype=object), '==')
arr1d = np.array([HasComparisons()])
- assert_equal(arr1d == arr1d, np.array([True]))
- assert_equal(np.equal(arr1d, arr1d), np.array([True])) # normal behavior is a cast
- assert_equal(np.equal(arr1d, arr1d, dtype=object), np.array(['==']))
+ ret_obj = np.array(['=='], dtype=object)
+ ret_bool = np.array([True])
+ assert_equal(arr1d == arr1d, ret_obj)
+ assert_equal(np.equal(arr1d, arr1d), ret_obj)
+ assert_equal(np.equal(arr1d, arr1d, dtype=object), ret_obj)
+ assert_equal(np.equal(arr1d, arr1d, dtype=bool), ret_bool)
def test_object_array_reduction(self):
# Reductions on object arrays