From 653c4e4a51c687c3551e3bd83fd332f1b7e4f585 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 12:47:08 -0600 Subject: [PATCH 1/7] Change the NumPy latest CI to test NumPy 1.26 --- ...ray-api-tests-numpy.yml => array-api-tests-numpy-1-26.yml} | 4 +++- numpy-skips.txt => numpy-1-26-skips.txt | 0 numpy-xfails.txt => numpy-1-26.xfails.txt | 0 3 files changed, 3 insertions(+), 1 deletion(-) rename .github/workflows/{array-api-tests-numpy.yml => array-api-tests-numpy-1-26.yml} (59%) rename numpy-skips.txt => numpy-1-26-skips.txt (100%) rename numpy-xfails.txt => numpy-1-26.xfails.txt (100%) diff --git a/.github/workflows/array-api-tests-numpy.yml b/.github/workflows/array-api-tests-numpy-1-26.yml similarity index 59% rename from .github/workflows/array-api-tests-numpy.yml rename to .github/workflows/array-api-tests-numpy-1-26.yml index 36984345..660935f0 100644 --- a/.github/workflows/array-api-tests-numpy.yml +++ b/.github/workflows/array-api-tests-numpy-1-26.yml @@ -1,4 +1,4 @@ -name: Array API Tests (NumPy Latest) +name: Array API Tests (NumPy 1.26) on: [push, pull_request] @@ -7,3 +7,5 @@ jobs: uses: ./.github/workflows/array-api-tests.yml with: package-name: numpy + package-version: '== 1.26.*' + xfails-file-extra: '-1-26' diff --git a/numpy-skips.txt b/numpy-1-26-skips.txt similarity index 100% rename from numpy-skips.txt rename to numpy-1-26-skips.txt diff --git a/numpy-xfails.txt b/numpy-1-26.xfails.txt similarity index 100% rename from numpy-xfails.txt rename to numpy-1-26.xfails.txt From 4fb80c0579447defaef0b5f22c05530a6e9581d9 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 12:51:09 -0600 Subject: [PATCH 2/7] Add a CI job for NumPy Latest (2.0) --- .../array-api-tests-numpy-latest.yml | 9 +++++ numpy-xfails.txt | 39 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 .github/workflows/array-api-tests-numpy-latest.yml create mode 100644 numpy-xfails.txt diff --git a/.github/workflows/array-api-tests-numpy-latest.yml b/.github/workflows/array-api-tests-numpy-latest.yml new file mode 100644 index 00000000..36984345 --- /dev/null +++ b/.github/workflows/array-api-tests-numpy-latest.yml @@ -0,0 +1,9 @@ +name: Array API Tests (NumPy Latest) + +on: [push, pull_request] + +jobs: + array-api-tests-numpy-latest: + uses: ./.github/workflows/array-api-tests.yml + with: + package-name: numpy diff --git a/numpy-xfails.txt b/numpy-xfails.txt new file mode 100644 index 00000000..6aa54bb4 --- /dev/null +++ b/numpy-xfails.txt @@ -0,0 +1,39 @@ +# finfo(float32).eps returns float32 but should return float +array_api_tests/test_data_type_functions.py::test_finfo[float32] + +# NumPy deviates in some special cases for floordiv +array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity] +array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity] +array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity] +array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity] +array_api_tests/test_special_cases.py::test_binary[floor_divide(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0] +array_api_tests/test_special_cases.py::test_binary[floor_divide(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0] +array_api_tests/test_special_cases.py::test_binary[__floordiv__(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0] +array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0] + +# https://github.com/numpy/numpy/issues/21213 +array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -infinity and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +infinity] +array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -0 and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +0] +array_api_tests/test_special_cases.py::test_iop[__ipow__(x1_i is -infinity and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +infinity] +array_api_tests/test_special_cases.py::test_iop[__ipow__(x1_i is -0 and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +0] +array_api_tests/meta/test_hypothesis_helpers.py::test_symmetric_matrices + +# The test suite is incorrectly checking sums that have loss of significance +# (https://github.com/data-apis/array-api-tests/issues/168) +array_api_tests/test_statistical_functions.py::test_sum +array_api_tests/test_statistical_functions.py::test_prod + +# The test suite cannot properly get the signature for vecdot +# https://github.com/numpy/numpy/pull/26237 +array_api_tests/test_signatures.py::test_func_signature[vecdot] +array_api_tests/test_signatures.py::test_extension_func_signature[linalg.vecdot] From dfb6f43b9932a921a6407652c90574c3b57a9118 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 12:54:05 -0600 Subject: [PATCH 3/7] Fix xfails file name --- numpy-1-26.xfails.txt => numpy-1-26-xfails.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename numpy-1-26.xfails.txt => numpy-1-26-xfails.txt (100%) diff --git a/numpy-1-26.xfails.txt b/numpy-1-26-xfails.txt similarity index 100% rename from numpy-1-26.xfails.txt rename to numpy-1-26-xfails.txt From 2ef47e387f8669c7c521fd02e3544be13f23e517 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 12:56:50 -0600 Subject: [PATCH 4/7] Fix NumPy skips file --- numpy-1-26-skips.txt => numpy-skips.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename numpy-1-26-skips.txt => numpy-skips.txt (100%) diff --git a/numpy-1-26-skips.txt b/numpy-skips.txt similarity index 100% rename from numpy-1-26-skips.txt rename to numpy-skips.txt From 80d4292a9f9d310b25335dcbd56a117926e60e95 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 13:13:33 -0600 Subject: [PATCH 5/7] Add url to setup.py This will hopefully fix the publish CI. --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 6e7a9949..089aa04e 100644 --- a/setup.py +++ b/setup.py @@ -31,4 +31,5 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], + url="https://data-apis.org/array-api-compat/", ) From f2789555d8f5b731052616e999ba6998de986666 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 13:15:11 -0600 Subject: [PATCH 6/7] Revert "Add url to setup.py" This reverts commit 80d4292a9f9d310b25335dcbd56a117926e60e95. --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 089aa04e..6e7a9949 100644 --- a/setup.py +++ b/setup.py @@ -31,5 +31,4 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], - url="https://data-apis.org/array-api-compat/", ) From ebb8a8f0b274a52e8a3ccced5ead6b01867fd402 Mon Sep 17 00:00:00 2001 From: Aaron Meurer Date: Tue, 25 Jun 2024 13:48:11 -0600 Subject: [PATCH 7/7] Skip all fft signature tests for dask --- dask-skips.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dask-skips.txt b/dask-skips.txt index 8e884ac0..2a67d75d 100644 --- a/dask-skips.txt +++ b/dask-skips.txt @@ -1,5 +1,17 @@ # FFT isn't conformant array_api_tests/test_fft.py +array_api_tests/test_signatures.py::test_extension_func_signature[fft.fft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.ifft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.fftn] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.ifftn] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.rfft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.irfft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.rfftn] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.irfftn] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.hfft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.ihfft] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.fftfreq] +array_api_tests/test_signatures.py::test_extension_func_signature[fft.rfftfreq] # slow and not implemented in dask array_api_tests/test_linalg.py::test_matrix_power