
    G/Phv                     h   d dl Z d dlZd dlZd dlmZmZmZ  G d dej        j	        j
                  Zd Zd	dZej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        eeej        ej        ej        ej        ej         gZ! G d d          Z"dS )
    N)assert_assert_equalassert_raisesc                   <    e Zd Zd Zej        ej        fZd Z	d Z
dS )	ArrayLikec                 8    t          j        |          | _        d S N)npasarrayvalue)selfr   s     [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_mixins.py__init__zArrayLike.__init__   s    Z&&


    c                     |                     dd          }||z   D ])}t          | j        t          fz             s	t          c S *t          d |D                       }|rt          d |D                       |d<    t          ||          |i |}t          |          t
          u rt           fd|D                       S |dk    rd S  t                     |          S )Nout c              3   R   K   | ]"}t          |t                    r|j        n|V  #d S r	   
isinstancer   r   .0xs     r   	<genexpr>z,ArrayLike.__array_ufunc__.<locals>.<genexpr>   sK       ( ( #-Q	":":Aqww ( ( ( ( ( (r   c              3   R   K   | ]"}t          |t                    r|j        n|V  #d S r	   r   r   s     r   r   z,ArrayLike.__array_ufunc__.<locals>.<genexpr>!   sK       " " &a33:" " " " " "r   c              3   H   K   | ]} t                    |          V  d S r	   )type)r   r   r   s     r   r   z,ArrayLike.__array_ufunc__.<locals>.<genexpr>(   s1      771dA777777r   at)getr   _HANDLED_TYPESr   NotImplementedtuplegetattrr   )r   ufuncmethodinputskwargsr   r   results   `       r   __array_ufunc__zArrayLike.__array_ufunc__   s6   jj### 	& 	&A
 a!4	|!CDD &%%%%&  ( ( &( ( ( ( ( 	! " "" " "  F5M ('':6::<<5  7777777777t^^4 4::f%%%r   c                 @    t          |           j        d| j        dS )N())r   __name__r   )r   s    r   __repr__zArrayLike.__repr__0   s"    ::...


;;r   N)r-   
__module____qualname__r   r
   ndarraynumbersNumberr    r)   r.   r   r   r   r   r      sQ        ' ' '
 j'.1N& & &:< < < < <r   r   c                 ~    t          |           t          u rt          d | D                       S t          |           S )Nc              3   4   K   | ]}t          |          V  d S r	   )r   )r   rs     r   r   z"wrap_array_like.<locals>.<genexpr>6   s(      22aYq\\222222r   )r   r"   r   r(   s    r   wrap_array_liker8   4   s>    F||u226222222   r   c                    t          t          |           t          |          |           t          | t                    rUt          t	          |           t	          |          |           t          | |          D ]\  }}t          |||           d S t          | j        |j        |           t          t          | j        dd           t          |j        dd           |           d S )Nerr_msgdtype)	r   r   r   r"   lenzip_assert_equal_type_and_valuer   r#   )r(   expectedr;   result_itemexpected_items        r   r?   r?   ;   s    ftH~~w????&%   NS[[#h--AAAA*-fh*?*? 	N 	N&K(mWMMMM	N 	N 	V\8>7CCCCWV\7D99X^Wd;;W	N 	N 	N 	N 	N 	Nr   c                   P    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S )TestNDArrayOperatorsMixinc                    d } |t          d          dz               |dt          d          z               |t          d          t          j        d          z               |t          j        d          t          d          z               |t          t          j        d                    dz               |dt          t          j        d                    z               |t          t          j        d                    t          j        d          z               |t          j        d          t          t          j        d                    z              d S )Nc                 @    t          | t          d                     d S Nr   )r?   r   r7   s    r   checkz<TestNDArrayOperatorsMixin.test_array_like_add.<locals>.checkb   s    (1>>>>>r   r   )r   r
   array)r   rH   s     r   test_array_like_addz-TestNDArrayOperatorsMixin.test_array_like_add`   s9   	? 	? 	? 	illQa)A,,illRXa[[()))bhqkkIaLL()))i$$q()))a)BHQKK((()))i$$rx{{2333bhqkkIbhqkk22233333r   c                 b   t          t          j        dg                    }|dz  }t          |t          t          j        dg                               t          j        dg          }|t          d          z  }t          |t          t          j        dg                               d S )Nr      )r   r
   rI   r?   )r   
array_likerI   s      r   test_inplacez&TestNDArrayOperatorsMixin.test_inplaceq   s    rx}}--
a
$Z28QC==1I1IJJJ!1$UIbhsmm,D,DEEEEEr   c                     G d d          }t          d          } |            }t          ||z   |u            t          ||z   |u            t          t                    5  ||z  }d d d            n# 1 swxY w Y   t          t                    5  ||z
   d d d            n# 1 swxY w Y   t          t                    5  ||z
   d d d            d S # 1 swxY w Y   d S )Nc                   "    e Zd ZdZdZd Zd ZdS )6TestNDArrayOperatorsMixin.test_opt_out.<locals>.OptOutz(Object that opts out of __array_ufunc__.Nc                     | S r	   r   r   others     r   __add__z>TestNDArrayOperatorsMixin.test_opt_out.<locals>.OptOut.__add__       r   c                     | S r	   r   rS   s     r   __radd__z?TestNDArrayOperatorsMixin.test_opt_out.<locals>.OptOut.__radd__   rV   r   )r-   r/   r0   __doc__r)   rU   rX   r   r   r   OptOutrQ   |   s=        ::"O      r   rZ   rL   )r   r   r   	TypeError)r   rZ   rM   opt_outs       r   test_opt_outz&TestNDArrayOperatorsMixin.test_opt_outz   s   	 	 	 	 	 	 	 	 q\\
&(( 	
W$/000*$/000 9%% 	" 	"'!J	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 9%% 	! 	!  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!9%% 	! 	!j  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s6   #A55A9<A9B&&B*-B*CCCc                      G d dt                     }t          d          } |d          }t          ||z   |           t          ||z   |           d S )Nc                       e Zd ZdZdS )=TestNDArrayOperatorsMixin.test_subclass.<locals>.SubArrayLikez&Should take precedence over ArrayLike.N)r-   r/   r0   rY   r   r   r   SubArrayLiker`      s        8888r   ra   r   rL   )r   r?   )r   ra   r   ys       r   test_subclassz'TestNDArrayOperatorsMixin.test_subclass   st    	9 	9 	9 	9 	99 	9 	9 	9 aLLLOO$QUA...$QUA.....r   c                 h   t          d          }t                      }t          t                    5  ||z    d d d            n# 1 swxY w Y   t          t                    5  ||z    d d d            n# 1 swxY w Y   t          t                    5  ||z  }d d d            d S # 1 swxY w Y   d S rG   )r   objectr   r[   )r   r   objs      r   test_objectz%TestNDArrayOperatorsMixin.test_object   si   aLLhh9%% 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	9%% 	 	!GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	9%% 	 	HA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   AAA#A55A9<A9B''B+.B+c           	         t          j        g d          }t          |          }t          j        t          j        t          t          j        fD ]1}t           ||          t           ||                               2d S )Nr   rL      )	r
   rI   r   operatornegposabsinvertr?   )r   rI   rM   ops       r   test_unary_methodsz,TestNDArrayOperatorsMixin.test_unary_methods   s    ''u%%
<<?$ 	O 	OB )J22e999M9MNNNN		O 	Or   c                     t          j        g d          }t          |          }t          D ]N}t	           ||d                    } ||d          }d                    |          }t          |||           Od S )Nri   rL   failed for operator {}r:   )r
   rI   r   _ALL_BINARY_OPERATORSr8   formatr?   )r   rI   rM   rq   r@   actualr;   s          r   test_forward_binary_methodsz5TestNDArrayOperatorsMixin.test_forward_binary_methods   s    ''u%%
' 	L 	LB&rr%||44HR
A&&F.55b99G(67KKKKK		L 	Lr   c                     t           D ][}t           |dd                    } |dt          d                    }d                    |          }t	          |||           \d S )Nrk   rL   rt   r:   )ru   r8   r   rv   r?   )r   rq   r@   rw   r;   s        r   test_reflected_binary_methodsz7TestNDArrayOperatorsMixin.test_reflected_binary_methods   sx    ' 	L 	LB&rr!Qxx00HR9Q<<((F.55b99G(67KKKKK		L 	Lr   c                 |   t          j        ddgt           j                  }t          |          }t          t          j        d                    }t	          |t          j        ||                     t	          |t          j        ||                     t	          |t          j        ||                     d S )NrL   rk   )r<      )r
   rI   float64r   r?   matmulrl   )r   rI   rM   r@   s       r   test_matmulz%TestNDArrayOperatorsMixin.test_matmul   s    !Qrz222u%%
RZ]]++$XryU/K/KLLL$hoj%88	: 	: 	:$hoeZ88	: 	: 	: 	: 	:r   c           	         t          t          j        g d                    }t          t          j                            |t          j        ddg                    d u            t          |t          g d                     d S )N)rL   rk         r   rL   )rj   r   r   )r   r
   rI   r   negativer   r?   )r   rI   s     r   test_ufunc_atz'TestNDArrayOperatorsMixin.test_ufunc_at   sp    "(<<<0011ubh1v&6&6774?@@@$UInnn,E,EFFFFFr   c           	      P   t          j        d          \  }}t          |          t          |          f}t          t          j        t          d                    |           t          t          j        t          t          j        d                              |           d S )Ng      ?)r
   frexpr   r?   rI   )r   mantissaexponentr@   s       r   test_ufunc_two_outputsz0TestNDArrayOperatorsMixin.test_ufunc_two_outputs   s    Xg..(h''8)<)<=$HYw''(((	4 	4 	4$HYrx001122H	> 	> 	> 	> 	>r   N)r-   r/   r0   rJ   rN   r]   rc   rg   rr   rx   rz   r   r   r   r   r   r   rD   rD   ^   s        4 4 4"F F F! ! !8/ / /  O O OL L LL L L: : :G G G
> > > > >r   rD   r	   )#r2   rl   numpyr
   numpy.testingr   r   r   libmixinsNDArrayOperatorsMixinr   r8   r?   ltleeqnegtgeaddsubmultruedivfloordivmoddivmodpowlshiftrshiftand_xoror_ru   rD   r   r   r   <module>r      s=         > > > > > > > > > >&< &< &< &< &<3 &< &< &<R! ! !	N 	N 	N 	N KKKKKKLLLL
OOMLL' .z> z> z> z> z> z> z> z> z> z>r   