diff options
Diffstat (limited to 'numpy/core')
-rw-r--r-- | numpy/core/code_generators/generate_umath.py | 9 | ||||
-rw-r--r-- | numpy/core/tests/test_ufunc.py | 14 |
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 |