zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
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
U
O±d|«ã@sddlZddlZddlZddlZddlZddlZddlmZddlZddl    m
Z
m Z ddl m Z ddlmZddlZddlmZmZmZmZmZmZmZmZmZejejejejej ej!ej"ej#ej$ej%ej&ej'ej(ej)ej*ej+ej,gZ-ej. /¡Z0ej1 /¡Z2e3ƒdgZ4ej5ej6ej7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAg ZBGdd„dƒZCd    d
„ZDejEjFe d d d e
e eBƒejGe H¡ddejGe H¡ddƒdd„ƒƒƒZIejEjFe
e eBƒe H¡e H¡ƒdd„ƒƒZJejE KdejLejMg¡dd„ƒZNGdd„dƒZOGdd„dƒZPdd„ZQdd„ZRGdd „d ƒZSGd!d"„d"ƒZTGd#d$„d$ƒZUGd%d&„d&ƒZVesZGd'd(„d(ƒZWGd)d*„d*ƒZXGd+d,„d,ƒZYGd-d.„d.ƒZZGd/d0„d0ƒZ[Gd1d2„d2ƒZ\Gd3d4„d4ƒZ]ej^d5d6„ƒZ_e
e e4ƒe eBƒe e-ƒƒd7d8„ƒZ`e
e e4ƒe eBƒe e-ƒƒd9d:„ƒZae
e eBƒe e-ƒe e-ƒƒd;d<„ƒZbejE Kd=eB¡ejE Kd>dd?g¡d@dA„ƒƒZcejE Kd=eB¡ejE Kd>dd?g¡dBdC„ƒƒZdejE KdDejedE¡ejEjKdFdGdH„dIdH„dJdH„gdKdLdMgdNdOdP„ƒƒZfejE KdDejedQ¡ejEjKdFdRdH„dSdH„dTdH„ejgdUdH„ejEjhdVdWdXgdYdZdMd[gdNd\d]„ƒƒZiejE KdDejed^¡d_d`„ƒZjejE KdDejedE¡ejEjKdFdadH„dbdH„gd[dcgdNddde„ƒƒZkdfdgej5dhfdidjej6dhfdkdkej7dhfdldlej8dhfdgdfej:dhfdjdiej9dhfdmdnej<dofdpdqejAdofdrdsej;dofdtduej=dofdvdwej>dofdxdyej?dofdzd{ej@dofg ZlejE Kd|d}d=d~gel¡ejE KdejMejmej)g¡d€d„ƒƒZnd‚dƒ„ZoejE Kd|d}d=d~gel¡ejE Kd„epeqerejLg¡e s¡d…d†„ƒƒƒZtdS)‡éN)Ú_pep440)ÚgivenÚsettings)Ú sampled_from)Únumpy)    Úassert_Ú assert_equalÚ assert_raisesÚassert_almost_equalÚassert_array_equalÚIS_PYPYÚsuppress_warningsÚ_gen_alignment_dataÚ assert_warnsc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú    TestTypescCs,tD]"}|dƒ}t|dkd||fƒqdS)Néúerror with %r: got %r)Útypesr)ÚselfÚatypeÚa©rúWd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_scalarmath.pyÚ
test_types(szTestTypes.test_typesc Cs”ttƒD]†\}}|dƒ}tjdg|d}ttƒD]\\}}|dƒ}tjdg|d}||}    ||}
t|    j|
jd|t |¡j|t |¡jfƒq0qdS)Né©Údtyperz$error with types (%d/'%c' + %d/'%c'))Ú    enumeraterÚnpÚarrayrrÚchar) rÚkrZa_scalarZa_arrayÚlZbtypeZb_scalarZb_arrayZc_scalarZc_arrayrrrÚ test_type_add-s
ÿÿzTestTypes.test_type_addcCs@ttƒD]2\}}t dddg|¡}|dddgƒ}t||ƒqdS)Nrér)rrrrr)rr!rrÚbrrrÚtest_type_createAszTestTypes.test_type_createcCstdƒD]}t dd¡qdS)Ni@ r)ÚrangerÚadd)rÚirrrÚ    test_leakGs zTestTypes.test_leakN)Ú__name__Ú
__module__Ú __qualname__rr#r&r*rrrrr'src    CsN|d}|d}t|tjƒs t‚t|tjƒs0t‚|jjdksH|jjdkr‚tjtjtj    tj
h}||kr‚t  |¡sxt  |¡r‚t   d¡|tjkr¢| ¡dkr¢t  d¡t ¡štjdd‚t dt¡z|||ƒ}WnHtk
r}z(t  t|ƒ¡|||ƒW5QRXW5d}~XYnX|||ƒ}t||d    d
W5QRXW5QRXdS) NrÚcz3complex comp ufuncs use sort-order, scalars do not.)éÿÿÿÿrçà?rr$z.array**2 can have incorrect/weird result dtypeÚignore©ÚallÚerrorT)Ústrict)Ú
isinstancerZgenericÚAssertionErrorrÚkindÚoperatorÚgeÚgtÚleÚltÚisnanÚpytestÚxfailÚpowÚitemÚskipÚwarningsÚcatch_warningsÚerrstateÚ simplefilterÚDeprecationWarningÚ    ExceptionÚraisesÚtyper )    ÚopÚarr1Úarr2Zscalar1Zscalar2Zcomp_opsÚresÚeZ
scalar_resrrrÚcheck_ufunc_scalar_equivalenceNs&
 
 &
rQi'iÐ)Z max_examplesÚdeadliner)rÚshapecCst|||ƒdS)zÛ
    This is a thorough test attempting to cover important promotion paths
    and ensuring that arrays and scalars stay as aligned as possible.
    However, if it creates troubles, it should maybe just be removed.
    N)rQ)rLrMrNrrrÚ#test_array_scalar_ufunc_equivalencels rTcCs,tjd|d}tjd|d}t|||ƒdS)Nr$rr)rrrQ)rLÚdt1Údt2rMrNrrrÚtest_array_scalar_ufunc_dtypeszsrWÚfscalarcCs|t d¡}|dƒ}t ||¡}||j|ks0t‚||j|ksBt‚||jt d¡ksZt‚t d¡|jt d¡ksxt‚dS)NrÚfloat64Úfloat32)rÚint8Z result_typerr7Úint16)rXr)ÚfÚexpectedrrrÚ test_int_float_promotion_truediv†s
 r_c@seZdZdd„Zdd„ZdS)Ú TestBaseMathc    Cs˜tjdftjdftjdffD]t\}}t|d|dD]Z\}}}}t |¡}t |¡|d<t |¡|d<tt ||¡||dtt |d¡|d|dtt d|¡||dtj|||d    t|||d|dtj    |j
|d
d7<tt  |¡t  ||¡|d|tjkr0tt  |¡t d|¡|dt |¡|d<tj|d|d    t||d|dt |¡|d<tjd||d    t||d|dq4qdS) Né éÚbinary)rrKÚmax_size.©Úerr_msgr$r©Úoutr)rrZrYÚint32rÚ    ones_likeZ
zeros_liker
r(ZarangeÚsizeZsquareÚmultiplyZ
reciprocalÚdivide)rÚdtÚszrhZinp1Zinp2ÚmsgZexp1rrrÚ test_blocked•s:&þ
 
 
ÿ 
 
ÿzTestBaseMath.test_blockedcCs¶tjdtjddd… tj¡}tjdtjddd… tj¡}t|||dƒtj|||dtjt |¡||dtj|t |¡|dt t |¡|¡t |t |¡¡dS)Né¸rééüÿÿÿr$rg)rÚzerosr[ÚviewrYr
r(rj)rÚdÚorrrÚtest_lower_alignµs  zTestBaseMath.test_lower_alignN)r+r,r-rqryrrrrr`”s r`c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú    TestPowercCs@tjtjtjfD]*}|dƒ}|d}t|dkd||fƒqdS)NrrséQr)rr[r\Úfloat16r©rÚtrr%rrrÚtest_small_typesÃszTestPower.test_small_typescCsjtjtjtjtjtjfD]L}|dƒ}|d}d||f}t |tj¡rVt|dk|ƒqt    |d|dqdS)Né3rsri‘:gre)
rriÚint64rZrYÚ
longdoubleÚ
issubdtypeÚintegerrr
)rr~rr%rprrrÚtest_large_typesÉs zTestPower.test_large_typescCsRdd„dDƒ}dd„dDƒ}t ||¡D]N\}}|jtjkrNtttj||ƒq(t ||¡}t    |jj
tj kƒt |dƒq(dd„dDƒ}t ||¡D]N\}}|jtjkr¸tttj||ƒq’t ||¡}t    |jj
tj kƒt |dƒq’d    d„dDƒ}t ||¡D]P\}}|jtjkr$tttj||ƒqüt ||¡}t    |jj
tj kƒt |d
ƒqüdS) NcSsg|]}t d|¡d‘qS©r/r©rr©Ú.0rnrrrÚ
<listcomp>×szETestPower.test_integers_to_negative_integer_power.<locals>.<listcomp>ZbhilqcSsg|]}t d|¡d‘qS)rrr‡rˆrrrrŠÚsZ
bhilqBHILQçð?cSsg|]}t d|¡d‘qSr†r‡rˆrrrrŠäsçð¿cSsg|]}t d|¡d‘qS)r$rr‡rˆrrrrŠîsr0) Ú    itertoolsÚproductrrÚuint64r    Ú
ValueErrorr9rArrKrYr
)rÚexpÚbaseÚi1Úi2rOrrrÚ'test_integers_to_negative_integer_powerÓs,       z1TestPower.test_integers_to_negative_integer_powerc    Csštjtjtjtjtjtjtjtjtjg    }|D]h}|D]^}|dƒ}|dƒ}||}d|||df}t t     |¡tj
¡r„t |dk|ƒq4t |d|dq4q,dS)Nrr$z(error with %r and %r:got %r, expected %ré    re) rr[r\r|rZrYrirrƒrr„rr
)rZtypelistÚt1Út2rr%ÚresultrprrrÚtest_mixed_types÷s& þ
ÿzTestPower.test_mixed_typescCsdd}d}d}t|||ƒ}tjtjtjfD]6}tttj||ƒ||ƒtttjt ||ƒ¡||ƒq(dS)Nérsé
)    rArrirZÚ    complex64r    Ú    TypeErrorr9r)rrr%r.r^r~rrrÚtest_modular_powers zTestPower.test_modular_powerN)r+r,r-rr…r•ršrŸrrrrrzÂs
 
$rzcCs||||fS©Nr)ÚxÚyrrrÚfloordiv_and_modsr£cCs|tjdkrdSdSdS)NÚUnsignedInteger)r©rr/)rÚ    typecodes)rnrrrÚ_signssr§c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú TestModulusc     Cstjdtjd}ttfD]æ}t ||¡D]Ô\}}t t|ƒt|ƒ¡D]¶\}}d}||j||||f}tj|d|dd}    tj|d|dd}
||    |
ƒ\} } t    | |
| |    |d|d    kràt
|
| koÔd
kn|ƒqHt
|
| koôd
kn|ƒqHq,qdS) NÚ
AllIntegerÚFloatú*op: %s, dt1: %s, dt2: %s, sg1: %s, sg2: %séGrrérer/r) rr¦r£ÚdivmodrrŽr§r+rrr© rrnrLrUrVZsg1Zsg2Úfmtrprr%ÚdivÚremrrrÚtest_modulus_basic s  zTestModulus.test_modulus_basiccs8ttddƒƒ}ttddƒƒ}|dg|}||}tt ||¡ƒ}tdd„|Dƒƒ}tj|tdj\}}tj|tdj\}    }
t     |    dk|dk|dkA@d    |    ¡}    t     |
dk|dk@d    |
¡}
t
t fD]r‰tj d
D]b} d ˆj | f} | | ¡} | | ¡}t‡fd d „t| |ƒDƒŽ\}}t||    | dt||
| dqÎqÀdS)Niÿÿÿrré€css|]}t|ŽVqdSr )r®)r‰r~rrrÚ    <genexpr>8sz7TestModulus.test_float_modulus_exact.<locals>.<genexpr>rçç€rªzop: %s, dtype: %scsg|]\}}ˆ||ƒ‘qSrr)r‰Za_Zb_©rLrrrŠGsz8TestModulus.test_float_modulus_exact.<locals>.<listcomp>re)Úlistr'rrŽrrÚintÚTÚfloatÚwherer£r®r¦r+ÚastypeÚzipr)rZnlstZplstZdividendZdivisorÚargÚtgtrr%ZtgtdivZtgtremrnrpÚfaZfbr±r²rr¸rÚtest_float_modulus_exact0s$" 
 
 z$TestModulus.test_float_modulus_exactc     Csútjd}ttfD]â}t ||¡D]Ð\}}t dd¡D]º\}}d}||j||||f}tj|dd|dd}    tj|d|dd}
||    |
ƒ\} } t| |
| |    |d|d    krÒt    |
| koÆd
kn|ƒq6t    |
| koæd
kn|ƒq6q"qdS) Nrªr¥r«éNg+i¤)+p>rrrer/r)
rr¦r£r®rrŽr+rrrr¯rrrÚtest_float_modulus_roundoffKs
  z'TestModulus.test_float_modulus_roundoffc     Cs´tjdD]l}tjd|d}t tjd|d| ¡}t ||¡}t||kd|ƒt | | ¡}t|| kd|ƒq
tƒ*}| t    d¡| t    d¡| t    d¡| t    d    ¡| t    d
¡tjdD]Ü}tjd|d}tjd|d}tjtj
|d}tjtj |d}    t ||¡}tt  |¡d|ƒt ||    ¡}tt  |¡d|ƒt ||¡}tt  |¡d|ƒt tfD]2}
|
||ƒ\} } tt | ¡ƒožtt  | ¡ƒqpqÈW5QRXdS) Nrªr‹rr¶zdt: %sz&invalid value encountered in remainderz'divide by zero encountered in remainderz*divide by zero encountered in floor_dividez$divide by zero encountered in divmodz#invalid value encountered in divmod)rr¦rZ    nextafterr9Úmodrr ÚfilterÚRuntimeWarningÚinfÚnanr>r£r®Úisinf) rrnr%rr²ÚsupZfoneZfzerZfinfZfnanrLr±rÆrrrÚtest_float_modulus_corner_cases]s6 
         z+TestModulus.test_float_modulus_corner_casesc    CsJt ddgtj¡}t ddgtj¡}tjtdd||}W5QRXdS)Nrr$z,Cannot cast ufunc 'floor_divide' output from©Úmatch)rrrrr?rJrž)rrr%rrrÚtest_inplace_floordiv_handling€s ÿz*TestModulus.test_inplace_floordiv_handlingN)r+r,r-r³rÃrÅrÍrÐrrrrr¨s
#r¨c@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestComplexDivisionc    CsútjddätjtjfD]Ð}|dƒ}|dƒ}tt ||¡ƒ|ttjtjƒƒ}tt ||¡ƒ|ttjtjƒƒ}tt ||¡ƒ|ttjtjƒƒ}tt ||¡ƒ|ttjtjƒƒ}tt     ||¡ƒ|dƒ}tt     ||¡ƒqW5QRXdS)Nr1r2r¶r‹)
rrFrÚ
complex128rrËÚcomplexrÉrÊr>r}rrrÚtest_zero_divisionŒsz&TestComplexDivision.test_zero_divisionc    Cs tjddŠtjtjfD]v}d}|D]h}|d}|d}|d}|t|d|dƒƒ|t|d|dƒƒ}t|j|dƒt|j|dƒq&qW5QRXdS)Nr1r2))©r¶rŒ©r¶r‹©rŒr·©rÕrÕ©r‹r·)rÕ©r·rŒ©r‹r¶)rÕ©r·r‹©rŒr¶)rÖrÕrÝrØ)rÚrÕrÙ)rÜrÕr×rrr$)rrFrrÒrÓrÚrealÚimag©rr~ÚdataZcasesÚnrwÚexr™rrrÚtest_signed_zeross
,z%TestComplexDivision.test_signed_zerosc    Cs¶tjdd tjtjfD]Œ}tƒ}| d¡| d¡|D]h}|d}|d}|d}|t|d|dƒƒ|t|d|dƒƒ}t|j|dƒt|j    |dƒq<qW5QRXdS)Nr1r2)©ç@r‹rårÛ)©r‹rærçrÛrrr$)
rrFrrÒr¹ÚappendrÓrrÞrßràrrrÚ test_branches¶s
 
,z!TestComplexDivision.test_branchesN)r+r,r-rÔrärérrrrrыsrÑc@s¤eZdZdd„Zdd„Zdd„Zdd„Zejj    e
d    d
d d „ƒZ ejj    e   e j¡e   e j¡kd d
ejj    e ¡ d¡dd
dd„ƒƒZdd„Zdd„Zdd„ZdS)ÚTestConversioncCsŽddddddg}ddd    d
d d g}dtjtjfD]&}tj||d }tdd„|Dƒ|ƒq.tj|dd…tjd }tdd„|Dƒ|dd…ƒdS)Ng€„.Ag¢”mBgÈNgmÁ«Cg€„.Ág¢”mÂgÈNgmÁ«Ãi@BlJ)£lÈNÎZoiÀ½ðÿlýÿÿÿJ)£lüÿÿÿÈNÎZorcSsg|] }t|ƒ‘qSr©rº©r‰Ú_mrrrrŠÙsz5TestConversion.test_int_from_long.<locals>.<listcomp>rcSsg|] }t|ƒ‘qSrrërìrrrrŠÜs)rrYrrrr)rr"Úlir»rrrrÚtest_int_from_longÔsz!TestConversion.test_int_from_longc
CsÔdD]L}t t¡ tjt |¡jd|d}W5QRXt |¡j}t||kƒqtj    dD]2}tjt |¡j|d}t |¡j}t||kƒq\tj    dD]4}t 
|¡  t |¡j¡}t |¡j}t||kƒqšdS)NZbBhHrrr©) r?ÚwarnsrHrrÚiinfoÚmaxÚminrr¦rrK)rÚcoderOrÁrrrÚtest_iinfo_long_valuesÞs $   z%TestConversion.test_iinfo_long_valuescCs2dd„}tjtjtjtjfD]}tt||ƒqdS)NcSs|t |¡jdƒdS©Nr)rrñròrrrrÚoverflow_error_funcðszDTestConversion.test_int_raise_behaviour.<locals>.overflow_error_func)rÚint_ÚuintÚlonglongÚ    ulonglongr    Ú OverflowError)rr÷rôrrrÚtest_int_raise_behaviourïsz'TestConversion.test_int_raise_behaviourc    Csbt tj¡}ttt|ƒtƒ:}| tj¡t     tj¡}ttt|ƒt
t |j ƒdƒW5QRXdSrö) rr‚rÉr    rürºr ÚrecordÚComplexWarningÚ clongdoublerÚlenÚlog©rr¡rÌrrrÚ!test_int_from_infinite_longdoubleös     z0TestConversion.test_int_from_infinite_longdoublezTest is PyPy only (gh-9972)©Úreasonc    Csbt tj¡}tt|jƒtƒ:}| tj¡t     tj¡}tt|jƒt
t |j ƒdƒW5QRXdSrö) rr‚rÉr    rüÚ__int__r rþrÿrrrrrrrrÚ)test_int_from_infinite_longdouble___int__s     z8TestConversion.test_int_from_infinite_longdouble___int__zlong double is same as doubleÚppczIBM double doublecCsPt tj¡jd}dt d¡|}dd|}t|tjkƒtt|ƒ|ƒdS)Nri¤    r$)    rÚfinfoÚdoubleZmaxexpr‚rrÉrrº)rr‘Zhuge_ldZhuge_irrrÚtest_int_from_huge_longdouble
s
 z,TestConversion.test_int_from_huge_longdoublecCs4t d¡}tt|ƒdƒt d¡}tt|ƒdƒdS)Nçø?rg%Àiöÿÿÿ)rr‚rrº)rr¡rrrÚtest_int_from_longdoubles
 
z'TestConversion.test_int_from_longdoublecCstjdD]À}tdtjd|ddkd|fƒtdtjd|ddk d|fƒtjdD]j}ttjd|ddtjd|ddkd||fƒttjd|ddtjd|ddk d||fƒq^q
dD]}td    tjd|ddkd|fƒtd    tjd|ddk d|fƒtd    tjd|ddkd|fƒd
D]ž}ttjd|ddtjd    |ddkd||fƒttjd|ddtjd    |ddk d||fƒttjd|ddtjd    |ddkd||fƒqBqÐd tjd D]}tdtjd    |ddkd|fƒtdtjd    |ddk d|fƒtd    tjd    |ddkd|fƒd tjd D]ž}ttjd|ddtjd    |ddkd||fƒttjd|ddtjd    |ddk d||fƒttjd    |ddtjd    |ddkd||fƒqnqòdS) Nr©rrrrztype %s failedztype %s and %s failedZBHILQPr/ZbhilqpZbhlqprª)rr¦rr)rrUrVrrrÚ&test_numpy_scalar_relational_operatorssL"$$
ÿ&
ÿ
"$"$
ÿ&
ÿ$
ÿ
"$"$
ÿ&
ÿ$
ÿz5TestConversion.test_numpy_scalar_relational_operatorsc    CsÂtjdd†}t ddt¡tt d¡dk ƒtt d¡dk ƒtt d¡dk ƒtt d¡dkƒtt d¡dkƒtt d¡dkƒW5QRXtt    |ƒdkƒtt 
t d¡d¡ƒdS)    NT)rþÚalwaysÚrÚtestZNaTr) rDrEÚfilterwarningsÚ FutureWarningrrrZZstr_Z
datetime64rÚequal)rÚwrrrÚtest_scalar_comparison_to_noneFsz-TestConversion.test_scalar_comparison_to_noneN)r+r,r-rïrõrýrr?ÚmarkZskipifr rrr
r r‚ÚplatformÚmachineÚ
startswithr rrrrrrrrêÓs 
 
 
    ÿÿ     )rêc@seZdZdd„Zdd„ZdS)ÚTestReprc Csèt |¡}|j|j}|j}t |¡jd}dD]²}tjdg|tjd}|dkrt|d}d|d}    d|    >||<n2|dkrž|d}d|d}    d|    >||<ntd    ƒ‚|     |¡d}
t
|
ƒ} |t | ƒƒ} | dkrØ|
d
ks0t |
| ƒq0dS) Né)ú small denormú
small normrrrrbrrZhmmg0Žä.ÿ++) rr
ZnexpZnmantrÚitemsizerZuint8rrvÚreprÚevalr) rr~r
Zlast_fraction_bit_idxZlast_exponent_bit_idxZ storage_bytesÚwhichZconstrÚbyteZbytebitÚvalZval_reprZval2rrrÚ_test_type_reprfs(
    zTestRepr._test_type_reprcCs tjtjfD]}| |¡q dSr )rrZrYr&)rr~rrrÚtest_float_reprszTestRepr.test_float_reprN)r+r,r-r&r'rrrrresrc@seZdZdd„Zdd„ZdS)Ú
TestSizeOfcCs*tD] }|dƒ}tt |¡|jkƒqdS)Nr)rrÚsysÚ    getsizeofÚnbytes)rrKr¡rrrÚtest_equal_nbytesŠszTestSizeOf.test_equal_nbytescCst ¡}tt|jdƒdS)Nr)rrZr    ržÚ
__sizeof__)rrwrrrÚ
test_errorszTestSizeOf.test_errorN)r+r,r-r,r.rrrrr(ˆsr(c@seZdZdd„Zdd„ZdS)Ú TestMultiplycCs&ttjdƒ}dh}ttjdƒ||}|dh8}ttfD]ä}|dddgƒ}|D]@}t |¡ d¡}t|||t|ƒƒt||t|ƒ|ƒqR|D]N}t |¡ ¡}tt    t
t j ||ƒ|t|ƒƒtt    t
t j ||ƒt|ƒ|ƒq˜|D]2}t |¡ ¡}t tt j ||ƒt tt j ||ƒqìq<dS)Nr©ú?ZAllÚVrr$r)Úsetrr¦r¹ÚtuplerrKrrºrrHr9Úmulr    rž)rZaccepted_typesZdeprecated_typesZforbidden_typesZseq_typeÚseqZ
numpy_typer)rrrÚtest_seq_repeat•s2ÿ
 
þ
þzTestMultiply.test_seq_repeatcCs¤Gdd„dƒ}|t d¡ƒtt d¡ƒfD]t}t|t d¡t dd¡ƒtt d¡|t dd¡ƒt|t d¡t dd¡ƒtt d¡|t dd¡ƒq*dS)Nc@seZdZdd„Zdd„ZdS)zCTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLikecSs
||_dSr ©Úarr)rr8rrrÚ__init__ºszLTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLike.__init__cSs|jSr r7)rrrrÚ    __array__¼szMTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLike.__array__N)r+r,r-r9r:rrrrÚ    ArrayLike¹sr;rg@)rÚonesÚ
memoryviewr rZÚfullrø)rr;Zarr_likerrrÚ#test_no_seq_repeat_basic_array_likeµs  z0TestMultiply.test_no_seq_repeat_basic_array_likeN)r+r,r-r6r?rrrrr/”s r/c@seZdZdd„Zdd„ZdS)Ú TestNegativecCs&tjdtjdd}tttj|ƒdS©Nrr)rr<Úbool_r    ržr9Úneg©rrrrrÚtest_exceptionsÈszTestNegative.test_exceptionsc    Cs tjdtjd}tƒ|}| t¡|D]f}tjd|dd}|tjdkr|t |¡j}|t |¡j    ƒ}t
t   |¡|ƒq*t
t   |¡|dƒq*W5QRXdS)Nr©ÚAllFloatrrr¤r) rr¦r rÇrÈr<rrKrñròrr9rC)rrrÌrnrÚstròrrrÚ test_resultÌs
 zTestNegative.test_resultN©r+r,r-rErHrrrrr@Çsr@c@seZdZdd„Zdd„ZdS)Ú TestSubtractcCs(tjdtjdd}tttj||ƒdSrA)rr<rBr    ržr9ÚsubrDrrrrEÚszTestSubtract.test_exceptionsc    Csbtjdtjd}tƒ>}| t¡|D](}tjd|dd}tt ||¡dƒq*W5QRXdS)Nr©rFrrr)    rr¦r rÇrÈr<rr9rK)rrrÌrnrrrrrHÞs 
zTestSubtract.test_resultNrIrrrrrJÙsrJc@sHeZdZdd„Zej dee¡dd„ƒZ    ej dee¡dd„ƒZ
dS)    ÚTestAbsc    CsÌ|dƒ}t||ƒdƒ|dƒ}||ƒ}t|dƒ|dƒ}||ƒ}t|dƒ|t |¡jƒ}t||ƒ|jƒtƒ0}| t¡|t |¡jƒ}t||ƒ|jƒW5QRX|t |¡j    ƒ}t||ƒ|j ƒdS)Ngø¿r r¶r·)
rrr
ròrÞr rÇÚ UserWarningZtinyró)rZabsfuncZ
test_dtyper¡rOrÌrrrÚ_test_abs_funcès 
 
 
zTestAbs._test_abs_funcrcCsRtjdkrB|tjkrBt t ¡ d¡d¡t d¡krBt    j
dd|  t |¡dS©NÚcygwinú-rz3.3.0z4absl is computed in double precision on cygwin < 3.3r© r)rrrrÚparseÚreleaseÚsplitÚVersionr?r@rNÚabs©rrrrrÚtest_builtin_absþsÿÿÿýÿzTestAbs.test_builtin_abscCsTtjdkrB|tjkrBt t ¡ d¡d¡t d¡krBt    j
dd|  tj |¡dSrOrRrXrrrÚtest_numpy_abs sÿÿÿýÿzTestAbs.test_numpy_absN) r+r,r-rNr?rÚ parametrizeÚfloating_typesÚcomplex_floating_typesrYrZrrrrrLçs
 
rLc@sFeZdZej dejd¡ejjdej    ej
gddgddd„ƒƒZ d    S)
Ú TestBitShiftsÚ    type_coder©rLz>>z<<©Úidsc CsÀt |¡}|jd}dD]¢}||dfD]}t |¡ |¡d}| |¡}|||ƒ}    |dkrr|tjkrrt|    dƒn
t|    dƒtj|gd|d}
tj|gd|d} ||
| ƒ} t| |    ƒq(qd    S)
zA Shifts where the shift amount is the width of the type or wider r)r›éûÿÿÿrsrrr/é rN)    rrr rr¾rKr9Úrshiftr) rr_rLrnÚnbitsr%ÚshiftZval_sclZ    shift_sclZres_sclZval_arrZ    shift_arrZres_arrrrrÚtest_shift_all_bitss
 
 
 
 
 
z!TestBitShifts.test_shift_all_bitsN) r+r,r-r?rr[rr¦r9rdÚlshiftrgrrrrr^s 
ÿr^c@s`eZdZej dejd¡dd„ƒZej dejd¡dd„ƒZ    ej dejd¡d    d
„ƒZ
d S) ÚTestHashr_r©cCs6t |¡j}tdƒD]}t|ƒt||ƒƒkst‚qdS)Nr´)rrrKr'Úhashr7)rr_Úscalarr)rrrÚtest_integer_hashes7s  zTestHash.test_integer_hashesrFcCs¨t |¡j}tjtjddfD]J}||ƒ}|jjdkr>t|ƒ}nt|ƒ}||ksRt‚t    |ƒt    |ƒkst‚qt    ttj
ƒƒt    ttj
ƒƒkr¤t    |tj
ƒƒt    |tj
ƒƒks¤t‚dS)Nrg@r.) rrrKÚpirÉr8rÓr¼r7rjrÊ©rr_rkr%Z    numpy_valrrrÚtest_float_and_complex_hashes=s  
 z&TestHash.test_float_and_complex_hashesÚComplexcCsNt |¡j}tjdtjdddfD]$}||ƒ}tt|ƒƒt|ƒks$t‚q$dS)Nùð?y@y@ð?)rrrKrmrÉrjrÓr7rnrrrÚtest_complex_hashesNs zTestHash.test_complex_hashesN) r+r,r-r?rr[rr¦rlrorrrrrrri6s 
 
ric    cs.t ¡}zt |¡dVW5t |¡XdSr )r)ÚgetrecursionlimitÚsetrecursionlimit)rârxrrrÚrecursionlimitWs
 
 
ruc    Cs@z&tdƒ|||dƒƒW5QRXWntk
r:YnXdS©NéÈr©rurž©rxrLÚtype_rrrÚtest_operator_object_leftas
 
r{c    Cs@z&tdƒ||dƒ|ƒW5QRXWntk
r:YnXdSrvrxryrrrÚtest_operator_object_rightls
 
r|cCs0z||dƒ|dƒƒWntk
r*YnXdSrö)rž)rLZtype1Ztype2rrrÚtest_operator_scalarswsr}rLr%lcCsXz|t d¡|ƒWntk
r(YnXz||t d¡ƒWntk
rRYnXdS©Nr)rr‚rž©rLr%rrrÚtest_longdouble_inf_loopsr€cCsXz|t d¡|ƒWntk
r(YnXz||t d¡ƒWntk
rRYnXdSr~)rrržr‚rrrrÚtest_clongdouble_inf_loopsrrr©Ú    operationcCs||Sr r©róròrrrÚ<lambda>Ÿór„cCs||Sr rrƒrrrr„ r…cCs||Sr rrƒrrrr„¡r…ú+rQÚ*r`c    CsTt |¡j}|t |¡jƒ}|t |¡jƒ}tjtdd|||ƒW5QRXdS)Núoverflow encounteredrÎ)    rrrKrñróròr?rðrÈ)rr‚rGróròrrrÚ&test_scalar_integer_operation_overflows
 r‰ZIntegercCs| Sr r©róÚneg_1rrrr„­r…cCst|ƒSr )rWrŠrrrr„®r…cCs||Sr rrŠrrrr„¯r…cCs||Sr rrŠrrrr„°r…zbroken on some platformsr)ZmarksrCrWz//c    CsLt |¡j}|t |¡jƒ}|dƒ}tjtdd|||ƒW5QRXdS)Nr/rˆrÎ)rrrKrñrór?rðrÈ)rr‚rGrór‹rrrÚ#test_scalar_signed_integer_overflow«s
 
rŒr¤c    CsJt |¡ d¡}tjtdd | W5QRXt |¡ d¡}| dS)NrrˆrÎr©rrrKr?rðrÈ)rr%ÚzerorrrÚ%test_scalar_unsigned_integer_overflow½s
rcCs||Sr r©r%rŽrrrr„Èr…cCs||Sr rrrrrr„Ér…ú%c    CsDt |¡j}|dƒ}|dƒ}tjtdd|||ƒW5QRXdS)Nédrzdivide by zerorÎr)rr‚rGr%rŽrrrÚ'test_scalar_integer_operation_divbyzeroÆs
 r“Ú__lt__Ú__gt__TÚ__le__Ú__ge__Ú__eq__Ú__ne__Ú __floordiv__Ú __rfloordiv__FÚ __truediv__Ú __rtruediv__Ú__add__Ú__radd__Ú__mod__Ú__rmod__Ú__mul__Ú__rmul__Ú__pow__Ú__rpow__Ú__sub__Ú__rsub__Ú__op__Ú__rop__ÚcmpÚsctypec sÜGdd„d|ƒ}Gdd„d|ƒ}‡fdd„}‡fdd„}td    |fˆ|ˆ|iƒ}    ||d
ƒ|d ƒƒ}
t|
ƒ|ks~t|
ƒtjks~t‚||d
ƒ|d ƒƒ|d
d ƒksžt‚||    d
ƒ|d ƒƒˆks¸t‚||d
ƒ|    d ƒƒ|d
d ƒksØt‚d S) aß
    This test covers scalar subclass deferral.  Note that this is exceedingly
    complicated, especially since it tends to fall back to the array paths and
    these additionally add the "array priority" mechanism.
 
    The behaviour was modified subtly in 1.22 (to make it closer to how Python
    scalars work).  Due to its complexity and the fact that subclassing NumPy
    scalars is probably a bad idea to begin with.  There is probably room
    for adjustments here.
    c@s eZdZdS)z+test_subclass_deferral.<locals>.myf_simple1N©r+r,r-rrrrÚ myf_simple1òsr­c@s eZdZdS)z+test_subclass_deferral.<locals>.myf_simple2Nr¬rrrrÚ myf_simple2õsr®csˆSr r©rÚother©r¨rrÚop_funcøsz'test_subclass_deferral.<locals>.op_funccsˆSr rr¯©r©rrÚrop_funcûsz(test_subclass_deferral.<locals>.rop_funcÚmyf_oprr$N)rKrrBr7) r«r¨r©rLrªr­r®r²r´rµrOr©r¨r©rÚtest_subclass_deferralås    r·cCs.t d¡}|ddkst‚d|dks*t‚dS)Nrrqyð?ð?)rr‚r7)r¡rrrÚtest_longdouble_complex s
r¸Úsubtypec
    s¾‡fdd„}‡fdd„}td|fˆ|ˆ|ddiƒ}||dƒt d¡ƒˆksNt‚|t d¡|dƒƒˆksjt‚|tjtjhkr†|tkr†dSˆˆkr’dStd|fˆ|iƒ}||dƒt d¡ƒ}||dƒt d¡ƒ}    ||    ksØt‚t|ƒt|    ƒksìt‚|t     d¡|dƒƒ}|t     d¡|dƒƒ}    ||    ks"t‚t|ƒt|    ƒks8t‚||dƒt 
d¡ƒ}||dƒt 
d¡ƒ}    ||    ksnt‚t|ƒt|    ƒks„t‚|t     d¡|dƒƒ}|t 
d¡|dƒƒ}    ||    ksºt‚dS)    NcsˆSr rr¯r±rrr²sz)test_pyscalar_subclasses.<locals>.op_funccsˆSr rr¯r³rrr´sz*test_pyscalar_subclasses.<locals>.rop_funcÚmytZ__array_ufunc__rr$) rKrrYr7r9rÆÚfloordivrÓr|rZr‚)
r¹r¨r©rLrªr²r´rºrOr^rr¶rÚtest_pyscalar_subclassess6  ÿ r¼)uÚ
contextlibr)rDrr9rZ numpy.compatrr?Z
hypothesisrrZhypothesis.strategiesrZhypothesis.extrarZhynprZ numpy.testingrrr    r
r r r rrrBr$ZubyteÚshortZushortZintcZuintcrørùrúrûZsingler r‚ZcsingleZcdoublerrZfloatingÚ__subclasses__r\Zcomplexfloatingr]ÚobjectZobjecty_thingsr=r<ÚeqÚner:r;r(r»rÆr4rArKÚtruedivZ reasonable_operators_for_scalarsrrQrZslowZarraysZ scalar_dtypesrTrWr[r|rZr_r`rzr£r§r¨rÑrêrr(r/r@rJrLr^riÚcontextmanagerrur{r|r}r€rr¦r‰ÚparamrCrŒrr“Zops_with_namesrYr·r¸r¼rºrÓZ_no_nep50_warningr¼rrrrÚ<module>s.   ,ý
 
 
ý    '
þ    ÿ     
.QmH! 33!
    þ
þ
þ
   ýý     
 ÿü
ú
 
þþ
            ò $