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
U
O±d-‰ã@sædZddlZddlZddlZddlZddlZddlZddlm    Z    ddl
m Z ddl m ZdZe d¡je d¡jkrˆe dd    ¡ d
d    ¡Zd d „eDƒZd d„Zdd„ZGdd„dejƒZdd„ZeƒZGdd„dƒZGdd„dƒZdS)zí
The tests exercise the casting machinery in a more low-level manner.
The reason is mostly to test a new implementation of the casting machinery.
 
Unlike most tests in NumPy, these are closer to unit-tests rather
than integration tests.
éN)Ú
as_strided)Úassert_array_equal)Ú_get_castingimplz?bhilqBHILQefdFDÚlÚqÚÚLcCsg|]}tt |¡ƒ‘qS©©ÚtypeÚnpÚdtype©Ú.0Úcr    r    ú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_casting_unittests.pyÚ
<listcomp>srccsNtD]D}|ƒ}tj|t|ƒdV|jdkr| ¡}tj|t|ƒdVqdS)N)Úidú|)Ú simple_dtypesÚpytestÚparamÚstrÚ    byteorderÚ newbyteorder)Z dtype_classÚdtr    r    rÚsimple_dtype_instancess 
rcCsÆ|tjkrdS|jdkr||jdkr(d}n>|jdkr8d}n.|jdkrHd}n|jdkrXd    }ntd
|›ƒ‚|jd krx|d7}|S|jd krŠd S|jdkr˜dS|jdkr¦dS|jdkr´dStd
|›ƒ‚dS)zHReturns the string length when casting the basic dtypes to strings.
    éÚiuééééé
ééz!did not find expected length for ÚiÚgé0ÚGé`Úfé ré@N)r Zbool_ÚkindÚitemsizeÚAssertionErrorÚchar)r Úlengthr    r    rÚget_expected_stringlength's0
 
 
 
 
 
 
 
 
 
 
r3c@s eZdZdZdZdZdZdZdS)ÚCastingrrr!r r"N)Ú__name__Ú
__module__Ú __qualname__ÚnoÚequivÚsafeÚ    same_kindÚunsafer    r    r    rr4Js
r4cCs¢t d¡ ¡ d¡}dd„|dddd…Dƒ}tjtjtjtjddœ}i}t    ||d    d…ƒD]>\}}i||<t    ||ddd…ƒD]\}}|||||<q‚q^|S)
Na³
        X ? b h i l q B H I L Q e f d g F D G S U V O M m
        ? # = = = = = = = = = = = = = = = = = = = = = . =
        b . # = = = = . . . . . = = = = = = = = = = = . =
        h . ~ # = = = . . . . . ~ = = = = = = = = = = . =
        i . ~ ~ # = = . . . . . ~ ~ = = ~ = = = = = = . =
        l . ~ ~ ~ # # . . . . . ~ ~ = = ~ = = = = = = . =
        q . ~ ~ ~ # # . . . . . ~ ~ = = ~ = = = = = = . =
        B . ~ = = = = # = = = = = = = = = = = = = = = . =
        H . ~ ~ = = = ~ # = = = ~ = = = = = = = = = = . =
        I . ~ ~ ~ = = ~ ~ # = = ~ ~ = = ~ = = = = = = . =
        L . ~ ~ ~ ~ ~ ~ ~ ~ # # ~ ~ = = ~ = = = = = = . ~
        Q . ~ ~ ~ ~ ~ ~ ~ ~ # # ~ ~ = = ~ = = = = = = . ~
        e . . . . . . . . . . . # = = = = = = = = = = . .
        f . . . . . . . . . . . ~ # = = = = = = = = = . .
        d . . . . . . . . . . . ~ ~ # = ~ = = = = = = . .
        g . . . . . . . . . . . ~ ~ ~ # ~ ~ = = = = = . .
        F . . . . . . . . . . . . . . . # = = = = = = . .
        D . . . . . . . . . . . . . . . ~ # = = = = = . .
        G . . . . . . . . . . . . . . . ~ ~ # = = = = . .
        S . . . . . . . . . . . . . . . . . . # = = = . .
        U . . . . . . . . . . . . . . . . . . . # = = . .
        V . . . . . . . . . . . . . . . . . . . . # = . .
        O . . . . . . . . . . . . . . . . . . . . = # . .
        M . . . . . . . . . . . . . . . . . . . . = = # .
        m . . . . . . . . . . . . . . . . . . . . = = . #
        Ú
cSsg|]}tt |¡ƒ‘qSr    r
rr    r    rrnsz&_get_cancast_table.<locals>.<listcomp>rr!éÿÿÿÿ)Ú.ú~ú=ú#ú r)
ÚtextwrapÚdedentÚstripÚsplitr4r<r;r:r9Úzip)ÚtableZdtypesZ convert_castZcancastÚfrom_dtÚrowÚto_dtrr    r    rÚ_get_cancast_tableRsæþrMc@sHeZdZdZej dddg¡ej ddddd    g¡d
d „ƒƒZd d „ZdS)Ú TestChangesz:
    These test cases exercise some behaviour changes
    ÚstringÚSÚUÚfloatingÚer+Údr'cCs*t ||¡st‚t ||›d¡s&t‚dS)NZ100©r Úcan_castr0)ÚselfrRrOr    r    rÚtest_float_to_stringƒsz TestChanges.test_float_to_stringcCst dd¡st‚t dd¡s t‚t dd¡r0t‚t dd¡r@t‚t dd¡rPt‚tjddddsdt‚tjd    dd
dsxt‚tjd dd
dsŒt‚dS) NrTÚVZS20ZV1ZU1zd,ir;©ÚcastingÚV3r8ZV0rU©rWr    r    rÚ test_to_voidŠszTestChanges.test_to_voidN)    r5r6r7Ú__doc__rÚmarkÚ parametrizerXr^r    r    r    rrNs
 rNc@s2eZdZdZdd„Zdvdd„Zej de    ¡dd    „ƒZ
ej  d
¡ej d e ƒ¡d d „ƒƒZ ej de    ¡dd„ƒZej d dddddgddejdddfee d¡ ¡ƒdejdddfddejdddfddejdddfddejdddfddejdddfddejdddfddejdddfdd ejddd!dd"d#d$d%gfd&dejdddfee d&¡ ¡ƒdejdddfd'd(ejdddfd(d'ejdddfd)d)ejdddfd&d(ejdddfd(d&ejdddfd(d*ejdddfd+d,ejddd!ddd#d$d%gfg¡d-d.„ƒZd/d0„Zej d1e    ¡ej d2d3d4g¡d5d6„ƒƒZej d2d3d4g¡ej d7e ƒ¡d8d9„ƒƒZej d7d:d;d<g¡ej d2d3d4g¡d=d>„ƒƒZej d?d@dAg¡ej dBd@dAg¡dCdD„ƒƒZdEdF„ZdGdH„Z ej dIe ƒ¡dJdK„ƒZ!ej dIe ƒ¡dLdM„ƒZ"ej dNdOdPg¡dQdR„ƒZ#ej ddSge dTdUgdVdWgddXgdYœ¡dZfe dUdTgdVdWgddXgdYœ¡dZfe dUdTgdVdWgdd[gdYœ¡dfg¡d\d]„ƒZ$ej d^d_d`dadbe%dTgdbgdZgdYdfe%dTgdbgdZgdYdbdZfdbe%dTdUgdbdbgdZdZgdYdfdcdddedfdgdhdidjdkdldcg¡dmdn„ƒZ&ej dIej'do¡dpdq„ƒZ(ej dIej'drej'ds¡dtdu„ƒZ)dS)wÚ TestCastingiÜc    Cs`|dks|j|jkr"|j|j}n |j|j}tj||d}|jjsHt‚|jjsTt‚dd„t|ƒDƒ}t    |ƒD]6\}}|dkrœ|j
dkrœ|t  |¡j d}|||<qn|dkrÎ|j dkrÆdd„|Dƒ}||fS|j dkræd    d„|Dƒ}tj||d}|jjst‚|jjst‚t    |ƒD]<\}}|dkrJ|j
dkrJ|t  |¡j d}|||<q|||fS)
N©r cSsg|]}t dd¡‘qS)i€ÿÿÿé€)ÚrandomÚ    randrange)rÚ_r    r    rr¨sz(TestCasting.get_data.<locals>.<listcomp>rÚurú?cSsg|] }t|ƒ‘qSr    ©Úbool©rÚvr    r    rr³scSsg|] }t|ƒ‘qSr    rjrlr    r    rr·s)r/Úsizer ÚemptyÚflagsÚ c_contiguousr0ÚalignedÚrangeÚ    enumerater.ZiinfoÚmaxr1)    rWÚdtype1Údtype2r2Úarr1Úvaluesr&ÚvalueÚarr2r    r    rÚget_datas2   
 
 
 zTestCasting.get_dataTcCs>|r|jj}|jj}n6|r4d|jj}d|jj}n|jjd}|jjd}t|ƒd|jjd}t|ƒd|jjd}tj|tjd}    tj|tjd}
|t|ƒ|    jks²t‚|t|ƒ|
jksÈt‚|rt|    dd…     |j¡|j
|fƒ} t|
dd…     |j¡|j
|fƒ} n@t|    dd…     |j¡|j
|fƒ} t|
dd…     |j¡|j
|fƒ} || d<|sš|rl|jjnd} |    | d|…  ¡}|  d    ¡t|ƒksšt‚|r¾| j js®t‚| j jsÚt‚n| j jrÌt‚| j jrÚt‚|rþ| j jsît‚| j js6t‚n8| j jr| jjdkst‚| j jr6| jjdks6t‚| | fS)
        Returns a copy of arr1 that may be non-contiguous or unaligned, and a
        matching array for arr2 (although not a copy).
        r!rr rcNr>.ró)r r/Úlenr ÚzerosÚuint8Únbytesr0rÚviewÚshapeÚtobytesÚcountrprqrrÚ    alignment)rWrxr{rrÚcontigZstride1Zstride2Z    max_size1Z    max_size2Ú
from_bytesÚto_bytesZnew1Znew2ÚoffsetÚbufr    r    rÚget_data_variationÆs^
   ÿÿÿÿzTestCasting.get_data_variationÚfrom_Dtc Cs4tD](}t||ƒ}|ƒ|ƒ ¡fD]}| |df¡dd}||ƒksNt‚~|ƒ|ƒ ¡fD]Ê}| ||f¡\}\}}    }
t|ƒ|ksŒt‚t|    ƒ|ksœt‚|
dk    rÚ|tjks²t‚tjt    ||ksÈt‚|j
|    j
ksØt‚n.||krò|j
|    j
ksòt‚|t    ||kst‚||kr`||kst‚||    ks`t‚q`q$qdS)Nr) rÚget_castingimplrÚ_resolve_descriptorsr0r r4r8r9Ú
CAST_TABLEÚisnative) rWrZto_DtÚcastrJÚdefaultrLr[Úfrom_resÚto_resÚview_offr    r    rÚtest_simple_cancasts*
 
 ÿ zTestCasting.test_simple_cancastzignore::numpy.ComplexWarningrJcCs†tƒD]x}|jd}tt|ƒt|ƒƒ}| ||f¡\}\}}}||k    sP||k    rVdS|tjk}~~~| ||¡\}    }
} | |    |
f¡|
     ¡| ks–t
‚|  |    |
dd¡\} } | | | f¡t | |
ƒ|   ¡|
  ¡ksÖt
‚|jdkrê|jdksð|jsödS|  |    |
dd¡\} } | | | f¡t | |
ƒ|   ¡|
  ¡ks8t
‚|  |    |
dd¡\} } | | | f¡t | |
ƒ|   ¡|
  ¡kszt
‚~ ~ ~qdS)a 
        This test checks numeric direct casts for dtypes supported also by the
        struct module (plus complex).  It tries to be test a wide range of
        inputs, but skips over possibly undefined behaviour (e.g. int rollover).
        Longdouble and CLongdouble are tested, but only using double precision.
 
        If this test creates issues, it should possibly just be simplified
        or even removed (checking whether unaligned/non-contiguous casts give
        the same results is useful, though).
        rNTFr)rryrŽr rr4r:r|Ú_simple_strided_callÚtolistr0rŒrr„r†Ú_supports_unaligned)rWrJrLr’r[r”r•r–r:rxr{ryÚarr1_oÚarr2_or    r    rÚtest_simple_direct_casts#s< 
ÿ
 
ÿ
 
z$TestCasting.test_simple_direct_castsc
Cs¢|ƒ}t d¡t d¡t d¡t d¡t d¡t d¡g}|D]\}tt|ƒt|ƒƒ}| ||f¡\}\}}}    ||kszt‚||ks†t‚~~|t|t|ƒ@s¢t‚|    dks®t‚t tj¡}
| ||
¡\} } } |      |¡} t 
d¡| d<|t d¡kr2d    | d
<|  | | f¡t   t¡t| d
ƒW5QRXdS|  | | f¡d d „|  ¡Dƒ| ks\t‚| | | d d¡\}}|  ||f¡t|| ƒ| ¡|  ¡ks>t‚q>dS)NÚM8úM8[ms]úM8[4D]Úm8úm8[ms]úm8[4D]ÚNaT.rr>cSsg|] }t|ƒ‘qSr    )Úintrlr    r    rr‡sz5TestCasting.test_numeric_to_times.<locals>.<listcomp>TF)r r rŽr rr0rÚint64r|r‚Z
datetime64r˜rÚraisesÚ
ValueErrorrr™rŒrr„)rWrrJZ time_dtypesZtime_dtr’r[r”r•r–Zint64_dtrxr{ryr›rœr    r    rÚtest_numeric_to_timesas@ÿ
ÿ    
 
z!TestCasting.test_numeric_to_timesrLÚexpected_castingÚexpected_view_offÚnomÚdenomzM8[ns]NrrržrŸzM8[5ms]i@BzM8[7ms]ér zM8[1M]ìûÿÿÿr>i"iÝúÿÿiòµ¤!zm8[ns]r¡r¢zm8[5ms]zm8[7ms]r£zm8[1M]c    CsÎt |¡}|dk    rt |¡}t ddddddg¡}| t d¡ |j¡¡}|jj|jks\t‚t | |¡d¡stt‚t    |ƒ}t
||ƒ}    |      ||f¡\}
\} } } | |ksªt‚| |ks¾|dks¾t‚|
|ksÊt‚| |ksÖt‚|dk    rú||| | ¡}d    |d<nt  |¡}||d
<| |¡}| |¡}t  |¡}|
t jkrr|d ksJ|d krrt t¡|     ||f¡W5QRXdSd D]R}d D]F}| ||||¡\}}d|d
<|     ||f¡t| d¡| d¡ƒq~qvdS)Nr¯rlÿÿÿÿi'iðØÿÿlr¦rr¤.r¡rž)TT)r r ÚarrayÚastyperrr0Zisnatr‚r rŽrÚ
empty_liker4r<rr§r¨r˜rŒr)rWrJrLrªr«r¬r­ryZDTyper’r[r”r•r–Z expected_outÚorig_arrZorig_outrrr‡ZarrÚoutr    r    rÚtest_time_to_timesN 
 
 
ÿ   
 
 
 
 
  ÿzTestCasting.test_time_to_timecCs:|jdkrdnd}|j||}t |j›|j›|›¡S)NrPrr")r1r/r r r)rWr Ú change_lengthÚfactr2r    r    rÚstring_with_modified_lengthÝsz'TestCasting.string_with_modified_lengthÚother_DTÚ string_charrPrQcCs|dkr dnd}tt |¡ƒ}t||ƒ}|ƒ}t|ƒ}t |›|›¡}| |df¡\}    \}
} } | j||ksrt‚|    tj    ks€t‚| dksŒt‚t
| |ƒsšt‚dD]b} | dkr²tj    }ntj }|  || ¡}| ||f¡\}    \}} } | |ksèt‚|    |ksôt‚| dksžt‚qžt||ƒ}| ||f¡\}    }} |    tj ks0t‚| dks>t‚t||ƒ}| |df¡\}    \}} } |    tj kspt‚| dks~t‚|| ksŒt‚dS)NrPrr"©r>rrr)r r r rŽr3rr/r0r4r:Ú
isinstancer;r¸r<)rWr¹rºr·Ú    string_DTr’Úother_dtÚexpected_lengthÚ    string_dtÚsafetyÚ res_other_dtÚres_dtr–r¶Úexpected_safetyrLrgr    r    rÚtest_string_cancastâsF
ÿ  ÿ  
 
ÿzTestCasting.test_string_cancastr¾cCs°tt |¡ƒ}tt|ƒ|ƒ}t|t|ƒƒ}| |df¡\}\}}}||k    r^|j|jksZt‚dS| |d¡\}    }
tjt    |    ƒ|d} | 
|d¡} tjt    |    ƒ| d} | 
|d¡}tjt    |    ƒ|d}|j rÆt‚|j rÐt‚dD]Ö}|  |    | d|¡\}} |  |    |   ¡d|¡\}} |  |    |d|¡\}}| || f¡| || f¡t|  | ¡| ƒ| ||f¡t| |ƒ|jdkrjqÔd|d    <| | |f¡t|    |ƒd|d    <| ||f¡t|    |ƒqÔdS)
ah
        Tests casts from and to string by checking the roundtripping property.
 
        The test also covers some string to string casts (but not all).
 
        If this test creates issues, it should possibly just be simplified
        or even removed (checking whether unaligned/non-contiguous casts give
        the same results is useful, though).
        Nrcr>r)TFTÚbr.)r r r rŽrrr0r|rr~r¸ršrŒÚcopyr˜rr±r.)rWr¾rºr½r’Z    cast_backrgrÂrÀr³ryZstr_arrZstring_dt_shortZ str_arr_shortZstring_dt_longZ str_arr_longr‡Z    other_arrr    r    rÚ"test_simple_string_casts_roundtripsb ÿ  
 
ÿÿÿ
 
z.TestCasting.test_simple_string_casts_roundtripZS8z<U8z>U8cCsÂt |¡}|dkrdnd}|jdkr(dnd}tt |¡ƒ}tt|ƒ|ƒ}|j|}t |›|›¡}| |df¡\}    \}
} } | j||ksŽt‚t| |ƒsœt‚d} |j|krÄ|j    r¼t
j }d} qÚt
j }n|dkrÔt
j }nt
j}| | ksæt‚||    ksòt‚dD]Æ}| ||¡}| ||f¡\}    \}} } | |ks,t‚|dkrF| | ksTt‚n| dksTt‚|t
jkrp|    |ks¼t‚qö|dkrŒ|    t
jks¼t‚qö|dkr¦|    |ks¼t‚qö|dkrö|    t
j ksöt‚qödS)NrPrr"rrQr»)r r r1r rŽr/rr0r¼r‘r4r8r9r:r<r¸r;)rWr¾rºr·Údivr½r’r¿rÀrÁrÂrÃr–r«rÄr¶rLrgr    r    rÚtest_string_to_string_cancastPsP
 
ÿ
   ÿ
 
 
z)TestCasting.test_string_to_string_cancastÚorder1ú>ú<Úorder2c    CsÌt |›d¡}t |›d¡}tjdtjddd… |¡}tjdtjddd… |¡}|jdkr~|jjrrt‚|jjr~t‚d}||d<||     ¡fD]0}||d<|d|ks²t‚|     ¡d|ks–t‚q–dS)NZU30éyrcruthis is a Ã¼nicode string‽r    .)
r r ror€r‚r†rprrr0rÇ)    rWrËrÎrvrwZdata1Zdata2ÚelementÚdatar    r    rÚtest_unicode_byteswapped_cast…s
  z)TestCasting.test_unicode_byteswapped_castcCsDtjgdd d¡jjdks t‚tjgdd d¡jjdks@t‚dS)NZV5rcrPrrQr%)r r°r±r r/r0r]r    r    rÚ test_void_to_string_special_case›s z,TestCasting.test_void_to_string_special_casec    CsXtt t¡ƒ}tt t¡ƒ}t||ƒ}tjtdd|     t d¡df¡W5QRXdS)Nz+casting from object to the parametric DType)ÚmatchÚO)
r r r ÚobjectrrŽrr§Ú    TypeErrorr)rWÚ object_dtypeZ other_dtyper’r    r    rÚ(test_object_to_parametric_internal_error¢s
ÿz4TestCasting.test_object_to_parametric_internal_errorr cCs®tt t¡ƒ}t|t|ƒƒ}| t d¡|f¡\}\}}}|tjksHt‚|dksTt‚||ks`t‚| t d¡df¡\}\}}}|tjksŒt‚|dks˜t‚||     d¡ksªt‚dS)NrÕrA)
r r r rÖrŽrr4r<r0r©rWr rØr’rÁrgrÃr–r    r    rÚ!test_object_and_simple_resolution¬s ÿ   ÿ z-TestCasting.test_object_and_simple_resolutioncCsdtt t¡ƒ}tt|ƒ|ƒ}| |df¡\}\}}}|tjksBt‚|dksNt‚|t d¡ks`t‚dS)NrÕ)    r r r rÖrŽrr4r:r0rÚr    r    rÚ test_simple_to_object_resolution¾sÿ z,TestCasting.test_simple_to_object_resolutionr[r8r<cCsHt dg¡}|dk}tjd||d|ks,t‚tj|d|d|ksDt‚dS)N)Zfooz<f4)r r!r<ÚV4rZ)r r rVr0)rWr[r Úexpectedr    r    rÚ&test_void_and_structured_with_subarrayÊs z2TestCasting.test_void_and_structured_with_subarrayÚ expected_offÚarÆÚi4Úf4r"©ÚnamesÚformatsÚoffsetsr!écCs~t ddgddgddgdœ¡}tt|ƒt|ƒƒ}| ||f¡\}}}|j|jkr`|tjksnt‚n|tj    ksnt‚||kszt‚dS)NrárÆrârãr!rèrä)
r r rŽr rrår4r9r0r:)rWrLràrJr’rÁrgr–r    r    rÚtest_structured_field_offsetsÒs
þ z)TestCasting.test_structured_field_offsets)rJrLrà)r&ú(1,1)ir)rêr&r)ú(2,1)irërr&)zi,izi,i,iN)râr\r)rârÝr)râZV10N)rÕrÝN)rÕZV8N)rÝr\r)rÝrÝr)r\rÝN)rÝrâNcCsJt |¡}t |¡}tt|ƒt|ƒƒ}| ||f¡\}}}||ksFt‚dS)N)r r rŽr rr0)rWrJrLràr’rgr–r    r    rÚ'test_structured_view_offsets_paramtericìs
%
 
z3TestCasting.test_structured_view_offsets_paramtericZAllc Csžt dgd¡}t |¡}t |jjd|j¡| ¡d|jksDt‚z|     |¡}Wn6t
k
rˆt   t
¡|     |¡fW5QRXYnXt ||     |¡ƒdS)Nrrr})r r°r²ÚctypesÚmemsetrÑrr„r0r±r×rr§r)rWr Z
arr_normalZ    arr_NULLsrÞr    r    rÚ'test_object_casts_NULL_None_equivalences
 z3TestCasting.test_object_casts_NULL_None_equivalenceZ
AllIntegerZAllFloatcCs>tjdddgtjd t¡}| |¡}dddg}t||ƒdS)Nrr iùÿÿÿrcr)r r°Zint8r‚rkr±r)rWr Znonstandard_boolsÚresrÞr    r    rÚtest_nonstandard_bool_to_other)s
 
z*TestCasting.test_nonstandard_bool_to_other)TT)*r5r6r7rnr|rŒrr`rarr—Úfilterwarningsrrr©r4r8rr r rr9r:r<r;rµr¸rÅrÈrÊrÒrÓrÙrÛrÜrßréÚdictrìZ    typecodesrïrñr    r    r    rrbšsì)
; 
!
 < 
.ÿÿ þÿ þéý
0  . < 3 
 
 
 
 ÿÿÿÿÿÿùÿ
 
ÿâ 
 
ÿrb)r_rrDÚenumreríÚnumpyr Znumpy.lib.stride_tricksrZ numpy.testingrZnumpy.core._multiarray_umathrrŽrr r/Úreplacerr3ÚIntEnumr4rMrrNrbr    r    r    rÚ<module>s(       #*