zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
U
P±dܺã @s`ddlZddlZddlZddlZddlmZddlmZm    Z    ddl
m Z m Z m Z mZmZmZe dejddejdgd    d
ejd d d gejejejdejdgdejejddejgg¡Ze ddddg¡e d    d
d d d g¡e ddg¡e dddg¡gZe ddddddgd    d
dd d d gddddddgddddddgg¡Ze ddddddgd    d
dd d d gddddddgddddddgg¡ZGdd„dƒZGdd„dƒZGdd„dƒZe d¡e ddddd g¡d!œZe ¡D]Zejd"d#qÈej d$ej d%ej d&d'¡ejjd(e ¡e !¡d)Gd*d+„d+ƒƒƒZ"Gd,d-„d-ƒZ#Gd.d/„d/e#ƒZ$Gd0d1„d1e#ƒZ%Gd2d3„d3e#ƒZ&d4Z'e(ej d&ƒZ)e)d5d6„e'Dƒ7Z)Gd7d8„d8ƒZ*Gd9d:„d:ƒZ+Gd;d<„d<ƒZ,ej d=e ejd>ejej-g¡e d"d?d"d?g¡fejd@ddAdBgej.dCd?fe d"d?d"d?g¡d?fejejd>gejej-ggej/dCe d"d?gd"d?gg¡fg¡dDdE„ƒZ0dFdG„Z1dS)HéN)Únormalize_axis_tuple)Ú    _nan_maskÚ _replace_nan)Úassert_Ú assert_equalÚassert_almost_equalÚ assert_raisesÚassert_array_equalÚsuppress_warningsg³êsµûã?g&S£’:Ñ?gàœ¥½Á‡?gÁÊ¡E¶ó½?gÞ    Šá?g»¸ðî¿gáz®GáÊ?gL¦
F%uÞ?g6<½R–!Ò?g[B>èÙ¬º?g“:M„ ã¿gÏ÷S㥛Ä?gzÇ):’ËÇ?g•Ô    h"Ô?çð?çc@sÂeZdZejejejejejej    ej
ej ej ej ejejejejejejejejejejejejejejejejejejiZ dd„e DƒZ!e"d dd„ƒZ#e$j%j&de  '¡e!ddd    „ƒZ(d
d „Z)d S)ÚTestSignatureMatchcCsg|]
}|j‘qS©©Ú__name__)Ú.0ÚkrrúXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/lib/tests/test_nanfunctions.pyÚ
<listcomp>9szTestSignatureMatch.<listcomp>ú...cCsTg}t |¡}|j ¡D]0}|jtjjkr6| |¡q| |j|d¡qt     |¡S)z?Construct a signature and replace all default parameter-values.)Údefault)
ÚinspectÚ    signatureÚ
parametersÚvaluesrÚ    ParameterÚemptyÚappendÚreplaceÚ    Signature)ÚfuncrZprm_listrZprmrrrÚ get_signature;s
 z TestSignatureMatch.get_signaturez nan_func,func©ÚidscCs&| |¡}| |¡}tj ||¡dS©N)r!ÚnpÚtestingr)ÚselfZnan_funcr rZ nan_signaturerrrÚtest_signature_matchGs
 
z'TestSignatureMatch.test_signature_matchcCs"tj t|jƒttjjjƒ¡dS)z4Validate that all nan functions are actually tested.N)r%r&rÚsetÚIDSÚlibZ nanfunctionsÚ__all__©r'rrrÚtest_exhaustivenessPs ÿz&TestSignatureMatch.test_exhaustivenessN)r)*rÚ
__module__Ú __qualname__r%ÚnanminZaminÚnanmaxZamaxÚ    nanargminÚargminÚ    nanargmaxÚargmaxÚnansumÚsumÚnanprodÚprodÚ    nancumsumÚcumsumÚ
nancumprodÚcumprodÚnanmeanÚmeanÚ    nanmedianÚmedianÚ nanpercentileÚ
percentileÚ nanquantileÚquantileÚnanvarÚvarÚnanstdÚstdZNANFUNCSr*Ú staticmethodr!ÚpytestÚmarkÚ parametrizeÚitemsr(r.rrrrr (sFò 
r c    @seZdZejejgZejejgZ    dd„Z
dd„Z dd„Z dd„Z d    d
„Zej d d d dg¡ej dejd¡ejjde ej¡e dej¡gddgddd„ƒƒƒZdd„Zdd„Zdd„Zdd„Zej dejd¡d d!„ƒZej dejd¡d"d#„ƒZd S)$ÚTestNanFunctions_MinMaxcCs*t ¡}|jD]}||ƒt|tƒqdSr$©Ú_ndatÚcopyÚnanfuncsr©r'ÚndatÚfrrrÚ test_mutation\s
z%TestNanFunctions_MinMax.test_mutationcCs\t d¡}t|j|jƒD]>\}}dD]0}|||dd}|||dd}t|j|jkƒq$qdS©Né©NréT©ÚaxisÚkeepdims©r%ÚeyeÚziprTÚstdfuncsrÚndim©r'ÚmatÚnfÚrfr^ÚtgtÚresrrrÚ test_keepdimscs 
z%TestNanFunctions_MinMax.test_keepdimscCs^t d¡}t|j|jƒD]@\}}t d¡}||dd}||d|d}t||ƒt||ƒqdS©NrZr\©r^©r^Úout©r%rarbrTrcÚzerosr©r'rfrgrhÚresoutrirjrrrÚtest_outks
 
 
z TestNanFunctions_MinMax.test_outcCsd}t|j|jƒD]x\}}|D]j}tjd|d}||ddjj}||ddjj}t||kƒ||ddjj}||ddjj}t||kƒqqdS)NÚefdgFDGrZ©Údtyper\rm©rbrTrcr%rarwÚtyper©r'ÚcodesrgrhÚcrfrirjrrrÚtest_dtype_from_inputts z-TestNanFunctions_MinMax.test_dtype_from_inputcsDt|j|jƒD]0\}‰‡fdd„tDƒ}|tdd}t||ƒqdS)Ncsg|] }ˆ|ƒ‘qSrr©rÚd©rhrrrƒsz>TestNanFunctions_MinMax.test_result_values.<locals>.<listcomp>r\rm©rbrTrcÚ_rdatrRr©r'rgrirjrr€rÚtest_result_valuess z*TestNanFunctions_MinMax.test_result_valuesr^Nrr\rwÚAllFloatÚarray©rZrZÚ0dÚ2dr"c
Cs‚|dk    r|jdkrt d¡| |¡}d}|jD]L}tjt|d|||d}W5QRXt |¡     ¡slt
‚|j |j ks0t
‚q0dS©Nrú*`axis != None` not supported for 0d arraysúAll-NaN slice encountered©Úmatchrm) rdrLÚskipÚastyperTÚwarnsÚRuntimeWarningr%ÚisnanÚallÚAssertionErrorrw©r'r^rwr†rŽr rorrrÚ test_allnans‡s
 
 
z$TestNanFunctions_MinMax.test_allnanscCsjtj t¡}|j ¡}tjfD]F}||dd}|tdd}t||ƒt|j|ƒtt     |¡ 
¡ ƒqdS)Nr\rm) r%ÚmaZ fix_invalidrRZ_maskrSr1rrÚisinfÚany)r'rfZmskrWrjrirrrÚ test_masked™s 
 
 z#TestNanFunctions_MinMax.test_maskedcCs |jD]}t|dƒdkƒqdS©Nr ©rTr©r'rWrrrÚ test_scalar£s
z#TestNanFunctions_MinMax.test_scalarc
CsGdd„dtjƒ}t d¡ |¡}|jD]j}||dd}tt||ƒƒt|jdkƒ||dd}tt||ƒƒt|jdkƒ||ƒ}t|jdkƒq(tj|d<|jD]T}t    j
d    d
P}t      d ¡||dd}tt||ƒƒtt  t  |¡¡ ƒtt|ƒdkƒW5QRXt    j
d    d
†}t      d ¡||dd}tt||ƒƒtt  |d¡opt  |d¡ opt  |d ¡ ƒtt|ƒdkd ƒtt|djtƒƒW5QRXt    j
d    d
D}t      d ¡||ƒ}t|jdkƒt|tjkƒtt|ƒdkƒW5QRXq¤dS)Nc@s eZdZdS)z8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayN©rr/r0rrrrÚ    MyNDArray¨sr¡rZrrm©rZr\rT©ÚrecordÚalwayséúno warning raised)r%ÚndarrayraÚviewrTrÚ
isinstanceÚshapeÚnanÚwarningsÚcatch_warningsÚ simplefilterršr“ÚlenÚ
issubclassÚcategoryr’)r'r¡ÚminerWrjÚwrrrÚ test_subclass§sD
 
 
 
 $ÿ
z%TestNanFunctions_MinMax.test_subclassc    Csºtjddgtjdgtjtjggtd}tt |¡dƒttj|ddddgƒtjddV}t d    ¡tt    tj|d
dƒddtjgƒt
t |ƒd
kd ƒt
t |dj tƒƒW5QRXdS) Nr g@ç@rvrrmTr£r¥r\r§)r%r†r¬Úobjectrr1r­r®r¯Úlistrr°r±r²r’)r'Úarrr´rrrÚtest_object_arrayÒs&
 z)TestNanFunctions_MinMax.test_object_arraycCs¤Gdd„dtjƒ}t d¡ |¡}tj|dd…<|jD]h}|tjkrHdnd}|||d}|j|ksft‚||ksrt‚||     |¡|d}|j|ks’t‚||ks6t‚q6dS)Nc@s eZdZdS)z7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArrayNr rrrrr¡àsr¡é    éédr©Úinitial)
r%r¨Úarangerr¬rTr2rwr•r©)r'rwr¡ÚarrWr¿Úret1Úret2rrrÚ test_initialÞs
  z$TestNanFunctions_MinMax.test_initialc    CsÔGdd„dtjƒ}t d¡ dd¡ |¡}tj|ddd…f<tj|tjd}d|dd…df<|jD]l}|tj    krtdnd    }|||d
d }|j
|ks”t ‚||ks t ‚||  |¡|d
d }|j
|ksÂt ‚||ksbt ‚qbdS) Nc@s eZdZdS)z5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNr rrrrr¡ósr¡r»rZrrvFéér¼©Úwherer¿) r%r¨rÀÚreshaperr¬Ú    ones_likeÚbool_rTr1rwr•r©)    r'rwr¡rÁrÈrWÚ    referencerÂrÃrrrÚ
test_whereñs
 z"TestNanFunctions_MinMax.test_where)rr/r0r%r1r2rTÚminÚmaxrcrXrkrtr}r„rLrMrNÚ    typecodesr†r¬Úfullr—r›rŸrµrºrÄrÍrrrrrPWs0       
 þý 
+ 
rPc    @sÔeZdZejejgZdd„Zdd„Ze    j
  ddddg¡e    j
  d    ej d
¡e    j
j d e  ej¡e d ej¡gd dgddd„ƒƒƒZdd„Zdd„Zdd„Ze    j
  d    ej d
¡dd„ƒZe    j
  d    ej d
¡dd„ƒZdS)ÚTestNanFunctions_ArgminArgmaxcCs*t ¡}|jD]}||ƒt|tƒqdSr$rQrUrrrrX s
z+TestNanFunctions_ArgminArgmax.test_mutationc Csœt|jtjtjgƒD]‚\}}tD]t}tƒd}| td¡||ƒ}||}t    t 
|¡ ƒt    |||ƒ  ¡ ƒt    t  ||d|…¡  ¡ ƒW5QRXq qdS)Nzinvalid value encountered in) rbrTr%ZgreaterZlessrRr
Úfilterr’rr“ršÚequal)r'rWZfcmpÚrowÚsupÚindÚvalrrrr„s z0TestNanFunctions_ArgminArgmax.test_result_valuesr^Nrr\rwr…r†r‡rˆr‰r"c
Cs\|dk    r|jdkrt d¡| |¡}|jD]*}tjtdd|||dW5QRXq,dSrŠ)rdrLrrrTZraisesÚ
ValueError)r'r^rwr†r rrrr—s 
 
 
z*TestNanFunctions_ArgminArgmax.test_allnanscCsZt d¡}|jD]D}dD]}tt|||dqdD] }|||d}t|t d¡ƒq2qdS)N©rrZ©rNrm©r\r)r%rqrTrrÙr)r'rfrWr^rjrrrÚ
test_empty.s
 
 z(TestNanFunctions_ArgminArgmax.test_emptycCs |jD]}t|dƒdkƒqdSrœrržrrrrŸ7s
z)TestNanFunctions_ArgminArgmax.test_scalarcCs˜Gdd„dtjƒ}t d¡ |¡}|jD]j}||dd}tt||ƒƒt|jdkƒ||dd}tt||ƒƒt|jdkƒ||ƒ}t|jdkƒq(dS)    Nc@s eZdZdS)z>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNr rrrrr¡<sr¡rZrrmr¢r\r)r%r¨rar©rTrrªr«)r'r¡r³rWrjrrrrµ;s
  z+TestNanFunctions_ArgminArgmax.test_subclasscCsht d¡ |¡}tj|dd…<|jD]>}|tjkr6dnd}||dd}|j|jksVt‚||ks$t‚q$dS)Nr»r¼rÆT)r_)r%rÀrr¬rTr3rdr•©r'rwrÁrWrÌÚretrrrrkLs
 z+TestNanFunctions_ArgminArgmax.test_keepdimscCstt d¡ |¡}tj|dd…<|jD]J}tjdtjd}|tjkrFdnd}|||d}||ksbt‚||ks$t‚q$dS)Nr»r¼rrvrÆ©ro)    r%rÀrr¬rTrqÚintpr3r•)r'rwrÁrWrorÌrßrrrrtWs
  z&TestNanFunctions_ArgminArgmax.test_out)rr/r0r%r3r5rTrXr„rLrMrNrÐr†r¬rÑr—rÝrŸrµrkrtrrrrrÒs&  
 þý        
 
rÒr¼éé'é]éWé.)rˆZ1dF)ÚwriterwZ
AllIntegerr…ÚOrfr"c@s eZdZejejejejejej    ej
ej ej ej ejejejejejejejejejejejejejeji Zdd„eDƒZejj de !¡edej"dddd„ƒƒZ#ejj dej$ej%fej&ej'fgd    d
gdd d „ƒZ(ejj dejejfejejfgd dgddd„ƒZ)dS)ÚTestNanFunctions_NumberTypescCsg|]
}|j‘qSrr©rÚirrrrsz'TestNanFunctions_NumberTypes.<listcomp>z nanfunc,funcr"Úignore)ZovercCsV| |¡}||ƒ}||ƒ}t||ƒ|dkrBt|ƒt|ƒksRt‚n|j|jksRt‚dS)Nrè©rrryr•rw©r'rfrwZnanfuncr rirorrrÚ test_nanfuncƒs
 
z)TestNanFunctions_NumberTypes.test_nanfuncrErCcCs^| |¡}||dd}||dd}t||ƒ|dkrJt|ƒt|ƒksZt‚n|j|jksZt‚dS)Nr\©ÚqrèrírîrrrÚtest_nanfunc_qs
 
z+TestNanFunctions_NumberTypes.test_nanfunc_qrGrIcCs^| |¡}||dd}||dd}t||ƒ|dkrJt|ƒt|ƒksZt‚n|j|jksZt‚dS)Nçà?©ÚddofrèrírîrrrÚtest_nanfunc_ddof s
 
z.TestNanFunctions_NumberTypes.test_nanfunc_ddofN)*rr/r0r%r1rÎr2rÏr3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrGrHrIrJrTZ nanfunc_idsrLrMrNrOZerrstaterïrErFrCrDròrörrrrrémsRô
 ý
ýréc@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚSharedNanFunctionsTestsMixincCs*t ¡}|jD]}||ƒt|tƒqdSr$rQrUrrrrX²s
z*SharedNanFunctionsTestsMixin.test_mutationcCs\t d¡}t|j|jƒD]>\}}dD]0}|||dd}|||dd}t|j|jkƒq$qdSrYr`rerrrrk¹s 
z*SharedNanFunctionsTestsMixin.test_keepdimscCs^t d¡}t|j|jƒD]@\}}t d¡}||dd}||d|d}t||ƒt||ƒqdSrlrprrrrrrtÁs
 
 
z%SharedNanFunctionsTestsMixin.test_outc     Csât d¡}d}t|j|jƒD]À\}}|D]²}tƒ¢}|tjtjhkrX|dkrX| tj    ¡||t 
|¡ddj
j }||t 
|¡ddj
j }t ||kƒ||t 
|¡ddj
j }||t 
|¡ddj
j }t ||kƒW5QRXq(qdS©NrZruZFDGr\)rwr^© r%rarbrTrcr
rIrGrÓÚComplexWarningrwryr©    r'rfr{rgrhr|rÖrirjrrrÚtest_dtype_from_dtypeÊs
  z2SharedNanFunctionsTestsMixin.test_dtype_from_dtypec     CsÊt d¡}d}t|j|jƒD]¨\}}|D]š}tƒŠ}|tjtjhkrX|dkrX| tj    ¡|||ddj
j }|||ddj
j }t ||kƒ|||ddj
j }|||ddj
j }t ||kƒW5QRXq(qdSrørùrûrrrÚtest_dtype_from_charÛs
  z1SharedNanFunctionsTestsMixin.test_dtype_from_charcCsšd}t|j|jƒD]‚\}}|D]t}tjd|d}||ddjj}||ddjj}t||kd||fƒ||ddjj}||ddjj}t||kƒqqdS)NrurZrvr\rmzres %s, tgt %srxrzrrrr}ìsz2SharedNanFunctionsTestsMixin.test_dtype_from_inputcsDt|j|jƒD]0\}‰‡fdd„tDƒ}|tdd}t||ƒqdS)Ncsg|] }ˆ|ƒ‘qSrrr~r€rrrûszCSharedNanFunctionsTestsMixin.test_result_values.<locals>.<listcomp>r\rmrrƒrr€rr„ùs z/SharedNanFunctionsTestsMixin.test_result_valuescCs |jD]}t|dƒdkƒqdSrœrržrrrrŸÿs
z(SharedNanFunctionsTestsMixin.test_scalarcCsÐGdd„dtjƒ}t d¡}| |¡}|jD]ž}||ddj}||dd}tt||ƒƒt|j|kƒ||ddj}||dd}tt||ƒƒt|j|kƒ||ƒj}||ƒ}tt||ƒƒt|j|kƒq,dS)Nc@s eZdZdS)z=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNr rrrrr¡sr¡rZrrmr\)r%r¨rar©rTr«rrª)r'r¡r†r³rWZexpected_shaperjrrrrµs 
 
 
 
z*SharedNanFunctionsTestsMixin.test_subclassN) rr/r0rXrkrtrürýr}r„rŸrµrrrrr÷±s     r÷c    @sÀeZdZejejgZejejgZ    e
j   ddddg¡e
j   dej d¡e
j j de ej¡e dej¡gd    d
gd d d „ƒƒƒZdd„Ze
j   dej d¡dd„ƒZe
j   dej d¡dd„ƒZdS)ÚTestNanFunctions_SumProdr^Nrr\rwr…r†r‡rˆr‰r"cCsr|dk    r|jdkrt d¡| |¡}t|jddgƒD]6\}}|||d}t ||k¡s\t‚|j    |j    ks6t‚q6dS)Nrr‹r\rm©
rdrLrrrbrTr%r”r•rw©r'r^rwr†r Úidentityrorrrr—s
 
 z%TestNanFunctions_SumProd.test_allnanscCs‚ttjtjgddgƒD]f\}}t d¡}|gd}||dd}t||ƒg}||dd}t||ƒ|}||dd}t||ƒqdS)Nrr\rÚrZrm)rbr%r7r9rqr©r'rWZ    tgt_valuerfrirjrrrrÝ/s
 
 
 
 z#TestNanFunctions_SumProd.test_emptycCsft d¡ |¡}tj|dd…<|jD]<}|tjkr6dnd}||dd}|j|ksTt‚||ks$t‚q$dS)Nr»r¼éi  r¦r¾)r%rÀrr¬rTr7rwr•rÞrrrrÄ<s
 z%TestNanFunctions_SumProd.test_initialcCs”t d¡ dd¡ |¡}tj|ddd…f<tj|tjd}d|dd…df<|jD]>}|tjkrbdnd}|||dd    }|j    |ks‚t
‚||ksPt
‚qPdS)
Nr»rZrrvFéiÀr¦rÇ) r%rÀrÉrr¬rÊrËrTr7rwr•)r'rwrÁrÈrWrÌrßrrrrÍGs
z#TestNanFunctions_SumProd.test_where)rr/r0r%r7r9rTr8r:rcrLrMrNrÐr†r¬rÑr—rÝrÄrÍrrrrrþs   
 þý
 
 
rþc    @s eZdZejejgZejejgZ    e
j   ddddg¡e
j   dej d¡e
j j de ej¡e dej¡gd    d
gd d d „ƒƒƒZdd„Zdd„Zdd„Zdd„ZdS)ÚTestNanFunctions_CumSumProdr^Nrr\rwr…r†r‡rˆr‰r"cCsn|dk    r|jdkrt d¡| |¡}t|jddgƒD]2\}}||ƒ}t ||k¡sXt‚|j    |j    ks6t‚q6dS)Nrr‹r\rÿrrrrr—Zs
 
z(TestNanFunctions_CumSumProd.test_allnanscCs†t|jddgƒD]p\}}t d¡}|t d¡}||dd}t||ƒ|}||dd}t||ƒt d¡}||dd}t||ƒqdS)Nrr\rÚrm)rbrTr%rqÚonesrrrrrrÝjs
 
 
 
 z&TestNanFunctions_CumSumProd.test_emptyc    CsÔt|j|jƒD]H\}}t d¡}dD]0}|||dd}|||dd}t|j|jkƒq$q|jD]p}t d¡}tj     d¡}tj
||j |j Ždk<||dd}t |j dƒt d    ¡D]}|||d}t |j dƒq°q^dS)
NrZr[rn©rZr¼éé rrórm)iƒrÅ)rbrTrcr%rarrdrÚrandomZ RandomStater¬Úrandr«rrÀ)    r'rWÚgrfr^rirjrÚrsrrrrkws
 
 
    z)TestNanFunctions_CumSumProd.test_keepdimscCsZdD]P}tjt|d}tjt|d}t||ƒtjt|d}tjt|d}t||ƒqdS)N)éþÿÿÿéÿÿÿÿrr\Nrm)    r%r>Ú
_ndat_onesr=rRrr<Ú _ndat_zerosr;)r'r^rirjrrrr„Šs
z.TestNanFunctions_CumSumProd.test_result_valuescCsht d¡}t|j|jƒD]J\}}t d¡}dD]2}|||d}||||d}t||ƒt||ƒq.qdS)NrZ)rrrr\rmrn)r%rarbrTrcr)r'rfrgrhrsr^rirjrrrrt“s
 
 
z$TestNanFunctions_CumSumProd.test_out)rr/r0r%r;r=rTr<r>rcrLrMrNrÐr†r¬rÑr—rÝrkr„rtrrrrrUs  
 þý
     rc    @sÌeZdZejejejgZejej    ej
gZ dd„Z dd„Z dd„Zdd„Zej d    d
d d g¡ej d ejd¡ejjde ej¡e dej¡gddgddd„ƒƒƒZdd„Zej d ejd¡dd„ƒZd
S)ÚTestNanFunctions_MeanVarStdc    Cs8|jD],}tjtjtjfD]}tt|td|dqqdS)Nr\)r^rw)rTr%rËÚint_Úobject_rÚ    TypeErrorrR)r'rWrwrrrÚtest_dtype_error£s
z,TestNanFunctions_MeanVarStd.test_dtype_errorc    CsL|jD]@}tjtjtjfD]*}tjtjd|d}tt    |td|dqqdS)Nrrvr\rn)
rTr%rËrrrrRr«rr)r'rWrwrorrrÚtest_out_dtype_error¨s
z0TestNanFunctions_MeanVarStd.test_out_dtype_errorcsftjtjg}tjtjg}t||ƒD]>\}‰dD]0‰‡‡fdd„tDƒ}|tdˆd}t||ƒq.q"dS)N©rr\csg|]}ˆ|ˆd‘qS)rôrr~©rõrhrrr³sz9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>r\©r^rõ)    r%rGrIrHrJrbr‚rRr)r'rTrcrgrirjrrrÚ    test_ddof®s  z%TestNanFunctions_MeanVarStd.test_ddofc     sÒtjtjg}tjtjg}dd„tDƒ}t||ƒD]œ\}}tdƒD]Љtƒz}|     t
¡|  tj ¡‡fdd„|Dƒ}|t dˆd}tt |¡|ƒt|ƒr®tt|jƒdkƒntt|jƒdkƒW5QRXq@q0dS)NcSsg|] }t|ƒ‘qSr)r°r~rrrrºszATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>r¼csg|] }ˆ|k‘qSrrr~rôrrrÀsr\rr)r%rGrIrHrJr‚rbÚranger
r¤r’rÓrúrRrr“ršrr°Úlog)    r'rTrcZdsizergrhrÖrirjrrôrÚtest_ddof_too_big·s   
 z-TestNanFunctions_MeanVarStd.test_ddof_too_bigr^Nrr\rwr…r†r‡rˆr‰r"c
Cs¤|dk    r|jdkrt d¡| |¡}d}|jD]n}tjt|d|||d}W5QRXt |¡     ¡slt
‚|tj krˆ|j |j ksžt
‚q0|j t  |¡j ks0t
‚q0dS)Nrr‹z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)rrm)rdrLrrrTr‘r’r%r“r”r•r?rwÚabsr–rrrr—Ès
 
 
 
z(TestNanFunctions_MeanVarStd.test_allnansc CsØt d¡}|jD]Â}dD]d}tjddN}t d¡tt |||d¡ ¡ƒtt    |ƒdkƒtt
|dj t ƒƒW5QRXqd    D]N}tjdd8}t d¡t |||dt g¡ƒtt    |ƒdkƒW5QRXq‚qdS©
NrÚrÛTr£r¥rmr\rrÜ)r%rqrTr­r®r¯rr“r”r°r±r²r’r)r'rfrWr^r´rrrrÝàs
 
 
 
z&TestNanFunctions_MeanVarStd.test_emptyc    Cs¸t d¡ dd¡ |¡}tj|ddd…f<tj|tjd}d|dd…df<t|j|j    ƒD]Z\}}|||dd…ƒ}|tj
kr‚|n|j j }|||d}|j |ks¤t ‚tj ||¡qXdS)Nr»rZrrvFr¦)rÈ)r%rÀrÉrr¬rÊrËrbrTrcr?Úrealrwr•r&Zassert_allclose)    r'rwrÁrÈrWZf_stdrÌZdtype_referencerßrrrrÍïs z&TestNanFunctions_MeanVarStd.test_where)rr/r0r%r?rGrIrTr@rHrJrcrrrrrLrMrNrÐr†r¬rÑr—rÝrÍrrrrržs$    
 þýr) ÚYÚMÚWÚDÚhÚmÚsÚmsÚusÚnsZpsÚfsÚascCsg|]}d|›d‘qS)zm8[ú]r)rÚunitrrrrsrc@s¬eZdZdd„Zdd„Zejjddddd    d
gd ej d ¡d d„ƒƒZ    dd„Z
dd„Z dd„Z ej ddddg¡ej de ¡dd„ƒƒZdd„Zdd„Zdd„Zdd „ZdS)!ÚTestNanFunctions_MediancCs t ¡}t |¡t|tƒdSr$)rRrSr%rAr©r'rVrrrrX
s
z%TestNanFunctions_Median.test_mutationc    CsXt d¡}dD]8}tj||ddd}tj||ddd}t|j|jkƒqt d¡}tj d¡t |j    ¡dd…df}| 
tj ¡}tj |t |ƒ<tƒ¸}| t¡tj|ddd}t|j    d    ƒtj|d
dd}t|j    d ƒtj|d dd}t|j    d ƒtj|ddd}t|j    dƒtj|ddd}t|j    d    ƒtj|ddd}t|j    dƒW5QRXdS)NrZr[F©r^roÚoverwrite_inputr©rÅéÈTr]©r\r\r\r\r©r\r\rr    rÚ©r\r¼rr\rÜ©rZr\rr    ©rr\r¦rZ©rr\rZ©r\r\rr\)r%rarBrArrdrr
r†r«rrár¬Útupler
rÓr’r©r'rfr^rirjrr´rÖrrrrks.
 
$ 
     z%TestNanFunctions_Median.test_keepdimsr^Nr\rÜr©éýÿÿÿr©ÚargnamesZ    argvaluesú#ignore:All-NaN slice:RuntimeWarningcs¾t d¡‰tj d¡t ˆj¡dd…df}| tj¡}tjˆt|ƒ<|dkr\dˆj    }n*t
|ˆj    ƒ‰t‡‡fdd„t ˆj    ƒDƒƒ}t  |¡}tj ˆ|d|d}||ks®t‚t|j|ƒdS)Nrr4rÜc3s$|]}|ˆkrdnˆj|VqdS©r\N©r«rê©Z    axis_normrrrÚ    <genexpr>@sz<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>T©r^r_ro)r%rr
r†r«rrár¬r=rdrrrrAr•r)r'r^r´Ú    shape_outroÚresultrrFrÚtest_keepdims_out+s
$   ÿ
 z)TestNanFunctions_Median.test_keepdims_outcCsÆtj dd¡}tj|ddgtjdd}t d¡}tj|dd}tj|d|d}t||ƒt||ƒt d¡}tj|dd}tj|d|d}t||ƒt||ƒtj|d|d}t||ƒt||ƒdS)    NrZrr¦r\rmrnrr)    r%r
r Úinsertr¬rqrBrAr©r'rfÚnan_matrsrirjrrrrtGs
 
 
 
 
 
 
z TestNanFunctions_Median.test_outcCsždD]”}tj d|¡}tjjd|j|jdd}tj| ¡|<d|dd…df<g}|D],}t t |¡|¡}|     tj
|dd¡qVt tj |d    d
|ƒqdS) N)r¼éé3r5ièrÅrr¼)Úsizer T)r3rrm) r%r
ZrandnÚrandintrQr¬ZravelÚcompressr“rrBr    rA)r'r(rr´riÚxZnonanrrrÚtest_small_largeYsz(TestNanFunctions_Median.test_small_largecCs*dd„tDƒ}tjtdd}t||ƒdS)NcSsg|]}t |¡‘qSr)r%rBr~rrrrjsz>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>r\rm)r‚r%rArRr©r'rirjrrrr„isz*TestNanFunctions_Median.test_result_valuesrrwc    Csþt dtj¡ |¡}tƒÚ}| t¡tj||d}|j|jksDt    ‚t 
|¡  ¡sVt    ‚|dkrrt t |jƒdkƒnt t |jƒdkƒt tj¡ |¡d}t |¡}|j|jks´t    ‚t 
|¡sÂt    ‚|dkrÞt t |jƒdkƒnt t |jƒdkƒW5QRXdS)Nr‡rmr\rZrr¦rÅ)r%rÑr¬rr
r¤r’rArwr•r“r”rr°rr†)r'rwr^rfrÖÚoutputZscalarZ output_scalarrrrr—ns 
 
z$TestNanFunctions_Median.test_allnansc
CsÐt d¡}dD]f}tjddP}t d¡tt tj||d¡ ¡ƒtt    |ƒdkƒtt
|dj t ƒƒW5QRXqd    D]P}tjdd:}t d¡t tj||dt g¡ƒtt    |ƒdkƒW5QRXqzdSr )r%rqr­r®r¯rr“rAr”r°r±r²r’r©r'rfr^r´rrrr݉s
 
 
z"TestNanFunctions_Median.test_emptycCstt d¡dkƒdSrœ)rr%rAr-rrrrŸ—sz#TestNanFunctions_Median.test_scalarcCspt d¡}ttjtj|ddttjtj|ddttjtj|ddttjtj|ddtttj|dddS)Nréûÿÿÿrm©rrYrÅ©rrÅ©r\r\)r%rrÚ    AxisErrorrArÙ©r'rrrrÚtest_extended_axis_invalidšs 
z2TestNanFunctions_Median.test_extended_axis_invalidc    CsätƒÒ}| t¡tjtj fD]°}t |tjgtjtjgg¡}ttj|dd|tjgƒttj|dd|tjgƒtt |¡|ƒt tjtj|gtjtj|gg¡}tt |¡|ƒttj|ddtjtj|gƒttj|dd|ƒt ||g||gg¡}ttj|dd|ƒtj|d| dgdtjtjdgdtjtj|ggtj    d    }|dkrˆttj|ddd
d | d gƒtt |¡d ƒn.ttj|dddd | dgƒtt |¡dƒttj|dddd|gƒt
ddƒD]ø}t
ddƒD]æ}t tjg||g|gd¡}tt |¡|ƒttj|dd|ƒttj|ddtjg||g|ƒt tjg|| g|gd¡}tt |¡| ƒttj|dd| ƒttj|ddtjg|| g|ƒqèqÚq"W5QRXdS)Nrrmr\ri÷ÿÿÿiöÿÿÿr¼rÅrvr¶g@ç@g@g$Àg"ÀgÀrgð¿é
r¦) r
rÓr’r%Úinfr†r¬rrAÚfloat32r)r'rÖrbÚarëÚjrrrÚtest_float_special¢sR
 
 ÿþý
"ÿ$ÿz*TestNanFunctions_Median.test_float_special)rr/r0rXrkrLrMrNÚfilterwarningsrKrtrUr„Ú _TYPE_CODESr—rÝrŸr_rfrrrrr0s.ûþ
 
   r0c    @sìeZdZdd„Zdd„Zej ddddgg¡ejjdd    dd
d d gd ej d¡dd„ƒƒƒZ    dd„Z
dd„Z ej dd    ddg¡ej de j d¡ejjde  e j¡e  de j¡gddgddd„ƒƒƒZdd „Zd!d"„Zd#d$„Zd%d&„Zd    S)'ÚTestNanFunctions_PercentilecCs"t ¡}t |d¡t|tƒdS)Né)rRrSr%rCrr1rrrrXÓs z)TestNanFunctions_Percentile.test_mutationc    Csht d¡}dD]<}tj|d|ddd}tj|d|ddd}t|j|jkƒqt d¡}tj d¡t |j    ¡dd…df}| 
tj ¡}tj |t |ƒ<tƒÄ}| t¡tj|ddd    d
}t|j    d ƒtj|dd d    d
}t|j    d ƒtj|ddd    d
}t|j    dƒtj|ddd    d
}t|j    dƒtj|ddd    d
}t|j    d ƒtj|ddd    d
}t|j    dƒW5QRXdS)NrZr[éFFr2rr4éZTr]r6rr7rÚr8rÜr9r:r;r<)r%rarDrCrrdrr
r†r«rrár¬r=r
rÓr’rr>rrrrkÙs6
 ÿ ÿ
$ 
     z)TestNanFunctions_Percentile.test_keepdimsrñrr\r^NrÜrr?rArCcsÎt d¡‰tj d¡t ˆj¡dd…df}| tj¡}tjˆt|ƒ<|dkr\dˆj    }n*t
|ˆj    ƒ‰t‡‡fdd„t ˆj    ƒDƒƒ}t |¡|}t  |¡}tj ˆ||d|d}||ks¾t‚t|j|ƒdS)Nrr4rÜc3s$|]}|ˆkrdnˆj|VqdSrDrErêrFrrrG sz@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>TrH)r%rr
r†r«rrár¬r=rdrrrrCr•r)r'rñr^r´rIrorJrrFrrKös
$   ÿ
 z-TestNanFunctions_Percentile.test_keepdims_outcCsÐtj dd¡}tj|ddgtjdd}t d¡}tj|ddd}tj|dd|d}t||ƒt||ƒt d¡}tj|ddd}tj|dd|d}t||ƒt||ƒtj|dd    |d}t||ƒt||ƒdS)
NrZrr¦r\rmé*rnrr)    r%r
r rLr¬rqrDrCrrMrrrrts
 
 
 
 
 
 
z$TestNanFunctions_Percentile.test_outcCsZdd„tDƒ}tjtddd}t||ƒt dd„tDƒ¡}tjtddd}t||ƒdS)NcSsg|]}t |d¡‘qS)r©r%rDr~rrrr(szBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>rr\rmcSsg|]}t |d¡‘qS)©rébrnr~rrrr,sro)r‚r%rCrRrZ    transposerVrrrr„'s 
z.TestNanFunctions_Percentile.test_result_valuesrrwr…r†r‡rˆr‰r"c    Csv|dk    r|jdkrt d¡| |¡}tjtddtj|d|d}W5QRXt |¡     ¡sbt
‚|j |j ksrt
‚dS)Nrr‹rŒré<rm) rdrLrrr‘r’r%rCr“r”r•rw©r'r^rwr†rorrrr—0s
 
z(TestNanFunctions_Percentile.test_allnansc
CsÔt d¡}dD]h}tjddR}t d¡tt tj|d|d¡ ¡ƒtt    |ƒdkƒtt
|d    j t ƒƒW5QRXqd
D]R}tjdd<}t d¡t tj|d|dt g¡ƒtt    |ƒd    kƒW5QRXq|dS) NrÚrÛTr£r¥é(rmr\rrÜ)r%rqr­r®r¯rr“rCr”r°r±r²r’rrXrrrrÝ@s
 
 
z&TestNanFunctions_Percentile.test_emptycCsHtt dd¡dƒt d¡}tj|ddd}t|dƒtt |¡ƒdS)Nr r½éé2rrmg@)rr%rCrÀrZisscalar)r'rdÚrrrrrŸNs
 
 
z'TestNanFunctions_Percentile.test_scalarcCszt d¡}ttjtj|dddttjtj|dddttjtj|dddttjtj|dddtttj|ddddS)    Nrr¼rY©rñr^rZrÅr[r\)r%rrr]rCrÙr^rrrr_Us 
z6TestNanFunctions_Percentile.test_extended_axis_invalidc Csddg}t d¡}tj|}t d¡}d|dd…ddd…dd…f<|dd…dd…dd…fd9<d    D]Œ}d
D]‚}tƒr}| td ¡tj||||d }tj||||d }    t|    j    |j    ƒtj||||d }tj||||d }    t|    |ƒW5QRXqpqht d ¡}
ttj|
|ddj    dƒdS)Nrur½)rÅrZ)rZrÅr¼rr¦rÅrZr[)FTrŒr])rZrÅr¼rt)r\r¦rm)r¦rZrt)
r%rr¬r
rÓr’rDrCrr«) r'ÚpercrfrNZ    large_matr^ZkeepdimrÖrØZnan_valZmegamatrrrÚtest_multiple_percentiles]s0
 
 
" 
ÿ
ÿ
ÿ
z5TestNanFunctions_Percentile.test_multiple_percentiles)rr/r0rXrkrLrMrNrgrKrtr„r%rÐr†r¬rÑr—rÝrŸr_ryrrrrriÑs:ûþ
 
    
 þý
ric    @s€eZdZdd„Zdd„Zdd„Zej ddd    d
g¡ej d e    j
d ¡ejjd e      e    j ¡e      de    j ¡gddgddd„ƒƒƒZdS)ÚTestNanFunctions_QuantilecCsât d¡ ddd¡ t¡}tj|dd<ttj|ddtj|d    dƒttj|ddd
tj|d    dd
ƒttj|ddd
tj|d    dd
ƒttj|dgdd
tj|d    gdd
ƒttj|d dd gdd
tj|d d    dgdd
ƒdS)Nér¦rZrÅrr\rórðrurwçÐ?çè?ééK)    r%rÀrÉrÚfloatr¬rrErC)r'rÁrrrÚtest_regression{sÿÿÿÿz)TestNanFunctions_Quantile.test_regressioncCsHt d¡d}tt |d¡dƒtt |d¡dƒtt |d¡dƒdS)NrÆrórr r\g @gü?)r%rÀrrE)r'rTrrrÚ
test_basic‰sz$TestNanFunctions_Quantile.test_basiccCspt dddddg¡}| ¡}tjt d¡|ddt||ƒ| ¡}| ¡}tjt d¡|ddt||ƒdS)    Nrr}r|rór gY@Zmidpoint)Úmethod)r%r†rSrErÀr    Útolist)r'Zp0ÚprrrÚtest_no_p_overwrites
z-TestNanFunctions_Quantile.test_no_p_overwriter^Nrr\rwr…r†r‡rˆr‰r"c    Csv|dk    r|jdkrt d¡| |¡}tjtddtj|d|d}W5QRXt |¡     ¡sbt
‚|j |j ksrt
‚dS)Nrr‹rŒrr\rm) rdrLrrr‘r’r%rEr“r”r•rwrrrrrr—›s
 
z&TestNanFunctions_Quantile.test_allnans)rr/r0rr‚r†rLrMrNr%rÐr†r¬rÑr—rrrrrzxs 
 þýrzz arr, expectedr`Tr\rr»rvcCsPdtj|jtjdfD]4}t||d}t||ƒt|ƒtjk    r|dkst‚qdS)NrvràT)    r%rr«rËrrryr¨r•)r¹ÚexpectedroÚactualrrrÚtest__nan_mask«s
 
r‰cCstjtjtjfD]<}tjddg|d}t|dƒ\}}|dks@t‚||kst‚qtjtjfD]¸}tjddg|d}t|dƒ\}}|dk     ¡sŽt‚||k    sšt‚t
||ƒtjddtj g|d}t|dƒ\}}t
|t dddg¡ƒ||k    sêt‚t
|t dddg¡ƒt  |d¡sZt‚qZdS)    z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    rr\rvNr¦FTr) r%rËÚint32Úint64r†rr•rcÚfloat64r”rr¬r“)rwr¹rJÚmaskZarr_nanZ
result_nanZmask_nanrrrÚtest__replace_nanÆs"  
 rŽ)2r­rLrÚnumpyr%Znumpy.core.numericrZnumpy.lib.nanfunctionsrrZ numpy.testingrrrrr    r
r†r¬rRr‚rrr rPrÒZ _TEST_ARRAYSrZ_vZsetflagsrMrNrÐÚkeysrér÷rþrrZ _TIME_UNITSr¸rhr0rirzrbr‹Z    complex64r‰rŽrrrrÚ<module>s–  ý ýýý/1_þ þ?i;IaJ(3ÿÿÿ 
ÿÿ
ÿþõ