
    Cwg                        d dl mZ d dlZd dlZd dlZd dlmc mZ d dl	mc m
Z
 d dlmZmZ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mZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZ ej                  Z[ddZ\ G d d      Z] G d d	      Z^ G d
 d      Z_d Z`y)    )reduceN)assert_assert_raisesassert_equal)KMaskTypeMaskedArrayabsoluteaddallallcloseallequalalltruearangearccosarcsinarctanarctan2arrayaveragechooseconcatenate	conjugatecoscoshcountdivideequalexpfilledgetmaskgreatergreater_equalinnerisMaskedArrayless
less_equalloglog10	make_maskmaskedmasked_arraymasked_equalmasked_greatermasked_greater_equalmasked_insidemasked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_optionmasked_valuesmasked_wheremaximumminimummultiplynomasknonzero	not_equalonesouterproductputravelrepeatresizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh	transposewherezerosc                 J    t        | |      }|st        d| d|  d|        |S )NzNot eq:
z
----)r   print)vwmsgresults       Q/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/ma/tests/test_old_ma.pyeqrZ      s0    a^FuBqcs+,M    c                      e Zd Zd Zd Zej                  j                  dddg      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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")#TestMac                    t        j                  ddddt        dz  dddddddg      }t        j                  g d	      }d}g d
}g d}t        ||      }t        ||      }t        j                  g d      }t        |g d      }	t        j                  |d|      }
|j                  }|j                  d       |||||||||	|
|f| _        y )N      ?g              @      @      @      $      $@      @)rb           re   r`   g            rf   rc   rd   r_   rf   re   )   r   r   r   r   r   rh   r   r   r   r   r   )r   r   rh   r   r   rh   rh   r   r   r   r   rh   mask)g      rf         ?g?r   rh   r   r   @xD)npr   pirP   rD   set_fill_valuedselfxya10m1m2xmymzzmxfss               rY   setup_methodzTestMa.setup_method&   s    HHb"b#r#vr2tS"b"MNHHJK111212HH&'1<(XXb%#GG
% QRRQB:r[   c                 H   | j                   \  }}}}}}}}}	}
}t        t        |              t        t        |             t        t	        |      |       t        |j                  |       t        |j
                  |j
                         t        |j                  t        d |             t        t        |      t        |      t        d |      z
         t        t        ||
             t        t        t        |d      |
             t        t        ||             y )Nc                     | |z  S N rt   ru   s     rY   <lambda>z)TestMa.test_testBasic1d.<locals>.<lambda>=   s
    Q r[   c                     | |z   S r   r   r   s     rY   r   z)TestMa.test_testBasic1d.<locals>.<lambda>>   s
    QU r[   rm   )rq   r   r$   r   rD   dtypesizer   r   lenrZ   r   rr   s               rY   test_testBasic1dzTestMa.test_testBasic1d5   s    48FF1AsBBAr2qM!$$%b!"U2Y"RXXq!RXXqww'RWWf%6:;U2YB&1BB*G GH2r
6"e$b)*1b	r[   r~         )      c                 N   | j                   \  }}}}}}}}	}
}}||_        ||_        ||_        ||_        ||_        t        t        |              t        t        |             t	        t        |      |       t	        |j                  |       t	        |j
                  t        d |             t	        t        |      t        |      t        d |      z
         t        t        ||             t        t        t        |d      |             t        t        ||             y )Nc                     | |z  S r   r   r   s     rY   r   z)TestMa.test_testBasic2d.<locals>.<lambda>Q   s
    !a% r[   c                     | |z   S r   r   r   s     rY   r   z)TestMa.test_testBasic2d.<locals>.<lambda>R   s
    a!e r[   rm   )rq   rD   r   r$   r   r   r   r   r   rZ   r   )rs   r~   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   s               rY   test_testBasic2dzTestMa.test_testBasic2dC   s     59FF1AsBBAr2qM!$$%b!"U2Y"RXXq!RWWf%7;<U2YB&1CR*H HI2r
6"e$b)*1b	r[   c                    | j                   \  }}}}}}}}}	}
}t        ddgddgg      }t        |ddgddgg      }t        t	        ||z  ||z               t        t	        ||z   ||z                t        t	        ||z
  ||z
               dD ]B  }|j                  |      }|j                  |      }|j                  |      }|j                  |      }|
j                  |      }
t        t	        | |              t        t	        ||z   ||z                t        t	        ||z
  ||z
               t        t	        ||z  ||z               t        j                  dd      5  t        t	        ||z  ||z               d d d        t        t	        ||z   ||z                t        t	        ||z
  ||z
               t        t	        ||z  ||z               t        j                  dd      5  t        t	        ||z  ||z               d d d        t        t	        ||z   ||z                t        t	        ||z
  ||z
               t        t	        ||z  ||z               t        t	        ||z  ||z               t        t	        |dz  |dz               t        t	        t        |      dz  t        |      dz               t        t	        ||z  ||z               t        t	        t        j                  ||      t        ||                   t        t	        t        j                  ||      t        ||                   t        t	        t        j                  ||      t        ||                   t        j                  dd      5  t        t	        t        j                  ||      t        ||                   d d d        E y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   kxY w)	Nrh   r   r   r   ))   r   )r   r   ignorer   invalid      @)rq   r   r+   r   rZ   reshapern   errstateabsr
   rJ   r9   r   )rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   a2da2dms                 rY   test_testArithmeticzTestMa.test_testArithmeticW   sH   48FF1AsBBAr2qaVaV$%C1a&1a&!1239cDj)*39cDj)*39cDj)*( 	=A		!A		!AABABABBrB3K Bq1ub2g&'Bq1ub2g&'Bq1ub2g&'Hh? ,1q5"r'*+,BsQwb)*BsQwb)*BsQwb)*Hh? /37C"H-./Bq3wS)*Bq3wS)*Bq3wS)*Bq3wS)*BqAvrQw'(Bs1v}c"gn56BqAvrRx()Brvva|SR[12Br{{1a((2r*:;<Br{{1a((2r*:;<Hh? =299Q?F2rN;<= =7	=, ,
/ /= =s$   'O3O#4O0O 	#O-	0O:	c                     t        j                  dg      }t        dg      }t        t        ||z   t                     t        t        ||z   t                     y )Nrh   )rn   r   r   
isinstancer   )rs   namas      rY   test_testMixedArithmeticzTestMa.test_testMixedArithmetic}   sB    XXqc]A3Z
27K01
27K01r[   c                 
   | j                   \  }}}}}}}}}	}
}t        t        t        j                  |      t	        |                   t        t        t        j
                  |      t        |                   t        t        t        j                  |      t        |                   t        t        t        j                  |      t        |                   t        t        t        j                  |      t        |                   t        t        t        j                  |      t        |                   t        j                  dd      5  t        t        t        j                  t        |            t        |                   t        t        t        j                  t        |            t        |                   t        t        t        j                  t        |            t        |                   d d d        t        t        t        j                  |      t        |                   t        t        t        j                   |      t!        |	                   t        t        t        j"                  |      t#        |	                   t        t        t        j$                  |      t%        |	                   t        t        t        j&                  ||      t'        ||                   t        t        t        j(                  |      t)        |                   t        t        t        j*                  ||      t+        ||                   t        t        t        j,                  ||      t-        ||                   t        t        t        j.                  ||      t/        ||                   t        t        t        j0                  ||      t1        ||                   t        t        t        j2                  ||      t3        ||                   t        t        t        j4                  ||      t5        ||                   t        t        t        j6                  |      t7        |                   t        t        t        j8                  ||f      t9        ||f                   t        t        t        j8                  ||f      t9        ||f                   t        t        t        j8                  ||f      t9        ||f                   t        t        t        j8                  |||f      t9        |||f                   y # 1 sw Y   lxY w)Nr   r   )rq   r   rZ   rn   r   r   rE   rF   rM   rN   r   rI   r   r'   r(   r   r   r   r   r   r	   r   r<   r%   r!   r&   r"   r   r   rr   s               rY   test_testUfuncs1zTestMa.test_testUfuncs1   sd   48FF1AsBBAr2q266!9c"g&'2771:tBx()266!9c"g&'2771:tBx()266!9c"g&'2771:tBx()[[(; 	5Brwws1vR12Brvvc!f~s2w/0BrxxA'r34	5 	266!9c"g&'299Q<,-299Q<,-299Q<,-2::a#WR_562;;q>8B<01288Aq>5R=122<<1%yR'89:2771a=$r2,/02::a#WR_562==A&
2r(:;<2##Aq)=R+@AB2<<?IbM232>>1a&);Bx+@AB2>>1a&);1v+>?@2>>1a&);Aw+?@A2>>1a),k1b!*.EFG)	5 	5s   B/U//U9c           	      N   t        g dg d      }t        t        |      j                  j                  t
        j                  u        t        dt        |             t        dt        d             t        t        dt        ddg                   |j                  d      }t        t        |      j                  j                  t
        j                  u        t        t        t        |d      t
        j                               t        t        |      j                  j                  t
        j                  u        t        t        dt        |                   t        t        t        |d            t        u        t        t        ddgt        |d                   y )	Nrf   r_   r`   re   rh   r   r   r   ri   r   rh   r   )r   r   r   )r   r   r   r   typern   intpr   rZ   r   r   ndarrayr    r:   )rs   otts     rY   test_xtestCountzTestMa.test_xtestCount   s   $<8c
  %%01Qc
#Qa!1eAQC()*kk&!c
  %%01
5a="**56c
  %%011eCj!"c1&&01Aq65a=)*r[   c                 8   | j                   \  }}}}}}}}}	}
}t        j                  |      }t        |      }t        t	        t        |      t        j                  |                   t        t	        t        |      t        j                  |                   y r   )
rq   rn   rA   r   rZ   maxr7   r   minr8   )rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   xrxmrs                 rY   test_testMinMaxzTestMa.test_testMinMax   sr    48FF1AsBBAr2qXXa[Bi 	3r7GNN3/013r7GNN3/01r[   c                 n   | j                   \  }}}}}}}}}	}
}t        t        t        j                  j                  |      t	        j
                  |                   t        t        t        j                  j                  |      t	        j                  |                   t        t        dt        t        d      d                   t        t        dt        t        d      d                   t        t        t        j                  |d      t        |d                   t        t        t        j                  t        |d      d      t        |d                   t        t        t        j                  |d      t        |d                   t        t        t        j                  |d      t        |d                   t        t        t        j                  |d      t        |d                   t        t        t        j                  t        |d      d      t        |d                   t        |      dkD  rt        t        t        j                  ||fd      t        ||fd                   t        t        t        j                  j                  |d      t	        j
                  |d                   t        t        t        j                  |d      t        |d                   t        t        t        j                  |d      t        |d                   y y )Nr   r   axisrh   )rq   r   rZ   rn   r
   r   
accumulaterK   r   r   prodr?   r   r   rr   s               rY   test_testAddSumProdzTestMa.test_testAddSumProd   s   48FF1AsBBAr2q266==#SZZ]34266$$Q'):;<1c%(+,-1c%(+,-266!!$c!!n56266&Q-a0#bq/BC266!Q<Q+,27711%wqq'9:;2771a='!Q-012776"a=q1"2A.0 	1q6A:Br~~q!fa0*B8Q79 :Brvv}}Q*CJJq!,<=>Brvva|SAY/0Brwwq!}gam45 r[   c           	      J   t        j                  g d      }t        |g d      }t        |g d      }t        |      }t        |       t        |       t	        t        t        j                  |      t        |d                   t	        t        |d         t        |d         u        t	        |d   |d   k(         t	        |d   t        u        t	        t        |d   |d                t	        t        |dd	 |dd	              t	        t        |d d  |d d               t	        t        |dd  |dd               d
|d<   d
|d<   t	        t        ||             d|dd d|dd t	        t        ||             t        |d<   t	        t        ||             t        |dd t	        t        ||             ||d d  t        |d<   t	        t        t        |      t        g d                   t        g dg d      |d d  t	        t        t        |      t        g d                   t        g dg d      |d d  t	        t        t        |      t        g d                   t	        t        |t        g d                   t        j                  d	      dz  }t        |d      }t	        t        ||             t	        t        t        g dt              |j                               t	        t        d|j                                t        g dt"              }t        j                  g dt"              }|d   }|d   }t%        t        |      t               t%        t        |      t               t%        ||       t	        |dd j&                  dk(         y )N)rh   r   r   r   r   ri   )r   rh   r   rh   r   )
fill_valuerh   r      	   c   r   rl   rh   r   r   r   )r   rh   rh   r   r_   re   )r   r   r   rh   r   )rh   hellor   r   )r   )rn   r   strreprr   rZ   rH   r   r*   r   r    r+   r   r5   r   rj   r   objectr   rD   )rs   x1x2x3x4s1s2s          rY   test_testCIzTestMa.test_testCI   s   XXl#2L)2L)2YBR2772;RA 678RUtBqE{*+1A1 2a5"Q% !2a7BqG$%2a5"Q% !2ab62ab6"#112r
1Q1Q2r
12r
1Q2r
11eL&9:;\<81eL&9:;\<81eL&9:;U<012YYq\C2s#2r
9277CD3&'%v.XX(&1UUT"Xs#T"Xs#R1Q%&r[   c                    g d}t        |      }t        |      }t        ||u        t        |d      }t        ||u       t        j                  d      }t	        ||      }t        |j
                  |u       t        t        ||j
                               t        |j                  |u        t	        |d      }t        |j                  j                  |j                  j                  k(         t	        ||d      }t        |j                  |u        t        |d   t        u        d	|d<   t        |d   t        u       t        |j                  |u        t        t        |j                  d             t	        ||d
      }	t        |	j                  |u       t        |	d   t        u        d	|	d<   t        |	d   t        u       t        |	j                  |u       t        t        |	j                  d             t	        |dz  |      }
t        t        |
      j                  |dz  j                  u        t        d      }t        |d<   t        |d      }t        t        t        ||g      |             t        t        t!        |      g d             t#        |dd      }t        t        |g d             t#        |dd      }t        t        ||             y )N)r   r   rh   r   r   T)copyr   ri   r   rj   r   r   r   rh   r_   r   )   )r   r   rh   r   r   r   rh   r   )r   r   r   r   r   )r   r   rh   rh   r   r   r   r   )r)   r   rn   r   r   _datar   _mask__array_interface__r*   rj   r   r   rC   rZ   r   r    rB   )rs   nmrx   m3r   y1y1ay2y2ay3r   y4y5y6s                  rY   test_testCopySizezTestMa.test_testCopySize  sN   aLq\Rqt$YYq\2A"#RXX&'ABQ 			--,,- 	. 2BQ'B1 11V#$B!$%BQQ'		"#A& !AAf$%		"#1%&28!$r
  R#X$4$445AY1B;Bx("-.72; 89:B1-2/01B"2r
r[   c                 t   t        d      }g d}t        |      }|j                         }t        ||      }t	        |d   t
        u        t	        |d   t
        u        ddg|ddg<   t	        |j                  |u        t	        |d   t
        u        t	        |d   t
        u       t	        t        |g d	             t        ||d
      }|j                  g dg d       t	        |j                  |u       t	        |d   t
        u        t	        |d   t
        u        t	        t        |g d             y )Nr   )r   r   r   rh   rh   ri   r   r   
   (   rh   )r   r   r   r   Tr   )r   rh   r   )r   d      )r   r   r   r   r   )	r   r)   r   r   r   r*   r   rZ   r@   )rs   rq   r   r   rx   rt   s         rY   test_testPutzTestMa.test_testPut5  s    1IaLVVX!!!!H1a&	1!!F"#1()*!"4(	i(r!"!!1*+,r[   c                    t        d      }t        |g d      }t        ddgddg      }t        |d   t        u       t        |d	   t        u       ||dd
 t        |d   t        u        t        |d	   t        u       t        t	        |g d             t        d      }t        |g d      }|dd
 }t        ddgddg      }t        |d   t        u       t        |d	   t        u       ||d d  t        |d   t        u        t        |d   t        u       t        t	        |ddg             t        |d   t        u        t        |d	   t        u       t        t	        |g d             y )Nr   )r   r   r   r   r   ri   r   r   rh   r   r   r   r   )r   rh   r   r   r   )r   r   r   r*   rZ   )rs   rq   rt   r{   ru   s        rY   test_testPut2zTestMa.test_testPut2K  sL   1I!/*2r(!Q(!F"#!F"#!A!!F"#1'()1I!/*aF2r(!Q(!F"#!F"#!!!F"#1r2h !!F"#1'()r[   c                     | j                   \  }}}}}}}}}	}
}g d}t        j                  |      d   }t        |||	       t	        t        t        ||d      |	k(               y )N)rh   r   r   r   r   r   rh   r   r   rh   r   rh   r   r   )rq   rn   r;   r@   r   r   rL   )rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   is                 rY   test_testMaPutzTestMa.test_testMaPute  s_    48FF1AsBBAr2q0JJqM!B2DQQ'2-./r[   c                    t        d      }|j                  dd      }d|j                  d<   t        |d   dk(         |d|z  z   }t        t	        |j
                  |             t        t	        |j                  d|z               t        t	        |t        |      z  j
                  d|z  |z               d	|j                  d
<   t        d      }t        |d<   t        t        |d         t        t              k(         |dk\  }t        t        t        |t        t                    dk(         t        t        t        |t        t                    |j                  k(         t        ||t              }t        |j                  |j                  u        t        |d   t        u        t        |d   t        u        t        |d   t        u        t        |d   t        u       t        |d   t        u       t        t	        ||             t        |t        |      }t        |j                  |j                  u        t        |d   t        u        t        |d   t        u       t        |d   t        u       t        |d   t        u        t        |d   t        u        t        ||      }t        |j                  |j                  u        t        |d   t        u        t        |d   t        u       t        |d   t        u       t        |d   t        u        t        |d   t        u        t        t	        ||             t        g d      }t        g d      }t        |d<   t        |||       }t        t	        |g d             t        |d<   t        |||       }t        t	        |g d             t        |d   t        u        t        |d   t        u       t        |d   t        u        t        t	        t        t!        |d      |      t#        |d                   t        t	        t        t%        |d      |      t'        |d                   t        t	        t        t)        |d      |      t+        |d                   t        t	        t        t-        |d      |      t/        |d                   t        t	        t        t1        |d      |      t3        |d                   t        t	        t        t5        |d      |      t7        |d                   t        t	        t        t1        |d      |      t3        |d                   t        t	        t9        t;        t=        d            dd      g d             t        t	        t?        t;        t=        d            dd      g d             t        t	        t9        t        t;        t=        d            g d      dd      j@                  g d             t        t	        t?        t        t;        t=        d            g d      dd      j@                  g d             t        t	        t7        t        t;        t=        d            g d      d      j@                  g d             t        t	        t3        t        g dg d      d      j@                  g d             t        t	        t        g dg d       g d!             tC        d"tD        jF                  #      }tI        |j                  tJ              }t        ||      }t        t	        ||             tM        || |f      }t        t	        |g d             t        |d   t        u        t        |d   t        u       t        |d   t        u        t        d$      }t        |d<   t        d$      dz  }t        |d<   t        g d%g d&      }|jO                  d      }t        |||      }t        |||      }	t        t	        ||	             t        tQ        |	      tR        u        t        t	        |	g d'             t        |t        d      }t        t	        |g d(             t        |dt              }t        t	        |g d)             y )*N   r   r   r   )rh   r   y              $@r   e   rf   .r   r   r      r   )r_   r`   re   ra   rb   )rh   rh   rh   r   r   r   )r_   r`   rf   rg   rh   )r      r   r   r   )r   rh   r   r   r   )rh   r   r   r   r   ri   )rh   rh   rh   rh   r   )r   rh   r   r   r   )rh   rh   r   r   rh   )rh   r   rh   r   r   )r   r   rh   r   rh   )rh   r   rh   r   rh   )rh   rh   r   r   r   )rh   r   r   r   r   )r   r   r   r   r   )r   r   r   )r   r   )rh   rh   rh   r   r   r   )rh   r   r   r   r   r   )r   rh   r      r   2   )r   r   r   rh   rh   rh   )r   rh   rh   r   r   r   )*r   r   flatr   rZ   realimagr   r*   r   r   rP   rD   r   r6   r   r!   r-   r"   r.   r%   r0   r&   r1   r<   r2   r   r,   r/   listranger3   rj   r=   rn   float32rQ   r   r   r   r    r:   )
rs   rt   r{   catestbtestctestru   cmr|   s
             rY   test_testOddFeatureszTestMa.test_testOddFeaturesl  s   2JIIaOq	$2aK166116626"#A	!$**C!GaK89s2J!AaD	S[()FeAvv./145eAvv./177:;!Q177"#!!!!F"#!F"#1a!VQ177"#!!F"#!F"#!!A177"#!!F"#!F"#!!1a&'/"!!QO1+,-!!QO1+,-!!F"#!<1q1>!Q3GHI<a 3Q7'1-/ 	0<Q
A.Aq0ABC<
1a 0!46G16MNO<	!Q35Ea5KLM<aQ/a1CDE<	!Q35Ea5KLM=eAhA68MNO>$uQx.!Q79LMN=tE!H~,;"=>?DDHD"$ 	% 	>%U1X-<#>?@!EEIT"$ 	% 	<d58n+:!<=>@@D"$ 	% 	#E//>%@ABDDHD"$ 	% 	<A$& 	'\4ekk8,UE*5% !1r1g1+,-!!F"#!1I!1IN!$+=>XXa[!QN2q!_1b	v%&2,-.!VQ1+,-!Q1,-.r[   c                 B   t        t        t        g dg d      g d             t        t        t        g dg d      g d             t	        d      }t	        d      dz
  }t
        |d<   t
        |d<   t        t        t        ||      t        t        ||      ||                   t        t        t        ||      t        t        ||      ||                   t        t        j                  |      dk(         t        t        j                  |      d	k(         y )
N)rh   r   r   )r   r   r   )rh   r   r   )r   r   r   r   r   r   r   r   )
r   rZ   r8   r7   r   r*   rP   r%   r!   r   )rs   rt   ru   s      rY   test_testMinMax2zTestMa.test_testMinMax2  s    79i0)<=79i0)<=1I1IM!!71a=%Q
Aq"9:;71a=%1q!"<=>q!Q&'q!Q&'r[   c                 F   t        d      }t        j                   d      }t        |dd |j                  ddd      }|j                  ddd      }t	        t        t        j                  |d      t        |d                   t	        t        t        j                  |dd      t        |dd                   t	        t        t        j                  t        |d	      t        |d	            t        ||                   t	        t        t        j                  t        |d	      t        |d	            t        ||                   t        g d
t              }t        |d<   t        |g d      }t	        |d	   dk(         t	        |d   dk(         t	        |d   dk(         y )N   r   r   r   r   r   )r   r   rh   rh   r   )abcrh   defr   r   )r   r   r   r  )r   rn   r*   r   r   rZ   rO   rL   r#   r   r>   r   r   )rs   rt   ru   ts       rY    test_testTakeTransposeInnerOuterz'TestMa.test_testTakeTransposeInnerOuter  sA   2JIIbM!AIIaAIIaA2<<9-yI/FGH2771i+T!Y-BCD288F1aL&A,7A;  	!288F1aL&A,7A;  	!)62!I!!	!	r[   c                 v   t        d      }t        d      }t        d      }t        |d<   |dz  }t        t        ||dz                |dz  }t        t        ||dz                t        d      }t        d      }t        |d<   |dz  }t        t        ||dz
               |dz  }t        t        ||dz
               t        d      dz  }t        d      dz  }t        |d<   |dz  }t        t        ||dz               |dz  }t        t        ||dz               t        d      dz  }t        d      }t        |d<   |dz  }t        t        ||             |dz  }t        t        ||             t        d      dz  }t        d      dz  }t        |d<   |dz  }t        t        ||dz               |t        d      z  }t        t        |t	        d                   t        d      j                  t        j                        }t        d      }t        |d<   |dz  }t        t        ||dz                y )Nr   r   rh   r_   r`   )r   )r   r*   r   rZ   r=   astypern   r   )rs   ru   rt   ry   s       rY   test_testInplacezTestMa.test_testInplace  s   2J2JBZ1	Q1a!e
a1a!e2JBZ1	Q1a!e
a2q1u2JBZ#1	S1a!e
c	2q1u2JNBZ1	a1a
q1a2JBZ#1	S1a#g
fRj2tE{#$2Jbjj)BZ1	R1a"fr[   c                    t        d      }t        |ddd<   |j                  dd      }t        dt        j
                  dz         D ]C  }t	        j                  ||      }t	        j                  |      }t        t        ||             E y )Nr   r   r   r   r   rh   )protocol)
r   r*   r   r   pickleHIGHEST_PROTOCOLdumpsloadsr   rZ   )rs   rt   protor~   ru   s        rY   test_testPicklezTestMa.test_testPickle$  su    2J!Bq&	IIaO1f559: 	EQ/AQABq!H	r[   c                     t        d      }t        |d<   t        t        t              dk(         t        |d   t        u        t	        t        |d   d      d       y )Nr   rh   z--r   )r   r*   r   r   r   r   )rs   xxs     rY   test_testMaskedzTestMa.test_testMasked.  sJ    AY1Ft#$1 VBqE1%q)r[   c           
         t        g dg d      }t        t        dt        |d                   t        t        dt        |g d                   t        |g dd	
      \  }}t        t        d|             t        |dk(         t        |d d  t        t        |d      t        u        t        g dg d      }|j                  dd      }t        |d d df<   t        t        t        |d      ddg             t        t        |d      d   t        u        t        t        ddgt        |d                   t        |dd	      \  }}t        t        |ddg             y )Nr   r   ri   r`   r   r   )r_   r_   r`   r_   weightsTr  returnedra   r   rh   rf   r   r  r_   )r   r   rZ   r   r*   r   )rs   r   rX   wtss       rY   test_testAverage1zTestMa.test_testAverage16  s"   $<83!,-.3-=>?@c+;dK3 s
A!$./$<8kk!QAqD	73Q'#s45!$Q'612B8WSq123cD93R!"r[   c           
      4
   g d}g dg dg}t        d      }t        t        t        |d      d             t        t        t        |d|      d             t	        t        d      dt        d      z  g      }t        t        t        |d       t
        j                  j                  t        j                   d            d	z  d
z               t        t        t        |d      t        j                   d      d	z  dz               t        t        t        |d      t        |d      t        |d      dz  g             t        t        t        |d |      d             t        t        t        |d|      g d             t        t        t        |d      t        |d      t        |d      dz  g             t        d      }g d}g dg dg}t        d      }g d}	t        t        t        t        ||      d      d             t        t        t        t        ||      d      d             t        t        t        ||      d      t        u        t        t        t        ||	      d      d       t        t        t        t        ||      d            d       t        ||      }
t        t        t        |
d       d             t        t        t        |
d      g d             t        t        t        |
d      ddg             t        t        t        |
d|      g d             t        d      }t        d      dz  }t        ||g||ggdd      \  }}t        t        |      t        |             t        |j                  |j                         t        t        d      dddgd      \  }}t        t        |      t        |             t        t        d      d      \  }}t        t        |      t        |             t        t        d      t        d      d      \  }}t        t        |      t        |      k(         t	        ddgddggt              }t        |ddgddgg      }t        |d      }t        t!        |dd	g             t        |d      }t        t!        |dd	g             t        |d       }t        t!        |d              t        |d      }t        t!        |d!d"g             y )#N)r   rh   rh   rh   rh   r   )rh   r   r   r   r   rh   r   r   r   r   )r   r  r`   re   g      (@rh   r  g
@)rf   r_   r`   re   ra   rd   )r   r   rh   rh   r   r   )r   rh   rh   rh   rh   rh   rf   )rf   r_        X@r  ra   g      @rb   )rf   r_   r  r  ra   rd   r   Tr  )r   r   r   )r   r  r  )r  r  r   r   rk   r_   g@g      ?ra   )r   r   r   r   r   rn   r
   r   rQ   r=   r+   r*   r   r   rD   floatrZ   )rs   w1w2rt   ru   rw   rx   r   m4m5r{   abr1r2r   r   a2daa2dmas                      rY   test_testAverage2zTestMa.test_testAverage2I  s    "451I+S12B7=>6!9cF1Io./D)!#ryy|!<r!AC!GI 	J+RYYq\B->-CDE+")!!"4gaa6H6L!MO 	PD"5x@AB7!:< 	=+")!!"4gaa6H6L!MO 	P1X "45!Wa!41=sCDa!41=sCDQ+!4>?W\!R0q93?U7<2#6Q?@!DBD)845+!=? 	@+c3Z89B7!>@ 	A 1I1IM1a&1a&)DABU2Yb	*RXXrxx(iq1a&4PBU2Yb	*i48BU2Yb	*i$y/DQBb	U2Y&'aVaV$e,C1a&1a&!12s#4#s$%1%53*%&4(5'"#1%53*%&r[   c           	         t        dt        t        d                   t        dt        t        d                   t        dt        t        dggg                   t        dt        t        dgg                   t	        t
        t        t        ddg             t	        t        t        t        ddg             t	        t        t        t        ddgddg             y )Nrh   r_   r   ri   )r   intr   r  r   	TypeError
ValueErrorboolrs   s    rY   test_testToPythonzTestMa.test_testToPython  s    QE!H&S%a/*QEQC5'N+,S%se-.iq!f6j$q!f6j$q!fAq6(BCr[   c                    t        dd      }t        j                  d      5  t        dt        d      z  j                         d d d        t        d|z   j                         t        | j                         t        | j                         t        t        ||      j                         t        t        ||      j                         t        |j                         j                  |j                  j                  u        t        dd      }t        |j                         |j                  k(         t        t        |      t        t                     y # 1 sw Y   xY w)Nr   rh   ri   r   r   )r   rn   r   r   rj   r7   r8   r   r   r   r   r   r4   )rs   ry   rt   s      rY   test_testScalarArithmeticz TestMa.test_testScalarArithmetic  s    11[[) 	)Qq\''(	)R"

"

B$$%B$$%		!!RXX^^34!!
agg%&SWc"567	) 	)s   "EE)c                    t        g d      }t        t        |j                         |j                  j                                      t        t        |j                         |j                  j                                      t        t        |j                         |j                  j                                      t        t        |j                         |j                  j                                      t        t        |j                  ddddd      |j                  j                  ddddd                   t        t        |j                  g d      |j                  j                  g d                   t        t        |j                         |j                  j                                      t        t        |j                         |j                  j                                      t        ddgddgg      }t        t        |j                         |j                  j                                      t        t        |j                         |j                  j                                      t        t        |j                  ddg      |j                  j                  ddg                   t        t        |j                         |j                  j                                      y )Nrh   r   r   r   rh   r   r   r   rh   r   rh   )r   r   rZ   anyr   r   argmaxargminr   compressconjr   diagonalrK   rL   rO   )rs   r$  r   s      rY   test_testArrayMethodszTestMa.test_testArrayMethods  s   )1557AGGKKM*+1557AGGKKM*+188:qww~~/01188:qww~~/01188Aq!Q*77>>!Q1a8: 	;1::i(!''*:*:9*EFG1668QWW\\^,-1;;=!''"3"3"567Aq6Aq6"#1::<!1!1!3451557AGGKKM*+1661a&>177<<A#7891;;=!''"3"3"567r[   c                 J    t        g d      }t        |j                  d       y )Nr6  rh   )r   r   ndimrs   r$  s     rY   test_testArrayAttributeszTestMa.test_testArrayAttributes  s    )QVVQr[   c           	          t        t        t        j                        D cg c]&  }|t        t              vr|j                  d      s|( c}        y c c}w )N_)r   dirrn   r   r   
startswith)rs   r   s     rY   test_testAPIzTestMa.test_testAPI  sI    BJJ ,1[!11c*  , , 	- ,s   +Ac                     t        g d      }t        g dg d      }t        |d   j                  d       t        |d   j                  d       t        |d   j                  d       y )Nr6  r7  ri   r   r   rh   )r   r   rD   )rs   r$  r%  s      rY   test_testSingleElementSubscriptz&TestMa.test_testSingleElementSubscript  sN    ))),QqTZZ$QqTZZ$QqTZZ$r[   c                 b    t        g dg d      }|dk\  }d||<   t        |d   t        u        y )Nr   )rh   r   rh   r   ri   r   r   r   )r   r   r*   )rs   r$  r   s      rY   test_assignment_by_conditionz#TestMa.test_assignment_by_condition  s0    ,\2F!!r[   c                     t        ddgddg      }t        ddgddg      }|dk  }||   ||<   ddg}t        |j                  |       y )Nr   rh   Fri   T)r+   r   rj   )rs   r$  r%  rj   expected_masks        rY   test_assignment_by_condition_2z%TestMa.test_assignment_by_condition_2  sW    !Quen5!QtTl31uD'$QVV]+r[   N)$__name__
__module____qualname__r   r   pytestmarkparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r*  r1  r4  r>  rB  rG  rI  rK  rN  r   r[   rY   r]   r]   $   s    ; [[S66"23 4&$=L2H>+26*0'd1f-,*40c/J((0d*#&8'tD88" -
% ,r[   r]   c                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestUfuncsc                     t        dddt        dz  gdz  ddgdgdz  z         t        dddt        dz  gdz  ddgdgdz  z         f| _        y )Nr_   r   r   r   rh   r   ri   )r   ro   rq   r0  s    rY   r   zTestUfuncs.setup_method  sb    aR!V,q01va7GHaR!V,q01va7GHKr[   c           	      l   g d}dD ]  }	 t        t        |      }t        t        j
                  |      }| j                  d |j                   }t	        j                         5  ||v rt	        j                  d       |dv rt	        j                  d        || } || }d d d        t        t        j                  d      j                  d      |             t        t        |j                  |j                                y # t        $ r t        t        |      }Y w xY w# 1 sw Y   xY w)N)rI   arctanhr   r   arccoshrY  r'   r(   r   true_dividefloor_divide	remainderfmod)*rI   r'   r(   r   r   rE   r   rM   r   r   r   rF   r   rN   arcsinhrZ  rY  r	   fabsnegativefloorceillogical_notr
   rJ   r9   r   r[  r\  r]  r^  hypotr   r   r<   r&   r"   r%   r!   logical_and
logical_orlogical_xorr   )r   )rY  r'   r(   r3  r   )getattrumathAttributeErrorfromnumericrn   r   rq   ninr   seterrr   rZ   r   eqmaskrj   )rs   f_invalid_ignorefufmfargsurmrs           rY   test_testUfuncRegressionz#TestUfuncs.test_testUfuncRegression  s   @> 	.A -UA& "B66'266?D ((IIh/33IIX.YY Bryy|RYYq\156F277BGG,-=	.$ " -[!,- s   D
"?D*
D'&D'*D3	c                     | j                   d   }t        t        |d              t        t        |d             t	        t        |d d d      d       t	        t        |d      d       y )Nr   r   r   )rq   r   r   rG   r   rK   r?   rA  s     rY   test_reducezTestUfuncs.test_reduce  sX    FF1IGAA&&'#$S2AQ'+WQQ'+r[   c                 H   t        dd      j                  dd      }t        |dk  |      }t        |j	                         |j	                                t        |j                         d       t        |j	                  d      |j	                  d      k(  j                                t        |j                  d      g dk(  j                                t        |j	                  d      d   j                         t        |j                  d      d   j                         y )Nrh      r   r   r   r   )r   r   r   r   )	r   r   r6   r   r   r   r   r   rj   )rs   r$  amasks      rY   test_minmaxzTestUfuncs.test_minmax  s    1bM!!!Q'QUA&UYY[!%%'*UYY[!$1q)..011-2245		!Q$$%		!Q$$%r[   c                 r    dD ]2  }t        g dg d      }t        t        t        |      dg             4 y )Nz?bhilqpBHILQPfdgFDGO)rh   r   r   r   )r   r   rh   rh   ri   r   )r   r   rZ   r;   )rs   r  rt   s      rY   test_nonzerozTestUfuncs.test_nonzero  s2    ' 	)Al6ABwqzA3'(	)r[   N)rO  rP  rQ  r   rw  ry  r}  r  r   r[   rY   rV  rV    s    K#.J,&)r[   rV  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestArrayMethodsc                 z   t        j                  g d      }|j                  dd      }|j                  dddd      }t        j                  g d      }t        ||      }t        ||j                  |j                              }t        ||j                  |j                              }|||||||f| _        y )N)$g      @gGz.@g-!@g      !@g&1?gʡE@g\( @gQ@g{G#@gPn@gh|?!@g!rh@gjt@gJ+@gzGa@g!rh@gʡE@g-@g)\(@g(\B#@g+@guV@g~j@g"~@gK7@g
ףp=J#@gGz@gMb@g}?5^#@g/$@g!rhm@g-#@gJ+@gMb@gʡ@g-?r   r   r   )$r   rh   r   rh   r   r   rh   r   rh   rh   r   rh   r   r   r   rh   r   rh   r   r   r   rh   rh   rh   rh   r   r   rh   r   r   r   r   rh   r   rh   r   )datarj   )rn   r   r   rD   rq   )rs   rt   XXXr   mxmXmXXs           rY   r   zTestArrayMethods.setup_method  s    HH @ A IIaOYYq!Q"HH ( ) "		!'' 23!))BHH"56QAr2s+r[   c                    | j                   \  }}}}}}}|j                         }t        |j                         |j                         j	                         j                                t        t        |j                         |j                         t        |j                  |j                         z  d      z
               y )Nr   r   )	rq   r=  r   trace
compressedrK   r   rZ   rj   )	rs   rt   r  r  r   r  r  r  mXdiags	            rY   
test_tracezTestArrayMethods.test_trace&  s    &*ff#Ar1b"cRXXZ!9!9!;!?!?!AB288:779s6;;+E01(3 34 	5r[   c           	      r   | j                   \  }}}}}}}|j                  dd      }t        t        |j                  |j                               t        t        |j
                  |j                  dd                   t        t        |j
                  |j
                  j                  dd                   y )Nr   r   )rq   clipr   rZ   rj   r   )	rs   rt   r  r  r   r  r  r  clippeds	            rY   	test_clipzTestArrayMethods.test_clip.  s    &*ff#Ar1b"c''!Q-7<<)*7==!&&A,/07=="((--1"567r[   c                    | j                   \  }}}}}}}|j                  \  }}t        |j                         t	        j                  |j                                      t	        j                  |t        j                        }	t	        j                  |t        j                        }
t        |      D ]/  }t	        j                  |d d |f   j                               |
|<   1 t        |      D ]+  }t	        j                  ||   j                               |	|<   - t        t        |j                  d      |
             t        t        |j                  d      |	             y Nr   rh   )rq   rD   r   ptprn   r  rQ   float64r   r   rZ   )rs   rt   r  r  r   r  r  r  r   rowscolsks               rY   test_ptpzTestArrayMethods.test_ptp5  s   &*ff#Ar1b"cA 	RVVXrvvbmmo67xx2::&xx2::&q 	4AffR1X0023DG	4q 	1AffRU--/0DG	1266!9d#$266!9d#$r[   c                     | j                   \  }}}}}}}|j                  dd      }t        t        |d   |d d df                |j                  dd      }	t	        |	j
                  d       y )Nr   rh   r   r   )r   r   r   r   )rq   swapaxesr   rZ   r   rD   )
rs   rt   r  r  r   r  r  r  	mXswapped
mXXswappeds
             rY   test_swapaxeszTestArrayMethods.test_swapaxesD  se    &*ff#Ar1b"cKK1%	9R="QU),-\\!Q'
Z%%|4r[   c                 d   | j                   \  }}}}}}}|j                  d      }t        t        |j                  |j                  d      j                  d                   |j                  d      }t        t        |j                  |j                  d      j                  d                   y r  )rq   cumprodr   rZ   r   r   	rs   rt   r  r  r   r  r  r  mXcps	            rY   test_cumprodzTestArrayMethods.test_cumprodK  s    &*ff#Ar1b"czz!}4::ryy|33A678zz!}4::ryy|33A678r[   c                 d   | j                   \  }}}}}}}|j                  d      }t        t        |j                  |j                  d      j                  d                   |j                  d      }t        t        |j                  |j                  d      j                  d                   y r  )rq   cumsumr   rZ   r   r   r  s	            rY   test_cumsumzTestArrayMethods.test_cumsumR  s    &*ff#Ar1b"cyy|4::ryy|221567yy|4::ryy|221567r[   c           	      4   | j                   \  }}}}}}}t        t        |j                  d       |j	                         j                                      t        t        |j                  d       |j	                         j                                      t        t        |j                  d      j                  |j                  d      j                               t        t        |j                         j                  |j                         j                               |j                  d      |j                  d      }	}t        d      D ]  }
t        t        |	|
   ||
   j	                         j                                      t        t        ||
   |d d |
f   j	                         j                                      t        t        t        j                  ||
         |d d |
f   j	                         j                                       y )Nr   r   r   rh   r   )
rq   r   rZ   varr  stdrD   r   rn   rI   )rs   rt   r  r  r   r  r  r  mXvar0mXvar1r  s              rY   test_varstdzTestArrayMethods.test_varstdY  s   &*ff#Ar1b"c266t6$bmmo&9&9&;<=266t6$bmmo&9&9&;<=3777?(("&&a&.*>*>?@2668>>1557==12FFFNBFFFNq 	=ABvay"Q%"2"2"4"8"8":;<Bvay"QT("5"5"7";";"=>?Brwwvay)!!Q$x22488:< =	=r[   N)rO  rP  rQ  r   r  r  r  r  r  r  r  r   r[   rY   r  r    s*    ,,58%598=r[   r  c                 h    | t         u r|t         u S |t         u r| t         u S | |k(  j                         S r   )r:   r   )rw   rx   s     rY   ro  ro  g  s5    	V|V|	V|V|"H>>r[   ) )a	functoolsr   r  rR  numpyrn   numpy._core.umath_corerj  numpy._core.fromnumericrl  numpy.testingr   r   r   numpy.mar   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   ro   rZ   r]   rV  r  ro  r   r[   rY   <module>r     s        ! ! - -                     UUf
, f
,R>) >)BV= V=rr[   