
    H/PhN=                        d dl Z d dlmZ d dlZd dlmc mZ d dlm	Z	 ej
        Z
 G d d          Zedk    rdZdez   Zd	\  ZZ ed
d          D ]Zdez  Z e j        ee                              eedz            Z ej        e          Z edez  dz               e edez                        eded          dded
         d           dS dS )    N)reduce)build_err_msgc                   0   e Zd Zd Z	 	 ddZddZ ej        d          d             Z ej        d          d	             Z	 ej        d          d
             Z
 ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d          d             ZdS )ModuleTesterc                    || _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j	        | _	        t          | _
        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        	 |j        | _        n!# t8          $ r |j        j        | _        Y nw xY wg | _        d S N)moduleallequalarangearrayconcatenatecountequalfilledgetmaskgetmaskarrayidinner	make_maskmaskedmasked_arraymasked_valuesmask_ornomaskonesouterrepeatresizesorttake	transposezerosMaskTypeumathAttributeErrorcore	testnames)selfr	   s     Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/ma/timer_comparison.py__init__zModuleTester.__init__   sA   m\
!-\
\
m~"/\
)m"/#1~mK	\
mmK	K	)\
	+DJJ 	+ 	+ 	+*DJJJ	+s   E E,+E, Tc           	      h   |                      |          }|                      |          }|                     |                     |          |                     |                    }	|                      |                     ||	          |          }|                      |                     ||	          |          }|j        j        dk    rr|                    t          j                  }t          |t          j
                  r#|j        dk    rd|t          j        |          <   nt          j        |          rd}|j        j        dk    rr|                    t          j                  }t          |t          j
                  r#|j        dk    rd|t          j        |          <   nt          j        |          rd}	 |j        dk    p|j        dk    p|j        |j        k    }
|
s5t          ||g|d|j         d|j         dz   |d	
          }|
s
J |             |||          }|	| j        ur|r|                     ||	          }t          |t                     r|}
dg}n<|                                }|                                }
|                                }|
sSdd|                    d          z  t+          |          z  z
  }t          ||g|d|dz   |d	
          }|
sJ |            dS dS # t,          $ r*}t          ||g||d	
          }t-          |          |d}~ww xY w)zZ
        Assert that a comparison of two masked arrays is satisfied elementwise.

        maskO   r    z	
(shapes z, z
 mismatch)xy)headernamesd   g      Y@z
(mismatch z%)N)r   r   r   r   dtypecharastypenpfloat64
isinstancendarraysizeisnanshaper   r   boolravelalltolistr   len
ValueError)r(   
comparisonr3   r4   err_msgr5   
fill_valuexfyfmcondmsgvalreducedmatches                   r)   assert_array_comparez!ModuleTester.assert_array_compare/   sE    [[^^[[^^LLa$,,q//::KK))"1)55zBBKK))"1)55zBBGLC$$A!RZ(( QVaZZ!""(1++! GLC$$A!RZ(( QVaZZ!""(1++! 	)GrM2QW]Iqw!'7ID !#QF$+&Q17&Q&Qag&Q&Q&Q%R+1*4	6 6 6
   S   *Q""C##
#''!'44#t$$ +#))++{{}}!..** !E'--"2"223w<<??#QF$+G=BUU&D%E+1*4	6 6 6
   S   ! ! !  	) 	) 	)AjQQQCS//q(	)s   D7K= =
L1%L,,L1c                 D    |                      | j        |||d           dS )zH
        Checks the elementwise equality of two masked arrays.

        zArrays are not equal)rI   r5   N)rT   r   )r(   r3   r4   rI   s       r)   assert_array_equalzModuleTester.assert_array_equalf   s=    
 	!!$*aG)? 	" 	A 	A 	A 	A 	A    ignore)rD   c                     t          j        ddddt          dz  dddddddg          }g d	}|                     ||
          }|d          dS )!
        Tests creation

              ?              @      @      @      $      $@      @r0   r   r   r   r   r   r0   r   r   r   r   r   r-   r   N)r;   r   pir   )r(   r3   rM   xms       r)   test_0zModuleTester.test_0n   s`     Hb"b#r#vr2tS"b"MNN000qq))
1rW   c                    t          j        ddddt          dz  dddddddg          }t          j        g d	          }g d
}g d}|                     ||          }|                     ||          }t          j        |d|          }|                    d           ||z
                      d                                          sJ |j        }|j	        t          d |          k    sJ |                     |          t          |          t          d |          z
  k    sJ dD ]_}||_        ||_        ||_        ||_        ||_        |                     |          t          |          t          d |          z
  k    sJ `dS )rZ   r[   r\   r]   r^   r_   r`   ra   rb   )r_           rb   r]   g      g      rh   r`   ra   r[   rh   rb   rc   )r   r   r0   r   r   r0   r0   r   r   r   r   r0   r-   g@xDr   c                     | |z  S r   r1   r2   s     r)   <lambda>z%ModuleTester.test_1.<locals>.<lambda>   s
    QqS rW   c                     | |z   S r   r1   r2   s     r)   rj   z%ModuleTester.test_1.<locals>.<lambda>   s
    ac rW   ))      )      c                     | |z   S r   r1   r2   s     r)   rj   z%ModuleTester.test_1.<locals>.<lambda>   s
    !A# rW   N)r;   r   rd   r   whereset_fill_valuer   anyrA   r?   r   r   rF   )	r(   r3   r4   m1m2re   ymrK   ss	            r)   test_1zModuleTester.test_1y   s    Hb"b#r#vr2tS"b"MNNHJJJKK111111qr**qr**Xb&!$$
&!!!2~~a  $$&&'''Gw&!444444zz"~~R6//2+F+F!FFFFF! 	L 	LAAGAGBHBHBH::b>>SWWvoor/J/J%JJJJJJ	L 	LrW   c                 Z   t          j        g d          }|                     |g d          }|                     |g d          }|                     |          }t          |           t          |           t	          |d                   t	          |d                   u sJ |d         |d         k    sJ d|d<   d|d<   |                     ||           d|dd	<   d|dd	<   | j        |d<   | j        |dd	<   ||d
d
<   | j        |d<   |                     g dg d          |d
d
<   |                     g dg d          |d
d
<   t          j        d          dz  }| 	                    |d          }|                     g dt                    }t          j        g dt                    }|d          |d          |dd         j        dk    sJ g d}|                     |          }|                     |          }||u sJ |                     |d          }||usJ d
S )z2
        Tests conversions and indexing.

        )r0   ro   rl   rm   r0   r   r   r   r-   )r   r0   r   r0   r0   	   ro   c   rm   N)r0   ro   rm   rl   )r   r0   r0   r      r[   rb   )r0   helloro   rm   )r   )r   r   r0   r   r   )copy)r;   r   strreprtyperV   r   r   r   r   objectrA   r   )	r(   x1x2x3x4nrM   ru   m3s	            r)   test_2zModuleTester.test_2   sJ    Xlll##ZZZ..ZZZ..ZZ^^BRBqE{{d2a5kk))))!u1~~~~11B'''1Q31Q31+1Q31111!!,,,==111!!,,,==111Yq\\#C((ZZ***F33X(((&11
1
1!A#w}$$$$OONN1^^ABwwww^^AA^&&{{{{{{rW   c                    |                      d          }| j        |d<   |                     |d          }|                     |                     ||g          |          sJ |                     |                     |          g d          sJ |                     |dd          }|                     |g d           |                     |dd          }|                     ||          sJ |                    dd          }|                     ||          sJ |                    dd          }|                     ||          sJ d	S )
z&
        Tests resize/repeat

        rl   ro   )   )r   r   r0   r   r   r   r0   r   )ro   ro   ro   ro   r   axis)r   r   r0   r0   ro   ro   rm   rm   N)r   r   r   r
   r   r   r   rV   )r(   r   y4y5y6y7y8s          r)   test_3zModuleTester.test_3   sO    [[^^1[[T""}}T--r2h77<<<<<}}T\\"--/G/G/GHHHHH[[\[22$<$<$<===[[QQ[''}}R$$$$$YY|!Y,,}}R$$$$$YYq!__}}R$$$$$$$rW   c           	      :   |                      d          }t          j         d          }| j        |dd<   |                    ddd          }|                    ddd          }|                     t          j        |d          |                     |d                    sJ |                     t          j        |dd          |                     |dd                    sJ |                     t          j        |                     |d	          |                     |d	                    |                     ||                    sJ |                     t          j	        |                     |d	          |                     |d	                    | 	                    ||                    sJ | 
                    g d
t                    }| j        |d<   |                     |g d          }|d	         dk    sJ |d         dk    sJ |d         dk    sJ dS )zB
        Test of take, transpose, inner, outer products.

           r}   rn   ro   rm   rl   )ro   r   r0   r0   r   )abcr0   defro   rm   )r   rm   rl   r   N)r   r;   r   reshaper
   r!   r    r   r   r   r   r   )r(   r3   r4   ts       r)   test_4zModuleTester.test_4   s    KKOOIbMM!A#IIaAIIaA}}R\!Y7799U9UVVVVV}}RWQ	155tyyIq7Q7QRRRRR}}RXdkk!Q&7&7Q9J9JKK JJq!,,. . 	. 	. 	.}}RXdkk!Q&7&7Q9J9JKK JJq!,,. . 	. 	. 	.JJ...77{!IIa##tu}}}}tqyyyytqyyyyyyrW   c                    |                      d          }|                      d          }|                      d          }| j        |d<   |dz  }|                     ||dz             sJ |dz  }|                     ||dz             sJ |                      d          }|                      d          }| j        |d<   |dz  }|                     ||dz
            sJ |dz  }|                     ||dz
            sJ |                      d          dz  }|                      d          dz  }| j        |d<   |dz  }|                     ||dz            sJ |dz  }|                     ||dz            sJ |                      d          dz  }|                      d          dz  }| j        |d<   |dz  }|                     ||          sJ |dz  }|                     ||          sJ |                      d          dz  }|                      d          dz  }| j        |d<   |dz  }|                     ||dz            sJ ||                      d          z  }|                     ||                     d                     |                      d                              t          j                  }|                      d          }| j        |d<   |dz  }|                     ||dz             sJ dS )z*
        Tests inplace w/ scalar

        
   ro   r0   r[   r]   )r   N)r   r   r
   rV   r   r:   r;   r<   )r(   r3   r4   re   s       r)   test_5zModuleTester.test_5   s    KKOOKKOO[[__1	Q}}Q!$$$$$
a}}R1%%%%%KKOO[[__1	Q}}Q!$$$$$
a}}R1%%%%%KKOOC[[__S 1	S}}Q!$$$$$
c	}}R1%%%%%KKOOA[[__Q1	Q}}Q"""""
a}}R#####KKOOC[[__S 1	S}}Q#&&&&&
dkk"ooDIIe$4$4555KKOO""2:..[[__1	R}}QB'''''''rW   c                    |                      dt          j                  }|                      d          }|                      dt          j                  }| j        |d<   |j        }|                      dt          j                  }| j        |d<   ||z  }||z  }|                     |||z             sJ |                     |||z             sJ |                     |j        |                     ||j                            sJ |                      dt          j                  }|                      dt          j                  }| j        |d<   |j        }|                      dt          j                  }| j        |d<   ||z  }||z  }|                     |||z
            sJ |                     |||z
            sJ |                     |j        |                     ||j                            sJ |                      dt          j                  }|                      dt          j                  }| j        |d<   |j        }|                      dt          j                  }| j        |d<   ||z  }||z  }|                     |||z            sJ |                     |||z            sJ |                     |j        |                     ||j                            sJ |                      dt          j                  }|                      dt          j                  }| j        |d<   |j        }|                      dt          j                  }| j        |d<   ||z  }||z  }dS )z)
        Tests inplace w/ array

        r   )r8   ro   N)r   r;   r<   r   r.   r
   r   )r(   r3   r4   re   rM   as         r)   test_6zModuleTester.test_6!  s    KK"*K--KKOO[[2:[..1GKK"*K--"	Q
a}}Q!$$$$$}}R1%%%%%}}RWdll1af&=&=>>>>>KK"*K--[[2:[..1GKK"*K--"	Q
a}}Q!$$$$$}}R1%%%%%}}RWdll1af&=&=>>>>>KK"*K--[[2:[..1GKK"*K--"	Q
a}}Q!$$$$$}}R1%%%%%}}RWdll1af&=&=>>>>>KK"*K--[[2:[..1GKK"*K--"	Q
arW   c                 Z   |                      dddt          dz  gdz  ddgdgdz  z             |                      dddt          dz  gdz  ddgdgdz  z             f}dD ]}	 t          | j        |          }n%# t          $ r t          t
          |          }Y nw xY wt          | j        |          }|d	|j                 } || } || }|                     |	                    d          |	                    d          |           |                     |j
        |j
                   d	S )
zTests ufuncr[   r   r   ro   r0   rn   r-   )sqrtloglog10exp	conjugateN)r   rd   getattrr$   r%   fromnumericr	   ninrV   r   _mask)r(   dfufmfargsurmrs           r)   test_7zModuleTester.test_7U  sR    ZZaRT*1,Aq61#a%<Z@@ZZaRT*1,Aq61#a%<Z@@C 	8 	8A&-TZ++! - - -[!,,-a((BWbfW:DTBTB##BIIaLL"))A,,BBB##BHbh77779	8 	8s   $A::BBc           
         |                      g dg d          }|                     d|                     |d                     |                     d|                     |g d                     |                     |g dd	
          \  }}|                     d|           |dk    sJ | j        |d d <   |                     |d          | j        u sJ |                      g dg d          }|                    dd          }| j        |d d d	f<   |                     |                     |d          ddg           |                     |d	          d         | j        u sJ |                     ddg|                     |d                     |                     |dd	          \  }}|                     |ddg           g d}g dg dg}|                     d          }|                     |                     |d          d           |                     |                     |d|          d           |                      |                     d          d|                     d          z  g          }|                     |                     |d           t          j                            t          j        d                    dz  dz             |                     |                     |d          t          j        d          dz  dz             |                     |                     |d	          |                     |d          |                     |d          dz  g           |                     |                     |d |          d           |                     |                     |d|          g d           |                     |                     |d	          |                     |d          |                     |d          dz  g           | 	                    d          }g d}	g dg dg}
| 
                    d          }g d}|                     |                     |                     ||          d          d           |                     |                     |                     ||	          d          d           |                     |                     |                     ||          d          d           |                     |                     |                     |                     ||          d                    d           |                     ||
          }|                     |                     |d           d           |                     |                     |d          g d           |                     |                     |d	          ddg           |                     |                     |d|          g d           d S )N)rh   r[   r]   rb   rz   r-   r]   r   r   )r[   r[   r]   r[   )weightsr0   )r   returnedr^   ro   rh   )r   r   r[   )r   r0   r0   r0   r0   r   )r0   r   r   r   r   r0   rn   g      @)r   r   rb   g      (@g
@)rh   r[   r]   rb   r^   ra   )r   r   r0   r0   r   r   )r   r0   r0   r0   r0   r0   )rh   r[        X@r   r^   g      @r_   )rh   r[   r   r   r^   ra   )r   rV   averager   r   r   r;   addr   r"   r   r   r   )r(   ottresultwtsw1w2r3   r4   rt   ru   r   m4m5zs                 r)   test_99zModuleTester.test_99x  s    jj)))j==T\\#A\%>%>???T\\#?O?O?O\%P%PQQQll30@0@0@1lMMV,,,czzzzAAA||Ca|((DK7777jj)))j==kk!QKAAAqD	Sq 9 9C:FFF||Ca|((+t{::::R$,,s,*C*CDDDll3Ql;;b"X...   "4"4"45KKNNQQ 7 7===QQ C CSIIIJJADKKNN(:;<<Q 5 5rv}}RYq\\7R7RSU7UVY7YZZZQQ 7 719J29MNNNQQ 7 7$,,qq,:Q:QSWS_S_`ahiS_SjSjmpSp9qrrrQb A A6JJJQQ C CE^E^E^___QQ 7 7$,,qq,:Q:QSWS_S_`ahiS_SjSjmpSp9qrrrZZ]]   "4"4"45YYq\\T->->q"-E-EA N NPSTTTT->->q"-E-EA N NPSTTTT->->q"-E-EA N NPSTTT

4<<8I8I!R8P8PWX<+Y+Y Z Z\]^^^a$$Q 5 5v>>>QQ 7 79U9U9UVVVQQ 7 7#sDDDQQ C CEbEbEbcccccrW   c                 v    |                      d          }| j        |dd<   |                    ddd          }d S )Nr   r}   rn   ro   rm   rl   )r   r   r   )r(   r3   s     r)   test_AzModuleTester.test_A  s9    KKOO!A#IIaArW   N)r+   r+   T)r+   )__name__
__module____qualname__r*   rT   rV   r;   errstaterf   rx   r   r   r   r   r   r   r   r   r1   rW   r)   r   r      s            D IK$(5) 5) 5) 5)nA A A A R[X   R[XL L L6 R[X( ( (T R[X% % %& R[X  . R[X2( 2( 2(h R[X1 1 1f R[X 8  8  8D R[X+d +d +dZ R[X    rW   r   __main__zNfrom __main__ import ModuleTester 
import numpy
tester = ModuleTester(module)
zimport numpy.ma.core as module
)r   r   r0   r   ztester.test_%i()r   z#%iz2..................................................zModuleTester.test_%i.__doc__zcore_current : z.3fz - )timeit	functoolsr   numpyr;   numpy._core.fromnumeric_corer   numpy.testingr   rd   r   r   
setup_base	setup_curnrepeatnlooprangeifuncTimerr   curr   printevalr1   rW   r)   <module>r      s              - - - - - - - - - ' ' ' ' ' ' U^ ^ ^ ^ ^ ^ ^ ^B z4J 3Z?IWeU1a[[ = =!A%fl4++227E"HEEbgclleai& !!!dd1A566777;A;;;s1v;;;<<<< = =rW   