@@ -106,9 +106,15 @@ def test_1d_dist(funcname, kw, seed, size, chunks):
106
106
("correlation" , {}),
107
107
("cosine" , {}),
108
108
("euclidean" , {}),
109
+ ("mahalanobis" , {"VI" : None }),
110
+ ("mahalanobis" , {}),
109
111
("minkowski" , {}),
110
112
("minkowski" , {"p" : 3 }),
113
+ ("seuclidean" , {"V" : None }),
114
+ ("seuclidean" , {}),
111
115
("sqeuclidean" , {}),
116
+ ("wminkowski" , {}),
117
+ ("wminkowski" , {"p" : 1.6 }),
112
118
(lambda u , v : (abs (u - v ) ** 3 ).sum () ** (1.0 / 3.0 ), {}),
113
119
]
114
120
)
@@ -133,6 +139,19 @@ def test_2d_cdist(metric, kw, seed, u_shape, u_chunks, v_shape, v_chunks):
133
139
d_u = da .from_array (a_u , chunks = u_chunks )
134
140
d_v = da .from_array (a_v , chunks = v_chunks )
135
141
142
+ if metric == "mahalanobis" :
143
+ if "VI" not in kw :
144
+ kw ["VI" ] = 2 * np .random .random (2 * u_shape [- 1 :]) - 1
145
+ elif kw ["VI" ] is None :
146
+ kw .pop ("VI" )
147
+ elif metric == "seuclidean" :
148
+ if "V" not in kw :
149
+ kw ["V" ] = 2 * np .random .random (u_shape [- 1 :]) - 1
150
+ elif kw ["V" ] is None :
151
+ kw .pop ("V" )
152
+ elif metric == "wminkowski" :
153
+ kw ["w" ] = np .random .random (u_shape [- 1 :])
154
+
136
155
a_r = spdist .cdist (a_u , a_v , metric , ** kw )
137
156
d_r = dask_distance .cdist (d_u , d_v , metric , ** kw )
138
157
@@ -148,9 +167,15 @@ def test_2d_cdist(metric, kw, seed, u_shape, u_chunks, v_shape, v_chunks):
148
167
("correlation" , {}),
149
168
("cosine" , {}),
150
169
("euclidean" , {}),
170
+ ("mahalanobis" , {"VI" : None }),
171
+ ("mahalanobis" , {}),
151
172
("minkowski" , {}),
152
173
("minkowski" , {"p" : 3 }),
174
+ ("seuclidean" , {"V" : None }),
175
+ ("seuclidean" , {}),
153
176
("sqeuclidean" , {}),
177
+ ("wminkowski" , {}),
178
+ ("wminkowski" , {"p" : 1.6 }),
154
179
(lambda u , v : (abs (u - v ) ** 3 ).sum () ** (1.0 / 3.0 ), {}),
155
180
]
156
181
)
@@ -172,6 +197,19 @@ def test_2d_pdist(metric, kw, seed, u_shape, u_chunks):
172
197
a_u = 2 * np .random .random (u_shape ) - 1
173
198
d_u = da .from_array (a_u , chunks = u_chunks )
174
199
200
+ if metric == "mahalanobis" :
201
+ if "VI" not in kw :
202
+ kw ["VI" ] = 2 * np .random .random (2 * u_shape [- 1 :]) - 1
203
+ elif kw ["VI" ] is None :
204
+ kw .pop ("VI" )
205
+ elif metric == "seuclidean" :
206
+ if "V" not in kw :
207
+ kw ["V" ] = 2 * np .random .random (u_shape [- 1 :]) - 1
208
+ elif kw ["V" ] is None :
209
+ kw .pop ("V" )
210
+ elif metric == "wminkowski" :
211
+ kw ["w" ] = np .random .random (u_shape [- 1 :])
212
+
175
213
a_r = spdist .pdist (a_u , metric , ** kw )
176
214
d_r = dask_distance .pdist (d_u , metric , ** kw )
177
215
0 commit comments