Skip to content

Commit 1cc02b3

Browse files
ENH: adding array-api-compat and enabling array api conformance tests (#2079)
* ENH: adding `array-api-compat` and enabling array api conformance tests * Disabled tests and added comment
1 parent f550b06 commit 1cc02b3

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

deselected_tests.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,26 @@
2525
# will exclude deselection in versions 0.18.1, and 0.18.2 only.
2626

2727
deselected_tests:
28+
# Array API support
29+
# sklearnex functional Array API support doesn't guaranty namespace consistency for the estimator's array attributes.
30+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,svd_solver='covariance_eigh')-check_array_api_input_and_values-array_api_strict-None-None]
31+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,svd_solver='covariance_eigh',whiten=True)-check_array_api_input_and_values-array_api_strict-None-None]
32+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,svd_solver='covariance_eigh')-check_array_api_get_precision-array_api_strict-None-None]
33+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,svd_solver='covariance_eigh',whiten=True)-check_array_api_get_precision-array_api_strict-None-None]
34+
- linear_model/tests/test_ridge.py::test_ridge_array_api_compliance[Ridge(solver='svd')-check_array_api_attributes-array_api_strict-None-None]
35+
- linear_model/tests/test_ridge.py::test_ridge_array_api_compliance[Ridge(solver='svd')-check_array_api_input_and_values-array_api_strict-None-None]
36+
# `train_test_split` inconsistency for Array API inputs.
37+
- model_selection/tests/test_split.py::test_array_api_train_test_split[True-None-array_api_strict-None-None]
38+
- model_selection/tests/test_split.py::test_array_api_train_test_split[True-stratify1-array_api_strict-None-None]
39+
- model_selection/tests/test_split.py::test_array_api_train_test_split[False-None-array_api_strict-None-None]
40+
# PCA. Array API functionally supported for all factorizations. power_iteration_normalizer=["LU", "QR"]
41+
- decomposition/tests/test_pca.py::test_array_api_error_and_warnings_on_unsupported_params
42+
# PCA. InvalidParameterError: The 'M' parameter of randomized_svd must be an instance of 'numpy.ndarray' or a sparse matrix.
43+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,power_iteration_normalizer='QR',random_state=0,svd_solver='randomized')-check_array_api_input_and_values-array_api_strict-None-None]
44+
- decomposition/tests/test_pca.py::test_pca_array_api_compliance[PCA(n_components=2,power_iteration_normalizer='QR',random_state=0,svd_solver='randomized')-check_array_api_get_precision-array_api_strict-None-None]
45+
# Ridge regression. Array API functionally supported for all solvers. Not raising error for non-svd solvers.
46+
- linear_model/tests/test_ridge.py::test_array_api_error_and_warnings_for_solver_parameter[array_api_strict]
47+
2848
# 'kulsinski' distance was deprecated in scipy 1.11 but still marked as supported in scikit-learn < 1.3
2949
- neighbors/tests/test_neighbors.py::test_kneighbors_brute_backend[float64-kulsinski] <1.3
3050
- neighbors/tests/test_neighbors.py::test_radius_neighbors_brute_backend[kulsinski] <1.3

requirements-test.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ xgboost==2.1.1
1111
lightgbm==4.5.0
1212
catboost==1.2.7 ; python_version < '3.11' # TODO: Remove 3.11 condition when catboost supports numpy 2.0
1313
shap==0.46.0
14+
array-api-compat==1.8.0
1415
array-api-strict==2.0.1

0 commit comments

Comments
 (0)