Skip to content

Commit 31d07a8

Browse files
committed
Rename the nonzero() array helper to non_zero()
nonzero() is already a spec function, and it returns something different.
1 parent 50a768b commit 31d07a8

File tree

5 files changed

+21
-20
lines changed

5 files changed

+21
-20
lines changed

array_api_tests/array_helpers.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
# tests from this file.
99
from ._array_module import logical_not, subtract, floor, ceil, where
1010

11-
__all__ = ['logical_and', 'logical_or', 'logical_not', 'less', 'greater', 'subtract',
12-
'floor', 'ceil', 'where', 'isfinite', 'equal', 'zero', 'one', 'NaN', 'infinity', 'π',
13-
'isnegzero', 'isposzero', 'exactly_equal', 'assert_exactly_equal',
14-
'assert_finite', 'nonzero', 'assert_nonzero', 'ispositive',
11+
__all__ = ['logical_and', 'logical_or', 'logical_not', 'less', 'greater',
12+
'subtract', 'floor', 'ceil', 'where', 'isfinite', 'equal', 'zero',
13+
'one', 'NaN', 'infinity', 'π', 'isnegzero', 'non_zero',
14+
'isposzero', 'exactly_equal', 'assert_exactly_equal',
15+
'assert_finite', 'assert_non_zero', 'ispositive',
1516
'assert_positive', 'isnegative', 'assert_negative', 'isintegral',
1617
'assert_integral', 'isodd', 'assert_isinf', 'same_sign',
1718
'assert_same_sign']
@@ -142,11 +143,11 @@ def assert_finite(x):
142143
"""
143144
assert all(isfinite(x)), "The input array is not finite"
144145

145-
def nonzero(x):
146-
not_equal(x, zero(x.dtype))
146+
def non_zero(x):
147+
return not_equal(x, zero(x.shape, x.dtype))
147148

148-
def assert_nonzero(x):
149-
assert all(nonzero(x)), "The input array is not nonzero"
149+
def assert_non_zero(x):
150+
assert all(non_zero(x)), "The input array is not nonzero"
150151

151152
def ispositive(x):
152153
return greater(x, zero(x.shape, x.dtype))

array_api_tests/special_cases/test_add.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"""
99

1010
from ..array_helpers import (NaN, assert_exactly_equal, exactly_equal, infinity, isfinite,
11-
logical_and, logical_or, nonzero, zero)
11+
logical_and, logical_or, non_zero, zero)
1212
from ..hypothesis_helpers import numeric_arrays
1313
from .._array_module import add
1414

@@ -193,7 +193,7 @@ def test_add_special_cases_two_args_equal__equal_13(arg1, arg2):
193193
194194
"""
195195
res = add(arg1, arg2)
196-
mask = logical_and(logical_and(isfinite(arg1), nonzero(arg1)), exactly_equal(arg2, -arg1))
196+
mask = logical_and(logical_and(isfinite(arg1), non_zero(arg1)), exactly_equal(arg2, -arg1))
197197
assert_exactly_equal(res[mask], zero(arg1.shape, arg1.dtype)[mask])
198198

199199

@@ -206,7 +206,7 @@ def test_add_special_cases_two_args_either__equal(arg1, arg2):
206206
207207
"""
208208
res = add(arg1, arg2)
209-
mask = logical_and(logical_or(exactly_equal(arg1, zero(arg1.shape, arg1.dtype)), exactly_equal(arg1, -zero(arg1.shape, arg1.dtype))), logical_and(isfinite(arg2), nonzero(arg2)))
209+
mask = logical_and(logical_or(exactly_equal(arg1, zero(arg1.shape, arg1.dtype)), exactly_equal(arg1, -zero(arg1.shape, arg1.dtype))), logical_and(isfinite(arg2), non_zero(arg2)))
210210
assert_exactly_equal(res[mask], arg2[mask])
211211

212212

@@ -219,7 +219,7 @@ def test_add_special_cases_two_args_equal__either(arg1, arg2):
219219
220220
"""
221221
res = add(arg1, arg2)
222-
mask = logical_and(logical_and(isfinite(arg1), nonzero(arg1)), logical_or(exactly_equal(arg2, zero(arg2.shape, arg2.dtype)), exactly_equal(arg2, -zero(arg2.shape, arg2.dtype))))
222+
mask = logical_and(logical_and(isfinite(arg1), non_zero(arg1)), logical_or(exactly_equal(arg2, zero(arg2.shape, arg2.dtype)), exactly_equal(arg2, -zero(arg2.shape, arg2.dtype))))
223223
assert_exactly_equal(res[mask], arg1[mask])
224224

225225
# TODO: Implement REMAINING test for:

array_api_tests/special_cases/test_divide.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from ..array_helpers import (NaN, assert_exactly_equal, assert_negative, assert_positive,
1111
exactly_equal, greater, infinity, isfinite, isnegative, ispositive,
12-
less, logical_and, logical_not, logical_or, nonzero, same_sign, zero)
12+
less, logical_and, logical_not, logical_or, non_zero, same_sign, zero)
1313
from ..hypothesis_helpers import numeric_arrays
1414
from .._array_module import divide
1515

@@ -272,7 +272,7 @@ def test_divide_special_cases_two_args_same_sign_both(arg1, arg2):
272272
273273
"""
274274
res = divide(arg1, arg2)
275-
mask = logical_and(same_sign(arg1, arg2), logical_and(logical_and(isfinite(arg1), nonzero(arg1)), logical_and(isfinite(arg2), nonzero(arg2))))
275+
mask = logical_and(same_sign(arg1, arg2), logical_and(logical_and(isfinite(arg1), non_zero(arg1)), logical_and(isfinite(arg2), non_zero(arg2))))
276276
assert_positive(res[mask])
277277

278278

@@ -285,7 +285,7 @@ def test_divide_special_cases_two_args_different_signs_both(arg1, arg2):
285285
286286
"""
287287
res = divide(arg1, arg2)
288-
mask = logical_and(logical_not(same_sign(arg1, arg2)), logical_and(logical_and(isfinite(arg1), nonzero(arg1)), logical_and(isfinite(arg2), nonzero(arg2))))
288+
mask = logical_and(logical_not(same_sign(arg1, arg2)), logical_and(logical_and(isfinite(arg1), non_zero(arg1)), logical_and(isfinite(arg2), non_zero(arg2))))
289289
assert_negative(res[mask])
290290

291291
# TODO: Implement REMAINING test for:

array_api_tests/special_cases/test_multiply.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from ..array_helpers import (NaN, assert_exactly_equal, assert_isinf, assert_negative,
1111
assert_positive, exactly_equal, infinity, isfinite, logical_and,
12-
logical_not, logical_or, nonzero, same_sign, zero)
12+
logical_not, logical_or, non_zero, same_sign, zero)
1313
from ..hypothesis_helpers import numeric_arrays
1414
from .._array_module import multiply
1515

@@ -103,7 +103,7 @@ def test_multiply_special_cases_two_args_either__equal(arg1, arg2):
103103
104104
"""
105105
res = multiply(arg1, arg2)
106-
mask = logical_and(logical_or(exactly_equal(arg1, infinity(arg1.shape, arg1.dtype)), exactly_equal(arg1, -infinity(arg1.shape, arg1.dtype))), logical_and(isfinite(arg2), nonzero(arg2)))
106+
mask = logical_and(logical_or(exactly_equal(arg1, infinity(arg1.shape, arg1.dtype)), exactly_equal(arg1, -infinity(arg1.shape, arg1.dtype))), logical_and(isfinite(arg2), non_zero(arg2)))
107107
assert_isinf(res[mask])
108108

109109

@@ -116,7 +116,7 @@ def test_multiply_special_cases_two_args_equal__either(arg1, arg2):
116116
117117
"""
118118
res = multiply(arg1, arg2)
119-
mask = logical_and(logical_and(isfinite(arg1), nonzero(arg1)), logical_or(exactly_equal(arg2, infinity(arg2.shape, arg2.dtype)), exactly_equal(arg2, -infinity(arg2.shape, arg2.dtype))))
119+
mask = logical_and(logical_and(isfinite(arg1), non_zero(arg1)), logical_or(exactly_equal(arg2, infinity(arg2.shape, arg2.dtype)), exactly_equal(arg2, -infinity(arg2.shape, arg2.dtype))))
120120
assert_isinf(res[mask])
121121

122122
# TODO: Implement REMAINING test for:

generate_stubs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ def get_mask(typ, arg, value):
274274
return f"isfinite({arg})"
275275
elif value == 'nonzero':
276276
_check_exactly_equal(typ, value)
277-
return f"nonzero({arg})"
277+
return f"non_zero({arg})"
278278
elif value == 'positive finite':
279279
_check_exactly_equal(typ, value)
280280
return f"logical_and(isfinite({arg}), ispositive({arg}))"
@@ -283,7 +283,7 @@ def get_mask(typ, arg, value):
283283
return f"logical_and(isfinite({arg}), isnegative({arg}))"
284284
elif value == 'nonzero finite':
285285
_check_exactly_equal(typ, value)
286-
return f"logical_and(isfinite({arg}), nonzero({arg}))"
286+
return f"logical_and(isfinite({arg}), non_zero({arg}))"
287287
elif value == 'positive':
288288
_check_exactly_equal(typ, value)
289289
return f"ispositive({arg})"

0 commit comments

Comments
 (0)