|
2 | 2 | from types import GeneratorType
|
3 | 3 |
|
4 | 4 | import numpy as np
|
| 5 | +from joblib import Parallel |
5 | 6 | from numpy import linalg
|
6 | 7 |
|
7 | 8 | from scipy.sparse import dok_matrix, csr_matrix, issparse
|
|
15 | 16 | # should be used instead.
|
16 | 17 | from scipy.spatial.distance import minkowski as wminkowski
|
17 | 18 |
|
18 |
| -from sklearn.utils.fixes import sp_version, parse_version |
| 19 | +from sklearn.utils.fixes import sp_version, parse_version, delayed |
19 | 20 |
|
20 | 21 | import pytest
|
21 | 22 |
|
@@ -1549,3 +1550,14 @@ def test_numeric_pairwise_distances_datatypes(metric, global_dtype, y_is_x):
|
1549 | 1550 | dist = pairwise_distances(X, Y, metric=metric, **params)
|
1550 | 1551 |
|
1551 | 1552 | assert_allclose(dist, expected_dist)
|
| 1553 | + |
| 1554 | + |
| 1555 | +def test_sparse_manhattan_readonly_dataset(): |
| 1556 | + # Non-regression test for: https://github.com/scikit-learn/scikit-learn/issues/7981 |
| 1557 | + matrices1 = [csr_matrix(np.ones((5, 5)))] |
| 1558 | + matrices2 = [csr_matrix(np.ones((5, 5)))] |
| 1559 | + # Joblib memory maps datasets which makes them read only. |
| 1560 | + # The following call was reporting as failing in 7981, but this must pass. |
| 1561 | + Parallel(n_jobs=-1, max_nbytes=0)( |
| 1562 | + delayed(manhattan_distances)(m1, m2) for m1, m2 in zip(matrices1, matrices2) |
| 1563 | + ) |
0 commit comments