|
5 | 5 |
|
6 | 6 | from scipy.sparse import dok_matrix, csr_matrix, issparse
|
7 | 7 | from scipy.spatial.distance import cosine, cityblock, minkowski, wminkowski
|
8 |
| -from scipy.spatial.distance import cdist |
| 8 | +from scipy.spatial.distance import cdist, pdist, squareform |
9 | 9 |
|
10 | 10 | import pytest
|
11 | 11 |
|
@@ -914,19 +914,22 @@ def test_pairwise_distances_data_derived_params(n_jobs, metric, dist_function,
|
914 | 914 |
|
915 | 915 | if y_is_x:
|
916 | 916 | Y = X
|
| 917 | + expected_dist_default_params = squareform(pdist(X, metric=metric)) |
917 | 918 | if metric == "seuclidean":
|
918 | 919 | params = {'V': np.var(X, axis=0, ddof=1)}
|
919 | 920 | else:
|
920 | 921 | params = {'VI': np.linalg.inv(np.cov(X.T)).T}
|
921 | 922 | else:
|
922 | 923 | Y = rng.random_sample((1000, 10))
|
| 924 | + expected_dist_default_params = cdist(X, Y, metric=metric) |
923 | 925 | if metric == "seuclidean":
|
924 | 926 | params = {'V': np.var(np.vstack([X, Y]), axis=0, ddof=1)}
|
925 | 927 | else:
|
926 | 928 | params = {'VI': np.linalg.inv(np.cov(np.vstack([X, Y]).T)).T}
|
927 | 929 |
|
928 |
| - expected_dist = cdist(X, Y, metric=metric, **params) |
| 930 | + expected_dist_explicit_params = cdist(X, Y, metric=metric, **params) |
929 | 931 |
|
930 | 932 | dist = np.vstack(dist_function(X, Y, metric=metric, n_jobs=n_jobs))
|
931 | 933 |
|
932 |
| - assert_allclose(dist, expected_dist) |
| 934 | + assert_allclose(dist, expected_dist_explicit_params) |
| 935 | + assert_allclose(dist, expected_dist_default_params) |
0 commit comments