Ë
    ÷U.j=D  ã                   óX  — d Z ddlZddlmZ ddlmZmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZ d„ Z G d„ d	ej0                  «      ZeZ G d
„ de«      Z G d„ dee«      ZeZ G d„ d«      Z G d„ de«      Z G d„ de«      Z  G d„ d«      Z! G d„ d«      Z"d„ Z# G d„ d«      Z$y)z½Tests suite for MaskedArray & subclassing.

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: test_subclassing.py 3473 2007-10-29 15:18:13Z jarrod.millman $

é    N)ÚNDArrayOperatorsMixin)Úassert_Úassert_raises)Úassert_equal)ÚarrayÚarangeÚmaskedÚMaskedArrayÚmasked_arrayÚlogÚaddÚhypotÚdivideÚasarrayÚ
asanyarrayÚnomaskc                 ó4   — t        | d t        |«       |«       y ©N)r   Úlen)ÚaÚbs     úaC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\numpy/ma/tests/test_subclassing.pyÚassert_startswithr      s   € ä��7”C˜“F�˜QÕó    c                   ó<   ‡ — e Zd Zi fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ xZS )ÚSubArrayc                 óx   — t        j                  |«      j                  | «      }|j                  «       |_        |S r   )Únpr   ÚviewÚcopyÚinfo)ÚclsÚarrr!   Úxs       r   Ú__new__zSubArray.__new__   s-   € Ü�M‰M˜#Ó×#Ñ# CÓ(ˆØ—‘“ˆŒØˆr   c                 ód   •— t         ‰| �  |«       t        |di «      j                  «       | _        y ©Nr!   )ÚsuperÚ__array_finalize__Úgetattrr    r!   )ÚselfÚobjÚ	__class__s     €r   r)   zSubArray.__array_finalize__   s,   ø€ Ü‰Ñ" 3Ô'Ü˜C ¨Ó,×1Ñ1Ó3ˆŒ	Ør   c                 ó~   •— t         ‰| �  |«      }|j                  j                  dd«      dz   |j                  d<   |S )NÚaddedr   é   )r(   Ú__add__r!   Úget©r+   ÚotherÚresultr-   s      €r   r1   zSubArray.__add__$   s8   ø€ Ü‘‘ Ó'ˆØ%Ÿ{™{Ÿ™¨w¸Ó:¸QÑ>ˆ�‰�GÑØˆr   c                 ó~   •— t         ‰| �  |«      }|j                  j                  dd«      dz   |j                  d<   |S )NÚiaddedr   r0   )r(   Ú__iadd__r!   r2   r3   s      €r   r8   zSubArray.__iadd__)   s9   ø€ Ü‘Ñ! %Ó(ˆØ &§¡§¡°¸!Ó <¸qÑ @ˆ�‰�HÑØˆr   )Ú__name__Ú
__module__Ú__qualname__r%   r)   r1   r8   Ú__classcell__©r-   s   @r   r   r      s!   ø„ ð  ó ô
ô
÷
ð r   r   c                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ÚSubMaskedArrayz<Pure subclass of MaskedArray, keeping some info on subclass.c                 óF   •— t        ‰| �  | fi |¤Ž}||j                  d<   |S r'   )r(   r%   Ú_optinfo)r"   r!   Úkwargsr,   r-   s       €r   r%   zSubMaskedArray.__new__4   s)   ø€ Ü‰g‰o˜cÑ, VÑ,ˆØ#ˆ�‰�VÑØˆ
r   r   )r9   r:   r;   Ú__doc__r%   r<   r=   s   @r   r?   r?   2   s   ø„ ÙF÷ñ r   r?   c                   ó(   — e Zd Zi efd„Zed„ «       Zy)Ú	MSubArrayc                 óp   — t        ||«      }t        j                  | ||¬«      }|j                  |_        |S )N)ÚdataÚmask)r   r
   r%   r!   )r"   rG   r!   rH   ÚsubarrÚ_datas         r   r%   zMSubArray.__new__<   s2   € Ü˜$ Ó%ˆÜ×#Ñ# C¨f¸4Ô@ˆØ—[‘[ˆŒ
Øˆr   c                 ó>   — | j                  t        «      }d|_        |S ©NF)r   r
   Ú_sharedmask)r+   Ú_views     r   Ú_serieszMSubArray._seriesB   s   € à—	‘	œ+Ó&ˆØ!ˆÔØˆr   N)r9   r:   r;   r   r%   ÚpropertyrO   © r   r   rE   rE   :   s    „ à "¨ó ð ñó ñr   rE   c                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú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   — || _         |j                  t        j                  «      j                  | _        y r   )Ú	_originalr   r   ÚndarrayÚflatÚ	_dataiter)r+   r   s     r   Ú__init__zCSAIterator.__init__W   s#   € ØˆŒØŸ™¤§
¡
Ó+×0Ñ0ˆ�r   c                 ó   — | S r   rQ   ©r+   s    r   Ú__iter__zCSAIterator.__iter__[   s   € Øˆr   c                 óØ   — | j                   j                  |«      }t        |t        j                  «      s|j                  «       }|j                  t        | j                  «      «      }|S r   )	rX   Ú__getitem__Ú
isinstancer   rV   Ú	__array__r   ÚtyperU   )r+   ÚindxÚouts      r   r^   zCSAIterator.__getitem__^   sK   € Ø�n‰n×(Ñ(¨Ó.ˆÜ˜#œrŸz™zÔ*Ø—-‘-“/ˆCØ�h‰h”t˜DŸN™NÓ+Ó,ˆØˆ
r   c                 óT   — | j                   j                  |«      | j                  |<   y r   )rU   Ú_validate_inputrX   )r+   ÚindexÚvalues      r   Ú__setitem__zCSAIterator.__setitem__e   s   € Ø $§¡× >Ñ >¸uÓ Eˆ�‰�uÒr   c                 óŒ   — t        | j                  «      j                  «       j                  t	        | j
                  «      «      S r   )ÚnextrX   r`   r   ra   rU   r[   s    r   Ú__next__zCSAIterator.__next__h   s.   € Ü�D—N‘NÓ#×-Ñ-Ó/×4Ñ4´T¸$¿.¹.Ó5IÓJÐJr   N)	r9   r:   r;   rC   rY   r\   r^   rh   rk   rQ   r   r   rS   rS   P   s"   „ ñò1òòòFóKr   rS   c                   óz   ‡ — e Zd Zd„ Zd„ Zd„ Zˆ fd„Zˆ fd„Zed„ «       Z	e	j                  d„ «       Z	d	ˆ fd„	Zˆ xZS )
ÚComplicatedSubArrayc                 ó4   — d| j                  t        «      › d�S )Nz	myprefix z
 mypostfix)r   r   r[   s    r   Ú__str__zComplicatedSubArray.__str__n   s   € Ø˜4Ÿ9™9¤XÓ.Ð/¨zÐ:Ð:r   c                 ó<   — d| j                   j                  › d| › d�S )NÚ<Ú Ú>)r-   r9   r[   s    r   Ú__repr__zComplicatedSubArray.__repr__q   s"   € à�4—>‘>×*Ñ*Ð+¨1¨T¨F°!Ð4Ð4r   c                 ó<   — t        |t        «      st        d«      ‚|S )Nz!Can only set to MySubArray values)r_   rm   Ú
ValueError)r+   rg   s     r   re   z#ComplicatedSubArray._validate_inputu   s   € Ü˜%Ô!4Ô5ÜÐ@ÓAÐAØˆr   c                 óD   •— t         ‰| �  || j                  |«      «       y r   )r(   rh   re   ©r+   Úitemrg   r-   s      €r   rh   zComplicatedSubArray.__setitem__z   s   ø€ ô 	‰Ñ˜D $×"6Ñ"6°uÓ"=Õ>r   c                 ó    •— t         ‰| �  |«      }t        |t        j                  «      s#|j                  «       j                  t        «      }|S r   )r(   r^   r_   r   rV   r`   r   rm   rx   s      €r   r^   zComplicatedSubArray.__getitem__   s=   ø€ ä‘Ñ# DÓ)ˆÜ˜%¤§¡Ô,Ø—O‘OÓ%×*Ñ*Ô+>Ó?ˆEØˆr   c                 ó   — t        | «      S r   )rS   r[   s    r   rW   zComplicatedSubArray.flat†   s   € ä˜4Ó Ð r   c                 ó.   — | j                  «       }||d d  y r   )Úravel)r+   rg   Úys      r   rW   zComplicatedSubArray.flatŠ   s   € à�J‰J‹LˆØˆ‰!‰r   c                 ó°   •— t         ‰| �  |||«      }|�A|d   t        j                  u r,|j                  j                  dd«      dz   |j                  d<   |S )Nr   Ú
multipliedr0   )r(   Ú__array_wrap__r   Úmultiplyr!   r2   )r+   r,   ÚcontextÚreturn_scalarr-   s       €r   r�   z"ComplicatedSubArray.__array_wrap__�   sR   ø€ Ü‰gÑ$ S¨'°=ÓAˆØÐ 7¨1¡:´·±Ñ#<Ø%(§X¡X§\¡\°,ÀÓ%BÀQÑ%FˆC�H‰H�\Ñ"àˆ
r   rL   )r9   r:   r;   ro   rt   re   rh   r^   rP   rW   Úsetterr�   r<   r=   s   @r   rm   rm   l   sR   ø„ ò;ò5òô
?ô
ð ñ!ó ð!ð 
‡[�[ñó ð÷ñ r   rm   c                   ó2   — e Zd ZdZdZdZd„ Zd„ Zd	d„Zd„ 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                 ó    — || _         || _        y r   rˆ   )r+   r   rŠ   s      r   rY   zWrappedArray.__init__    s   € ØˆŒØˆ�
r   c                 óh   — | j                   j                  › d| j                  › d| j                  › d�S )Nz(
Ú
z
))r-   r9   r‰   rŠ   r[   s    r   rt   zWrappedArray.__repr__¤   s.   € Ø—.‘.×)Ñ)Ð*¨#¨d¯k©k¨]¸"¸T¿Z¹Z¸LÈÐLÐLr   Nc                 ó@   — t        j                  | j                  «      S r   )r   r   r‰   )r+   Údtyper    s      r   r`   zWrappedArray.__array__§   s   € Ü�z‰z˜$Ÿ+™+Ó&Ð&r   c                 óÊ   — |dk(  rT|D �cg c]&  }t        || j                  «      r|j                  n|‘Œ( }} | j                   ||i |¤Žfi | j                  ¤ŽS t        S c c}w )NÚ__call__)r_   r-   r‰   rŠ   ÚNotImplemented)r+   ÚufuncÚmethodÚinputsrB   Úargs         r   Ú__array_ufunc__zWrappedArray.__array_ufunc__ª   so   € Ø�ZÒá!'ó)Ù!'˜#ô %/¨s°D·N±NÔ$C�c—j’jÈÑLØ!'ð ð )à!�4—>‘>¡%¨Ð":°6Ñ":ÑI¸d¿j¹jÑIÐIä!Ð!ùò	)s   Š+A )NN)
r9   r:   r;   rC   Ú	__slots__Ú__array_priority__rY   rt   r`   r˜   rQ   r   r   r‡   r‡   —   s)   „ ñð
 $€IØÐòòMó'ó"r   r‡   c                   óZ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestSubclassingc                 ób   — t        j                  dd¬«      }t        |g d¢¬«      }||f| _        y )Né   Úfloat)r�   )r   r0   r   r   r   ©rH   )r   r   Ú	msubarrayrG   ©r+   r$   Úmxs      r   Úsetup_methodzTestSubclassing.setup_method¶   s)   € Ü�I‰I�a˜wÔ'ˆÜ�qšÔ/ˆØ˜�Gˆ�	r   c                 ó
  — t        j                  d«      }g d¢}t        |«      }t        ||¬«      }t	        t        |t        «      «       t        |j                  |«       t	        t        |j                  t        «      «       y )Nrž   ©r   r   r0   r   r   r    )	r   r   r   r   r   r_   r
   r   rJ   )r+   r$   ÚmÚxsubÚxmsubs        r   Útest_data_subclassingz%TestSubclassing.test_data_subclassing»   sY   € ä�I‰I�a‹LˆÚˆÜ˜‹{ˆÜ˜T¨Ô*ˆÜ”
˜5¤+Ó.Ô/Ü�U—[‘[ $Ô'Ü”
˜5Ÿ;™;¬Ó1Õ2r   c                 óh   — | j                   \  }}t        t        |j                  t        «      «       y r   )rG   r   r_   rJ   Úsubarrayr¢   s      r   Útest_maskedarray_subclassingz,TestSubclassing.test_maskedarray_subclassingÅ   s"   € à—)‘)‰ˆˆBÜ”
˜2Ÿ8™8¤XÓ.Õ/r   c                 ó  — | j                   \  }}t        j                  d¬«      5  t        t	        t        |«      t        «      «       t        t        |«      t        j
                  |«      «       d d d «       y # 1 sw Y   y xY w©NÚignore)r   )rG   r   Úerrstater   r_   r   r¡   r   r¢   s      r   Útest_masked_unary_operationsz,TestSubclassing.test_masked_unary_operationsÊ   sP   € à—)‘)‰ˆˆBÜ�[‰[ Ö)Ü”Jœs 2›w¬	Ó2Ô3Üœ˜Q›¤§¡¨£Ô+÷ *×)Ñ)ús   ¦AA:Á:Bc                 ó   — | j                   \  }}t        t        t        ||«      t        «      «       t        t        t        ||«      t        «      «       t        t        ||«      ||z   «       t        t        t        ||«      j                  t        «      «       t        t        t        j                  ||«      t        «      «       t        t        t        ||«      t        «      «       t        t        t        ||«      t        «      «       y r   )
rG   r   r_   r   r¡   r   rJ   r¬   Ú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Õ4r   c                 óL  — | j                   \  }}t        |j                   j                  «       |j                  ¬«      }t	        t        t        ||«      t        «      «       t	        t        t        ||«      t        «      «       t        t        ||«      t        ||«      «       y )Nr    )	rG   r   r`   rH   r   r_   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Õ6r   c                 óÎ  — t        t        d«      dgdgdz  z   ¬«      }t        t        |«      «      }t	        |«      }|dz   }t        t        |t        «      «       t        t        |t        «       «       t        t        |j                  t        «      «       t        |j                  j                  i «       |dz   }t        t        |t        «      «       t        t        |t        «      «       t        t        |j                  t        «      «       t        |j                  j                  d   dkD  «       |dz  }t        t        |t        «      «       t        t        |t        «      «       t        t        |j                  t        «      «       t        |j                  j                  d   dkD  «       |j                  g d¢«       t        |j                  g d¢«       |j                  j                  g d	¢«       t        |j                  g d	¢«       t        |d
di¬«      }t        |«      }t        t!        |d«      «       t        |j                  |j                  «       y )Nrž   r   r0   é   r    r/   r7   )r0   r   r   r   r0   )r   r   r   r   r0   Únamer$   )r!   r!   )r   r   r   r¬   r¡   r   r_   r
   rE   rJ   r   r   r!   Ú	_set_maskÚ_maskrO   Úhasattr)r+   r$   ÚmyÚymÚzr¨   Úmxsubs          r   Útest_attributepropagationz)TestSubclassing.test_attributepropagationæ   s¡  € Ü”&˜“) 1 # q c¨!¡e¡)Ô,ˆÜœ( 1›+Ó&ˆÜ�q‹\ˆà�‰TˆÜ”
˜1œkÓ*Ô+Ü”J˜q¤)Ó,Ð,Ô-Ü”
˜1Ÿ7™7¤HÓ-Ô.Ü�Q—W‘W—\‘\ 2Ô&à�‰TˆÜ”
˜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                 óT  — t        j                  d«      }g d¢}t        t        ||«      «      }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¨   )rH   r!   F)ÚsubokT)r   r   ÚlistÚziprE   r   r   r_   r
   r   r½   r   r!   r   )r+   r$   r§   Úxinfor¨   rÂ   s         r   Útest_subclasspreservationz)TestSubclassing.test_subclasspreservation  s   € ä�I‰I�a‹LˆÚˆÜ”S˜˜A“Y“ˆÜ˜ ¨&°¨Ô8ˆä˜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                 ó8  — t        j                  d«      }t        |«      }t        |g d¢¬«      }t	        t        |d   t        «      «       t	        t        |d   t        «      «       t	        t        |dd t        «      «       t	        t        |d   t        «      «       t	        t        |d   j                  t        «      «       t	        |d   t        u «       t	        t        |d   j                  t        «      «       t	        t        |dd j                  t        «      «       t	        t        |j                  d   j                  t        «      «       t	        |j                  d   t        u «       t	        t        |j                  dd j                  t        «      «       t        t        |j                  d|d   «       t        t        |j                  d|d   «       t        t        |j                  t        dd«      |dd «       |d   |d<   |dd |dd t        t        |j                  j                  d|d   «       t        t        |j                  j                  t        dd«      |dd «       |d   |j                  d<   |dd |j                  dd y	)
z,test that getter and setter go via baseclassrž   ©TFTFFr    r0   ©r0   .rº   r   ©r   .N)r   r   rm   r   r   r_   rG   r	   rW   Úbaser   rv   rh   Ú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 %™=×-Ñ-Ô/BÓCÔDÜ��q‘	œVÐ#Ô$Ü”
˜6 %™=×-Ñ-Ô/BÓCÔDÜ”
˜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Ñr   c                 ób  — t        j                  d«      }t        |«      }t        |«      }t	        t        |d   j                  t        «      «       t	        t        |d   j                  t        «      «       t	        t        |d   t        «      «       t	        t        |d   t        «      «       y )Nrž   rÌ   rÍ   r0   r   )r   r   rm   r   r   r_   rG   )r+   r$   rÐ   Úmxcsub_nomasks       r   Útest_subclass_nomask_itemsz*TestSubclassing.test_subclass_nomask_itemsG  sƒ   € Ü�I‰I�a‹LˆÜ# AÓ&ˆÜ$ UÓ+ˆä”
˜=¨Ñ/×4Ñ4Ô6IÓJÔKÜ”
˜=¨Ñ/×4Ñ4Ô6IÓJÔKä”
˜=¨Ñ+Ô-@ÓAÔBÜ”
˜=¨Ñ+Ô-@ÓAÕBr   c                 óø   — t        j                  d«      }t        |g d¢¬«      }t        t	        |«      d«       t        |«      }t        |g d¢¬«      }t        t	        |«      dt
        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)r   r   r   r   Úreprr   r9   )r+   r$   r£   r¨   rÂ   s        r   Útest_subclass_reprz"TestSubclassing.test_subclass_reprR  se   € ô �I‰I�a‹LˆÜ˜!Ò"CÔDˆÜœ$˜r›( NÔ3Ü˜‹{ˆÜ˜TÒ(IÔJˆÜœ$˜u›+Ø”h×'Ñ'Ð(Ð(?Ð@õ	Br   c                 óf  — t        j                  d«      }t        |«      }t        |g d¢¬«      }t	        t        |«      d«       t        |«      }t        t        |j                  dt         j                  j                  j                  «       t        |g d¢¬«      }t	        t        |«      d«       y)z7test str with subclass that has overridden str, setitemrž   rË   r    z[-- 1 -- 3 4]r   z myprefix [-- 1 -- 3 4] mypostfixN)r   r   r   r   r   Ústrrm   r   rv   rh   ÚmaÚcoreÚmasked_print_option)r+   r$   r¨   rÂ   rÐ   rÑ   s         r   Útest_subclass_strz!TestSubclassing.test_subclass_str]  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                 ó<  — t        dg d¢¬«      }t        g d¢¬«      }t        j                  ||«      }t        d|j                  v «       t        |j                  d   dk(  «       ||z
  }t        d|j                  v «       t        |j                  d   dk(  «       y )NÚtest)r0   é   é   rº   rž   é   )rG   )r   r0   râ   rã   rº   rž   r!   )r?   r   Úsubtractr   rA   )r+   Úarr1Úarr2Údiff1Údiff2s        r   Ú$test_pure_subclass_info_preservationz4TestSubclassing.test_pure_subclass_info_preservationk  s�   € ô ˜fª=Ô9ˆÜ¢=Ô1ˆÜ—‘˜D $Ó'ˆÜ�˜%Ÿ.™.Ð(Ô)Ü�—‘˜vÑ&¨&Ñ0Ô1Ø�t‘ˆÜ�˜%Ÿ.™.Ð(Ô)Ü�—‘˜vÑ&¨&Ñ0Õ1r   N)r9   r:   r;   r¤   rª   r­   r²   rµ   r¸   rÃ   rÉ   rÒ   rÕ   rÙ   rß   rê   rQ   r   r   rœ   rœ   ³   sH   „ òò
3ò0ò
,ò5ò7ò,òB%ò6#&òJ	Cò	BòFó
2r   rœ   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚArrayNoInheritancez6Quantity-like class that does not inherit from ndarrayc                 ó    — || _         || _        y r   )Ú	magnitudeÚunits)r+   rG   rï   s      r   rY   zArrayNoInheritance.__init__z  s   € ØˆŒØˆ�
r   c                 ó.   — t        | j                  |«      S r   )r*   rî   )r+   Úattrs     r   Ú__getattr__zArrayNoInheritance.__getattr__~  s   € Ü�t—~‘~ tÓ,Ð,r   N)r9   r:   r;   rC   rY   rò   rQ   r   r   rì   rì   x  s   „ Ù@òó-r   rì   c                  óÚ  — t         j                  j                  g d¢g d¢¬«      } t        | d«      }t         j                  j                  |«      }t	        | j
                  |j
                  «       t	        | j                  |j                  «       g d¢| _        t	        | j                  |j                  «       t        |j                  «       t         j                  j                  |d¬«      }t	        | j
                  |j
                  «       t	        | j                  |j                  «       g d¢| _        t	        g d¢|j                  «       t        |j                   «       t         j                  j                  |d¬	«      }t	        | j
                  |j
                  «       t	        | j                  g d¢«       t        |j                   «       t        |j                   «       y )
N)r0   râ   rã   )TFTr    Úmeters)TFFT)r    F)Ú	keep_mask)	r   rÜ   r   rì   r   rG   rH   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                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestClassWrappingc                 óv   — t         j                  j                  g d¢g d¢¬«      }t        |«      }||f| _        y )N©r0   rã   rž   ©FTFr    )r   rÜ   r   r‡   rG   ©r+   r§   Úwms      r   r¤   zTestClassWrapping.setup_method¥  s0   € Ü�E‰E×ÑšyÒ/CÐÓDˆÜ˜!‹_ˆØ˜�Gˆ�	r   c                 óÐ   — | j                   \  }}t        j                  d¬«      5  t        t	        t        j
                  |«      t        «      «       d d d «       y # 1 sw Y   y xY wr¯   )rG   r   r±   r   r_   r   r‡   r   s      r   r²   z.TestClassWrapping.test_masked_unary_operationsª  s>   € à—)‘)‰ˆˆBÜ�[‰[ Ö)Ü”JœrŸv™v b›z¬<Ó8Ô9÷ *×)Ñ)ús   ¦-AÁA%c                 óœ  — | j                   \  }}t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        j                  ||«      ||z   «       t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        j                  ||«      |z  t        j                  ||«      |z  «       t        j                  ||g«      }t        t        t        j                  ||«      t
        «      «       t        t        t        j                  ||«      t
        «      «       t        t        j                  ||«      t        j                  ||«      «       y r   )
rG   r   r_   r   r   r‡   r   r   r   Ústack)r+   r§   r  Úm2s       r   rµ   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Õ:r   c                 óè   — t        «       }t        t        |j                  dd«       t        j
                  j                  g d¢g d¢¬«      }t        |«      }t        t        |j                  dd«       y )NÚnot_a_real_attrr0   rþ   rÿ   r    Únot_an_attrrâ   )r   r   ÚAttributeErrorÚ__setattr__r   rÜ   r   r‡   )r+   Úmixinr§   r  s       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ÕGr   N)r9   r:   r;   r¤   r²   rµ   r  rQ   r   r   rü   rü   ¢  s   „ òò
:ò;ó*Hr   rü   )%rC   Únumpyr   Únumpy.lib.mixinsr   Únumpy.testingr   r   Únumpy.ma.testutilsr   Únumpy.ma.corer   r   r	   r
   r   r   r   r   r   r   r   r   r   rV   r   r¬   r?   rE   r¡   rS   rm   r‡   rœ   rì   rú   rü   rQ   r   r   Ú<module>r     s¸   ðñó Ý 2ß 0Ý +÷÷ ÷ ó ò ôˆr�z‰zô ð0 €ô�[ô ô�˜+ô ð €	÷Kñ Kô8(˜(ô (ôV"Ð(ô "÷8B2ñ B2÷J-ñ -ò&÷@*Hò *Hr   