hyb
2025-11-04 668edf874b4f77214a8ff4513e60e3c1a973f532
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
Ë
KñúhýCãóX—dZddlZddlmZddlmZmZmZm    Z    m
Z
m Z m Z m Z mZmZmZmZddlmZddlmZmZd„ZGd„d    ej0«ZeZGd
„d e«ZGd „d ee«ZeZGd„d«ZGd„de«ZGd„de«Z Gd„d«Z!Gd„d«Z"d„Z#Gd„d«Z$y)zoTests suite for MaskedArray & subclassing.
 
:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
 
éN)ÚNDArrayOperatorsMixin) Ú MaskedArrayÚaddÚarangeÚarrayÚ
asanyarrayÚasarrayÚdivideÚhypotÚlogÚmaskedÚ masked_arrayÚnomask)Ú assert_equal)Úassert_Ú assert_raisescó4—t|dt|«|«y©N)rÚlen)ÚaÚbs  úRH:\Change_password\venv_build\Lib\site-packages\numpy/ma/tests/test_subclassing.pyÚassert_startswithrs€ä7”C˜“F˜QÕócó<‡—eZdZifd„Zˆfd„Zˆfd„Zˆfd„ZˆxZS)ÚSubArraycóx—tj|«j|«}|j«|_|Sr)ÚnprÚviewÚcopyÚinfo)ÚclsÚarrr!Úxs    rÚ__new__zSubArray.__new__#s-€Ü M‰M˜#Ó × #Ñ # CÓ (ˆØ—‘“ˆŒØˆrcód•—t‰||«t|di«j«|_y©Nr!)ÚsuperÚ__array_finalize__Úgetattrr r!)ÚselfÚobjÚ    __class__s  €rr)zSubArray.__array_finalize__(s)ø€Ü ‰Ñ" 3Ô'ܘC ¨Ó,×1Ñ1Ó3ˆ    rcó~•—t‰||«}|jjdd«dz|jd<|S)NÚaddedré)r(Ú__add__r!Úget©r+ÚotherÚresultr-s   €rr1zSubArray.__add__,s8ø€Ü‘‘ Ó'ˆØ%Ÿ{™{Ÿ™¨w¸Ó:¸QÑ>ˆ ‰ GÑØˆ rcó~•—t‰||«}|jjdd«dz|jd<|S)NÚiaddedrr0)r(Ú__iadd__r!r2r3s   €rr8zSubArray.__iadd__1s9ø€Ü‘Ñ! %Ó(ˆØ &§ ¡ §¡°¸!Ó <¸qÑ @ˆ ‰ HÑØˆ r)Ú__name__Ú
__module__Ú __qualname__r%r)r1r8Ú __classcell__©r-s@rrr s!ø„ð "óô
4ô÷
ðrrcó$‡—eZdZdZdˆfd„    ZˆxZS)ÚSubMaskedArrayz<Pure subclass of MaskedArray, keeping some info on subclass.c óF•—t‰||fi|¤Ž}||jd<|Sr')r(r%Ú_optinfo)r"r!Úkwargsr,r-s    €rr%zSubMaskedArray.__new__<s)ø€Ü‰g‰o˜cÑ, VÑ,ˆØ#ˆ ‰ VÑØˆ
rr)r9r:r;Ú__doc__r%r<r=s@rr?r?:sø„ÙF÷ñrr?có(—eZdZiefd„Zed„«Zy)Ú    MSubArraycóp—t||«}tj|||¬«}|j|_|S)N)ÚdataÚmask)rrr%r!)r"rGr!rHÚsubarrÚ_datas      rr%zMSubArray.__new__Ds2€Ü˜$ Ó%ˆÜ×#Ñ# C¨f¸4Ô@ˆØ—[‘[ˆŒ
؈ rcó>—|jt«}d|_|S©NF)rrÚ _sharedmask)r+Ú_views  rÚ_serieszMSubArray._seriesJs€à—    ‘    œ+Ó&ˆØ!ˆÔ؈ rN)r9r:r;rr%ÚpropertyrO©rrrErEBs „à "¨óð ñóñrrEcó.—eZdZdZd„Zd„Zd„Zd„Zd„Zy)Ú CSAIteratorzß
    Flat iterator object that uses its own setter/getter
    (works around ndarray.flat not propagating subclass setters/getters
    see https://github.com/numpy/numpy/issues/4564)
    roughly following MaskedIterator
    cón—||_|jtj«j|_yr)Ú    _originalrrÚndarrayÚflatÚ    _dataiter)r+rs  rÚ__init__zCSAIterator.__init__`s#€ØˆŒØŸ™¤§
¡
Ó+×0Ñ0ˆrcó—|SrrQ©r+s rÚ__iter__zCSAIterator.__iter__ds€Øˆ rcóؗ|jj|«}t|tj«s|j «}|j t|j««}|Sr)    rXÚ __getitem__Ú
isinstancerrVÚ    __array__rÚtyperU)r+ÚindxÚouts   rr^zCSAIterator.__getitem__gsK€Øn‰n×(Ñ(¨Ó.ˆÜ˜#œrŸz™zÔ*Ø—-‘-“/ˆC؏h‰h”t˜DŸN™NÓ+Ó,ˆØˆ
rcóT—|jj|«|j|<yr)rUÚ_validate_inputrX)r+ÚindexÚvalues   rÚ __setitem__zCSAIterator.__setitem__ns€Ø $§¡× >Ñ >¸uÓ Eˆ‰uÒrcóŒ—t|j«j«jt    |j
««Sr)ÚnextrXr`rrarUr[s rÚ__next__zCSAIterator.__next__qs.€ÜD—N‘NÓ#×-Ñ-Ó/×4Ñ4´T¸$¿.¹.Ó5IÓJÐJrN)    r9r:r;rCrYr\r^rhrkrQrrrSrSYs"„ñò 1òòòFóKrrScóz‡—eZdZd„Zd„Zd„Zˆfd„Zˆfd„Zed„«Z    e    jd„«Z    d    ˆfd„    Z ˆxZ S)
ÚComplicatedSubArraycó4—d|jt«›dS)Nz    myprefix z
 mypostfix)rrr[s rÚ__str__zComplicatedSubArray.__str__ws€Ø˜4Ÿ9™9¤XÓ.Ð/¨zÐ:Ð:rcó<—d|jj›d|›dS)Nú<ú ú>)r-r9r[s rÚ__repr__zComplicatedSubArray.__repr__zs"€à4—>‘>×*Ñ*Ð+¨1¨T¨F°!Ð4Ð4rcó<—t|t«s td«‚|S)Nz!Can only set to MySubArray values)r_rmÚ
ValueError)r+rgs  rrez#ComplicatedSubArray._validate_input~s€Ü˜%Ô!4Ô5ÜÐ@ÓAÐ A؈ rcóD•—t‰|||j|««yr)r(rhre©r+Úitemrgr-s   €rrhzComplicatedSubArray.__setitem__ƒsø€ô    ‰Ñ˜D $×"6Ñ"6°uÓ"=Õ>rcó •—t‰||«}t|tj«s#|j «j t«}|Sr)r(r^r_rrVr`rrmrxs   €rr^zComplicatedSubArray.__getitem__ˆs=ø€ä‘Ñ# DÓ)ˆÜ˜%¤§¡Ô,Ø—O‘OÓ%×*Ñ*Ô+>Ó?ˆE؈ rcó—t|«Sr)rSr[s rrWzComplicatedSubArray.flats €ä˜4ӠРrcó.—|j«}||ddyr)Úravel)r+rgÚys   rrWzComplicatedSubArray.flat“s€à J‰J‹LˆØˆ‰!‰rcó°•—t‰||||«}|A|dtjur,|jj dd«dz|jd<|S)NrÚ
multipliedr0)r(Ú__array_wrap__rÚmultiplyr!r2)r+r,ÚcontextÚ return_scalarr-s    €rrz"ComplicatedSubArray.__array_wrap__˜sRø€Ü‰gÑ$ S¨'°=ÓAˆØ Ð  7¨1¡:´·±Ñ#<Ø%(§X¡X§\¡\°,ÀÓ%BÀQÑ%FˆCH‰H\Ñ "àˆ
rrL) r9r:r;rortrerhr^rPrWÚsetterrr<r=s@rrmrmusRø„ò;ò5òô
?ô
ðñ!óð!ð
‡[[ñóð÷ñrrmcó2—eZdZdZdZdZd„Zd„Zd    d„Zd„Z    y)
Ú WrappedArrayz 
    Wrapping a MaskedArray rather than subclassing to test that
    ufunc deferrals are commutative.
    See: https://github.com/numpy/numpy/issues/15200)
    ©Ú_arrayÚattrséc ó —||_||_yrrˆ)r+rrŠs   rrYzWrappedArray.__init__©s€ØˆŒ ؈
rcóh—|jj›d|j›d|j›dS)Nz(
ú
z
))r-r9r‰rŠr[s rrtzWrappedArray.__repr__­s.€Ø—.‘.×)Ñ)Ð*¨#¨d¯k©k¨]¸"¸T¿Z¹Z¸LÈÐLÐLrNcó@—tj|j«Sr)rr    r‰)r+Údtyper s   rr`zWrappedArray.__array__°s€Üz‰z˜$Ÿ+™+Ó&Ð&rcóʗ|dk(rT|Dcgc]&}t||j«r |jn|‘Œ(}}|j||i|¤Žfi|j¤ŽStScc}w)NÚ__call__)r_r-r‰rŠÚNotImplemented)r+ÚufuncÚmethodÚinputsrBÚargs      rÚ__array_ufunc__zWrappedArray.__array_ufunc__³sl€Ø ZÒ à!'ö)Øô%/¨s°D·N±NÔ$Cc—j’jÈÑLð)ˆFð)à!4—>‘>¡%¨Ð":°6Ñ":ÑI¸d¿j¹jÑIÐ Iä!Ð !ùò    )sŠ+A )NN)
r9r:r;rCÚ    __slots__Ú__array_priority__rYrtr`r˜rQrrr‡r‡ s)„ñð
$€IØÐòòMó'ó"rr‡cóZ—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zy)ÚTestSubclassingcób—tjdd¬«}t|gd¢¬«}||f|_y)NéÚfloat)r)rr0rrr©rH)rrÚ    msubarrayrG©r+r$Úmxs   rÚ setup_methodzTestSubclassing.setup_method¿s)€Ü I‰Ia˜wÔ 'ˆÜ qšÔ /ˆØ˜Gˆ    rcó
—tjd«}gd¢}t|«}t||¬«}t    t |t ««t|j|«t    t |jt««y)Nrž©rrr0rrr )    rrrrrr_rrrJ)r+r$ÚmÚxsubÚxmsubs     rÚtest_data_subclassingz%TestSubclassing.test_data_subclassingÄsY€ä I‰Ia‹LˆÚ ˆÜ˜‹{ˆÜ˜T¨Ô*ˆÜ”
˜5¤+Ó.Ô/ܐU—[‘[ $Ô'Ü”
˜5Ÿ;™;¬Ó1Õ2rcóh—|j\}}tt|jt««yr)rGrr_rJÚsubarrayr¢s   rÚtest_maskedarray_subclassingz,TestSubclassing.test_maskedarray_subclassingÎs"€à—)‘)‰ˆˆBÜ”
˜2Ÿ8™8¤XÓ.Õ/rcó —|j\}}tjd¬«5tt    t |«t ««tt |«tj
|««ddd«y#1swYyxYw©NÚignore)r
)rGrÚerrstaterr_r r¡rr¢s   rÚtest_masked_unary_operationsz,TestSubclassing.test_masked_unary_operationsÓsY€à—)‘)‰ˆˆBÜ [‰[ Ô )ñ    ,Ü ”Jœs 2›w¬    Ó2Ô 3Ü œ˜Q›¤§¡¨£Ô +÷    ,÷    ,ñ    ,ús ¦A A:Á:Bcó —|j\}}ttt||«t««ttt||«t««t t||«||z«ttt||«j t««tttj||«t««ttt||«t««ttt||«t««yr)
rGrr_rr¡rrJr¬Úouterr r¢s   rÚtest_masked_binary_operationsz-TestSubclassing.test_masked_binary_operationsÚs¬€à—)‘)‰ˆˆBä”
œ3˜r 2›;¬    Ó2Ô3Ü”
œ3˜r 1›:¤yÓ1Ô2ä”S˜˜Q“Z  a¡Ô(Ü”
œ3˜r 2›;×,Ñ,¬hÓ7Ô8Ü”
œ3Ÿ9™9 R¨Ó,¬iÓ8Ô9Ü”
œ5  R›=¬)Ó4Ô5Ü”
œ5  Q›<¬Ó3Õ4rcóL—|j\}}t|jj«|j¬«}t    t t ||«t««t    t t ||«t««tt ||«t ||««y)Nr )    rGrr`rHrr_r
r¡r)r+r$r£Úxmxs    rÚtest_masked_binary_operations2z.TestSubclassing.test_masked_binary_operations2çsm€à—)‘)‰ˆˆBܘ2Ÿ7™7×,Ñ,Ó.°R·W±WÔ=ˆÜ”
œ6 " b›>¬9Ó5Ô6Ü”
œ6 " a›=¬)Ó4Ô5Ü”V˜B “^¤V¨C°Ó%5Õ6rcóΗttd«dgdgdzz¬«}tt|««}t    |«}|dz}t t |t««t t |t« «t t |jt««t|jji«|dz}t t |t««t t |t««t t |jt««t |jjddkD«|dz }t t |t««t t |t««t t |jt««t |jjddkD«|jgd¢«t|jgd¢«|jjgd    ¢«t|jgd    ¢«t|d
d i¬ «}t|«}t t!|d ««t|j|j«y)Nržrr0ér r/r7)r0rrrr0)rrrrr0Únamer$)r!r!)rrrr¬r¡rr_rrErJrrr!Ú    _set_maskÚ_maskrOÚhasattr)r+r$ÚmyÚymÚzr¨Úmxsubs       rÚtest_attributepropagationz)TestSubclassing.test_attributepropagationïs¡€Ü ”&˜“) 1 #¨¨¨a©¡-Ô 0ˆÜ œ( 1›+Ó &ˆÜ q‹\ˆà !‰VˆÜ”
˜1œkÓ*Ô+Ü”J˜q¤)Ó,Ð,Ô-Ü”
˜1Ÿ7™7¤HÓ-Ô.ܐQ—W‘W—\‘\ 2Ô&à !‰VˆÜ”
˜1œkÓ*Ô+Ü”
˜1œiÓ(Ô)Ü”
˜1Ÿ7™7¤HÓ-Ô.ܐ—‘— ‘ ˜WÑ%¨Ñ)Ô*à
ˆa‰ˆÜ”
˜2œ{Ó+Ô,Ü”
˜2œyÓ)Ô*Ü”
˜2Ÿ8™8¤XÓ.Ô/ܐ—‘— ‘ ˜hÑ'¨!Ñ+Ô,à
 ‰ ’_Ô%ܐR—X‘XšÔ/Ø

‰
×Ñš_Ô-ܐR—X‘XšÔ/䘠¨  Ô.ˆÜ˜TÓ"ˆÜ”˜˜vÓ&Ô'ܐU—Z‘Z §¡Õ+rcóT—tjd«}gd¢}tt||««}t    ||d|i¬«}t |d¬«}t t|t« «t t|t««t|j|«t|«}t t|t« «t t|t««t|j|«t |d¬«}t t|t««t|j|j«t|j|j«t|«}t t|t««t|j|j«t|j|«y)Nržr¦r¨)rHr!F)ÚsubokT)rrÚlistÚziprErrr_rrr½r    r!r)r+r$r§Úxinfor¨rÂs      rÚtest_subclasspreservationz)TestSubclassing.test_subclasspreservations €ä I‰Ia‹LˆÚ ˆÜ”S˜˜A“Y“ˆÜ˜ ¨&°%¨Ô9ˆä˜T¨Ô/ˆÜ”J˜u¤iÓ0Ð0Ô1Ü”
˜5¤+Ó.Ô/ܐU—[‘[ !Ô$䘓 ˆÜ”J˜u¤iÓ0Ð0Ô1Ü”
˜5¤+Ó.Ô/ܐU—[‘[ !Ô$ä˜T¨Ô.ˆÜ”
˜5¤)Ó,Ô-ܐU—Z‘Z §¡Ô+ܐU—[‘[ $§*¡*Ô-ä˜4Ó ˆÜ”
˜5¤)Ó,Ô-ܐU—Z‘Z §¡Ô+ܐU—[‘[ !Õ$rcó8—tjd«}t|«}t|gd¢¬«}t    t |dt««t    t |dt««t    t |ddt««t    t |dt««t    t |dj t««t    |dtu«t    t |dj t««t    t |ddj t««t    t |jdj t««t    |jdtu«t    t |jddjt««tt|jd|d«tt|jd|d«tt|jtdd«|dd«|d|d<|dd|ddtt|jjd|d«tt|jjtdd«|dd«|d|jd<|dd|jddy    )
z,test that getter and setter go via baseclassrž©TFTFFr r0©r0.rºr©r.N)rrrmrrr_rGr rWÚbaserrvrhÚslice)r+r$ÚxcsubÚmxcsubs    rÚtest_subclass_itemsz#TestSubclassing.test_subclass_items+s
€ä I‰Ia‹LˆÜ# AÓ&ˆÜ˜eÒ*KÔLˆô    ”
˜5 ™8Ô%8Ó9Ô:Ü”
˜5 ™=Ô*=Ó>Ô?Ü”
˜5  1˜:Ô':Ó;Ô<ô    ”
˜6 !™9Ô&9Ó:Ô;Ü”
˜6 &™>×.Ñ.Ô0CÓDÔEܐq‘    œVÐ#Ô$Ü”
˜6 &™>×.Ñ.Ô0CÓDÔEÜ”
˜6 ! A˜;×+Ñ+Ô-@ÓAÔBô    ”
˜6Ÿ;™; q™>×.Ñ.Ô0CÓDÔEܐ— ‘ ˜A‘¤&Ð(Ô)Ü”
˜6Ÿ;™; q¨Ð+×0Ñ0Ô2EÓFÔGô    ”j %×"3Ñ"3°Q¸¸!¹Ô=ä”j &×"4Ñ"4°a¸¸1¹Ô>Ü”j &×"4Ñ"4´e¸A¸q³kÀ1ÀQÀqÀ6ÔJؘ!‘Hˆˆq‰    Ø˜A˜ajˆˆqˆ ä”j &§+¡+×"9Ñ"9¸1¸aÀ¹dÔCÜ”j &§+¡+×"9Ñ"9¼5ÀÀA»;ÈÈ!ÈAÈÔOؘq™ˆ ‰ A‰Ø   1˜:ˆ ‰ AaÑrcób—tjd«}t|«}t|«}t    t |dj t««t    t |dj t««t    t |dt««t    t |dt««y)NržrÌrÍr0r)rrrmrrr_rG)r+r$rÐÚ mxcsub_nomasks    rÚtest_subclass_nomask_itemsz*TestSubclassing.test_subclass_nomask_itemsPsƒ€Ü I‰Ia‹LˆÜ# AÓ&ˆÜ$ UÓ+ˆ ä”
˜=¨Ñ0×5Ñ5Ô7JÓKÔLÜ”
˜=¨Ñ0×5Ñ5Ô7JÓKÔLä”
˜=¨Ñ+Ô-@ÓAÔBÜ”
˜=¨Ñ+Ô-@ÓAÕBrcóø—tjd«}t|gd¢¬«}tt    |«d«t |«}t|gd¢¬«}tt    |«dt
j ›d«y)zOtest that repr uses the name of the subclass
        and 'array' for np.ndarrayržrËr rÚmasked_z(data=[--, 1, --, 3, 4]N)rrrrÚreprrr9)r+r$r£r¨rÂs     rÚtest_subclass_reprz"TestSubclassing.test_subclass_repr[se€ô I‰Ia‹LˆÜ ˜!Ò"CÔ DˆÜœ$˜r›( NÔ3ܘ‹{ˆÜ˜TÒ(IÔJˆÜœ$˜u›+Ø”h×'Ñ'Ð(Ð(?Ð @õ    Brcóf—tjd«}t|«}t|gd¢¬«}t    t |«d«t |«}tt|jdtjjj«t|gd¢¬«}t    t |«d«y)z7test str with subclass that has overridden str, setitemržrËr z [-- 1 -- 3 4]rz myprefix [-- 1 -- 3 4] mypostfixN) rrrrrÚstrrmrrvrhÚmaÚcoreÚmasked_print_option)r+r$r¨rÂrÐrÑs      rÚtest_subclass_strz!TestSubclassing.test_subclass_strfs€€ô I‰Ia‹LˆÜ˜‹{ˆÜ˜TÒ(IÔJˆÜ”S˜“Z Ô1ä# AÓ&ˆÜ”j %×"3Ñ"3°QÜ—e‘e—j‘j×4Ñ4ô    6ä˜eÒ*KÔLˆÜ”S˜“[Ð"DÕErcó<—tdgd¢¬«}tgd¢¬«}tj||«}td|jv«t|jddk(«||z
}td|jv«t|jddk(«y)NÚtest)r0éérºržé)rG)rr0rârãrºržr!)r?rÚsubtractrrA)r+Úarr1Úarr2Údiff1Údiff2s     rÚ$test_pure_subclass_info_preservationz4TestSubclassing.test_pure_subclass_info_preservationtsƒ€ô˜fÒ+=Ô>ˆÜÒ#5Ô6ˆÜ— ‘ ˜D $Ó'ˆÜ˜%Ÿ.™.Ð(Ô)ܐ—‘˜vÑ&¨&Ñ0Ô1ؐt‘ ˆÜ˜%Ÿ.™.Ð(Ô)ܐ—‘˜vÑ&¨&Ñ0Õ1rN)r9r:r;r¤rªr­r²rµr¸rÃrÉrÒrÕrÙrßrêrQrrrœrœ¼sH„òò
3ò0ò
,ò 5ò7ò,òB%ò6#&òJ    Cò    Bò Fó
2rrœcó—eZdZdZd„Zd„Zy)ÚArrayNoInheritancez6Quantity-like class that does not inherit from ndarraycó —||_||_yr)Ú    magnitudeÚunits)r+rGrïs   rrYzArrayNoInheritance.__init__ƒs€ØˆŒØˆ
rcó.—t|j|«Sr)r*rî)r+Úattrs  rÚ __getattr__zArrayNoInheritance.__getattr__‡s€Üt—~‘~ tÓ,Ð,rN)r9r:r;rCrYròrQrrrìrìs„Ù@òó-rrìcóÚ—tjjgd¢gd¢¬«}t|d«}tjj|«}t    |j
|j
«t    |j |j «gd¢|_t    |j |j «t|j«tjj|d¬«}t    |j
|j
«t    |j |j «gd¢|_t    gd¢|j «t|j «tjj|d¬    «}t    |j
|j
«t    |j gd¢«t|j «t|j «y)
N)r0rârã)TFTr Úmeters)TFFT)r F)Ú    keep_mask)    rrÜrrìrrGrHrÚ
sharedmask)Ú data_maskedÚdata_masked_unitsÚ    new_arrays   rÚtest_array_no_inheritancerú‹sT€Ü—%‘%—+‘+šiÒ.A+ÓB€KÜ*¨;¸ÓAÐô—‘— ‘ Ð-Ó.€Iܐ×!Ñ! 9§>¡>Ô2ܐ×!Ñ! 9§>¡>Ô2â+€KÔܐ×!Ñ! 9§>¡>Ô2Ü ˆI×  Ñ  Ô!ô—‘— ‘ Ð-°D Ó9€Iܐ×!Ñ! 9§>¡>Ô2ܐ×!Ñ! 9§>¡>Ô2â*€KÔÜÒ% y§~¡~Ô6Ü     ×$Ñ$Ð $Ô%ô—‘— ‘ Ð-¸ Ó?€Iܐ×!Ñ! 9§>¡>Ô2ä×!Ñ!Ò#6Ô7ä     —‘Ð ÔÜ     ×$Ñ$Ð $Õ%rcó$—eZdZd„Zd„Zd„Zd„Zy)ÚTestClassWrappingcóv—tjjgd¢gd¢¬«}t|«}||f|_y)N©r0rãrž©FTFr )rrÜrr‡rG©r+r§Úwms   rr¤zTestClassWrapping.setup_method®s0€Ü E‰E× Ñ šyÒ/CÐ Ó DˆÜ ˜!‹_ˆØ˜Gˆ    rcóЗ|j\}}tjd¬«5tt    tj
|«t ««ddd«y#1swYyxYwr¯)rGrr±rr_r r‡rs   rr²z.TestClassWrapping.test_masked_unary_operations³sG€à—)‘)‰ˆˆBÜ [‰[ Ô )ñ    :Ü ”JœrŸv™v b›z¬<Ó8Ô 9÷    :÷    :ñ    :ús ¦-AÁA%cóœ—|j\}}tttj||«t
««tttj||«t
««tttj||«t
««t tj||«||z«tttj||«t
««tttj||«t
««tttj||«t
««tttj||«t
««t tj||«|ztj||«|z«tj||g«}tttj||«t
««tttj||«t
««t tj||«tj||««yr)
rGrr_rrr‡rr r
Ústack)r+r§rÚm2s    rrµz/TestClassWrapping.test_masked_binary_operations¹sg€à—)‘)‰ˆˆBä”
œ2Ÿ6™6 " b›>¬<Ó8Ô9Ü”
œ2Ÿ6™6 ! R›=¬,Ó7Ô8Ü”
œ2Ÿ6™6 " a›=¬,Ó7Ô8ä”R—V‘V˜A˜r“] A¨¡FÔ+Ü”
œ2Ÿ8™8 A r›?¬LÓ9Ô:Ü”
œ2Ÿ8™8 B¨›?¬LÓ9Ô:ä”
œ2Ÿ9™9 R¨Ó+¬\Ó:Ô;Ü”
œ2Ÿ9™9 Q¨Ó+¬\Ó:Ô;Ü”R—Y‘Y˜r 1Ó%¨Ñ)¬2¯9©9°Q¸«?¸RÑ+?Ô@ä X‰Xq˜!fÓ ˆÜ”
œ2Ÿ9™9 R¨Ó,¬lÓ;Ô<Ü”
œ2Ÿ9™9 R¨Ó,¬lÓ;Ô<Ü”R—Y‘Y˜r 2Ó&¬¯    ©    °"°bÓ(9Õ:rcóè—t«}tt|jdd«tj
j gd¢gd¢¬«}t|«}tt|jdd«y)NÚnot_a_real_attrr0rþrÿr Ú not_an_attrrâ)rrÚAttributeErrorÚ __setattr__rrÜrr‡)r+Úmixinr§rs    rÚtest_mixins_have_slotsz(TestClassWrapping.test_mixins_have_slotsÎsT€Ü%Ó'ˆä”n e×&7Ñ&7Ð9JÈAÔNä E‰E× Ñ šyÒ/CÐ Ó DˆÜ ˜!‹_ˆÜ”n b§n¡n°mÀQÕGrN)r9r:r;r¤r²rµr rQrrrürü«s„òò
:ò ;ó*Hrrü)%rCÚnumpyrÚnumpy.lib.mixinsrÚ numpy.ma.corerrrrrr    r
r r r rrÚnumpy.ma.testutilsrÚ numpy.testingrrrrVrr¬r?rEr¡rSrmr‡rœrìrúrürQrrú<module>rsºðñó Ý2÷ ÷ ÷ ó õ,ß0ò ôˆrz‰zôð. €ô[ôô ˜+ô ð €    ÷KñKô8(˜(ô(ôV"Ð(ô"÷8B2ñB2÷J-ñ-ò&÷@*Hò*Hr