+
    JV-jJB  ã                   óZ  € R t ^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
HtHtHtHtHtHtHt ^ RIHt ^ RIHtHt R t ! R R]P0                  4      t]t ! R	 R
]4      t ! R R]]4      t]t ! R R4      t ! R R]4      t ! R R]4      t  ! R R4      t! ! R R4      t"R t# ! R R4      t$R# )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                 ó6   € \        V R \        V4       V4       R # ©N)r   Úlen)ÚaÚbs   &&Úp/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/numpy/ma/tests/test_subclassing.pyÚassert_startswithr      s   € ä��7”C˜“F�˜QÖó    c                   óV   a a€ ] tR t^ t o/ 3R ltV 3R ltV 3R ltV 3R ltRtVt	V ;t
# )ÚSubArrayc                óz   € \         P                  ! V4      P                  V 4      pVP                  4       Vn        V# r   )Únpr   ÚviewÚcopyÚinfo)ÚclsÚarrr    Úxs   &&& r   Ú__new__ÚSubArray.__new__#   s-   € Ü�MŠM˜#Ó×#Ñ# CÓ(ˆØ—‘“ˆŒØˆr   c                óf   <€ \         SV `  V4       \        VR / 4      P                  4       V n        R# )r    N)ÚsuperÚ__array_finalize__Úgetattrr   r    )ÚselfÚobjÚ	__class__s   &&€r   r(   ÚSubArray.__array_finalize__(   s)   ø€ Ü‰Ñ" 3Ô'Ü˜C ¨Ó,×1Ñ1Ó3ˆŽ	r   c                ó†   <€ \         SV `  V4      pVP                  P                  R ^ 4      ^,           VP                  R &   V# )Úadded)r'   Ú__add__r    Úget©r*   ÚotherÚresultr,   s   && €r   r0   ÚSubArray.__add__,   s8   ø€ Ü‘‘ Ó'ˆØ%Ÿ{™{Ÿ™¨w¸Ó:¸QÕ>ˆ�‰�GÑØˆr   c                ó†   <€ \         SV `  V4      pVP                  P                  R ^ 4      ^,           VP                  R &   V# )Úiadded)r'   Ú__iadd__r    r1   r2   s   && €r   r8   ÚSubArray.__iadd__1   s9   ø€ Ü‘Ñ! %Ó(ˆØ &§¡§¡°¸!Ó <¸qÕ @ˆ�‰�HÑØˆr   ©r    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   r(   r0   r8   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r,   Ú__classdict__s   @@r   r   r       s#   ù‡ € ð  "ô õ
4õ÷
õ r   r   c                   ó:   a a€ ] tR t^:t oRtRV 3R lltRtVtV ;t# )ÚSubMaskedArrayz<Pure subclass of MaskedArray, keeping some info on subclass.c                óF   <€ \         SV `  ! V 3/ VB pWP                  R &   V# r:   )r'   r$   Ú_optinfo)r!   r    Úkwargsr+   r,   s   &&, €r   r$   ÚSubMaskedArray.__new__<   s'   ø€ Ü‰gŠo˜cÑ, VÑ,ˆØ#�‰�VÑØˆ
r   © r   )	r;   r<   r=   r>   Ú__doc__r$   r?   r@   rA   rB   s   @@r   rE   rE   :   s   ù‡ € ÙF÷÷ r   rE   c                   ó>   a € ] tR t^Bt o / ]3R lt]R 4       tRtV t	R# )Ú	MSubArrayc                ón   € \        W4      p\        P                  ! WVR 7      pVP                  Vn        V# ))ÚdataÚmask)r   r   r$   r    )r!   rO   r    rP   ÚsubarrÚ_datas   &&&&  r   r$   ÚMSubArray.__new__D   s.   € Ü˜$Ó%ˆÜ×#Ò# C¸4Ô@ˆØ—[‘[ˆŒ
Øˆr   c                ó>   € V P                  \        4      pR Vn        V# )F)r   r   Ú_sharedmask)r*   Ú_views   & r   Ú_seriesÚMSubArray._seriesJ   s   € à—	‘	œ+Ó&ˆØ!ˆÔØˆr   rJ   N)
r;   r<   r=   r>   r   r$   ÚpropertyrW   r?   r@   ©rC   s   @r   rM   rM   B   s#   ø‡ € à "¨ô ð ñó ör   rM   c                   óB   a € ] tR t^Yt o RtR tR tR tR tR t	Rt
V tR# )	Ú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   € Wn         VP                  \        P                  4      P                  V n        R # r   )Ú	_originalr   r   ÚndarrayÚflatÚ	_dataiter)r*   r   s   &&r   Ú__init__ÚCSAIterator.__init__`   s!   € ØŒØŸ™¤§
¡
Ó+×0Ñ0ˆŽr   c                ó   € V # r   rJ   ©r*   s   &r   Ú__iter__ÚCSAIterator.__iter__d   s   € Øˆr   c                óä   € V P                   P                  V4      p\        V\        P                  4      '       g   VP                  4       pVP                  \        V P                  4      4      pV# r   )	ra   Ú__getitem__Ú
isinstancer   r_   Ú	__array__r   Útyper^   )r*   ÚindxÚouts   && r   ri   ÚCSAIterator.__getitem__g   sN   € Ø�n‰n×(Ñ(¨Ó.ˆÜ˜#œrŸz™z×*Ò*Ø—-‘-“/ˆCØ�h‰h”t˜DŸN™NÓ+Ó,ˆØˆ
r   c                óV   € V P                   P                  V4      V P                  V&   R # r   )r^   Ú_validate_inputra   )r*   ÚindexÚvalues   &&&r   Ú__setitem__ÚCSAIterator.__setitem__n   s   € Ø $§¡× >Ñ >¸uÓ Eˆ�‰�uÓr   c                óŒ   € \        V P                  4      P                  4       P                  \	        V P
                  4      4      # r   )Únextra   rk   r   rl   r^   re   s   &r   Ú__next__ÚCSAIterator.__next__q   s.   € Ü�D—N‘NÓ#×-Ñ-Ó/×4Ñ4´T¸$¿.¹.Ó5IÓJÐJr   )ra   r^   N)r;   r<   r=   r>   rK   rb   rf   ri   rt   rx   r?   r@   rZ   s   @r   r\   r\   Y   s+   ø‡ € ñò1òòòF÷Kð Kr   r\   c                   ó”   a a€ ] tR t^ut oR tR tR tV 3R ltV 3R lt]	R 4       t
]
P                  R 4       t
R
V 3R lltR	tVtV ;t# )ÚComplicatedSubArrayc                ó4   € R V P                  \        4       R2# )z	myprefix z
 mypostfix)r   r   re   s   &r   Ú__str__ÚComplicatedSubArray.__str__w   s   € Ø˜4Ÿ9™9¤XÓ.Ð/¨zÐ:Ð:r   c                ó<   € R V P                   P                   RV  R2# )Ú<Ú Ú>)r,   r;   re   s   &r   Ú__repr__ÚComplicatedSubArray.__repr__z   s"   € à�4—>‘>×*Ñ*Ð+¨1¨T¨F°!Ð4Ð4r   c                óH   € \        V\        4      '       g   \        R 4      hV# )z!Can only set to MySubArray values)rj   r{   Ú
ValueError)r*   rs   s   &&r   rq   Ú#ComplicatedSubArray._validate_input~   s!   € Ü˜%Ô!4×5Ò5ÜÐ@ÓAÐAØˆr   c                óD   <€ \         SV `  WP                  V4      4       R # r   )r'   rt   rq   ©r*   Úitemrs   r,   s   &&&€r   rt   ÚComplicatedSubArray.__setitem__ƒ   s   ø€ ô 	‰Ñ˜D×"6Ñ"6°uÓ"=Ö>r   c                ó¬   <€ \         SV `  V4      p\        V\        P                  4      '       g$   VP                  4       P                  \        4      pV# r   )r'   ri   rj   r   r_   rk   r   r{   r‰   s   && €r   ri   ÚComplicatedSubArray.__getitem__ˆ   s@   ø€ ä‘Ñ# DÓ)ˆÜ˜%¤§¡×,Ò,Ø—O‘OÓ%×*Ñ*Ô+>Ó?ˆEØˆr   c                ó   € \        V 4      # r   )r\   re   s   &r   r`   ÚComplicatedSubArray.flat�   s   € ä˜4Ó Ð r   c                ó.   € V P                  4       pWR &   R# ):NNNN)Úravel)r*   rs   Úys   && r   r`   r�   “   s   € à�J‰J‹LˆØˆ!‹r   c                óÆ   <€ \         SV `  WV4      pVeL   V^ ,          \        P                  J d1   VP                  P                  R^ 4      ^,           VP                  R&   V# )NÚ
multiplied)r'   Ú__array_wrap__r   Úmultiplyr    r1   )r*   r+   ÚcontextÚreturn_scalarr,   s   &&&&€r   r•   Ú"ComplicatedSubArray.__array_wrap__˜   sP   ø€ Ü‰gÑ$ S°=ÓAˆØÒ 7¨1¥:´·±Ó#<Ø%(§X¡X§\¡\°,ÀÓ%BÀQÕ%FˆC�H‰H�\Ñ"àˆ
r   rJ   )NF)r;   r<   r=   r>   r}   rƒ   rq   rt   ri   rY   r`   Úsetterr•   r?   r@   rA   rB   s   @@r   r{   r{   u   sT   ù‡ € ò;ò5òõ
?õ
ð ñ!ó ð!ð 
‡[�[ñó ð÷÷ r   r{   c                   óH   a € ] tR t^ t o RtRt^tR tR tRR lt	R t
RtV tR# )	ÚWrappedArrayz�
Wrapping a MaskedArray rather than subclassing to test that
ufunc deferrals are commutative.
See: https://github.com/numpy/numpy/issues/15200)
c                ó   € Wn         W n        R # r   ©Ú_arrayÚattrs)r*   r   r    s   &&,r   rb   ÚWrappedArray.__init__©   s   € ØŒØŽ
r   c                óh   € V P                   P                   R V P                   RV P                   R2# )z(
Ú
z
))r,   r;   rŸ   r    re   s   &r   rƒ   ÚWrappedArray.__repr__­   s.   € Ø—.‘.×)Ñ)Ð*¨#¨d¯k©k¨]¸"¸T¿Z¹Z¸LÈÐLÐLr   Nc                óB   € \         P                  ! V P                  4      # r   )r   r   rŸ   )r*   Údtyper   s   &&&r   rk   ÚWrappedArray.__array__°   s   € Ü�zŠz˜$Ÿ+™+Ó&Ð&r   c                óÜ   € VR 8X  d\   V Uu. uF,  p\        WPP                  4      '       d   VP                  MTNK.  	  ppV P                  ! V! V/ VB 3/ V P                  B # \        # u upi )Ú__call__)rj   r,   rŸ   r    ÚNotImplemented)r*   ÚufuncÚmethodÚinputsrH   Úargs   &&&*, r   Ú__array_ufunc__ÚWrappedArray.__array_ufunc__³   sn   € Ø�ZÔá!'ó)Ù!'˜#ô %/¨s·N±N×$CÒ$C�c—j’jÈÒLÙ!'ð ð )à—>’>¡%¨Ð":°6Ñ":ÑI¸d¿j¹jÑIÐIä!Ð!ùò	)s   Œ2A)rž   )NN)r;   r<   r=   r>   rK   Ú	__slots__Ú__array_priority__rb   rƒ   rk   r¯   r?   r@   rZ   s   @r   rœ   rœ       s1   ø‡ € ñð
 $€IØÐòòMô'÷"ð "r   rœ   c                   ón   a € ] tR t^¼t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )ÚTestSubclassingc                óV   € \         P                  ! ^RR7      p\        V. ROR7      pW3# )é   Úfloat)r¦   ©rP   )é    é   r¹   r¹   r¹   )r   r   Ú	msubarray©r*   r#   Úmxs   &  r   Ú_create_dataÚTestSubclassing._create_data¿   s%   € Ü�IŠI�a˜wÔ'ˆÜ�qšÔ/ˆØˆuˆr   c                ó  € \         P                  ! ^4      p. ROp\        V4      p\        W2R7      p\	        \        V\        4      4       \        VP                  V4       \	        \        VP                  \        4      4       R# )r¶   r¸   N©r¹   r¹   rº   r¹   r¹   )	r   r   r   r   r   rj   r   r   rR   )r*   r#   ÚmÚxsubÚxmsubs   &    r   Útest_data_subclassingÚ%TestSubclassing.test_data_subclassingÄ   sW   € ä�IŠI�a‹LˆÚˆÜ˜‹{ˆÜ˜TÔ*ˆÜ”
˜5¤+Ó.Ô/Ü�U—[‘[ $Ô'Ü”
˜5Ÿ;™;¬Ó1Ö2r   c                óz   € V P                  4       ^,          p\        \        VP                  \        4      4       R# )rº   N)r¾   r   rj   rR   Úsubarray)r*   r½   s   & r   Útest_maskedarray_subclassingÚ,TestSubclassing.test_maskedarray_subclassingÎ   s(   € à×ÑÓ  Õ#ˆÜ”
˜2Ÿ8™8¤XÓ.Ö/r   c           	     ó8  € V P                  4       w  r\        P                  ! R R7      ;_uu_ 4        \        \	        \        V4      \        4      4       \        \        V4      \        P
                  ! V4      4       RRR4       R#   + '       g   i     R# ; i)Úignore©r	   N)r¾   r   Úerrstater   rj   r   r»   r   r¼   s   &  r   Útest_masked_unary_operationsÚ,TestSubclassing.test_masked_unary_operationsÓ   sY   € à×!Ñ!Ó#‰ˆÜ�[Š[ ×)Ö)Ü”Jœs 2›w¬	Ó2Ô3Üœ˜Q›¤§¢¨£Ô+÷ *×)×)Ò)ús   ²ABÂB	c                ó"  € V P                  4       w  r\        \        \        W"4      \        4      4       \        \        \        W!4      \        4      4       \        \        W!4      W!,           4       \        \        \        W"4      P                  \        4      4       \        \        \        P                  ! W"4      \        4      4       \        \        \        W"4      \        4      4       \        \        \        W!4      \        4      4       R # r   )
r¾   r   rj   r   r»   r   rR   rÈ   Úouterr
   r¼   s   &  r   Útest_masked_binary_operationsÚ-TestSubclassing.test_masked_binary_operationsÚ   sŸ   € à×!Ñ!Ó#‰ˆä”
œ3˜r›;¬	Ó2Ô3Ü”
œ3˜r›:¤yÓ1Ô2ä”S˜“Z ¥Ô(Ü”
œ3˜r›;×,Ñ,¬hÓ7Ô8Ü”
œ3Ÿ9š9 RÓ,¬iÓ8Ô9Ü”
œ5 ›=¬)Ó4Ô5Ü”
œ5 ›<¬Ó3Ö4r   c                óL  € V P                  4       w  r\        VP                  P                  4       VP                  R 7      p\        \        \        W"4      \        4      4       \        \        \        W!4      \        4      4       \        \        W"4      \        W34      4       R# )r¸   N)
r¾   r   rO   rk   rP   r   rj   r	   r»   r   )r*   r#   r½   Úxmxs   &   r   Útest_masked_binary_operations2Ú.TestSubclassing.test_masked_binary_operations2ç   sh   € à×!Ñ!Ó#‰ˆÜ˜2Ÿ7™7×,Ñ,Ó.°R·W±WÔ=ˆÜ”
œ6 "›>¬9Ó5Ô6Ü”
œ6 "›=¬)Ó4Ô5Ü”V˜B“^¤V¨CÓ%5Ö6r   c                ó  € \        \        ^4      ^ .^.^,          ,           R7      p\        \        V4      4      p\	        V4      pV^,           p\        \        V\        4      4       \        \        V\        4      '       * 4       \        \        VP                  \        4      4       \        VP                  P                  / 4       V^,           p\        \        V\        4      4       \        \        V\        4      4       \        \        VP                  \        4      4       \        VP                  P                  R,          ^ 8„  4       V^,          p\        \        V\        4      4       \        \        V\        4      4       \        \        VP                  \        4      4       \        VP                  P                  R,          ^ 8„  4       VP                  . R	O4       \        VP                  . R	O4       VP                  P                  . R
O4       \        VP                  . R
O4       \        VRR/R7      p\        V4      p\        \!        VR4      4       \        VP                  VP                  4       R# )r¶   r¸   r/   r7   Únamer#   r:   r    N)rº   r¹   r¹   r¹   rº   )r¹   r¹   r¹   r¹   rº   )r   r   r   rÈ   r»   r   rj   r   rM   rR   r   r   r    Ú	_set_maskÚ_maskrW   Úhasattr)r*   r#   ÚmyÚymÚzrÃ   Úmxsubs   &      r   Útest_attributepropagationÚ)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 §¡Ö+r   c                ód  € \         P                  ! ^4      p. ROp\        \        W4      4      p\	        WRV/R7      p\        VRR7      p\        \        V\        4      '       * 4       \        \        V\        4      4       \        VP                  V4       \        V4      p\        \        V\        4      '       * 4       \        \        V\        4      4       \        VP                  V4       \        VRR7      p\        \        V\        4      4       \        VP                  VP                  4       \        VP                  VP                  4       \        V4      p\        \        V\        4      4       \        VP                  VP                  4       \        VP                  V4       R# )r¶   rÃ   )rP   r    F)ÚsubokTNrÁ   )r   r   ÚlistÚziprM   r   r   rj   r   r   rÜ   r   r    r   )r*   r#   rÂ   ÚxinforÃ   rá   s   &     r   Útest_subclasspreservationÚ)TestSubclassing.test_subclasspreservation  s  € ä�IŠI�a‹LˆÚˆÜ”S˜“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—[‘[ !Ö$r   c                óÜ  € \         P                  ! ^4      p\        V4      p\        V. ROR7      p\	        \        V^,          \        4      4       \	        \        VR,          \        4      4       \	        \        VR,          \        4      4       \	        \        V^,          \        4      4       \	        \        VR,          P                  \        4      4       \	        V^ ,          \        J 4       \	        \        VR,          P                  \        4      4       \	        \        VR,          P                  \        4      4       \	        \        VP                  ^,          P                  \        4      4       \	        VP                  ^ ,          \        J 4       \	        \        VP                  R,          P                  \        4      4       \        \        VP                  ^V^,          4       \        \        VP                  ^V^,          4       \        \        VP                  \        ^^4      VR,          4       V^,          V^&   VR,          VR&   \        \        VP                  P                  ^V^,          4       \        \        VP                  P                  \        ^^4      VR,          4       V^,          VP                  ^&   VR,          VP                  R&   R# )z,test that getter and setter go via baseclassr¸   :rº   é   NN©TFTFF©rº   .©r¹   .)r   r   r{   r   r   rj   rO   r   r`   Úbaser   r†   rt   Úslice)r*   r#   ÚxcsubÚmxcsubs   &   r   Útest_subclass_itemsÚ#TestSubclassing.test_subclass_items+  sø  € ä�IŠI�a‹LˆÜ# AÓ&ˆÜ˜eÒ*KÔLˆô 	”
˜5 �8Ô%8Ó9Ô:Ü”
˜5 �=Ô*=Ó>Ô?Ü”
˜5 �:Ô':Ó;Ô<ô 	”
˜6 !�9Ô&9Ó:Ô;Ü”
˜6 &�>×.Ñ.Ô0CÓDÔEÜ��q•	œVÐ#Ô$Ü”
˜6 &�>×.Ñ.Ô0CÓDÔEÜ”
˜6 #�;×+Ñ+Ô-@ÓAÔBô 	”
˜6Ÿ;™; q�>×.Ñ.Ô0CÓDÔEÜ�—‘˜A•¤&Ð(Ô)Ü”
˜6Ÿ;™; sÕ+×0Ñ0Ô2EÓFÔGô 	”j %×"3Ñ"3°Q¸¸!½Ô=ä”j &×"4Ñ"4°a¸¸1½Ô>Ü”j &×"4Ñ"4´e¸A¸q³kÀ1ÀSÅ6ÔJØ˜!•Hˆˆq‰	Ø˜C•jˆˆs‰ä”j &§+¡+×"9Ñ"9¸1¸aÀ½dÔCÜ”j &§+¡+×"9Ñ"9¼5ÀÀA»;ÈÈ#ÍÔOØ˜q�ˆ�‰�A‰Ø  �:ˆ�‰�CÓr   c                ó†  € \         P                  ! ^4      p\        V4      p\        V4      p\	        \        VR,          P                  \        4      4       \	        \        VR,          P                  \        4      4       \	        \        V^,          \        4      4       \	        \        V^ ,          \        4      4       R# )r¶   Nrî   rï   )r   r   r{   r   r   rj   rO   )r*   r#   rò   Úmxcsub_nomasks   &   r   Útest_subclass_nomask_itemsÚ*TestSubclassing.test_subclass_nomask_itemsP  sƒ   € Ü�IŠI�a‹LˆÜ# AÓ&ˆÜ$ UÓ+ˆä”
˜=¨Õ0×5Ñ5Ô7JÓKÔLÜ”
˜=¨Õ0×5Ñ5Ô7JÓKÔLä”
˜=¨Õ+Ô-@ÓAÔBÜ”
˜=¨Õ+Ô-@ÓAÖBr   c                óü   € \         P                  ! ^4      p\        V. ROR7      p\        \	        V4      R4       \        V4      p\        V. ROR7      p\        \	        V4      R\
        P                   R24       R# )zGtest that repr uses the name of the subclass
and 'array' for np.ndarrayr¸   r   Úmasked_z(data=[--, 1, --, 3, 4]Nrí   )r   r   r   r   Úreprr   r;   )r*   r#   r½   rÃ   rá   s   &    r   Útest_subclass_reprÚ"TestSubclassing.test_subclass_repr[  se   € ô �IŠI�a‹LˆÜ˜!Ò"CÔDˆÜœ$˜r›( NÔ3Ü˜‹{ˆÜ˜TÒ(IÔJˆÜœ$˜u›+Ø”h×'Ñ'Ð(Ð(?Ð@ö	Br   c                ój  € \         P                  ! ^4      p\        V4      p\        V. ROR7      p\	        \        V4      R4       \        V4      p\        \        VP                  ^ \         P                  P                  P                  4       \        V. ROR7      p\	        \        V4      R4       R# )z7test str with subclass that has overridden str, setitemr¸   z[-- 1 -- 3 4]z myprefix [-- 1 -- 3 4] mypostfixNrí   )r   r   r   r   r   Ústrr{   r   r†   rt   ÚmaÚcoreÚmasked_print_option)r*   r#   rÃ   rá   rò   ró   s   &     r   Útest_subclass_strÚ!TestSubclassing.test_subclass_strf  s€   € ô �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ÖEr   c                óX  € \        R . ROR7      p\        . ROR7      p\        P                  ! W4      p\        RVP                  9   4       \        VP                  R,          R 8H  4       W,
          p\        RVP                  9   4       \        VP                  R,          R 8H  4       R# )Útest)rO   r    N)rº   é   é   rì   r¶   é   )r¹   rº   r  r	  rì   r¶   )rE   r   Úsubtractr   rG   )r*   Úarr1Úarr2Údiff1Údiff2s   &    r   Ú$test_pure_subclass_info_preservationÚ4TestSubclassing.test_pure_subclass_info_preservationt  s   € ô ˜fÒ+=Ô>ˆÜÒ#5Ô6ˆÜ—’˜DÓ'ˆÜ�˜%Ÿ.™.Ñ(Ô)Ü�—‘˜vÕ&¨&Ñ0Ô1Ø•ˆÜ�˜%Ÿ.™.Ñ(Ô)Ü�—‘˜vÕ&¨&Ñ0Ö1r   rJ   N)r;   r<   r=   r>   r¾   rÅ   rÉ   rÏ   rÓ   r×   râ   ré   rô   rø   rý   r  r  r?   r@   rZ   s   @r   r´   r´   ¼   sP   ø‡ € òò
3ò0ò
,ò5ò7ò,òB%ò6#&òJ	Cò	BòF÷
2ð 
2r   r´   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚArrayNoInheritancei�  z6Quantity-like class that does not inherit from ndarrayc                ó   € Wn         W n        R # r   ©Ú	magnitudeÚunits)r*   rO   r  s   &&&r   rb   ÚArrayNoInheritance.__init__ƒ  s   € ØŒØŽ
r   c                ó.   € \        V P                  V4      # r   )r)   r  )r*   Úattrs   &&r   Ú__getattr__ÚArrayNoInheritance.__getattr__‡  s   € Ü�t—~‘~ tÓ,Ð,r   r  N)	r;   r<   r=   r>   rK   rb   r  r?   r@   rZ   s   @r   r  r  �  s   ø‡ € Ù@ò÷-ð -r   r  c                  óô  € \         P                  P                  . RO. R	OR7      p \        V R4      p\         P                  P                  V4      p\	        V P
                  VP
                  4       \	        V P                  VP                  4       . R
OV n        \	        V P                  VP                  4       \        VP                  4       \         P                  P                  VRR7      p\	        V P
                  VP
                  4       \	        V P                  VP                  4       . R	OV n        \	        . R
OVP                  4       \        VP                  '       * 4       \         P                  P                  VRR7      p\	        V P
                  VP
                  4       \	        V P                  . R	O4       \        VP                  '       * 4       \        VP                  '       * 4       R# )rº   TFr¸   Úmeters)r   )Ú	keep_maskN)rº   r  r	  )TFT)TFF)	r   r  r   r  r   rO   rP   r   Ú
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ä�	—‘ÔÔÜ�	×$Ñ$Ô$Ö%r   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚTestClassWrappingi«  c                óh   € \         P                  P                  . RO. ROR7      p\        V4      pW3# )rº   r¸   ©rº   r	  r¶   ©FTF)r   r  r   rœ   )r*   rÂ   Úwms   &  r   r¾   ÚTestClassWrapping._create_data®  s,   € Ü�E‰E×ÑšyÒ/CÐÓDˆÜ˜!‹_ˆØˆuˆr   c           	     ó  € V P                  4       ^,          p\        P                  ! RR7      ;_uu_ 4        \        \	        \        P
                  ! V4      \        4      4       RRR4       R#   + '       g   i     R# ; i)rº   rÌ   rÍ   N)r¾   r   rÎ   r   rj   r   rœ   )r*   r*  s   & r   rÏ   Ú.TestClassWrapping.test_masked_unary_operations³  sJ   € à×ÑÓ  Õ#ˆÜ�[Š[ ×)Ö)Ü”JœrŸvšv b›z¬<Ó8Ô9÷ *×)×)Ò)ús   ·.A/Á/B 	c                óº  € V P                  4       w  r\        \        \        P                  ! W"4      \
        4      4       \        \        \        P                  ! W4      \
        4      4       \        \        \        P                  ! W!4      \
        4      4       \        \        P                  ! W4      W,           4       \        \        \        P                  ! W4      \
        4      4       \        \        \        P                  ! W!4      \
        4      4       \        \        \        P                  ! W!4      \
        4      4       \        \        \        P                  ! W4      \
        4      4       \        \        P                  ! W!4      V,          \        P                  ! W4      V,          4       \        P                  ! W.4      p\        \        \        P                  ! W#4      \
        4      4       \        \        \        P                  ! W24      \
        4      4       \        \        P                  ! W24      \        P                  ! W#4      4       R # r   )
r¾   r   rj   r   r   rœ   r   r
   r	   Ústack)r*   rÂ   r*  Úm2s   &   r   rÓ   Ú/TestClassWrapping.test_masked_binary_operations¹  sJ  € à×!Ñ!Ó#‰ˆä”
œ2Ÿ6š6 "›>¬<Ó8Ô9Ü”
œ2Ÿ6š6 !›=¬,Ó7Ô8Ü”
œ2Ÿ6š6 "›=¬,Ó7Ô8ä”R—V’V˜A“] A¥FÔ+Ü”
œ2Ÿ8š8 A›?¬LÓ9Ô:Ü”
œ2Ÿ8š8 B›?¬LÓ9Ô:ä”
œ2Ÿ9š9 RÓ+¬\Ó:Ô;Ü”
œ2Ÿ9š9 QÓ+¬\Ó:Ô;Ü”R—Y’Y˜rÓ%¨Õ)¬2¯9ª9°Q«?¸RÕ+?Ô@ä�XŠX�q�fÓˆÜ”
œ2Ÿ9š9 RÓ,¬lÓ;Ô<Ü”
œ2Ÿ9š9 RÓ,¬lÓ;Ô<Ü”R—Y’Y˜rÓ&¬¯	ª	°"Ó(9Ö:r   c                óê   € \        4       p\        \        VP                  R ^4       \        P
                  P                  . RO. ROR7      p\        V4      p\        \        VP                  R^4       R# )Únot_a_real_attrr¸   Únot_an_attrNr(  r)  )r   r   ÚAttributeErrorÚ__setattr__r   r  r   rœ   )r*   ÚmixinrÂ   r*  s   &   r   Útest_mixins_have_slotsÚ(TestClassWrapping.test_mixins_have_slotsÎ  sT   € Ü%Ó'ˆä”n e×&7Ñ&7Ð9JÈAÔNä�E‰E×ÑšyÒ/CÐÓDˆÜ˜!‹_ˆÜ”n b§n¡n°mÀQÖGr   rJ   N)
r;   r<   r=   r>   r¾   rÏ   rÓ   r8  r?   r@   rZ   s   @r   r&  r&  «  s    ø‡ € òò
:ò;÷*Hð Hr   r&  )%rK   Únumpyr   Únumpy.lib.mixinsr   Únumpy.ma.corer   r   r   r   r   r   r	   r
   r   r   r   r   Únumpy.ma.testutilsr   Únumpy.testingr   r   r   r_   r   rÈ   rE   rM   r»   r\   r{   rœ   r´   r  r$  r&  rJ   r   r   Ú<module>r?     sº   ðñó Ý 2÷÷ ÷ ó õ ,ß 0ò ôˆr�z‰zô ð. €ô�[ô ô�˜+ô ð €	÷Kñ Kô8(˜(ô (ôV"Ð(ô "÷8B2ñ B2÷J-ñ -ò&÷@*Hó *Hr   