
    Bwgv                     "   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j0                  ej2                  eeej8                  ej:                  ej<                  ej>                  ej@                  gZ! G d d      Z"y)
    N)assert_assert_equalassert_raisesc                   N    e Zd Zd Zej
                  ej                  fZd Z	d Z
y)	ArrayLikec                 8    t        j                  |      | _        y N)npasarrayvalue)selfr   s     R/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_mixins.py__init__zArrayLike.__init__   s    ZZ&
    c                 v    |j                  dd      }||z   D ](  }t        | j                  t        fz         r"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y  t               |      S )Nout c              3   X   K   | ]"  }t        |t              r|j                  n| $ y wr	   
isinstancer   r   .0xs     r   	<genexpr>z,ArrayLike.__array_ufunc__.<locals>.<genexpr>   s*      ( #-Q	":qwwA (   (*c              3   X   K   | ]"  }t        |t              r|j                  n| $ y wr	   r   r   s     r   r   z,ArrayLike.__array_ufunc__.<locals>.<genexpr>!   s*      " &a3:"r   c              3   @   K   | ]  } t              |        y wr	   )type)r   r   r   s     r   r   z,ArrayLike.__array_ufunc__.<locals>.<genexpr>(   s     71dA7s   at)getr   _HANDLED_TYPESr   NotImplementedtuplegetattrr   )r   ufuncmethodinputskwargsr   r   results   `       r   __array_ufunc__zArrayLike.__array_ufunc__   s    jj## 	&A
 a!4!4	|!CD%%	&  ( &( (! "" F5M (':6:<5 7777t^ 4:f%%r   c                 L    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      s%    '
 jj'..1N&:<r   r   c                 ^    t        |       t        u rt        d | D              S t        |       S )Nc              3   2   K   | ]  }t        |        y wr	   )r   )r   rs     r   r   z"wrap_array_like.<locals>.<genexpr>6   s     2aYq\2s   )r   r#   r   r)   s    r   wrap_array_liker9   4   s*    F|u26222  r   c                    t        t        |       t        |      |       t        | t              rBt        t	        |       t	        |      |       t        | |      D ]  \  }}t        |||        y t        | j                  |j                  |       t        t        | j                  dd       t        |j                  dd       |       y )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?&% S[#h-A*-fh*? 	N&K(mWM	N 	V\\8>>7CWV\\7D9X^^Wd;W	Nr   c                   N    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y)TestNDArrayOperatorsMixinc                 z   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          y )Nc                 .    t        | t        d             y Nr   )r@   r   r8   s    r   checkz<TestNDArrayOperatorsMixin.test_array_like_add.<locals>.checkb   s    (1>r   r   )r   r
   array)r   rI   s     r   test_array_like_addz-TestNDArrayOperatorsMixin.test_array_like_add`   s    	? 	ilQa)A,ilRXXa[()bhhqkIaL()i$q()a)BHHQK(()i$rxx{23bhhqkIbhhqk223r   c                 8   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                   y )Nr      )r   r
   rJ   r@   )r   
array_likerJ   s      r   test_inplacez&TestNDArrayOperatorsMixin.test_inplaceq   sn    rxx}-
a
$Z288QC=1IJ!1$UIbhhsm,DEr   c                 r    G d d      }t        d      } |       }t        ||z   |u        t        ||z   |u        t        t              5  ||z  }d d d        t        t              5  ||z
   d d d        t        t              5  ||z
   d d d        y # 1 sw Y   DxY w# 1 sw Y   3xY w# 1 sw Y   y xY w)Nc                        e Zd ZdZdZd Zd Zy)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   rT   s     r   __radd__z?TestNDArrayOperatorsMixin.test_opt_out.<locals>.OptOut.__radd__   rW   r   )r.   r0   r1   __doc__r*   rV   rY   r   r   r   OptOutrR   |   s    :"Or   r[   rM   )r   r   r   	TypeError)r   r[   rN   opt_outs       r   test_opt_outz&TestNDArrayOperatorsMixin.test_opt_outz   s    	 	 q\
( 	
W$/0*$/0 9% 	"'!J	" 9% 	! 	!9% 	!j 	! 	!	" 	"	! 	!	! 	!s$   B)B!B-B!B*-B6c                      G d dt               }t        d      } |d      }t        ||z   |       t        ||z   |       y )Nc                       e Zd ZdZy)=TestNDArrayOperatorsMixin.test_subclass.<locals>.SubArrayLikez&Should take precedence over ArrayLike.N)r.   r0   r1   rZ   r   r   r   SubArrayLikera      s    8r   rb   r   rM   )r   r@   )r   rb   r   ys       r   test_subclassz'TestNDArrayOperatorsMixin.test_subclass   s>    	99 	9 aLO$QUA.$QUA.r   c                 $   t        d      }t               }t        t              5  ||z    d d d        t        t              5  ||z    d d d        t        t              5  ||z  }d d d        y # 1 sw Y   DxY w# 1 sw Y   3xY w# 1 sw Y   y xY wrH   )r   objectr   r\   )r   r   objs      r   test_objectz%TestNDArrayOperatorsMixin.test_object   s    aLh9% 	G	9% 	!G	9% 	HA	 			 		 		 	s#   A.A:B.A7:BBc           	          t        j                  g d      }t        |      }t        j                  t        j
                  t        t        j                  fD ]#  }t         ||      t         ||                   % y )Nr   rM      )	r
   rJ   r   operatornegposabsinvertr@   )r   rJ   rN   ops       r   test_unary_methodsz,TestNDArrayOperatorsMixin.test_unary_methods   s^    'u%
<<<<??$ 	OB )J2e99MN		Or   c                     t        j                  g d      }t        |      }t        D ]<  }t	         ||d            } ||d      }dj                  |      }t        |||       > y )Nrj   rM   failed for operator {}r;   )r
   rJ   r   _ALL_BINARY_OPERATORSr9   formatr@   )r   rJ   rN   rr   rA   actualr<   s          r   test_forward_binary_methodsz5TestNDArrayOperatorsMixin.test_forward_binary_methods   sc    'u%
' 	LB&r%|4H
A&F.55b9G(67K		Lr   c                     t         D ]E  }t         |dd            } |dt        d            }dj                  |      }t	        |||       G y )Nrl   rM   ru   r;   )rv   r9   r   rw   r@   )r   rr   rA   rx   r<   s        r   test_reflected_binary_methodsz7TestNDArrayOperatorsMixin.test_reflected_binary_methods   sO    ' 	LB&r!Qx0H9Q<(F.55b9G(67K		Lr   c                 d   t        j                  ddgt         j                        }t        |      }t        t        j                  d            }t	        |t        j
                  ||             t	        |t        j
                  ||             t	        |t        j
                  ||             y )NrM   rl   )r=      )r
   rJ   float64r   r@   matmulrm   )r   rJ   rN   rA   s       r   test_matmulz%TestNDArrayOperatorsMixin.test_matmul   s{    !Qrzz2u%
RZZ]+$XryyU/KL$hooj%8	:$hooeZ8	:r   c           	          t        t        j                  g d            }t        t        j                  j                  |t        j                  ddg            d u        t        |t        g d             y )N)rM   rl         r   rM   )rk   r   r   )r   r
   rJ   r   negativer   r@   )r   rJ   s     r   test_ufunc_atz'TestNDArrayOperatorsMixin.test_ufunc_at   sM    "((<01ubhh1v&674?@$UIn,EFr   c           	      &   t        j                  d      \  }}t        |      t        |      f}t        t        j                  t        d            |       t        t        j                  t        t        j                  d                  |       y )Ng      ?)r
   frexpr   r@   rJ   )r   mantissaexponentrA   s       r   test_ufunc_two_outputsz0TestNDArrayOperatorsMixin.test_ufunc_two_outputs   sh    XXg.(h'8)<=$HHYw'((	4$HHYrxx012H	>r   N)r.   r0   r1   rK   rO   r^   rd   rh   rs   ry   r{   r   r   r   r   r   r   rE   rE   ^   s>    4"F!8/OLL:G
>r   rE   r	   )#r3   rm   numpyr
   numpy.testingr   r   r   libmixinsNDArrayOperatorsMixinr   r9   r@   ltleeqnegtgeaddsubmultruedivfloordivmoddivmodpowlshiftrshiftand_xoror_rv   rE   r   r   r   <module>r      s       > >&<33 &<R!	N KKKKKKKKKKKKLLLLLLLL
OOOOMMLLLL' .z> z>r   