zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
U
P±dtäã@sddlZddlZddlZddlZddlZddlZddlZddlm    Z    m
Z
m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlm Z Gdd„dƒZ!Gdd„de!ƒZ"Gdd    „d    ƒZ#Gd
d „d e"ƒZ$Gd d „d e!ƒZ%Gdd„de!ƒZ&Gdd„dƒZ'Gdd„dƒZ(ej)j*ddGdd„dƒƒZ+Gdd„dƒZ,Gdd„dƒZ-Gdd„dƒZ.Gdd„dƒZ/Gd d!„d!ƒZ0d"d#„Z1d$d%„Z2d&d'„Z3d(d)„Z4d*d+„Z5d,d-„Z6d.d/„Z7d0d1„Z8d2d3„Z9d4d5„Z:d6d7„Z;Gd8d9„d9eƒZ<d:d;„Z=ej)j>e d<dGd=d>„d>ƒƒZ?dS)?éN)Ú assert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_lessÚ build_err_msgÚraisesÚ assert_raisesÚ assert_warnsÚassert_no_warningsÚassert_allcloseÚassert_approx_equalÚassert_array_almost_equal_nulpÚassert_array_max_ulpÚclear_and_catch_warningsÚsuppress_warningsÚassert_string_equalÚassert_ÚtempdirÚtemppathÚassert_no_gc_cyclesÚ HAS_REFCOUNT)ÚARRAY_FUNCTION_ENABLEDc@sLeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dS)Ú _GenericTestcCs| ||¡dS©N©Ú _assert_func©ÚselfÚaÚb©r!úUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/testing/tests/test_utils.pyÚ _test_equalsz_GenericTest._test_equalc    Cs$ttƒ| ||¡W5QRXdSr)r    ÚAssertionErrorrrr!r!r"Ú_test_not_equals
z_GenericTest._test_not_equalcCs,t ddg¡}t ddg¡}| ||¡dS)z/Test two equal array of rank 1 are found equal.ééN©ÚnpÚarrayr#rr!r!r"Útest_array_rank1_eqsz _GenericTest.test_array_rank1_eqcCs,t ddg¡}t ddg¡}| ||¡dS)z7Test two different array of rank 1 are found not equal.r&r'N©r)r*r%rr!r!r"Útest_array_rank1_noteq$sz#_GenericTest.test_array_rank1_noteqcCs<t ddgddgg¡}t ddgddgg¡}| ||¡dS)z/Test two equal array of rank 2 are found equal.r&r'ééNr(rr!r!r"Útest_array_rank2_eq+sz _GenericTest.test_array_rank2_eqcCs4t ddg¡}t ddgddgg¡}| ||¡dS)ú:Test two arrays with different shapes are found not equal.r&r'Nr,rr!r!r"Útest_array_diffshape2sz!_GenericTest.test_array_diffshapecCs"tjddgtd}| |d¡dS)zTest object arrays.r&©ÚdtypeN)r)r*Úobjectr#©rrr!r!r"Ú test_objarray9sz_GenericTest.test_objarraycCs| dddgd¡dS)Nr&r'r.)r&r'r.)r#©rr!r!r"Útest_array_likes>sz_GenericTest.test_array_likesN) Ú__name__Ú
__module__Ú __qualname__r#r%r+r-r0r2r7r9r!r!r!r"rsrc@sžeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z e j je dddd„ƒZdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#S)$ÚTestArrayEqualcCs
t|_dSr)rrr8r!r!r"Ú setup_methodDszTestArrayEqual.setup_methodcs4‡fdd„}dD] }||ƒqdD] }||ƒq"dS)z!Test rank 1 array for all dtypes.csLt d|¡}| d¡| ¡}| ¡}| d¡ˆ ||¡ˆ ||¡dS)Nr'r&r©r)ÚemptyÚfillÚcopyr#r%©Útrr Úcr8r!r"ÚfooIs 
 
 z.TestArrayEqual.test_generic_rank1.<locals>.fooú?bhilqpBHILQPfdgFDG©ZS1ZU1Nr!©rrFrDr!r8r"Útest_generic_rank1Gs
 
 
z!TestArrayEqual.test_generic_rank1cCslt d¡}t d¡}tt|j||ƒ|}| ||¡t d¡}t d¡}tt|j||ƒ|}| ||¡dS)NlCj¬<T"3ÿËwÝ ¤-l(M$c7u£†vÈé+é
)r)r*r    r$r©rÚxÚyr!r!r"Útest_0_ndim_arrayZs
 
 
 
z TestArrayEqual.test_0_ndim_arraycs4‡fdd„}dD] }||ƒqdD] }||ƒq"dS)z!Test rank 3 array for all dtypes.csLt d|¡}| d¡| ¡}| ¡}| d¡ˆ ||¡ˆ ||¡dS)N)r/r'r.r&rr?rCr8r!r"rFks 
 
 z.TestArrayEqual.test_generic_rank3.<locals>.foorGrHNr!rIr!r8r"Útest_generic_rank3is
 
 
z!TestArrayEqual.test_generic_rank3cCsPt ddtjg¡}t ddtjg¡}| ||¡t dddg¡}| ||¡dS)z$Test arrays with nan values in them.r&r'r.N)r)r*Únanr#r%©rrr rEr!r!r"Útest_nan_array|s
 zTestArrayEqual.test_nan_arraycCsFt ddg¡}t ddg¡}| ||¡t ddg¡}| ||¡dS)r1ÚfloupiÚfloupaÚfloupipiN)r)r*r#r%rSr!r!r"Útest_string_arrays†s
 z!TestArrayEqual.test_string_arraysc    Cs¨t ddtfdtfg¡}ddg|d<ddg|d<| ¡}| ||¡t ddtfdtfdtfg¡}|d ¡|d<|d ¡|d<t t¡| ||¡W5QRXdS)zTest record arrays.r'rUrVr&rWN)    r)r@ÚfloatrBr#ÚpytestrÚ    TypeErrorr%rSr!r!r"Útest_recarrays‘s    ÿ zTestArrayEqual.test_recarrayscCstjjdddgdddgd}t dtjdg¡}| ||¡| ||¡tjjdddgdddgd}t tjddg¡}| ||¡| ||¡dS)Nç@ç@ç@FT©Úmask)r)ÚmaÚ MaskedArrayr*rRr#Úinfrr!r!r"Útest_masked_nan_inf¢s   z"TestArrayEqual.test_masked_nan_infcCsŒGdd„dtjƒ}t ddg¡ |¡}t ddg¡ |¡}tt||kƒtƒt||kƒt||kƒ| ||¡| ||¡| ||¡dS)Nc@seZdZdd„Zdd„ZdS)z?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArraycSstt ||¡ ¡ƒSr)Úboolr)ÚequalÚall©rÚotherr!r!r"Ú__eq__³szFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__cSs
||k Srr!rir!r!r"Ú__ne__¶szFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__N)r:r;r<rkrlr!r!r!r"ÚMyArray²srmçð?ç@r])    r)Úndarrayr*ÚviewrÚtyperfr#r%©rrmrr r!r!r"Útest_subclass_that_overrides_eq­s    z.TestArrayEqual.test_subclass_that_overrides_eqzrequires __array_function__©Úreasonc    Cs€Gdd„dtjƒ}t ddg¡ |¡}t ddg¡ |¡}ttƒt |¡W5QRX| ||¡| ||¡| ||¡dS)Nc@seZdZdd„ZdS)zKTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc_stSr)ÚNotImplemented©rÚargsÚkwargsr!r!r"Ú__array_function__Æsz^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__N)r:r;r<r{r!r!r!r"rmÅsrmrnror])    r)rpr*rqr    r[rhr#r%rsr!r!r"Ú+test_subclass_that_does_not_implement_npallÂs
  z:TestArrayEqual.test_subclass_that_does_not_implement_npallc
Cs`t t¡Ltjdd4tj t dddgtj¡t dddgtj¡¡W5QRXW5QRXdS)NÚraise)rhr&r'r.gœWw'&l¡7)    rZrr$r)ZerrstateZtestingrr*Úfloat32r8r!r!r"Útest_suppress_overflow_warningsÑs  þz.TestArrayEqual.test_suppress_overflow_warningscCs$t dddg¡}d}| ||¡dS)z@Test comparing an array with a scalar when all values are equal.rnNr(rr!r!r"Útest_array_vs_scalar_is_equalÙsz,TestArrayEqual.test_array_vs_scalar_is_equalcCs$t dddg¡}d}| ||¡dS)z@Test comparing an array with a scalar when not all values equal.rnror]Nr,rr!r!r"Útest_array_vs_scalar_not_equalàsz-TestArrayEqual.test_array_vs_scalar_not_equalc    Cs<t dddg¡}d}t t¡t||ddW5QRXdS)z9Test comparing an array with a scalar with strict option.rnT©ÚstrictN©r)r*rZrr$rrr!r!r"Útest_array_vs_scalar_strictçs z*TestArrayEqual.test_array_vs_scalar_strictcCs2t dddg¡}t dddg¡}t||dddS)ú-Test comparing two arrays with strict option.rnTr‚N)r)r*rrr!r!r"Útest_array_vs_array_strictïsz)TestArrayEqual.test_array_vs_array_strictc    CsHt dddg¡}t dddg¡}t t¡t||ddW5QRXdS)r†r&rnTr‚Nr„rr!r!r"Ú test_array_vs_float_array_strictös z/TestArrayEqual.test_array_vs_float_array_strictN)r:r;r<r>rJrPrQrTrXr\rertrZÚmarkÚskipifrr|rr€rr…r‡rˆr!r!r!r"r=Bs(
  ÿ
r=c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestBuildErrorMessagecCsDt dddg¡}t dddg¡}d}t||g|ƒ}d}t||ƒdS)    NçrÄZ|
ð?çrÄZ|
@ç«&ˆº@ç㈵øð?ç«&ˆº@ç㈵ø@úThere is a mismatchz‚
Items are not equal: There is a mismatch
 ACTUAL: array([1.00001, 2.00002, 3.00003])
 DESIRED: array([1.00002, 2.00003, 3.00004])©r)r*rr©rrNrOÚerr_msgrr r!r!r"Útest_build_err_msg_defaultss z1TestBuildErrorMessage.test_build_err_msg_defaultscCsHt dddg¡}t dddg¡}d}t||g|dd    }d
}t||ƒdS) NrŒrrŽrrr‘r’F)Úverbosez)
Items are not equal: There is a mismatchr“r”r!r!r"Útest_build_err_msg_no_verbose s z3TestBuildErrorMessage.test_build_err_msg_no_verbosecCsHt dddg¡}t dddg¡}d}t||g|dd    }d
}t||ƒdS) NrŒrrŽrrr‘r’)ZFOOZBAR)Únamesz{
Items are not equal: There is a mismatch
 FOO: array([1.00001, 2.00002, 3.00003])
 BAR: array([1.00002, 2.00003, 3.00004])r“r”r!r!r"Útest_build_err_msg_custom_namess z5TestBuildErrorMessage.test_build_err_msg_custom_namescCsHt dddg¡}t dddg¡}d}t||g|dd    }d
}t||ƒdS) Ng0¸Dð?rrŽg_p‰ð?rr‘r’rL)Z    precisionzš
Items are not equal: There is a mismatch
 ACTUAL: array([1.000000001, 2.00002    , 3.00003    ])
 DESIRED: array([1.000000002, 2.00003    , 3.00004    ])r“r”r!r!r"Ú#test_build_err_msg_custom_precision s z9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r:r;r<r–r˜ršr›r!r!r!r"r‹ÿs      r‹c@s\eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dS)Ú    TestEqualcCs
t|_dSr)rrr8r!r!r"r>.szTestEqual.setup_methodcCsH| tjtj¡| tjgtjg¡| tjtjg¡| tjd¡dS©Nr&)rr)rRr%r8r!r!r"Útest_nan_items1szTestEqual.test_nan_itemscCs:| tjtj¡| tjgtjg¡| tjtjg¡dSr)rr)rdr%r8r!r!r"Útest_inf_items7szTestEqual.test_inf_itemscCst| t dd¡t dd¡¡| t dd¡t dd¡¡| t dd¡t dd¡¡| t dd¡t dd¡¡dS)Nú
2017-01-01ÚsÚmz
2017-01-02)r#r)Ú
datetime64r%r8r!r!r"Ú test_datetime<s 
 
þ
 
þ
 
þ
 
þzTestEqual.test_datetimec Cstt d¡}t dd¡}t dd¡}t d¡}t dd¡}t dd¡}|||g}|||g}t ||¡D]2\}    }
| |    |
¡| |    g|
g¡| |    g|
¡qdt ||¡D]2\}    }
| |    |
¡| |    g|
g¡| |    g|
¡q¤t ||¡D]Š\}    }
| |    |
¡| |    |
g¡| |    g|
g¡| |    gt dd¡¡| |
gt dd¡¡| |    gt dd¡¡| |
gt dd¡¡qädS)NÚNaTr¡Únsr é{)r)r£Z timedelta64Ú    itertoolsÚproductrr%) rZ nadt_no_unitZnadt_sZnadt_dZ natd_no_unitZnatd_sZnatd_dZdtsZtdsrr r!r!r"Útest_nat_itemsPs0
 
 
 
   zTestEqual.test_nat_itemscCs| dd¡| dd¡dS)NÚabZabb)rr%r8r!r!r"Útest_non_numericos zTestEqual.test_non_numericcCsŒ| tddƒtddƒ¡| tdtjƒtdtjƒ¡| tdtjƒtddƒ¡| ttjdƒtdtjƒ¡| ttjtjƒttjdƒ¡dS©Nr&r')rÚcomplexr)rRr%rdr8r!r!r"Útest_complex_itemss
zTestEqual.test_complex_itemcCs| tjtj¡dSr)r%r)ÚPZEROÚNZEROr8r!r!r"Útest_negative_zerozszTestEqual.test_negative_zerocCsRt tddƒtdtjƒg¡}t tddƒtddƒg¡}| ||¡| ||¡dSr­©r)r*r®rRrr%rMr!r!r"Ú test_complex}s zTestEqual.test_complexcCsDddl}t | ddd¡| ddd¡g¡}| ||ddd…¡dS)NriÐr&r'éÿÿÿÿ)Údatetimer)r*r%)rr¶rr!r!r"Ú test_objectƒs
 ÿzTestEqual.test_objectN) r:r;r<r>ržrŸr¤rªr¬r¯r²r´r·r!r!r!r"rœ,srœc@sDeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dS)ÚTestArrayAlmostEqualcCs
t|_dSr)rrr8r!r!r"r>sz!TestArrayAlmostEqual.setup_methodcsLˆjddddtt‡fdd„ƒˆjdgdgddtt‡fdd„ƒdS)Nçõ…óþÿ÷?çr©ÚdecimalcsˆjddddS©Ngø?rºrr»rr!r8r!r"Ú<lambda>šóz5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>csˆjdgdgddSr½rr!r8r!r"r¾Ÿr¿©rr    r$r8r!r8r"Útest_closenesss
ÿ
ÿz#TestArrayAlmostEqual.test_closenesscsRt dg¡‰t dg¡‰ˆjˆˆddˆjˆˆddtt‡‡‡fdd„ƒdS)Ng¯”eˆãH“@gšwœ¢ãH“@r.r»r/csˆjˆˆddS)Nér»rr!rMr!r"r¾¨r¿z2TestArrayAlmostEqual.test_simple.<locals>.<lambda>©r)r*rr    r$r8r!rMr"Ú test_simple¡s  ÿz TestArrayAlmostEqual.test_simplecszt tjg¡‰t dg¡‰t tjg¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒdS)Nr&cs ˆ ˆˆ¡Srrr!©ÚananÚaonerr!r"r¾°r¿z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!©ÚainfrÆrr!r"r¾²r¿cs ˆ ˆˆ¡Srrr!rÈr!r"r¾´r¿©r)r*rRrdrr    r$r8r!©rÉrÆrÇrr"Útest_nanªs  ÿÿÿzTestArrayAlmostEqual.test_nancsdt ddgddgg¡‰ˆ ¡‰tjˆd<tt‡‡‡fdd„ƒtj ˆd<tt‡‡‡fdd„ƒdS)    Nrnror]r^)rrcs ˆ ˆˆ¡Srrr!©rr rr!r"r¾»r¿z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!rÍr!r"r¾¾r¿)r)r*rBrdr    r$r8r!rÍr"Útest_inf¶s
ÿ ÿzTestArrayAlmostEqual.test_infcCsNt ddgddgg¡}tj ddgddggddgddgg¡}| ||¡| ||¡| ||¡tjjddd    }t ddd
g¡}| ||¡| ||¡tjj}t ddd
g¡}| ||¡| ||¡tjjddd
gdddgd    }t dddg¡}| ||¡| ||¡tjjddd
gdddgd    }t d¡}| ||¡| ||¡dS) Nrnror]r^rºFTg @r`r_)r)r*rbZ masked_arrayrrcr#Zmaskedrr!r!r"Ú test_subclassÀs.ÿ         
 z"TestArrayAlmostEqual.test_subclasscCs6Gdd„dtjƒ}t ddg¡ |¡}| ||¡dS)Ncs0eZdZ‡fdd„Z‡fdd„Zdd„Z‡ZS)zGTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArraycstƒ |¡ tj¡Sr©Úsuperrkrqr)rpri©Ú    __class__r!r"rkàszNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cstƒ |¡ tj¡Sr©rÑÚ__lt__rqr)rprirÒr!r"rÕãszNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_st‚dSr©ÚNotImplementedErrorrxr!r!r"rhæszKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all©r:r;r<rkrÕrhÚ __classcell__r!r!rÒr"rmßs  rmrnro©r)rpr*rqr©rrmrr!r!r"Ú!test_subclass_that_cannot_be_boolÚs
z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN)
r:r;r<r>rÁrÄrÌrÎrÏrÜr!r!r!r"r¸‹s     
r¸c@s\eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dS)ÚTestAlmostEqualcCs
t|_dSr)rrr8r!r!r"r>ïszTestAlmostEqual.setup_methodcsLˆjddddtt‡fdd„ƒˆjdgdgddtt‡fdd„ƒdS)Nr¹rºrr»csˆjddddSr½rr!r8r!r"r¾ür¿z0TestAlmostEqual.test_closeness.<locals>.<lambda>csˆjdgdgddSr½rr!r8r!r"r¾r¿rÀr8r!r8r"rÁòs
ÿ
ÿzTestAlmostEqual.test_closenesscsJˆ tjtj¡tt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒdS)Ncsˆ tjd¡Sr)rr)rRr!r8r!r"r¾r¿z/TestAlmostEqual.test_nan_item.<locals>.<lambda>csˆ tjtj¡Sr)rr)rRrdr!r8r!r"r¾r¿csˆ tjtj¡Sr)rr)rdrRr!r8r!r"r¾
r¿)rr)rRr    r$r8r!r8r"Ú test_nan_items
ÿ
ÿ
ÿzTestAlmostEqual.test_nan_itemcsLˆ tjtj¡ˆ tj tj ¡tt‡fdd„ƒtt‡fdd„ƒdS)Ncsˆ tjd¡Sr©rr)rdr!r8r!r"r¾r¿z/TestAlmostEqual.test_inf_item.<locals>.<lambda>csˆ tj tj¡Srrßr!r8r!r"r¾r¿)rr)rdr    r$r8r!r8r"Ú test_inf_item s
ÿ
ÿzTestAlmostEqual.test_inf_itemcCs| dd¡dSr­)r%r8r!r!r"Útest_simple_itemsz TestAlmostEqual.test_simple_itemcCs¬| tddƒtddƒ¡| tdtjƒtdtjƒ¡| ttjtjƒttjtjƒ¡| tdtjƒtddƒ¡| ttjdƒtdtjƒ¡| ttjtjƒttjdƒ¡dSr­)rr®r)rRrdr%r8r!r!r"r¯s  z!TestAlmostEqual.test_complex_itemcCszt tddƒtdtjƒg¡}t tddƒttjdƒg¡}t tddƒtddƒg¡}| ||¡| ||¡| ||¡dSr­r³)rrNÚzrOr!r!r"r´s   zTestAlmostEqual.test_complexc    Cs(t dddg¡}t dddg¡}t t¡}|j||ddW5QRXt|jƒ d    ¡}t    |d
d ƒt    |d d ƒt    |ddƒt    |ddƒt    |ddƒt t¡}| ||¡W5QRXt|jƒ d    ¡}t    |d
dƒt    |d d ƒt    |ddƒt    |ddƒt    |ddƒt tj
dg¡}t tj
dg¡}t t¡}| ||¡W5QRXt|jƒ d    ¡}t    |d
dƒt    |d dƒt    |ddƒt    |ddƒt    |ddƒt ddg¡}t ddg¡}t t¡}| ||¡W5QRXt|jƒ d    ¡}t    |d
dƒt    |d d ƒt    |dd!ƒd"S)#zŠCheck the message is formatted correctly for the decimal value.
           Also check the message when input includes inf or nan (gh12200)gì¯ð?gì¯@rŽgØ_ð?gâ@r‘é r»Ú
r.z!Mismatched elements: 3 / 3 (100%)r/zMax absolute difference: 1.e-05rÂz'Max relative difference: 3.33328889e-06éz8 x: array([1.00000000001, 2.00000000002, 3.00003      ])éz8 y: array([1.00000000002, 2.00000000003, 3.00004      ])z"Mismatched elements: 1 / 3 (33.3%)z& x: array([1.     , 2.     , 3.00003])z& y: array([1.     , 2.     , 3.00004])rr&z Mismatched elements: 1 / 2 (50%)úMax absolute difference: 1.úMax relative difference: 1.z x: array([inf,  0.])z y: array([inf,  1.])r'z!Mismatched elements: 2 / 2 (100%)zMax absolute difference: 2zMax relative difference: infN) r)r*rZrr$rÚstrÚvalueÚsplitrrd©rrNrOÚexc_infoZmsgsr!r!r"Útest_error_message'sT þþ   z"TestAlmostEqual.test_error_messagec    CsØd}t d¡}t t¡}| ||¡W5QRXt|jƒ d¡}t    |ddƒt    |ddƒt    |dd    ƒd}t d¡}t t¡}| ||¡W5QRXt|jƒ d¡}t    |ddƒt    |ddƒt    |dd
ƒd S) zHCheck the message is formatted correctly when either x or y is a scalar.r'érär.z#Mismatched elements: 20 / 20 (100%)r/rçrÂrèúMax relative difference: 0.5N)
r)ÚonesrZrr$rrérêrërrìr!r!r"Útest_error_message_2]s 
 
 z$TestAlmostEqual.test_error_message_2cCs6Gdd„dtjƒ}t ddg¡ |¡}| ||¡dS)Ncs0eZdZ‡fdd„Z‡fdd„Zdd„Z‡ZS)zBTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArraycstƒ |¡ tj¡SrrÐrirÒr!r"rkwszITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cstƒ |¡ tj¡SrrÔrirÒr!r"rÕzszITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_st‚dSrrÖrxr!r!r"rh}szFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allrØr!r!rÒr"rmvs  rmrnrorÚrÛr!r!r"rÜqs
z1TestAlmostEqual.test_subclass_that_cannot_be_boolN) r:r;r<r>rÁrÞràrár¯r´rîròrÜr!r!r!r"rÝís    6rÝc@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) ÚTestApproxEqualcCs
t|_dSr)r rr8r!r!r"r>†szTestApproxEqual.setup_methodcsNt d¡‰t d¡‰ˆjˆˆddˆjˆˆddtt‡‡‡fdd„ƒdS)Nç{®GáH“@çR¸…ëH“@r©Z significantråcsˆjˆˆddS©Nrærörr!rMr!r"r¾r¿z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>rÃr8r!rMr"Útest_simple_0d_arrays‰s
 
ÿz%TestApproxEqual.test_simple_0d_arrayscsRd‰d‰ˆjˆˆddˆjˆˆddˆjˆˆddtt‡‡‡fdd„ƒdS)    Nrôrõr/rörÂråcsˆjˆˆddSr÷rr!rMr!r"r¾šr¿z3TestApproxEqual.test_simple_items.<locals>.<lambda>rÀr8r!rMr"Útest_simple_items’sÿz!TestApproxEqual.test_simple_itemscstt tj¡‰t d¡‰t tj¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒdS)Nr&cs ˆ ˆˆ¡Srrr!rÅr!r"r¾¡r¿z0TestApproxEqual.test_nan_array.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!rÈr!r"r¾¢r¿cs ˆ ˆˆ¡Srrr!rÈr!r"r¾£r¿rÊr8r!rËr"rTœs 
  zTestApproxEqual.test_nan_arraycstt tj¡‰t d¡‰t tj¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒdS)Nr&cs ˆ ˆˆ¡Srrr!rÅr!r"r¾ªr¿z0TestApproxEqual.test_nan_items.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!rÈr!r"r¾«r¿cs ˆ ˆˆ¡Srrr!rÈr!r"r¾¬r¿rÊr8r!rËr"rž¥s 
  zTestApproxEqual.test_nan_itemsN)r:r;r<r>rørùrTržr!r!r!r"ró„s
    
    róc@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚTestArrayAssertLesscCs
t|_dSr)rrr8r!r!r"r>±sz TestArrayAssertLess.setup_methodcs|t ddg¡‰t ddg¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒt ddg¡‰tt‡‡‡fdd„ƒtt‡‡‡fd    d„ƒdS)
N皙™™™™ñ?皙™™™™@ç333333ó?çffffff@cs ˆ ˆˆ¡Srrr!rMr!r"r¾¹r¿z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>rncs ˆ ˆˆ¡Srrr!rMr!r"r¾½r¿cs ˆ ˆˆ¡Srrr!rMr!r"r¾¾r¿rÃr8r!rMr"Útest_simple_arrays´s z&TestArrayAssertLess.test_simple_arrayscs”t ddgddgg¡‰t ddgddgg¡‰ˆ ˆˆ¡tt‡‡‡fd    d
„ƒt d dgddgg¡‰tt‡‡‡fd d
„ƒtt‡‡‡fd d
„ƒdS)Nrûrüçffffff
@gš™™™™™@rýrþg333333 @g@cs ˆ ˆˆ¡Srrr!rMr!r"r¾År¿z0TestArrayAssertLess.test_rank2.<locals>.<lambda>rncs ˆ ˆˆ¡Srrr!rMr!r"r¾Ér¿cs ˆ ˆˆ¡Srrr!rMr!r"r¾Êr¿rÃr8r!rMr"Ú
test_rank2Às zTestArrayAssertLess.test_rank2csvtjdd‰tjddd‰ˆ ˆˆ¡tt‡‡‡fdd„ƒdˆd<tt‡‡‡fdd„ƒtt‡‡‡fd    d„ƒdS)
N)r'r'r')Úshaper&cs ˆ ˆˆ¡Srrr!rMr!r"r¾Ñr¿z0TestArrayAssertLess.test_rank3.<locals>.<lambda>r)rrrcs ˆ ˆˆ¡Srrr!rMr!r"r¾Õr¿cs ˆ ˆˆ¡Srrr!rMr!r"r¾Ör¿)r)rñrr    r$r8r!rMr"Ú
test_rank3Ìs  zTestArrayAssertLess.test_rank3cs‚d‰d‰ˆ ˆˆ¡tt‡‡‡fdd„ƒt ddg¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒt ddg¡‰tt‡‡‡fdd„ƒdS)    Nrûrücs ˆ ˆˆ¡Srrr!rMr!r"r¾Ýr¿z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>rcs ˆ ˆˆ¡Srrr!rMr!r"r¾âr¿rncs ˆ ˆˆ¡Srrr!rMr!r"r¾ær¿)rr    r$r)r*r8r!rMr"rùØs  z%TestArrayAssertLess.test_simple_itemscsŠt tj¡‰t d¡‰t tj¡‰ˆ ˆˆ¡tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒdS)Nr&cs ˆ ˆˆ¡Srrr!rÅr!r"r¾ír¿z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!rÅr!r"r¾îr¿cs ˆ ˆˆ¡Srrr!rÈr!r"r¾ïr¿cs ˆ ˆˆ¡Srrr!rÈr!r"r¾ðr¿rÊr8r!rËr"Útest_nan_noncompareès 
  z'TestArrayAssertLess.test_nan_noncomparecs¾t dddg¡‰t tj¡‰tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒt ddtjg¡‰tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒt d    d
tjg¡‰ˆ ˆˆ¡tt‡‡‡fd d„ƒdS) Nrûrürcs ˆ ˆˆ¡Srrr!©rÆrrNr!r"r¾ör¿z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!rr!r"r¾÷r¿cs ˆ ˆˆ¡Srrr!rr!r"r¾ûr¿cs ˆ ˆˆ¡Srrr!rr!r"r¾ür¿rnrocs ˆ ˆˆ¡Srrr!rMr!r"r¾r¿)r)r*rRr    r$rr8r!)rÆrrNrOr"Útest_nan_noncompare_arrayòs  z-TestArrayAssertLess.test_nan_noncompare_arraycsªt d¡‰t tj¡‰ˆ ˆˆ¡ˆ ˆ ˆ¡ˆ ˆ ˆ¡tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡fdd„ƒtt‡‡fdd„ƒtt‡‡fdd„ƒdS)Nr&cs ˆ ˆˆ¡Srrr!©rÉrÇrr!r"r¾
r¿z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>csˆ ˆˆ ¡Srrr!rr!r"r¾ r¿cs ˆ ˆˆ¡Srrr!©rÉrr!r"r¾ r¿csˆ ˆˆ ¡Srrr!rr!r"r¾ r¿csˆ ˆ ˆ ¡Srrr!rr!r"r¾r¿)r)r*rdrr    r$r8r!rr"Útest_inf_compares
  z$TestArrayAssertLess.test_inf_comparecsžt ddtjg¡‰t tj¡‰tt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒtt‡‡‡fdd„ƒˆ ˆ ˆ¡dS)    Nrûrücs ˆ ˆˆ¡Srrr!©rÉrrNr!r"r¾r¿z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>cs ˆ ˆˆ¡Srrr!r
r!r"r¾r¿csˆ ˆˆ ¡Srrr!r
r!r"r¾r¿csˆ ˆ ˆ ¡Srrr!r
r!r"r¾r¿csˆ ˆ ˆ ¡Srrr!r
r!r"r¾r¿)r)r*rdr    r$rr8r!r
r"Útest_inf_compare_arrays z*TestArrayAssertLess.test_inf_compare_arrayN) r:r;r<r>rÿrrrùrrr    r r!r!r!r"rú¯s   
 rúz$The raises decorator depends on Noseruc@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)Ú
TestRaisescCsGdd„dtƒ}||_dS)Nc@s eZdZdS)z,TestRaises.setup_method.<locals>.MyExceptionN©r:r;r<r!r!r!r"Ú MyException sr)Ú    ExceptionÚe)rrr!r!r"r>szTestRaises.setup_methodcCs|‚dSrr!)rrr!r!r"Úraises_exception%szTestRaises.raises_exceptioncCsdSrr!r8r!r!r"Údoes_not_raise_exception(sz#TestRaises.does_not_raise_exceptioncCst|jƒ|jƒ|jƒdSr)rrrr8r!r!r"Útest_correct_catch+szTestRaises.test_correct_catchcCs<zt|jƒ|jƒtƒWntk
r.YdSXtdƒ‚dS)Nzshould have caught RuntimeError)rrrÚ RuntimeErrorr$r8r!r!r"Útest_wrong_exception.s
zTestRaises.test_wrong_exceptioncCs:zt|jƒ|jƒƒWntk
r,YdSXtdƒ‚dS)Nz$should have raised an AssertionError)rrrr$r8r!r!r"Útest_catch_no_raise6s
zTestRaises.test_catch_no_raiseN)    r:r;r<r>rrrrrr!r!r!r"r s r c@s$eZdZdd„Zdd„Zdd„ZdS)Ú    TestWarnscCshdd„}tjdjdd…}ttt|ƒdƒtjdj}ttt|ƒttdd„dƒdƒt||dƒdS)    NcSst d¡dS)NÚyor.©ÚwarningsÚwarnr!r!r!r"ÚfBs
zTestWarns.test_warn.<locals>.frr.cSs|Srr!)rNr!r!r"r¾Kr¿z%TestWarns.test_warn.<locals>.<lambda>r&ú.assert_warns does not preserver warnings state)    ÚsysÚmodulesÚfiltersrr
Ú UserWarningr    r$r )rrÚbefore_filtersÚ after_filtersr!r!r"Ú    test_warnAs  ÿzTestWarns.test_warnc    Cs`tjdjdd…}ttƒt d¡W5QRXtjdj}dd„}tt|ƒt    ||dƒdS)Nrrc    Ss tƒt d¡W5QRXdS©Nr)r rrr!r!r!r"Ú no_warningsXsz3TestWarns.test_context_manager.<locals>.no_warningsr)
rrr r
r!rrr    r$r)rr"r#r&r!r!r"Útest_context_managerQs
 
ÿzTestWarns.test_context_managerc    Csddd„}d}t ¡:t dt¡ztt|ƒd}Wntk
rHYnXW5QRX|r`tdƒ‚dS)NcSst dt¡dSr%)rrÚDeprecationWarningr!r!r!r"rasz,TestWarns.test_warn_wrong_warning.<locals>.fFÚerrorTz#wrong warning caught by assert_warn)rÚcatch_warningsÚ simplefilterr(r
r!r$)rrÚfailedr!r!r"Útest_warn_wrong_warning`s
 
z!TestWarns.test_warn_wrong_warningN)r:r;r<r$r'r-r!r!r!r"r?src@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚTestAssertAllclosecCs°d}d}t||ddttt||ƒt ||||g¡}t ||||g¡}t||ddttt||ƒ|d|d<t||ƒttt||ddtdd    d
dtttd    dd
ddS) Ngü©ñÒMbP?g•Ö&è .>r&©ZatolgÜ1¯ð?rµ)ZrtolrårLgà?)r r    r$r)r*)rrNrOrr r!r!r"rÄts 
zTestAssertAllclose.test_simplecCs*tjt tj¡jgtjd}t||ƒdS)Nr3)r)r*ZiinfoÚint_Úminr r6r!r!r"Ú test_min_intˆszTestAssertAllclose.test_min_intc    Cs^t ddddg¡}t ddddg¡}t t¡}t||ƒW5QRXt|jƒ}td|kƒdS)Nr&r'zXMismatched elements: 1 / 4 (25%)
Max absolute difference: 1
Max relative difference: 0.5©    r)r*rZrr$r rérêr©rrr ríÚmsgr!r!r"Útest_report_fail_percentages 
þz.TestAssertAllclose.test_report_fail_percentagecCs.t tjg¡}t tjg¡}t||dddS)NT©Z    equal_nan)r)r*rRr rr!r!r"Útest_equal_nan˜sz!TestAssertAllclose.test_equal_nancCs2t tjg¡}t tjg¡}ttt||dddS)NFr7)r)r*rRr    r$r rr!r!r"Útest_not_equal_nanžsz%TestAssertAllclose.test_not_equal_nancCsHt tjg¡}t tjg¡}t||ƒt||ƒt||ƒt||ƒdSr)r)r*rRrrrr rr!r!r"Útest_equal_nan_default£s 
 
 
z)TestAssertAllclose.test_equal_nan_defaultc    CsVt ddg¡}t ddg¡}t t¡}t||ƒW5QRXt|jƒ}td|kƒdS)Nrr&r'rðr3r4r!r!r"Útest_report_max_relative_error®s  
z1TestAssertAllclose.test_report_max_relative_errorcCs&tjddddggdd}t||ƒdS)Nr&r'r.r¥zm8[ns]r3)r)r*r r6r!r!r"Útest_timedelta·sz!TestAssertAllclose.test_timedeltac    Csntjdddgdd}tjdddgdd}t t¡}t||ddW5QRXt|jƒ d    ¡}t    |dd
ƒd S) zYCheck the the message is formatted correctly when overflow can occur
           (gh21768)rr&éZuint8r3r/r.r/räzMax absolute difference: 4N)
r)ZasarrayrZrr$r rérêrërrìr!r!r"Útest_error_message_unsigned¼s  z.TestAssertAllclose.test_error_message_unsignedN) r:r;r<rÄr2r6r8r9r:r;r<r>r!r!r!r"r.rs      r.c@steZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚTestArrayAlmostEqualNulpcCsd}tjdddtjd}d|}tj| |f}t |j¡j}||||d}t|||ƒt |j¡j}||||d}t|||ƒdS©NrÂéìÿÿÿrïé2r3rLro©    r)ÚlinspaceÚfloat64Úr_Úfinfor4ÚepsrÚepsneg©rÚnulprNrHrOrIr!r!r"Útest_float64_passÍs z*TestArrayAlmostEqualNulp.test_float64_passcCs˜d}tjdddtjd}d|}tj| |f}t |j¡j}||||d}ttt    |||ƒt |j¡j
}||||d}ttt    |||ƒdSr@© r)rDrErFrGr4rHr    r$rrIrJr!r!r"Útest_float64_failßs$ÿÿz*TestArrayAlmostEqualNulp.test_float64_failcCsTt d¡}tjtjtjd tj¡}||A}| tj¡}| tj¡}t||dƒdS)Nlÿÿr3r)r)Zuint64r*rRrErqr)rÚoffsetZnan1_i64Znan2_i64Znan1_f64Znan2_f64r!r!r"Útest_float64_ignore_nanïs 
  z0TestArrayAlmostEqualNulp.test_float64_ignore_nancCsd}tjdddtjd}d|}tj| |f}t |j¡j}||||d}t|||ƒt |j¡j}||||d}t|||ƒdSr@©    r)rDr~rFrGr4rHrrIrJr!r!r"Útest_float32_passús z*TestArrayAlmostEqualNulp.test_float32_passcCs˜d}tjdddtjd}d|}tj| |f}t |j¡j}||||d}ttt    |||ƒt |j¡j
}||||d}ttt    |||ƒdSr@© r)rDr~rFrGr4rHr    r$rrIrJr!r!r"Útest_float32_fails$ÿÿz*TestArrayAlmostEqualNulp.test_float32_failcCsTt d¡}tjtjtjd tj¡}||A}| tj¡}| tj¡}t||dƒdS)Niÿÿr3r)r)Zuint32r*rRr~rqr)rrOZnan1_i32Znan2_i32Znan1_f32Znan2_f32r!r!r"Útest_float32_ignore_nans 
  z0TestArrayAlmostEqualNulp.test_float32_ignore_nancCsd}tjdddtjd}d|}tj| |f}t |j¡j}||||d}t|||ƒt |j¡j}||||d}t|||ƒdS©NrÂéüÿÿÿr/rLr3ro)    r)rDÚfloat16rFrGr4rHrrIrJr!r!r"Útest_float16_pass#s z*TestArrayAlmostEqualNulp.test_float16_passcCs˜d}tjdddtjd}d|}tj| |f}t |j¡j}||||d}ttt    |||ƒt |j¡j
}||||d}ttt    |||ƒdSrV) r)rDrXrFrGr4rHr    r$rrIrJr!r!r"Útest_float16_fail1s$ÿÿz*TestArrayAlmostEqualNulp.test_float16_failcCsTt d¡}tjtjtjd tj¡}||A}| tj¡}| tj¡}t||dƒdS)Néÿr3r)r)Zuint16r*rRrXrqr)rrOZnan1_i16Znan2_i16Znan1_f16Znan2_f16r!r!r"Útest_float16_ignore_nanAs 
  z0TestArrayAlmostEqualNulp.test_float16_ignore_nancCs$d}tjdddtjd}d|}tj| |f}||d}t |j¡j}||||d}t|||d|ƒt|||d|ƒ||||d    }t|||d|ƒt |j¡j}||||d}t|||d|ƒt|||d|ƒ||||d    }t|||d|ƒdS©
NrÂrArïrBr3rLùð?ror^rC©rrKrNÚxirHrOrIr!r!r"Útest_complex128_passLs" z-TestArrayAlmostEqualNulp.test_complex128_passcCs4d}tjdddtjd}d|}tj| |f}||d}t |j¡j}||||d}ttt    |||d|ƒttt    |||d|ƒ||||}ttt    |||d|ƒt |j¡j
}||||d}ttt    |||d|ƒttt    |||d|ƒ||||}ttt    |||d|ƒdS©    NrÂrArïrBr3rLr^rorMr_r!r!r"Útest_complex128_failcsR 
ÿ
ÿ
ÿ
ÿ
ÿ
ÿz-TestArrayAlmostEqualNulp.test_complex128_failcCs$d}tjdddtjd}d|}tj| |f}||d}t |j¡j}||||d}t|||d|ƒt|||d|ƒ||||d    }t|||d|ƒt |j¡j}||||d}t|||d|ƒt|||d|ƒ||||d    }t|||d|ƒdSr]rQr_r!r!r"Útest_complex64_pass€s" z,TestArrayAlmostEqualNulp.test_complex64_passcCs4d}tjdddtjd}d|}tj| |f}||d}t |j¡j}||||d}ttt    |||d|ƒttt    |||d|ƒ||||}ttt    |||d|ƒt |j¡j
}||||d}ttt    |||d|ƒttt    |||d|ƒ||||}ttt    |||d|ƒdSrbrSr_r!r!r"Útest_complex64_fail•sR 
ÿ
ÿ
ÿ
ÿ
ÿ
ÿz,TestArrayAlmostEqualNulp.test_complex64_failN)r:r;r<rLrNrPrRrTrUrYrZr\rarcrdrer!r!r!r"r?Ës   r?c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) ÚTestULPcCstj d¡}t||dddS)NrLr©Úmaxulp)r)ÚrandomÚrandnr)rrNr!r!r"Ú
test_equal³s zTestULP.test_equalcCsRt d¡ tj¡}|dtj d¡ tj¡7}t tj¡j}t|||dddS)NrLç{®Gáz„?rïrg)    r)rñÚastyper~rirjrGrHr©rrNrHr!r!r"Ú test_single·szTestULP.test_singlecCsRt d¡ tj¡}|dtj d¡ tj¡7}t tj¡j}t|||dddS)NrLrléÈrg)    r)rñrmrErirjrGrHrrnr!r!r"Ú test_double¾szTestULP.test_doublecCsLtjtjfD]:}t tjg¡ |¡}t t |¡jg¡}t||ddq dS)Nrprg)    r)r~rEr*rdrmrGÚmaxr)rÚdtrdÚbigr!r!r"rÎÅszTestULP.test_infcstjtjfD]þ}|tjkr d‰nd‰t tjg¡ |¡‰t tjg¡ |¡‰t t |¡jg¡‰t t |¡j    g¡‰t tj
g¡ |¡‰t tj g¡ |¡‰t t ‡‡‡fdd„ƒt t ‡‡‡fdd„ƒt t ‡‡‡fdd„ƒt t ‡‡‡fdd„ƒt t ‡‡‡fdd„ƒq dS)    Ng€„.Ag¢”mBcstˆˆˆdS©Nrg©rr!)rdrhrRr!r"r¾Ùsÿz"TestULP.test_nan.<locals>.<lambda>cstˆˆˆdSrurvr!)rtrhrRr!r"r¾ÜsÿcstˆˆˆdSrurvr!)rhrRÚtinyr!r"r¾ßsÿcstˆˆˆdSrurvr!)rhrRÚzeror!r"r¾âsÿcstˆˆˆdSrurvr!)rhrRÚnzeror!r"r¾åsÿ)r)r~rEr*rdrmrRrGrrrwr°r±r    r$)rrsr!)rtrdrhrRryrwrxr"rÌËs2
ÿÿÿÿÿzTestULP.test_nanN)r:r;r<rkrorqrÎrÌr!r!r!r"rf±s
rfc@seZdZdd„Zdd„ZdS)ÚTestStringEqualc    CsZtddƒtddƒt t¡}tddƒW5QRXt|jƒ}t|dƒttdd„ƒdS)NÚhellozhello
multilinezfoo
barz    hello
barz%Differences in strings:
- foo
+ hellocSs
tddƒS)NrFr{©rr!r!r!r"r¾ôr¿z-TestStringEqual.test_simple.<locals>.<lambda>)rrZrr$rérêrr    )rrír5r!r!r"rÄês
 
 
 
ÿzTestStringEqual.test_simplecCstddƒttdd„ƒdS)Nza+*bcSs
tddƒS)NZaaaza+br|r!r!r!r"r¾úr¿z,TestStringEqual.test_regex.<locals>.<lambda>)rr    r$r8r!r!r"Ú
test_regexös
ÿzTestStringEqual.test_regexN)r:r;r<rÄr}r!r!r!r"rzés rzcCsJz
|j}Wntk
r"i}YnXt|ƒ}d|kr<|d8}t||ƒdS)NÚversionr&)Ú__warningregistry__ÚAttributeErrorÚlenr)ÚmodÚ n_in_contextZ    mod_warnsZ    num_warnsr!r!r"Úassert_warn_len_equalýs
 
r„cCsDGdd„dƒ}|ƒ}t|ddGdd„dƒ}|ƒ}t|dddS)Nc@s eZdZdS)ú/test_warn_len_equal_call_scenarios.<locals>.modNr r!r!r!r"r‚sr‚r)r‚rƒc@seZdZdd„ZdS)r…cSsdddœ|_dS)Nr&r'©Zwarning1Zwarning2)rr8r!r!r"Ú__init__'sÿz8test_warn_len_equal_call_scenarios.<locals>.mod.__init__N)r:r;r<r‡r!r!r!r"r‚&sr')r„)r‚Zmod_instr!r!r"Ú"test_warn_len_equal_call_scenariossÿÿrˆcCs2tjt}z|j ¡Wntk
r,YnX|Sr)rrr:rÚclearr€©Úmy_modr!r!r"Ú_get_fresh_mod0s 
rŒc    Csötƒ}tt|diƒiƒt|gdt d¡t d¡W5QRXt|jiƒtƒt d¡t d¡W5QRXt|dƒdddœ|_t|gdt d¡t d    ¡W5QRXt|dƒtƒt d¡t d    ¡W5QRXt|dƒdS)
Nr)rÚignoreú Some warningrr&r'r†zAnother warning)    rŒrÚgetattrrrr+rrr„rŠr!r!r"Útest_clear_and_catch_warnings<s*
 
 
ÿ
 
 
rc    Cs2tƒ}tt|diƒiƒdd„}t|dƒtƒ0}| t¡|jtj    j
dt   d¡|ƒW5QRXtt |jƒdƒt|jdjjddƒt|dƒtƒ}|j|d|t   d¡W5QRXt|dƒ|j|d|t   d¡W5QRXt|dƒtƒt  d¡t   d¡W5QRXt|dƒdS)    NrcSsdd„}t |ddg¡dS)NcSstjddd|S)NzSome warning 2r'©Ú
stacklevelr©Zarrr!r!r"rdszFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnr©r)Zapply_along_axis©rr!r!r"Úwarn_other_moduleasz8test_suppress_warnings_module.<locals>.warn_other_moduler©ÚmodulerŽr&r)rŒrrr„rÚrecordr!Úfilterr)ÚlibZ
shape_baserrrÚlogÚmessageryr+)r‹r–Úsupr!r!r"Útest_suppress_warnings_module\s2    
 
 
 
 
 
 
rŸc    Csàtƒ}tt|diƒiƒtƒ}| t¡t d¡W5QRXt|dƒtƒ}| t¡|t d¡W5QRXt|dƒ|j|d|t d¡W5QRXt|dƒtƒt     d¡t d¡W5QRXt|dƒdS)NrrŽrr—r)
rŒrrrršr!rrr„r+)r‹ržr!r!r"Útest_suppress_warnings_typeŠs&
 
 
 
 
 
r c    Cs`tƒ}| t¡|dd„ƒ}tjdd.}t d¡|tƒ|tƒtt|ƒdƒW5QRXdS)NcSst d|¡dS)NrŽr)Úcategoryr!r!r"rªsz7test_suppress_warnings_decorate_no_record.<locals>.warnT)r™Úalwaysr&)    rršr!rr*r+ÚRuntimeWarningrr)ržrÚwr!r!r"Ú)test_suppress_warnings_decorate_no_record¦s
 
 
r¥c
CsŽtƒ}| ¡}|~|jdd}|jddt d¡t d¡t d¡tt|jƒdƒtt|ƒdƒtt|ƒdƒt|djj    ddƒW5QRX|~|jdd}|jddt d¡t d¡t d¡tt|jƒdƒtt|ƒdƒtt|ƒdƒt|djj    ddƒW5QRXtƒ`}| ¡tƒ6}|jddt d¡t d¡tt|jƒdƒW5QRXtt|jƒdƒW5QRXdS)NzSome other warning 2)rrŽúSome other warningr'r&r)
rr™ršrrrrrœrry)ržZlog1Úlog2Úsup2r!r!r"Útest_suppress_warnings_recordµs<  
 
 
   
 
 
  
 
r©c
Csdd„}tƒJ}| ¡tdƒtdƒD]}t d¡q*W5QRXtt|jƒdƒW5QRXtƒT}| ¡tdƒ(tdƒD]}t d¡t d¡q€W5QRXtt|jƒdƒW5QRXtƒZ}| ¡tdƒ.tdƒD]}t d¡t d¡|ƒqàW5QRXtt|jƒdƒW5QRXtƒ\}| ¡tdƒ0tdƒD] }t d¡t d    ¡|ƒqFW5QRXtt|jƒdƒW5QRXdS)
NcSsdd„}t |ddg¡dS)NcSstjddd|S)NrŽr'r‘rr“r!r!r"rászJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warnrr”r•r!r!r"r–Þsz<test_suppress_warnings_forwarding.<locals>.warn_other_moduler¢r'rŽÚlocationr˜Úoncer¦)rr™Úrangerrrrrœ)r–ržÚir!r!r"Ú!test_suppress_warnings_forwardingÝs<
 
 
 
 
 
 
 
 
r®c
Cs tƒ*}tj |d¡}t|dƒW5QRXW5QRXttj |¡ ƒd}ztƒ }tƒ‚W5QRXWntk
r€d}YnXt|ƒttj |¡ ƒdS)NÚtmpr¤FT)rÚosÚpathÚjoinÚopenrÚisdirÚ
ValueError)ZtdirÚfpathÚraisedr!r!r"Ú test_tempdir s 
r¸c
Cs’tƒ}t|dƒW5QRXW5QRXttj |¡ ƒd}ztƒ }tƒ‚W5QRXWntk
rrd}YnXt|ƒttj |¡ ƒdS)Nr¤FT)rr³rr°r±Úisfilerµ)r¶r·r!r!r"Ú test_temppaths 
rºc@seZdZejefZdS)Úmy_cacwN)r:r;r<rrZ class_modulesr!r!r!r"r»-sr»c    Cs<tƒ}tƒt d¡t d¡W5QRXt|jiƒdS)NrrŽ)rŒr»rr+rrrrŠr!r!r"Ú%test_clear_and_catch_warnings_inherit2s
 
r¼zPython lacks refcountsc@s0eZdZdZdd„Zdd„Zejjdd„ƒZ    dS)    ÚTestAssertNoGcCyclesz Test assert_no_gc_cycles c    Cs,dd„}tƒ |ƒW5QRXt|ƒdS)NcSsg}| g¡|Sr©Úappend)r r!r!r"Úno_cycle?s
z2TestAssertNoGcCycles.test_passes.<locals>.no_cycle)r)rrÀr!r!r"Ú test_passes>sz TestAssertNoGcCycles.test_passesc
CsTdd„}ttƒtƒ |ƒW5QRXW5QRXttƒt|ƒW5QRXdS)NcSsg}| |¡| |¡|Srr¾)rr!r!r"Ú
make_cycleJs
 
z5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle)r    r$r)rrÂr!r!r"Ú test_assertsIs 
 
z!TestAssertNoGcCycles.test_assertsc    s€G‡fdd„dƒ‰z`t ˆƒ¡}z$ttƒtdd„ƒW5QRXWn*tk
rn|ƒdk    rjt d¡‚YnXW5dˆ_XdS)z•
        Test that in cases where the garbage cannot be collected, we raise an
        error, instead of hanging forever trying to clear it.
        cs(eZdZdZdZdd„Z‡fdd„ZdS)z<TestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDelz¥
            An object that not only contains a reference cycle, but creates new
            cycles whenever it's garbage-collected and its __del__ runs
            TcSs
||_dSr)Úcycler8r!r!r"r‡eszETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__csd|_ˆjrˆƒdSr)rÄrÂr8©ÚReferenceCycleInDelr!r"Ú__del__hszDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__N)r:r;r<Ú__doc__rÂr‡rÇr!rÅr!r"rÆ^srÆFcSsdSrr!r!r!r!r"r¾vr¿z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Nz*GC does not call __del__ on cyclic objects)    rÂÚweakrefÚrefr    rrr$rZÚskip)rr¤r!rÅr"Ú
test_failsWs 
 
 
 zTestAssertNoGcCycles.test_failsN)
r:r;r<rÈrÁrÃrZr‰ZslowrÌr!r!r!r"r½;s
 r½)@rrr°r¨rZrÉÚnumpyr)Z numpy.testingrrrrrrrr    r
r r r rrrrrrrrrrZnumpy.core.overridesrrr=r‹rœr¸rÝrórúr‰rËr rr.r?rfrzr„rˆrŒrrŸr r¥r©r®r¸rºr»r¼rŠr½r!r!r!r"Ú<module>sR` .>-_b+m "3Yg8  .(/