Array API Tests #1667
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Array API Tests | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
schedule: | |
# Every weekday at 03:19 UTC, see https://crontab.guru/ | |
- cron: "19 3 * * 1-5" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest"] | |
python-version: ["3.10"] | |
steps: | |
- name: Checkout Cubed | |
uses: actions/checkout@v3 | |
with: | |
path: cubed | |
- name: Checkout Array API tests | |
uses: actions/checkout@v3 | |
with: | |
repository: data-apis/array-api-tests | |
ref: 'db95e67b29235249e5776ca2b6bb4e77117e0690' # Latest commit as of 2024-08-08 | |
path: array-api-tests | |
submodules: "true" | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Install dependencies | |
run: | | |
pushd array-api-tests | |
pip install -e '../cubed[test]' | |
pip install -r requirements.txt # from Array API tests repo | |
- name: Run Array API tests | |
env: | |
ARRAY_API_TESTS_MODULE: cubed.array_api | |
run: | | |
pushd array-api-tests | |
# Skip testing functions with known issues | |
cat << EOF >> skips.txt | |
# not implemented (elemwise inplace) | |
array_api_tests/test_operators_and_elementwise_functions.py::test_add[__iadd__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_add[__iadd__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[__iand__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[__iand__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[__ilshift__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[__ilshift__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[__ior__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[__ior__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[__irshift__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[__irshift__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[__ixor__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[__ixor__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_divide[__itruediv__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_divide[__itruediv__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[__ifloordiv__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[__ifloordiv__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[__imul__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[__imul__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_pow[__ipow__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_pow[__ipow__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[__imod__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[__imod__(x, s)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[__isub__(x1, x2)] | |
array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[__isub__(x, s)] | |
# special cases not implemented | |
array_api_tests/test_special_cases.py::test_empty_arrays[std] | |
array_api_tests/test_special_cases.py::test_empty_arrays[var] | |
array_api_tests/test_special_cases.py::test_nan_propagation[std] | |
array_api_tests/test_special_cases.py::test_nan_propagation[var] | |
# don't test names yet as some are not implemented | |
array_api_tests/test_has_names.py | |
# signatures of items not implemented | |
array_api_tests/test_signatures.py::test_func_signature[std] | |
array_api_tests/test_signatures.py::test_func_signature[var] | |
array_api_tests/test_signatures.py::test_func_signature[unique_all] | |
array_api_tests/test_signatures.py::test_func_signature[unique_counts] | |
array_api_tests/test_signatures.py::test_func_signature[unique_inverse] | |
array_api_tests/test_signatures.py::test_func_signature[unique_values] | |
array_api_tests/test_signatures.py::test_func_signature[nonzero] | |
array_api_tests/test_signatures.py::test_func_signature[from_dlpack] | |
array_api_tests/test_signatures.py::test_func_signature[argsort] | |
array_api_tests/test_signatures.py::test_func_signature[sort] | |
array_api_tests/test_signatures.py::test_array_method_signature[__dlpack__] | |
array_api_tests/test_signatures.py::test_array_method_signature[__dlpack_device__] | |
array_api_tests/test_signatures.py::test_array_method_signature[__setitem__] | |
array_api_tests/test_signatures.py::test_array_method_signature[to_device] | |
# edge case failures (https://github.com/cubed-dev/cubed/issues/420) | |
array_api_tests/test_linalg.py::test_tensordot | |
array_api_tests/test_linalg.py::test_vecdot | |
# not implemented | |
array_api_tests/test_array_object.py::test_setitem | |
array_api_tests/test_array_object.py::test_setitem_masking | |
array_api_tests/test_sorting_functions.py | |
array_api_tests/test_statistical_functions.py::test_std | |
array_api_tests/test_statistical_functions.py::test_var | |
# finfo(float32).eps returns float32 but should return float | |
array_api_tests/test_data_type_functions.py::test_finfo[float32] | |
# From https://github.com/data-apis/array-api-tests/blob/master/.github/workflows/numpy.yml | |
# https://github.com/numpy/numpy/issues/18881 | |
array_api_tests/test_creation_functions.py::test_linspace | |
EOF | |
pytest -v -rxXfEA --hypothesis-max-examples=2 --disable-data-dependent-shapes --disable-extension linalg --hypothesis-disable-deadline |