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
U
P±d˜kã@szddlZddlZddlZddlZddlmZmZmZm    Z    m
Z
m Z m Z m Z mZmZmZmZmZmZddlmZmZmZmZmZejdkZdd„ZGdd„dƒZGd    d
„d
ƒZGd d „d ƒZGd d„dƒZ Gdd„dƒZ!Gdd„dƒZ"Gdd„dƒZ#Gdd„dƒZ$Gdd„dƒZ%Gdd„dƒZ&Gdd„dƒZ'Gdd„dƒZ(Gdd „d ƒZ)Gd!d"„d"ƒZ*Gd#d$„d$ƒZ+Gd%d&„d&ƒZ,d'd(„Z-dS))éN)Úapply_along_axisÚapply_over_axesÚ array_splitÚsplitÚhsplitÚdsplitÚvsplitÚdstackÚ column_stackÚkronÚtileÚ expand_dimsÚtake_along_axisÚput_along_axis)Úassert_Ú assert_equalÚassert_array_equalÚ assert_raisesÚ assert_warnsìcst ˆ¡‡fdd„ƒ}|S)z: hack in keepdims behavior into a function taking an axis cs.ˆ|fd|i|—Ž}|dkr d}tj||dS)NÚaxisr©r)Únpr )ÚarÚkwargsÚres©Úfunc©úVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/lib/tests/test_shape_base.pyÚwrappedsz_add_keepdims.<locals>.wrapped)Ú    functoolsÚwraps)rr rrrÚ _add_keepdimssr#c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestTakeAlongAxisc
    CsÒddlm}|dddƒ}tjtjtƒfttjƒttjƒtƒfttj    ƒttj
ƒtƒftj tj tddfg}|D]`\}}}t t|jƒƒdgD]@}||fd    |i|—Ž}||fd    |i|—Ž}    t|t||    |d
ƒqŠqldS) z- Test it translates from arg<func> to <func> r©Úrandéééé)ZkthNrr)Ú numpy.randomr&rÚsortZargsortÚdictr#ÚminÚargminÚmaxÚargmaxÚ    partitionZ argpartitionÚlistÚrangeÚndimrr)
Úselfr&rÚfuncsrZargfuncrrZa_funcZai_funcrrrÚtest_argequivalents  üz$TestTakeAlongAxis.test_argequivalentcCsˆt d¡}tjdtjd}t||ddttt|t d¡ddttt|| t    ¡ddttt|| t
¡ddttj t||dddS)z4 Test it errors when indices has too few dimensions )é
r9)r9r*©Údtypeérr9N) rÚonesÚintprrÚ
ValueErrorÚarrayÚ
IndexErrorZastypeÚboolÚfloatÚ    AxisError©r6rÚairrrÚ test_invalid1s
zTestTakeAlongAxis.test_invalidcCs:t d¡}tjdtjd}t||dd}t|j|jƒdS)zC Test everything is ok with empty results, even with inserted dims )r'r(r))r'rr)r:r<rN©rr=r>rrÚshape©r6rrFÚactualrrrÚ
test_emptyBs
zTestTakeAlongAxis.test_emptycCs8t d¡}tjdtjd}t||dd}t|jdƒdS)úD Test that non-indexing dimensions are broadcast in both directions ©r'r(r<©r<r*r)r:r<r©r'r*r)NrHrJrrrÚtest_broadcastJs
z TestTakeAlongAxis.test_broadcastN)Ú__name__Ú
__module__Ú __qualname__r8rGrLrQrrrrr$sr$c@seZdZdd„Zdd„ZdS)ÚTestPutAlongAxiscCs~t dddgdddgg¡}tt|jƒƒdgD]J}| ¡}ttjƒ||d}t||d|dttj    ƒ||d}t
||ƒq.dS)    Nr9ééé<é(é2riÿÿÿ) rr@r3r4r5Úcopyr#r1rr/r)r6Za_baserrZi_maxZi_minrrrÚtest_replace_maxSsz!TestPutAlongAxis.test_replace_maxcCsLt d¡}tjdtjd d¡d}t||dddtt||dddƒd    S)
rMrNr9r:rOr(rWr<rN)rr=Úaranger>ÚreshaperrrrErrrrQcs
zTestPutAlongAxis.test_broadcastN)rRrSrTr\rQrrrrrURsrUc@s†eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zej    fd d „Z
ej    fd d„Z ej    fdd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS)ÚTestApplyAlongAxiscCs6t dd¡}tttd|ƒt|ƒt |jd¡ƒdS)N©rWr9Údrr<©rr=rrÚlenrI©r6rrrrÚ test_simplels
 
ÿzTestApplyAlongAxis.test_simplecCs6t dd¡}tttd|ƒt|ƒt |jd¡ƒdS)N)r9éerarr<rbrdrrrÚtest_simple101qs
 
ÿz!TestApplyAlongAxis.test_simple101cCs@t d¡ d¡}tttjd|ƒdddgdddgd    d
d ggƒdS) Né©r'r'r'rrVé!é$é'é*é-é0é3)rr]r^rrÚsumrdrrrÚtest_3dvsÿzTestApplyAlongAxis.test_3dcCsždd„}Gdd„dtjƒ}t ddgddgg¡ |¡}t ddgd    d
gg¡ |¡}t|d|ƒ}tt||ƒƒt||ƒt|d|ƒ}tt||ƒƒt||ƒdS) NcSs|dS)Nr*r)ÚrowrrrÚdouble|sz9TestApplyAlongAxis.test_preserve_subclass.<locals>.doublec@s eZdZdS)z<TestApplyAlongAxis.test_preserve_subclass.<locals>.MyNDArrayN©rRrSrTrrrrÚ    MyNDArraysrvrr<r*r'r(é)rÚndarrayr@ÚviewrrÚ
isinstancer)r6rtrvÚmÚexpectedÚresultrrrÚtest_preserve_subclass{s 
 z)TestApplyAlongAxis.test_preserve_subclasscCsLGdd„dtjƒ}dd„}t d¡ |¡}tt|d|ƒt dddg¡ƒdS)Nc@seZdZdZdS)z9TestApplyAlongAxis.test_subclass.<locals>.MinimalSubclassr<N)rRrSrTÚdatarrrrÚMinimalSubclassŽsr€cSs|jS©N)r)r@rrrÚminimal_function‘sz:TestApplyAlongAxis.test_subclass.<locals>.minimal_function©rwr'rr<)rrxÚzerosryrrr@)r6r€r‚rrrrÚ test_subclasss
ÿz TestApplyAlongAxis.test_subclasscCsLt d¡ |¡}ttjd|ƒ}tt||ƒƒt|t dddg¡ |¡ƒdS)Nrƒrrw)    rr=ryrrqrrzrr@)r6ÚclsrrrrrÚtest_scalar_arrayšsz$TestApplyAlongAxis.test_scalar_arrayc
CsŽdd„}t d¡ |¡}t|d|ƒ}tt||ƒƒt|t dddg¡ |¡ƒt|d|ƒ}tt||ƒƒt|t ddddddg¡ |¡ƒdS)NcSs t|jdƒt tj|dd¡S)z/ Sum x, returning a 0d array of the same class r<T)Zkeepdims)rr5rÚsqueezerq©ÚxrrrÚ    sum_to_0d¡s z3TestApplyAlongAxis.test_0d_array.<locals>.sum_to_0drƒrrwr<r')rr=ryrrrzrr@)r6r†r‹rrrrrÚ test_0d_array s  z TestApplyAlongAxis.test_0d_arraycs2‡fdd„‰t d¡ d¡‰tˆdˆƒ}tj‡‡fdd„tˆjdƒDƒd    d
 ˆ¡}tt    |ƒt    |ƒƒt||ƒtˆdˆƒ}tj‡‡fd d„tˆjdƒDƒdd
 ˆ¡}tt    |ƒt    |ƒƒt||ƒt d ¡ d ¡‰tˆdˆƒ}tj‡‡fdd„tˆjdƒDƒd    d
 ˆ¡}tt    |ƒt    |ƒƒt||ƒdS)Ncs0t|jdƒ|ddd…|dd…df ˆ¡S)ú/produces an asymmetric non-square matrix from xr<Néÿÿÿÿ)rr5ryr‰)r†rrÚf1to2¯s z5TestApplyAlongAxis.test_axis_insertion.<locals>.f1to2érƒrcs g|]}ˆˆdd…|fƒ‘qSrr©Ú.0Úi©Úa2drrrÚ
<listcomp>¸sz:TestApplyAlongAxis.test_axis_insertion.<locals>.<listcomp>r<rŽrcs g|]}ˆˆ|dd…fƒ‘qSrrr‘r”rrr–ÀséZ)rwr)r'cs6g|].‰tj‡‡‡fdd„tˆjdƒDƒdd‘qS)cs"g|]}ˆˆ|dd…ˆfƒ‘qSrrr‘)Úa3drÚjrrr–ËszETestApplyAlongAxis.test_axis_insertion.<locals>.<listcomp>.<listcomp>rr)rÚstackr4rI)r’)r˜r)r™rr–Ês ý ÿþr*)
rr]r^rršr4rIryrÚtype)r6r†rKr|r)r•r˜r†rrÚtest_axis_insertion®sB   ÿþþ
  ÿþþ
  üûûz&TestApplyAlongAxis.test_axis_insertioncCs4Gdd„dtjƒ}| |¡| |¡| |¡dS)Nc@s eZdZdS)zFTestApplyAlongAxis.test_subclass_preservation.<locals>.MinimalSubclassNrurrrrr€Ôsr€)rrxr‡rŒrœ)r6r€rrrÚtest_subclass_preservationÓs
 
z-TestApplyAlongAxis.test_subclass_preservationcCsÖdd„}t d¡ d¡}t|d|ƒ}tt|tjjƒƒt|j    dƒt
|dd…dd…dfj ||dd…dfƒj ƒt
|dd…dd…dfj ||dd…dfƒj ƒt
|dd…dd…dfj ||dd…dfƒj ƒdS)    NcSs@t|jdƒ|ddd…|dd…df}tj |ddk|¡S)rr<NrŽr)r)rr5rÚmaZ masked_where)rŠrrrrrÛs z8TestApplyAlongAxis.test_axis_insertion_ma.<locals>.f1to2rrƒrr'r<r*) rr]r^rrrzržZ masked_arrayrr5rÚmask)r6rrrrrrÚtest_axis_insertion_maÚs  00z)TestApplyAlongAxis.test_axis_insertion_mac    CsHdd„}t |dt ddgddgg¡¡}t|t ddgddgg¡ƒdS)NcSs|d|dfS)Nr<rrr‰rrrÚ    sample_1dész7TestApplyAlongAxis.test_tuple_func1d.<locals>.sample_1dr<r*r'r()rrr@r)r6r¡rrrrÚtest_tuple_func1dès z$TestApplyAlongAxis.test_tuple_func1dcCs|dd„}t d¡}tttj|d|ƒtttj|d|ƒdd„}t d¡}t |d|¡}t|t d    ¡ƒtttj|d|ƒdS)
NcSs tdƒdS)NF)rr‰rrrÚ
never_callðsz1TestApplyAlongAxis.test_empty.<locals>.never_call)rrrr<cSstt|ƒdkƒdS)Nrr<)rrcr‰rrrÚ
empty_to_1øsz1TestApplyAlongAxis.test_empty.<locals>.empty_to_1)r9rr9)rÚemptyrr?rrr=)r6r£rr¤rKrrrrLîs
 
zTestApplyAlongAxis.test_emptycCs¦t ddhddhddhgddhd    d
hd d hgg¡}t d d„d|¡}t ddddhddd    d
hddd d hg¡}t||ƒt |j¡D]}tt||ƒt||ƒƒq‚dS)Nr<é r*ér'rjr(é,r)é7rwéBcSs
tj|ŽSr)ÚsetÚunion)rrrrÚ<lambda>óz>TestApplyAlongAxis.test_with_iterable_object.<locals>.<lambda>r)rr@rrZndindexrIr›)r6rarKr|r“rrrÚtest_with_iterable_objectsþ(
z,TestApplyAlongAxis.test_with_iterable_objectN)rRrSrTrergrrr~r…rrxr‡rŒrœrr r¢rLr¯rrrrr_ks %r_c@seZdZdd„ZdS)ÚTestApplyOverAxescCsHt d¡ ddd¡}ttj|ddgƒ}t|t dgdgdggg¡ƒdS)    Nér*r'r(rrXé\é|)rr]r^rrqrr@)r6rZaoa_arrrreszTestApplyOverAxes.test_simpleN)rRrSrTrerrrrr°sr°c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) ÚTestExpandDimscCsRd}t |¡}tddƒD]4}t||ƒ}t|j|dkƒtt |¡j|kƒqdS)N©r*r'r(r)éûÿÿÿr(r<)rr¥r4r rrIrˆ)r6ÚsrrÚbrrrÚtest_functionalitys 
 
z!TestExpandDims.test_functionalitycCsnt d¡}tj|ddjdks"t‚tj|ddjdks:t‚tj|ddjdksRt‚tj|d    djd
ksjt‚dS) Nri)rr<r*r)r<r<r<r'r'r')rrŽéþÿÿÿ)r<r'r'r'r<r<)rr'r))r<r'r'r<r'r<)réýÿÿÿr¶)r<r<r'r<r'r')rr¥r rIÚAssertionErrorrdrrrÚtest_axis_tuple!s
 
zTestExpandDims.test_axis_tuplecCs\d}t |¡}ttjt|dƒttjt|dƒt d¡}ttjt|dƒttjt|dƒdS)Nrµéúÿÿÿr)ri)rr¾)rr))rr¥rrDr )r6r·rrrrÚtest_axis_out_of_range(s
 
z%TestExpandDims.test_axis_out_of_rangecCst d¡}ttt|dddS)Nri©r<r<r)rr¥rr?r rdrrrÚtest_repeated_axis2s
z!TestExpandDims.test_repeated_axiscCsft d¡ d¡}tjj||ddkd}tj|dd}tt|tjjƒƒt    |j
dƒt    |j j
dƒdS)    Nr9)r*r)r'r©rŸr<r)r*r<r)) rr]r^ržr@r rrzZ MaskedArrayrrIrŸ)r6rÚexpandedrrrÚtest_subclasses6s  zTestExpandDims.test_subclassesN)rRrSrTr¹r½r¿rÁrÄrrrrr´s
 
r´c@sfeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zej    j
e d d d d„ƒZ dd„Z dd„Zdd„ZdS)ÚTestArraySplitcCst d¡}ttt|dƒdS)Nr9r)rr]rr?rrdrrrÚtest_integer_0_splitAs
z#TestArraySplit.test_integer_0_splitc Cs’t d¡}t|dƒ}t d¡g}t||ƒt|dƒ}t d¡t dd¡g}t||ƒt|dƒ}t d¡t dd¡t dd¡g}t||ƒt|dƒ}t d¡t dd¡t dd    ¡t d    d¡g}t||ƒt|dƒ}t d¡t dd¡t dd¡t dd    ¡t d    d¡g}t||ƒt|dƒ}t d¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡g}t||ƒt|dƒ}t d¡t dd¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡g}t||ƒt|d    ƒ}t d¡t dd¡t dd¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡g}t||ƒt|d
ƒ}t d¡t dd¡t dd¡t dd¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡g    }t||ƒt|dƒ}t d¡t dd¡t dd¡t dd¡t dd¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡g
}t||ƒt|d ƒ}t d¡t dd¡t dd¡t dd¡t dd¡t dd¡t dd¡t dd    ¡t d    d
¡t d
d¡t g¡g }t||ƒdS) Nr9r<r*r)r'r(érwéé    r¦)rr]rÚcompare_resultsr@©r6rrÚdesiredrrrÚtest_integer_splitEsœ
 
 
 
 
 
 
 
 
ÿ
 
 
 
ÿ
 
 
 
 
ÿ
 
 
 
 
 
þ
 
 
 
 
 
 
þ
 
 
 
 
 
 
 
þ
 
 
 
 
 
 
 
 
ý
 
 
 
 
 
 
 
 
ýz!TestArraySplit.test_integer_splitcCsÚt t d¡t d¡g¡}t|ddd}t t d¡g¡t t d¡g¡t d¡g}t||ƒt|jj|djjkƒt|ddgdd}t d¡t t d¡g¡t t d¡g¡g}t||ƒt|jj|djjkƒdS)Nr9r'rr©rr9rŽr<©    rr@r]rr„rÊrr;r›©r6rrÚtgtrrrÚtest_integer_split_2D_rows‚s ÿ
ÿ
z)TestArraySplit.test_integer_split_2D_rowsc    CsŠt t d¡t d¡g¡}t|ddd}t t d¡t d¡g¡t t dd¡t dd¡g¡t t dd¡t dd¡g¡g}t||ƒdS)Nr9r'rŽrr(rÇ)rr@r]rrÊrËrrrÚtest_integer_split_2D_cols‘sþz)TestArraySplit.test_integer_split_2D_colscCsvt t d¡t d¡g¡}t|dƒ}t t d¡g¡t t d¡g¡t d¡g}t||ƒt|jj|djjkƒdS)z2 This will fail if we change default axis
        r9r'rÎrŽNrÏrÐrrrÚtest_integer_split_2D_default™s
 ÿ
z,TestArraySplit.test_integer_split_2D_defaultzNeeds 64bit platform)ÚreasoncCs\t dgd¡}t|dƒ}t dgd¡}|gd}tt|ƒƒD]}t||j||jƒq<dS)Nr)rr*r()i@r*)rZ broadcast_torr4rcrrI)r6rrÚchunkrÑr“rrrÚ,test_integer_split_2D_rows_greater_max_int32¤s 
 
z;TestArraySplit.test_integer_split_2D_rows_greater_max_int32cCs\t d¡}dddg}t||dd}t dd¡t dd¡t dd¡t dd¡g}t||ƒdS)Nr9r<r)rÇrŽrr)rr]rrÊ©r6rÚindicesrrÌrrrÚtest_index_split_simple­s
 
 
ÿz&TestArraySplit.test_index_split_simplecCsZt d¡}dddg}t||dd}t g¡t dd¡t dd¡t dd¡g}t||ƒdS)Nr9rr)rÇrŽr©rr]rr@rÊrØrrrÚtest_index_split_low_boundµs
 
 
ÿz)TestArraySplit.test_index_split_low_boundcCsnt d¡}dddddg}t||dd}t g¡t dd¡t dd¡t dd¡t g¡t g¡g}t||ƒdS)Nr9rr)rÇé rŽrrÛrØrrrÚtest_index_split_high_bound½s
 
ÿz*TestArraySplit.test_index_split_high_boundN)rRrSrTrÆrÍrÒrÓrÔÚpytestÚmarkZskipifÚIS_64BITr×rÚrÜrÞrrrrrÅ@s= 
rÅc@seZdZdd„Zdd„ZdS)Ú    TestSplitcCs8t d¡}t|dƒ}t d¡t dd¡g}t||ƒdS)Nr9r*r))rr]rrÊrËrrrÚtest_equal_splitËs
 
zTestSplit.test_equal_splitcCst d¡}ttt|dƒdS)Nr9r')rr]rr?rrdrrrÚtest_unequal_splitÑs
zTestSplit.test_unequal_splitN)rRrSrTrãrärrrrrâÆsrâc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestColumnStackcCstttdƒdS©Nr<)rÚ    TypeErrorr
©r6rrrÚtest_non_iterable×sz!TestColumnStack.test_non_iterablecCsLt d¡}t d¡}t ddgddgddgg¡}t ||f¡}t||ƒdS)N©r<r*r')r*r'r(r<r*r'r(©rr@r
r©r6rr¸r|rKrrrÚtest_1D_arraysÚs
 
 
þzTestColumnStack.test_1D_arrayscCsdt dgdgdgg¡}t dgdgdgg¡}t ddgddgddgg¡}t ||f¡}t||ƒdS©Nr<r*r'r(rërìrrrÚtest_2D_arraysäs
þzTestColumnStack.test_2D_arraysc    Cs.ttƒtdd„tdƒDƒƒW5QRXdS)Ncss|]}t d¡VqdS©r'N©rr]©r’Ú_rrrÚ    <genexpr>ðsz1TestColumnStack.test_generator.<locals>.<genexpr>r*)rÚ FutureWarningr
r4rèrrrÚtest_generatorîs
zTestColumnStack.test_generatorN)rRrSrTrérírïrörrrrråÖs
 
råc@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)Ú
TestDstackcCstttdƒdSræ)rrçr    rèrrrréôszTestDstack.test_non_iterablecCs@t d¡}t d¡}t||gƒ}t ddggg¡}t||ƒdS©Nr<r*©rr@r    r©r6rr¸rrÌrrrÚ test_0D_array÷s
 
 
 zTestDstack.test_0D_arraycCsDt dg¡}t dg¡}t||gƒ}t ddggg¡}t||ƒdSrørùrúrrrÚ test_1D_arrayþs
   zTestDstack.test_1D_arraycCsXt dgdgg¡}t dgdgg¡}t||gƒ}t ddggddggg¡}t||ƒdSrørùrúrrrÚ test_2D_arrays
 zTestDstack.test_2D_arraycCsNt ddg¡}t ddg¡}t||gƒ}t ddgddggg¡}t||ƒdSrørùrúrrrÚtest_2D_array2 s
 zTestDstack.test_2D_array2c    Cs.ttƒtdd„tdƒDƒƒW5QRXdS)Ncss|]}t d¡VqdSrðrñròrrrrôsz,TestDstack.test_generator.<locals>.<genexpr>r*)rrõr    r4rèrrrrös
zTestDstack.test_generatorN)    rRrSrTrérûrürýrþrörrrrr÷ós r÷c@s0eZdZdZdd„Zdd„Zdd„Zdd    „Zd
S) Ú
TestHsplitú&Only testing for integer splits.
 
    cCstttddƒdSræ)rr?rrèrrrrészTestHsplit.test_non_iterablecCs:t d¡}zt|dƒtdƒWntk
r4YnXdS)Nr<r*r)rr@rrr?rdrrrrû!s 
 
 zTestHsplit.test_0D_arraycCsFt ddddg¡}t|dƒ}t ddg¡t ddg¡g}t||ƒdSrî©rr@rrÊrËrrrrü)s
zTestHsplit.test_1D_arraycCsbt ddddgddddgg¡}t|dƒ}t ddgddgg¡t ddgddgg¡g}t||ƒdSrîrrËrrrrý/s 
ÿ
,zTestHsplit.test_2D_arrayN©rRrSrTÚ__doc__rérûrürýrrrrrÿs
rÿc@s0eZdZdZdd„Zdd„Zdd„Zdd    „Zd
S) Ú
TestVsplitrcCstttddƒdSræ)rr?rrèrrrré;szTestVsplit.test_non_iterablecCst d¡}ttt|dƒdSrø)rr@rr?rrdrrrrû>s
zTestVsplit.test_0D_arraycCsBt ddddg¡}zt|dƒtdƒWntk
r<YnXdS©Nr<r*r'r(r)rr@rrr?rdrrrrüBs 
 zTestVsplit.test_1D_arraycCs^t ddddgddddgg¡}t|dƒ}t ddddgg¡t ddddgg¡g}t||ƒdSrî)rr@rrÊrËrrrrýJs 
ÿ
(zTestVsplit.test_2D_arrayNrrrrrr7s
rc@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú
TestDsplitcCstttddƒdSræ)rr?rrèrrrréTszTestDsplit.test_non_iterablecCst d¡}ttt|dƒdSrø©rr@rr?rrdrrrrûWs
zTestDsplit.test_0D_arraycCs$t ddddg¡}ttt|dƒdSrîrrdrrrrü[szTestDsplit.test_1D_arraycCsNt ddddgddddgg¡}zt|dƒtdƒWntk
rHYnXdSr)rr@rrr?rdrrrrý_s
ÿ
 zTestDsplit.test_2D_arraycCsšt ddddgddddggddddgddddggg¡}t|dƒ}t ddgddggddgddggg¡t ddgddggddgddggg¡g}t||ƒdSrî)rr@rrÊrËrrrÚ test_3D_arrayhs
ÿ
 
ÿþ
$$ÿzTestDsplit.test_3D_arrayN)rRrSrTrérûrürýrrrrrrRs
    rc@seZdZdd„ZdS)Ú TestSqueezecCsÀddlm}|dddddƒ}|dddddƒ}|ddddƒ}tt |¡t |d¡ƒtt |¡t |d¡ƒtt |¡t |d¡ƒd    ggg}t |¡}t|d    ƒt|jdƒtt|ƒtj    ƒdS)
Nrr%rWr9r<)rWr9r9)rWr9rWr`gø?)
r+r&rrrˆr^rr5r›rx)r6r&rr¸ÚcrrrrÚ
test_basicts 
 
 
 zTestSqueeze.test_basicN©rRrSrTr rrrrr    ssr    c    @sdeZdZdd„Zdd„Zej dej    ej
g¡dd„ƒZ dd    „Z ej d
d d d dddg¡dd„ƒZ dS)ÚTestKroncCsÄt d¡}t ddgddgg¡}t ddgddgg¡}tt ||¡|ƒt ddgddgg¡}t d¡}tt ||¡|ƒt dg¡}t ddgddgg¡}t ddgddgg¡}tt ||¡|ƒt ddgddgg¡}t dg¡}tt ||¡|ƒt dggdggg¡}t ddgddgg¡}t ddgddggddgddggg¡}tt ||¡|ƒt ddgddgg¡}t dggdggg¡}t ddgddggddgddggg¡}tt ||¡|ƒdS)    Nr<r*r'r(rwrÉrÝrÈ)rr@rr )r6rr¸Úkrrrr ‡s,
 
  &&zTestKron.test_basiccCsˆGdd„dtjƒ}t ddg¡}||j|j|jƒ}ttt||ƒƒtjƒttt||ƒƒ|ƒttt||ƒƒ|ƒttt||ƒƒ|ƒdS)Nc@seZdZdZdS)z*TestKron.test_return_type.<locals>.myarraygð?N)rRrSrTZ__array_priority__rrrrÚmyarray¥srr*)    rrxr=rIr;rrr›r )r6rrržrrrÚtest_return_type¤szTestKron.test_return_typeÚ array_classcCsL|t ddg¡ƒ}|t ddg¡ƒ}|t ddg¡ƒ}tt ||¡|ƒdS)Nr'rÉ)rr=rr )r6rrr¸rrrrÚtest_kron_smoke¯szTestKron.test_kron_smokecCsntjjddgddggddgddggd}tjjt ddddg¡tjt d¡tdd}t|t ||¡ƒdS)    Nr<r*r'r(rrÂér:)rržr@ZdiagÚidentityrBrr )r6rŠrrrrÚ test_kron_ma¹s
(ÿzTestKron.test_kron_mazshape_a,shape_b)rÀrÀ)rê)r(r)rw)©r*r*)r*r*r*))r<rrÀ)©r*rr*r))r*rrr*rc    Cs‚t |¡}t |¡}dtdt|ƒt|ƒƒ|}dtdt|ƒt|ƒƒ|}t ||¡}t ||¡}t |j|¡s~tdƒ‚dS)N)r<rzUnexpected shape from kron)    rr=r0rcÚmultiplyr Z array_equalrIr¼)    r6Zshape_aZshape_brr¸Znormalised_shape_aZnormalised_shape_bZexpected_shaperrrrÚtest_kron_shapeÀs
 
 
  ÿÿzTestKron.test_kron_shapeN)rRrSrTr rrßràZ parametrizerZasarrayÚmatrrrrrrrr †s& 
ÿ
úÿ    r c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestTilec    Cst dddg¡}ddgddgg}tt|dƒddddddgƒtt|dƒddddddgddddddggƒtt|dƒddddddggƒtt|dƒddddgddddggƒtt|dƒddgddgddgddggƒtt|dƒddddgddddgddddgddddggƒdS)    Nrr<r*r'r(r©r<r*©r*r<)rr@rr ©r6rr¸rrrr Ös,$(
 
ÿzTestTile.test_basiccCs0t d¡}t|dƒ}|d7}t|t d¡ƒdS)Nr)r<r*)rr]r rrrrrÚ(test_tile_one_repetition_on_array_gh4679ás
 
z1TestTile.test_tile_one_repetition_on_array_gh4679cCsLt ggg¡}t ggg¡}t|dƒj}t|dƒj}t|dƒt|dƒdS)Nr*rP)r*r)r'r*r)rr@r rIr)r6rr¸r
rarrrrLçs   
zTestTile.test_emptyc
Cs~ddlm}ddddddg}d    d
d d d dg}|D]H}|dd|d}|D]0}t ||j¡}t||ƒ}t||ƒ}    t||    ƒqFq0dS)Nr)Úrandint)r*rrr)r*r'r*)r'r*)r')r*r')r'r(r')r'r*r')r(r'r*r(r9)Úsize)r+r rr=r;r r r)
r6r ZrepsrIr·r¸ÚrrZlargeZklargerrrÚtest_kroncompareïs 
 
zTestTile.test_kroncompareN)rRrSrTr rrLr#rrrrrÕs rc@seZdZdd„ZdS)ÚTestMayShareMemoryc    Csüt d¡}t d¡}tt ||¡ƒtt ||ddd…¡ƒtt ||ddd…¡ƒtt ||dd…ddd…f¡ƒtt |ddd…|¡ ƒtt |ddd…|¡ ƒtt |dd…ddd…f|¡ ƒtt |dd…ddd…f|¡ƒdS)N)rZrX)rVrXrwrŽr*r<)rr=rZmay_share_memory)r6raZd2rrrr þs
 
"$zTestMayShareMemory.test_basicNr rrrrr$ýsr$cCs:t|ƒt|ƒkrtdƒ‚t||ƒD]\}}t||ƒq"dS)zCompare lists of arrays.z Iterables have different lengthsN)rcr?Úzipr)rrÌrŠÚyrrrrÊ srÊ).Únumpyrr!ÚsysrßZnumpy.lib.shape_baserrrrrrrr    r
r r r rrZ numpy.testingrrrrrÚmaxsizerár#r$rUr_r°r´rÅrârår÷rÿrrr    r rr$rÊrrrrÚ<module>s4@
 4'('!O(