Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Missing use cases for binops on array vs. scalar

Open
#364 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
testing-qa

Research direction

Start with the referenced sections of array_api_tests/hypothesis_helpers.py, then inspect test_binary_with_scalars_real in test_operators_and_elementwise_functions.py and test_binary in test_special_cases.py. Compare their generated inputs with the listed integer, special-value, and out-of-range scalar cases; done means the missing cases are covered and the float/complex range behavior is clarified.

Written by the indexing model from the issue text.

Description

After reading hh.scalars, I understand that array-api-tests currently never generates the use cases of a binop where one argument is an Array with float or complex dtype and the other argument is

  • a pure-python integer;
  • a scalar inf, -inf, or nan;
  • a scalar outside of the range [1/64, 64]

Unless I missed something and the tests for these cases are somewhere else?

https://github.com/data-apis/array-api-tests/blob/c1e5cda7836963e58e40bcdf68881a569b8c64d5/array_api_tests/hypothesis_helpers.py#L451-L481

https://github.com/data-apis/array-api-tests/blob/c1e5cda7836963e58e40bcdf68881a569b8c64d5/array_api_tests/hypothesis_helpers.py#L590-L597

Note that the [1/64, 64] range exclusively applies to float/complex. The code could use a clarification there as it is not obvious upon first read that integers ignore it.

e.g. pytest -k minimum returns this:

array_api_tests/test_has_names.py::test_has_names[elementwise-minimum] PASSED                                                                                    [ 20%]
array_api_tests/test_operators_and_elementwise_functions.py::test_minimum PASSED                                                                                 [ 40%]
array_api_tests/test_operators_and_elementwise_functions.py::test_binary_with_scalars_real[minimum] SKIPPED (requires ARRAY_API_TESTS_VERSION >= 2024.12)        [ 60%]
array_api_tests/test_signatures.py::test_func_signature[minimum] PASSED                                                                                          [ 80%]
array_api_tests/test_special_cases.py::test_binary[minimum(x1_i is NaN or x2_i is NaN) -> NaN] PASSED   

To my understanding

  • in test_binary_with_scalars_real, when one arg is Array[float64] or Array[float32], the other arg is always in the [1/64, 64] range;
  • test_special_cases::test_binary only tests arrays containing NaN, not scalar NaN;
  • none tests inf or arrays containing inf

related:

Dominant language
Python
Stars
74
Forks
54
Avg merge
4h 35m
Merged PRs (30d)
4

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from data-apis/array-api-tests

All issues in data-apis/array-api-tests

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.