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
U
O±dPã@sêdZddlmZmZddlZddlmZddlZddlm    Z    ddl
m Z ddl m Z mZmZdd    „Zdd d „Zd d„ZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZdS) zÉ
Tests for array coercion, mainly through testing `np.array` results directly.
Note that other such tests exist e.g. in `test_api.py` and many corner-cases
are tested (sometimes indirectly) elsewhere.
é)Ú permutationsÚproductN)Úparam)Úrational)Ú_discover_array_parameters)Úassert_array_equalÚ assert_warnsÚIS_PYPYc#s´dd„}t|ddVGdd„dtjƒ‰‡fdd„}|VGd    d
„d
ƒ}Gd d „d |ƒ}t|d dVttddVGdd„d|ƒ}t|ddVGdd„d|ƒ}t|ddVdS)z©
    Generator for functions converting an array into various array-likes.
    If full is True (default) includes array-likes not capable of handling
    all dtypes
    cSs|S©N©©Úar r ú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_array_coercion.pyÚndarrayszarraylikes.<locals>.ndarrayr©Úidc@s eZdZdS)zarraylikes.<locals>.MyArrN©Ú__name__Ú
__module__Ú __qualname__r r r rÚMyArr!srcs
| ˆ¡Sr
)Úviewr ©rr rÚsubclass$szarraylikes.<locals>.subclassc@seZdZdd„Zdd„ZdS)z!arraylikes.<locals>._SequenceLikecSst‚dSr
©Ú    TypeError©Úselfr r rÚ__len__-sz)arraylikes.<locals>._SequenceLike.__len__cSst‚dSr
rrr r rÚ __getitem__0sz-arraylikes.<locals>._SequenceLike.__getitem__N©rrrrrr r r rÚ _SequenceLike)sr!c@seZdZdd„Zddd„ZdS)zarraylikes.<locals>.ArrayDundercSs
||_dSr
r ©rr r r rÚ__init__5sz(arraylikes.<locals>.ArrayDunder.__init__NcSs|jSr
r )rÚdtyper r rÚ    __array__8sz)arraylikes.<locals>.ArrayDunder.__array__)N)rrrr#r%r r r rÚ ArrayDunder4sr&r%Ú
memoryviewc@seZdZdd„ZdS)z"arraylikes.<locals>.ArrayInterfacecSs||_|j|_dSr
)r Ú__array_interface__r"r r rr#Bsz+arraylikes.<locals>.ArrayInterface.__init__N©rrrr#r r r rÚArrayInterfaceAsr*r(c@seZdZdd„ZdS)zarraylikes.<locals>.ArrayStructcSs||_|j|_dSr
)r Ú__array_struct__r"r r rr#Jsz(arraylikes.<locals>.ArrayStruct.__init__Nr)r r r rÚ ArrayStructIsr,r+N)rÚnprr')rrr!r&r*r,r rrÚ
arraylikess  r.Tccsptt t d¡¡ddVtt t d¡¡ddVtt t d¡¡ddV|rltt t d¡¡ddVtt t d¡¡ddVtt t d¡¡d    dV|r¾tt t     d¡¡d
dVtt 
d ¡d dVtt  d ¡d dVtt  d ¡ddVtt  d ¡ddVtt d ¡ddVtt d ¡ddVtt d ¡ddVtt d ¡ddV|rxttdd ƒddVt dgd¡d}t|tjƒsœt‚|jt d¡ks²t‚t|ddV|r0tt d ¡ddVtt dd¡ddVtt dd¡ddVtt d¡d dVtt d!d"¡d#dVtt d$¡d%dVtt d&¡d'dVtt d(¡d)dVdS)*NéÚfloat16rÚfloat32Úfloat64Ú
longdoubley@@Ú    complex64Ú
complex128Z clongdoubleéÚint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64ér)r?ézi,irÚ
structuredútimedelta64[generic]éÚsútimedelta64[s]ÚNaTútimedelta64[s](NaT)údatetime64[generic](NaT)z2020-06-07 12:43Úmszdatetime64[ms]s1234ÚbytesZ2345Úunicodes4321Zunstructured_void)rr-Úsqrtr0r1r2r3r4r5Z longcomplexr7r8r9r:r;r<r=r>rÚarrayÚ
isinstanceÚvoidÚAssertionErrorr$Ú timedelta64Ú
datetime64Úbytes_Zunicode_)ÚtimesZextended_precisionZ
user_dtyperAr r rÚscalar_instancesQs@rUcCs6|jdkrdSt|jtjtjfƒr2|j d¡r2dSdS)zlReturns True if the dtype is a parametric legacy dtype (itemsize
    is 0, or a datetime without units)
    rTÚ64F)ÚitemsizeÚ
issubclassÚtyper-rRrQÚnameÚendswith©r$r r rÚis_parametric_dtype‰s 
 r]c@sŒeZdZejjdeƒdddddgddd    d
dgd d d „ƒZejjdeƒdddddgddd    d
dgd dd„ƒZej de    ƒ¡dd„ƒZ
dS)ÚTestStringDiscoveryÚobjç333333ó?é
é+NÚstringÚobjectz1.2z10**43ÚNone)ÚidscCsŒtt|ƒƒ}t d|›¡}tj|ddj|ks4t‚tj|gddj|ksNt‚tj|dd}tj|ddj|kstt‚| d¡j|ksˆt‚dS)NÚSr\ÚO)ÚlenÚstrr-r$rMrPÚastype©rr_ÚlengthÚexpectedÚarrr r rÚtest_basic_stringlength—s z+TestStringDiscovery.test_basic_stringlengthcCsJtt|ƒƒ}t d|›¡}tj|dd}tj||gddj|ksFt‚dS)Nrgrhr\)rirjr-r$rMrPrlr r rÚtest_nested_arrays_stringlength§s z3TestStringDiscovery.test_nested_arrays_stringlengthÚ    arraylikecCsrt dg¡}t d¡|d<tt|dƒƒ}t d|›¡}||ƒ}tj|gdd}|jdks`t‚|j|ksnt‚dS)Nr`rrgr\©r?r?)r-rMrirjr$ÚshaperP)rrrr_rmrnror r rÚtest_unpack_first_level°s z+TestStringDiscovery.test_unpack_first_level) rrrÚpytestÚmarkÚ parametrizerdrprqr.rur r r rr^–s þ
 þ
r^c@s6eZdZdd„Zdd„Zdd„Zdd„Zej     d    e
ƒ¡d
d „ƒZ ej  d ¡d d„ƒZ ej     d    e
ƒ¡dd„ƒZejjeddej  d¡ej     de
ƒ¡dd„ƒƒƒZej     ddddddg¡dd„ƒZej     dejd¡d d!„ƒZej     d"ejd#¡ej     d    d$ge ej¡efe d%¡ ej¡d&efg¡d'd(„ƒƒZd)S)*ÚTestScalarDiscoverycCs>tjddd}|jdkst‚tjdgdd}|jdks:t‚dS)N)r?r6r@zi,i,ir\r ©r?)r-rMrtrP©rror r rÚtest_void_special_caseÁsz*TestScalarDiscovery.test_void_special_casecCs^tjddd}|jdkst‚|jjdks,t‚tjdgdd}|jdksJt‚|jjdksZt‚dS)NrcÚcr\©é)r?r)r-rMrtrPr$Úcharr{r r rÚtest_char_special_caseÈs z*TestScalarDiscovery.test_char_special_casec    Cstdg}ttjdƒD]
}|g}qtj|dd}|jdtjddksJt‚t t¡tj|gddW5QRXdS)Nrcr6r}r\rzr?r~)    Úranger-ÚMAXDIMSrMrtrPrvÚraisesÚ
ValueError)rÚnestedÚiror r rÚtest_char_special_case_deepÐs z/TestScalarDiscovery.test_char_special_case_deepcCs2t tƒ¡}|jdkst‚|jt d¡ks.t‚dS)Nr rh)r-rMrdrtrPr$r{r r rÚtest_unknown_objectÜs z'TestScalarDiscovery.test_unknown_objectÚscalarcCsZt |¡}|jdkst‚|j|jks(t‚t ||gg¡}|jdksFt‚|j|jksVt‚dS)Nr ©r?r6)r-rMrtrPr$)rrŠror r rÚ test_scalarás 
zTestScalarDiscovery.test_scalarz)ignore:Promotion of numbers:FutureWarningc CsÔttƒtƒƒD]À\}}|jd|jd}}zt ||g¡}Wnttfk
rZYqYnX|jdksjt‚z,|j    |j    }}t 
||¡}|j    |ks”t‚Wqtk
rÌ}z|j    t     d¡ks¼t‚W5d}~XYqXqdS)Nr©r6rh) rrUÚvaluesr-rMrr…rtrPr$Z promote_types)rZsc1Zsc2roZdt1Zdt2Zexpected_dtypeÚer r rÚtest_scalar_promotionís
 z)TestScalarDiscovery.test_scalar_promotioncCsÊt|tjƒr t|ƒ|ddƒ}t|ƒtkr6t d¡tj|td     |j
¡}t |¡  d¡}t |g¡}tj d|j
d}||d<tj d|j
d}|g|dd…<t ||ƒt ||ƒt ||ƒt ||ƒdS)Nr6gà?z/Rational to object cast is undefined currently.r\r?r)rNr-ZinexactrYrrvÚxfailrMrdrkr$ÚreshapeÚemptyr)rrŠroZarr1Zarr2Zarr3Zarr4r r rÚtest_scalar_coercions  
 
 
 
z(TestScalarDiscovery.test_scalar_coercionz%`int(np.complex128(3))` fails on PyPy©Úreasonzignore::numpy.ComplexWarningÚcast_toc Cs’|j}tddD]z}|jd}|jtjkrˆ|jjdk    rˆ|jdkrˆt t    ¡t 
|¡  |¡W5QRXtj
||dtj
|g|dqzt 
|¡  |¡}Wn¶t    t t fk
rRt t¡tj
||dW5QRXt|tƒrøt |tj¡røYdSt t¡tj
|g|dW5QRXtjd|d}t t¡||d<W5QRXYdSXtj
||d}t||ƒtjd|d}||d<t||ƒqdS)aP
        Test that in most cases:
           * `np.array(scalar, dtype=dtype)`
           * `np.empty((), dtype=dtype)[()] = scalar`
           * `np.array(scalar).astype(dtype)`
        should behave the same.  The only exceptions are paramteric dtypes
        (mainly datetime/timedelta without unit) and void without fields.
        F)rTrNr\r )r$rUrŽrYr-rOÚfieldsrvr„rrMrkr…Ú RuntimeErrorÚ    ExceptionrNrZ
issubdtypeZ signedintegerÚzerosr)rr—r$rŠÚcastÚresroÚassr r rÚ0test_scalar_coercion_same_as_cast_and_assignments< 
 
 ÿ  
 
zDTestScalarDiscovery.test_scalar_coercion_same_as_cast_and_assignmentÚpyscalarrag¤p=
×£$@yHáz®G$@édcCs:Gdd„dt|ƒƒ}t ||ƒ¡}t |¡}t||ƒdS)aNumPy arrays are read/write which means that anything but invariant
        behaviour is on thin ice.  However, we currently are happy to discover
        subclasses of Python float, int, complex the same as the base classes.
        This should potentially be deprecated.
        c@s eZdZdS)z>TestScalarDiscovery.test_pyscalar_subclasses.<locals>.MyScalarNrr r r rÚMyScalar`sr¢N)rYr-rMr)rr r¢rrnr r rÚtest_pyscalar_subclassesYs
z,TestScalarDiscovery.test_pyscalar_subclassesÚ
dtype_charZAllcCsh|dkrt |d¡}n|dkr,t d¡}n
t |¡}tgt|ƒƒ\}}||ksTt‚|j|jksdt‚dS)NZSUÚ1ÚVZV8)r-r$rrYrPrW)rr¤r$Zdiscovered_dtypeÚ_r r rÚtest_default_dtype_instancegs 
 z/TestScalarDiscovery.test_default_dtype_instancer$ZIntegerÚerroréÿÿÿÿr c    Cs’t |¡}tjdd$tj||d}t |¡ |¡}W5QRXt||ƒt |¡tj|g|dW5QRXt |¡||d<W5QRXdS)zã
        Signed integers are currently different in that they do not cast other
        NumPy scalar, but instead use scalar.__int__(). The hardcoded
        exception to this rule is `np.array(scalar, dtype=integer)`.
        Úignore)Úinvalidr\r N)r-r$ZerrstaterMrkrrvr„)rr$rŠr©Zcoercedrœr r rÚ'test_scalar_to_int_coerce_does_not_castws
 
 
  z;TestScalarDiscovery.test_scalar_to_int_coerce_does_not_castN)rrrr|rrˆr‰rvrwrxrUrŒÚfilterwarningsrr”r‘r    rŸr£r-Z    typecodesr¨r2Únanr…rMrkZ    ulonglongÚ OverflowErrorr­r r r rryÀs2 
 
 
 
 
8
 
 ÿÿryc @sFeZdZej dejejg¡ej de    e 
dd¡dde    e 
dd¡dde    e  dd    ¡d
de    e  d d ¡d dg¡dd„ƒƒZ ej dejejg¡ej de    e 
dd¡dde    e 
dd    ¡ddg¡dd„ƒƒZ ej dddg¡ej ddge    dddde    dd ddg¡dd„ƒƒZej ddge    dddde    dd ddg¡dd„ƒZd S)!ÚTestTimeScalarsr$rŠrFrDrGré{rEZgenericrHr?ÚDz datetime64[D]c    Csxtj||d}t |¡ |¡}t||ƒtjd|d}t|tjƒrbt t    ¡||d<W5QRXn||d<t||ƒdS©Nr\r )
r-rMrkrÚonesrXÚintegerrvr„r©rr$rŠrorœržr r rÚtest_coercion_basic’s    
  z#TestTimeScalars.test_coercion_basicÚnsztimedelta64[ns]é rBcCsLtj||d}t |¡ |¡}tjd|d}||d<t||ƒt||ƒdSr´)r-rMrkrµrr·r r rÚ)test_coercion_timedelta_convert_to_number©s 
z9TestTimeScalars.test_coercion_timedelta_convert_to_numberÚS6ZU6ÚvalÚunitz[s]z[D]c    Csšt ||¡}t |¡}| t|ƒdd…¡}tj||d}|d|ksJt‚tjd|d}||d<|d|kspt‚t     t
¡t |¡  |¡W5QRXdS)Nrr\r ) r-rRr$rYrjrMrPrµrvr„r™rk)rr½r¾r$rŠZ
cut_stringroržr r rÚ!test_coercion_assignment_datetime¸s
 
 z1TestTimeScalars.test_coercion_assignment_datetimecCsvt ||¡}tj|ddt |¡ d¡}tjddd}||d<| d¡dd…}|d|ksbt‚|d|ksrt‚dS)Nr¼r\r rgr)r-rQrMrkrµrP)rr½r¾rŠrœržrnr r rÚ"test_coercion_assignment_timedeltaÓs z2TestTimeScalars.test_coercion_assignment_timedeltaN)rrrrvrwrxr-r:r1rrQrRr¸r»r¿rÀr r r rr±‘s2ýÿ ÿÿ  ÿ  ÿr±c@s\eZdZdd„Zdd„Zej deƒ¡dd„ƒZ    ej deƒ¡dd    „ƒZ
d
d „Z d d „Z dS)Ú
TestNestedc    CsÞdg}|}ttjdƒD]
}|g}qtj|dd}|jdtjksFt‚t t¡tj|gddW5QRXtjtddt |g¡W5QRXtj|gt    d}|j
t 
d¡ks¶t‚|jdtjksÊt‚|  ¡|ksÚt‚dS)    Nr`r?r2r\rzú.*would exceed the maximum©Úmatchrh) r‚r-rƒrMrtrPrvr„r…rdr$Úitem)rÚinitialr†r‡ror r rÚtest_nested_simpleâs zTestNested.test_nested_simplecCsfg}| |¡tj|||gtd}|jddtjdks>t‚tj|dg|gtd}|jdksbt‚dS)Nr\©r@rzr?)r@r?)Úappendr-rMrdrtrƒrP)rÚlror r rÚ!test_pathological_self_containingõs 
z,TestNested.test_pathological_self_containingrrc    Cs”|t d¡ƒ}|}ttjdƒD]
}|g}q tjtddtj|ddW5QRXtj|td}|j    dtjksvt
‚|  ¡t |¡  ¡kst
‚dS)Nrsr?rÂrÃr2r\rz) r-rµr‚rƒrvr„r…rMrdrtrPrÅ)rrrrÆr†r‡ror r rÚtest_nested_arraylikess    z!TestNested.test_nested_arraylikesc    CsŽt d¡ d¡}||ƒ}tj||ggtd}|jdks:t‚|d|ksJt‚t|dƒtks^t‚t     
t ¡tj|||ggtdW5QRXdS)Né)r6r6r\rrr?) r-Zaranger’rMrdrtrPrYÚlistrvr„r…)rrrroÚoutr r rÚtest_uneven_depth_raggeds z#TestNested.test_uneven_depth_raggedc    CsZtjgdgdgggtd}|jdks(t‚t t¡tjgt d¡gtdW5QRXdS)Nr?r\rÈ)rr?)    r-rMrdrtrPrvr„r…r“r{r r rÚtest_empty_sequence+s zTestNested.test_empty_sequencecCs¦t d¡}t d¡}t d¡}t||gt d¡d\}}|dksDt‚t||gt d¡d\}}|dksjt‚tj||gt d¡d}|d|ks’t‚|d    |ks¢t‚dS)
N)r@r6r‹)r@r@rhr\)r6r@rrr?)r-r›rr$rPÚasarray)rroZmismatch_first_dimZmismatch_second_dimr$rtrr r rÚtest_array_of_different_depths4s 
 
 
ÿ
 ÿ
 z)TestNested.test_array_of_different_depthsN) rrrrÇrËrvrwrxr.rÌrÐrÑrÓr r r rrÁás 
 
    rÁc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestBadSequencesc    sNg‰G‡fdd„dtƒ}ˆ |ddgƒ¡t t¡t ˆ¡W5QRXdS)NcseZdZ‡‡fdd„Z‡ZS)z2TestBadSequences.test_growing_list.<locals>.mylistcsˆ ddg¡tƒ ¡S)Nr?r6)rÉÚsuperrr©Ú    __class__r_r rrTsz:TestBadSequences.test_growing_list.<locals>.mylist.__len__©rrrrÚ __classcell__r ©r_©r×rÚmylistSsrÜr?r6)rÎrÉrvr„r™r-rM©rrÜr rÚrÚtest_growing_listPs
 z"TestBadSequences.test_growing_listcsFg‰G‡fdd„dtƒ}ˆ ddg¡ˆ |ddgƒ¡t ˆ¡dS)NcseZdZ‡‡fdd„Z‡ZS)z2TestBadSequences.test_mutated_list.<locals>.mylistcsddgˆd<tƒ ¡S)Nr6r@r)rÕrrrÖr rres z:TestBadSequences.test_mutated_list.<locals>.mylist.__len__rØr rÚrÛrrÜdsrÜr6r@r?)rÎrÉr-rMrÝr rÚrÚtest_mutated_listas
z"TestBadSequences.test_mutated_listc    sPg‰G‡fdd„dƒ}ˆ t d¡|ƒg¡t t¡t ˆ¡W5QRXdS)Ncs eZdZ‡fdd„Zdd„ZdS)z7TestBadSequences.test_replace_0d_array.<locals>.baditemcsdˆdd<tdƒ‚dS)Nr6rznot actually a sequence!)r…rrÚr rrrs z?TestBadSequences.test_replace_0d_array.<locals>.baditem.__len__cSsdSr
r rr r rrvszCTestBadSequences.test_replace_0d_array.<locals>.baditem.__getitem__Nr r rÚr rÚbaditemqs ràr6)rÉr-rMrvr„r™)rràr rÚrÚtest_replace_0d_arrayns
 
 z&TestBadSequences.test_replace_0d_arrayN)rrrrÞrßrár r r rrÔJs rÔc@s¢eZdZej deƒ¡dd„ƒZdd„Zdd„Z    ejj
e   e j ¡jdkd    d
d d „ƒZej d dddg¡ej deeg¡dd„ƒƒZej deeg¡dd„ƒZdS)ÚTestArrayLikesrrcCsNt d¡}||ƒ}tj|td}t||ƒtj|gtd}|d|ksJt‚dS)Nçr\r)r-rMrdrrP)rrrror_rr r rÚtest_0d_object_special_cases 
 
z*TestArrayLikes.test_0d_object_special_casec    CsžGdd„dtjƒ}t d¡}| |¡}t |¡}t||ƒt t¡t |g¡W5QRXt|ƒ}t |¡}t||ƒt t    ¡t |g¡W5QRXdS)Nc@seZdZdd„ZdS)zBTestArrayLikes.test_0d_generic_special_case.<locals>.ArraySubclasscSs tdƒ‚dS)Nze.g. quantities raise on thisrrr r rÚ    __float__szLTestArrayLikes.test_0d_generic_special_case.<locals>.ArraySubclass.__float__N)rrrrår r r rÚ ArraySubclassŽsrærã)
r-rrMrrrvr„rr'r…)rræror_rr r rÚtest_0d_generic_special_cases
 
 
 
 
 
 z+TestArrayLikes.test_0d_generic_special_casecCs†t tj¡}|dtjkst‚t tjg¡}|dtjks>t‚Gdd„dƒ}t |¡}|d|ksft‚t |g¡}|d|ks‚t‚dS)Nr rc@s,eZdZedd„ƒZedd„ƒZdd„ZdS)z8TestArrayLikes.test_arraylike_classes.<locals>.ArrayLikecSsdSr
r rr r rr(±szLTestArrayLikes.test_arraylike_classes.<locals>.ArrayLike.__array_interface__cSsdSr
r rr r rr+µszITestArrayLikes.test_arraylike_classes.<locals>.ArrayLike.__array_struct__cSsdSr
r rr r rr%¹szBTestArrayLikes.test_arraylike_classes.<locals>.ArrayLike.__array__N)rrrÚpropertyr(r+r%r r r rÚ    ArrayLike°s
 
 
ré)r-rMr:rP)rrorér r rÚtest_arraylike_classes¦s 
 z%TestArrayLikes.test_arraylike_classesézNeeds 64bit platformr•c
Csntjddd}t |d¡}tdƒD]F}t t¡t |¡W5QRXt t¡t |g¡W5QRXq"dS)z0Test the error paths, including for memory leaksrr;r\lr/N)r-rMZ broadcast_tor‚rvr„Ú MemoryError)rror‡r r rÚ test_too_large_array_error_pathsÁs    z/TestArrayLikes.test_too_large_array_error_pathsÚ    attributer(r%r+r©c    s:G‡‡fdd„dƒ}t ˆ¡t |ƒ¡W5QRXdS)Ncs eZdZ‡‡‡fdd„Z‡ZS)zCTestArrayLikes.test_bad_array_like_attributes.<locals>.BadInterfacecs|ˆkr ˆ‚tƒ |¡dSr
)rÕÚ __getattr__)rÚattr)r×rîr©r rrïÙszOTestArrayLikes.test_bad_array_like_attributes.<locals>.BadInterface.__getattr__)rrrrïrÙr ©rîr©rÛrÚ BadInterfaceØsrò©rvr„r-rM)rrîr©ròr rñrÚtest_bad_array_like_attributesÐs z-TestArrayLikes.test_bad_array_like_attributesc    s8G‡fdd„dƒ}t ˆ¡t |ƒ¡W5QRXdS)Ncs eZdZ‡fdd„Zdd„ZdS)zBTestArrayLikes.test_bad_array_like_bad_length.<locals>.BadSequencecsˆ‚dSr
r r©r©r rræszJTestArrayLikes.test_bad_array_like_bad_length.<locals>.BadSequence.__len__cSsdS)Nr?r rr r rrèszNTestArrayLikes.test_bad_array_like_bad_length.<locals>.BadSequence.__getitem__Nr r rõr rÚ BadSequenceås röró)rr©rör rõrÚtest_bad_array_like_bad_lengthás z-TestArrayLikes.test_bad_array_like_bad_lengthN)rrrrvrwrxr.rärçrêZskipifr-r$ZintprWríÚRecursionErrorrìrôr÷r r r rrâ€s 
ÿ
ÿ râc@seZdZdZdd„ZdS)Ú TestAsArrayz'Test expected behaviors of ``asarray``.c Cstjdddgdd}t |¡|ks&t‚tj|dd|ks<t‚tjdddid}tj||d}||k    sht‚|j|ksvt‚tjdddid}tj||d}||ks¢t‚||k    s®t‚||k    sºt‚|j|ksÈt‚d    }d
d „|Dƒ}d }d }    t|dd D]$\}}    ||    krî||    k    s t‚qqît|tjƒr0t|    tjƒs4t‚tj|dd}
tj|dd} |
|k    s^t‚| |k    slt‚tj|
dd|
k    s„t‚tj||d} ||    ks t‚||    k    s®t‚| j|ks¾t‚| tj| |    dk    sÖt‚tj| |    dj|    ksðt‚| tj| |    djks
t‚d S)a¸Confirm the intended behavior for *dtype* kwarg.
 
        The result of ``asarray()`` should have the dtype provided through the
        keyword argument, when used. This forces unique array handles to be
        produced for unique np.dtype objects, but (for equivalent dtypes), the
        underlying data (the base object) is shared with the original array
        object.
 
        Ref https://github.com/numpy/numpy/issues/1468
        r?r6r@r‡r\ZspamT)Úmetadata)r‡rÊÚqcSsg|]}t |¡‘qSr )r-r$)Ú.0Úcoder r rÚ
<listcomp>sz3TestAsArray.test_dtype_identity.<locals>.<listcomp>N)ÚrrÊrû)r-rMrÒrPr$ÚbaserrN) rZ    int_arrayZ unequal_typeZannotated_int_arrayZequivalent_requirementZannotated_int_array_altZinteger_type_codesZinteger_dtypesZtypeAZtypeBZlong_int_arrayZlong_long_int_arrayZarray_ar r rÚtest_dtype_identityósH  ÿ    zTestAsArray.test_dtype_identityN)rrrÚ__doc__rr r r rrùðsrùc@s0eZdZGdd„dƒZGdd„dƒZdd„ZdS)Ú!TestSpecialAttributeLookupFailurec@seZdZedd„ƒZdS)z0TestSpecialAttributeLookupFailure.WeirdArrayLikecCs tdƒ‚dS©Nzoops!©r™rr r rr%6sz:TestSpecialAttributeLookupFailure.WeirdArrayLike.__array__N)rrrrèr%r r r rÚWeirdArrayLike5src@seZdZedd„ƒZdS)z5TestSpecialAttributeLookupFailure.WeirdArrayInterfacecCs tdƒ‚dSrrrr r rr(;szITestSpecialAttributeLookupFailure.WeirdArrayInterface.__array_interface__N)rrrrèr(r r r rÚWeirdArrayInterface:src    CsLt t¡t | ¡¡W5QRXt t¡t | ¡¡W5QRXdSr
)rvr„r™r-rMrrrr r rÚtest_deprecated?s  z1TestSpecialAttributeLookupFailure.test_deprecatedN)rrrrrrr r r rr2sr)TTT)rÚ    itertoolsrrrvrÚnumpyr-Znumpy.core._rational_testsrZnumpy.core._multiarray_umathrZ numpy.testingrrr    r.rUr]r^ryr±rÁrÔrârùrr r r rÚ<module>s&   =
8 *RPi6pB