Skip to content

Commit 7de4852

Browse files
committed
Make sure both arguments in the assertion are masked
1 parent 2de9e52 commit 7de4852

File tree

6 files changed

+9
-9
lines changed

6 files changed

+9
-9
lines changed

array_api_tests/special_cases/test_add.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def test_add_special_cases_two_args_either__equal(arg1, arg2):
207207
"""
208208
res = add(arg1, arg2)
209209
mask = logical_and(logical_or(exactly_equal(arg1, zero(arg1.dtype)), exactly_equal(arg1, -zero(arg1.dtype))), logical_and(isfinite(arg2), nonzero(arg2)))
210-
assert_exactly_equal(res[mask], arg2)
210+
assert_exactly_equal(res[mask], arg2[mask])
211211

212212

213213
@given(numeric_arrays, numeric_arrays)
@@ -220,7 +220,7 @@ def test_add_special_cases_two_args_equal__either(arg1, arg2):
220220
"""
221221
res = add(arg1, arg2)
222222
mask = logical_and(logical_and(isfinite(arg1), nonzero(arg1)), logical_or(exactly_equal(arg2, zero(arg2.dtype)), exactly_equal(arg2, -zero(arg2.dtype))))
223-
assert_exactly_equal(res[mask], arg1)
223+
assert_exactly_equal(res[mask], arg1[mask])
224224

225225
# TODO: Implement REMAINING test for:
226226
# - In the remaining cases, when neither `infinity`, `+0`, `-0`, nor a `NaN` is involved, and the operands have the same mathematical sign or have different magnitudes, the sum must be computed and rounded to the nearest representable value according to IEEE 754-2019 and a supported round mode. If the magnitude is too large to represent, the operation overflows and the result is an `infinity` of appropriate mathematical sign.

array_api_tests/special_cases/test_ceil.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ def test_ceil_special_cases_one_arg_equal(arg1):
2424
"""
2525
res = ceil(arg1)
2626
mask = isintegral(arg1)
27-
assert_exactly_equal(res[mask], arg1)
27+
assert_exactly_equal(res[mask], arg1[mask])

array_api_tests/special_cases/test_floor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ def test_floor_special_cases_one_arg_equal(arg1):
2424
"""
2525
res = floor(arg1)
2626
mask = isintegral(arg1)
27-
assert_exactly_equal(res[mask], arg1)
27+
assert_exactly_equal(res[mask], arg1[mask])

array_api_tests/special_cases/test_round.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def test_round_special_cases_one_arg_equal(arg1):
2525
"""
2626
res = round(arg1)
2727
mask = isintegral(arg1)
28-
assert_exactly_equal(res[mask], arg1)
28+
assert_exactly_equal(res[mask], arg1[mask])
2929

3030

3131
@given(numeric_arrays)

array_api_tests/special_cases/test_trunc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ def test_trunc_special_cases_one_arg_equal(arg1):
2424
"""
2525
res = trunc(arg1)
2626
mask = isintegral(arg1)
27-
assert_exactly_equal(res[mask], arg1)
27+
assert_exactly_equal(res[mask], arg1[mask])

generate_stubs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,11 +315,11 @@ def get_assert(typ, result):
315315
_check_exactly_equal(typ, result)
316316
return "assert_negative(res[mask])"
317317
elif 'x_i' in result:
318-
return f"assert_{typ}(res[mask], {result.replace('x_i', 'arg1')})"
318+
return f"assert_{typ}(res[mask], {result.replace('x_i', 'arg1')}[mask])"
319319
elif 'x1_i' in result:
320-
return f"assert_{typ}(res[mask], {result.replace('x1_i', 'arg1')})"
320+
return f"assert_{typ}(res[mask], {result.replace('x1_i', 'arg1')}[mask])"
321321
elif 'x2_i' in result:
322-
return f"assert_{typ}(res[mask], {result.replace('x2_i', 'arg2')})"
322+
return f"assert_{typ}(res[mask], {result.replace('x2_i', 'arg2')}[mask])"
323323
# TODO: Get use something better than arg1 here for the arg
324324
result = parse_value(result, "arg1")
325325
try:

0 commit comments

Comments
 (0)