o
    "ì¤g_=  ã                   @   sè   d dl Z d dlZd dlZd dlm  mZ d dlmZ ej	Z	G dd„ dƒZ
edkrpdZde Zd\ZZed	d
ƒD ]9Zde Ze ee¡ eed ¡Ze e¡Zede d ƒ eede ƒƒ eded  d›ded	 d›ƒ q8dS dS )é    N)Úbuild_err_msgc                   @   sô   e Zd Zdd„ Z		d dd„Zd!dd„Zejd	d
dd„ ƒZejd	d
dd„ ƒZ	ejd	d
dd„ ƒZ
ejd	d
dd„ ƒZejd	d
dd„ ƒZejd	d
dd„ ƒZejd	d
dd„ ƒZejd	d
dd„ ƒZejd	d
dd„ ƒZejd	d
dd„ ƒZdS )"ÚModuleTesterc                 C   s  || _ |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| _z|j| _W n ty~   |jj| _Y n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   © r%   ú[/var/www/html/ecg_monitoring/venv/lib/python3.10/site-packages/numpy/ma/timer_comparison.pyÚ__init__   sB   ÿ
zModuleTester.__init__Ú Tc              
   C   s,  |   |¡}|   |¡}|  |  |¡|  |¡¡}	|   | j||	d|¡}|   | j||	d|¡}|jjdkrR| tj¡}t	|tj
ƒrK|jdkrKd|t |¡< nt |¡rRd}|jjdkrx| tj¡}t	|tj
ƒrq|jdkrqd|t |¡< nt |¡rxd}z|jdkpˆ|jdkpˆ|j|jk}
|
s¦t||g|d|j› d|j› d |d	d
}|
s¦J |ƒ‚|||ƒ}|	| jur¹|r¹| j||	d}t	|tƒrÄ|}
dg}n| ¡ }| ¡ }
| ¡ }|
sôdd| d¡ t|ƒ  }t||g|d|f  |d	d
}|
s÷J |ƒ‚W dS W dS  ty } zt||g||d	d
}t|ƒ|‚d}~ww )zZ
        Assert that a comparison of two masked arrays is satisfied elementwise.

        ©ÚmaskÚOé   r   r%   z	
(shapes z, z
 mismatch)©ÚxÚy)ÚheaderÚnameséd   g      Y@z
(mismatch %s%%)N)r   r   r   r   ÚdtypeÚcharÚastypeÚnpÚfloat64Ú
isinstanceÚndarrayÚsizeÚisnanÚshaper   r   ÚboolÚravelÚallÚtolistr
   ÚlenÚ
ValueError)r$   Ú
comparisonr.   r/   Úerr_msgr0   Ú
fill_valueÚxfÚyfÚmÚcondÚmsgÚvalÚreducedÚmatchÚer%   r%   r&   Úassert_array_compare/   sl   



 ÿü

ÿüù
€þz!ModuleTester.assert_array_comparec                 C   s   | j | j|||dd dS )zH
        Checks the elementwise equality of two masked arrays.

        zArrays are not equal)rD   r0   N)rO   r   )r$   r.   r/   rD   r%   r%   r&   Úassert_array_equalf   s   
ÿzModuleTester.assert_array_equalÚignore)r?   c                 C   sH   t  ddddtd dddddddg¡}g d	¢}| j||d
}|d  dS )ú!
        Tests creation

        ç      ð?ç       Àç       @ç      @ç      @ç      $Àç      $@ç      @©r,   r   r   r   r   r   r,   r   r   r   r   r   r)   r   N)r6   r   Úpir   )r$   r.   rH   Úxmr%   r%   r&   Útest_0n   s   &zModuleTester.test_0c           	      C   s&  t  ddddtd dddddddg¡}t  g d	¢¡}g d
¢}g d¢}| j||d}| j||d}t  |d|¡}| d¡ ||  d¡ ¡ sGJ ‚|j}|j	t
 dd„ |¡ksWJ ‚|  |¡t|ƒt
 dd„ |¡ ksjJ ‚dD ]$}||_||_||_||_||_|  |¡t|ƒt
 dd„ |¡ ksJ ‚qldS )rR   rS   rT   rU   rV   rW   rX   rY   rZ   )rW   ç        rZ   rU   g      ð¿g      Àr_   rX   rY   rS   r_   rZ   r[   )r   r   r,   r   r   r,   r,   r   r   r   r   r,   r)   g@Œµx¯Dr   c                 S   s   | | S r   r%   r-   r%   r%   r&   Ú<lambda>Š   ó    z%ModuleTester.test_1.<locals>.<lambda>c                 S   ó   | | S r   r%   r-   r%   r%   r&   r`   ‹   ra   ))é   é   )é   é   c                 S   rb   r   r%   r-   r%   r%   r&   r`   “   ra   N)r6   r   r\   r   ÚwhereÚset_fill_valuer   Úanyr<   r:   Ú	functoolsÚreducer
   rA   )	r$   r.   r/   Úm1Úm2r]   ÚymrF   Úsr%   r%   r&   Útest_1y   s(   &
&(úzModuleTester.test_1c           	      C   s¼  t  g d¢¡}| j|g d¢d}| j|g d¢d}|  |¡}t|ƒ t|ƒ t|d ƒt|d ƒu s4J ‚|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  d¡d }|  	|d¡}|  g d¢t
¡}t  g d¢t
¡}|d  |d  |dd… jdks»J ‚g d¢}|  |¡}|  |¡}||u sÏJ ‚| j|dd}||usÜJ ‚d
S )z2
        Tests conversions and indexing.

        )r,   rf   rc   rd   ©r,   r   r   r   r)   )r   r,   r   r,   r,   é	   rf   éc   rd   N)r,   rf   rd   rc   )r   r,   r,   r   é   rS   rZ   )r,   Úhellorf   rd   )r   )r   r   r,   r   r   )Úcopy)r6   r   ÚstrÚreprÚtyperP   r   r   r   r   Úobjectr<   r   )	r$   Úx1Úx2Úx3Úx4ÚnrH   rm   Úm3r%   r%   r&   Útest_2•   s@   




zModuleTester.test_2c                 C   sÒ   |   d¡}| j|d< |  |d¡}|  |  ||g¡|¡sJ ‚|  |  |¡g d¢¡s*J ‚| j|ddd}|  |g d¢¡ | j|ddd}|  ||¡sJJ ‚|jddd}|  ||¡sYJ ‚| dd¡}|  ||¡sgJ ‚d	S )
z&
        Tests resize/repeat

        rc   rf   )é   )r   r   r,   r   r   r   r,   r   )rf   rf   rf   rf   r   ©Úaxis)r   r   r,   r,   rf   rf   rd   rd   N)r   r   r   r   r	   r   r   rP   )r$   r~   Úy4Úy5Úy6Úy7Úy8r%   r%   r&   Útest_3À   s   

zModuleTester.test_3c              	   C   s@  |   d¡}t  d¡}| j|dd…< | ddd¡}| ddd¡}|  t |d¡|  |d¡¡s/J ‚|  t |dd¡|  |dd¡¡sAJ ‚|  t |  |d	¡|  |d	¡¡|  ||¡¡sYJ ‚|  t 	|  |d	¡|  |d	¡¡|  	||¡¡sqJ ‚|  
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.

        é   rt   re   rf   rd   rc   )rf   r   r,   r,   r   )Úabcr,   Údefrf   rd   )r   rd   rc   rŒ   N)r   r6   r   Úreshaper   r   r   r   r   r   r   rz   )r$   r.   r/   Útr%   r%   r&   Útest_4Ô   s&   

 $
ÿ
ÿ
zModuleTester.test_4c                 C   s  |   d¡}|   d¡}|   d¡}| j|d< |d7 }|  ||d ¡s"J ‚|d7 }|  ||d ¡s0J ‚|   d¡}|   d¡}| j|d< |d8 }|  ||d ¡sMJ ‚|d8 }|  ||d ¡s[J ‚|   d¡d }|   d¡d }| j|d< |d9 }|  ||d ¡s|J ‚|d9 }|  ||d ¡sŠJ ‚|   d¡d }|   d¡d }| j|d< |d }|  ||¡s©J ‚|d }|  ||¡sµJ ‚|   d¡d }|   d¡d }| j|d< |d }|  ||d ¡sÖJ ‚||   d¡ }|  ||  d¡¡ |   d¡ tj¡}|   d¡}| j|d< |d7 }|  ||d ¡sJ ‚dS )z*
        Tests inplace w/ scalar

        é
   rf   r,   rS   rU   )r‘   N)r   r   r   rP   r   r5   r6   r7   )r$   r.   r/   r]   r%   r%   r&   Útest_5ì   sR   











zModuleTester.test_5c                 C   sB  | j dtjd}|   d¡}| j dtjd}| j|d< |j}| j dtjd}| j|d< ||7 }||7 }|  ||| ¡s<J ‚|  ||| ¡sFJ ‚|  |j|  ||j¡¡sTJ ‚| j dtjd}| j dtjd}| j|d< |j}| j dtjd}| j|d< ||8 }||8 }|  ||| ¡s‹J ‚|  ||| ¡s•J ‚|  |j|  ||j¡¡s£J ‚| j dtjd}| j dtjd}| j|d< |j}| j dtjd}| j|d< ||9 }||9 }|  ||| ¡sÚJ ‚|  ||| ¡säJ ‚|  |j|  ||j¡¡sòJ ‚| j dtjd}| j dtjd}| j|d< |j}| j dtjd}| j|d< || }|| }dS )z)
        Tests inplace w/ array

        r‘   )r3   rf   éÿÿÿÿN)r   r6   r7   r   r*   r   r   )r$   r.   r/   r]   rH   Úar%   r%   r&   Útest_6!  sT   








zModuleTester.test_6c              	   C   sè   | j dddtd gd ddgdgd  d| j dddtd gd ddgdgd  df}dD ]C}zt| j|ƒ}W n tyF   tt|ƒ}Y nw t| j|ƒ}|d	|j… }||Ž }||Ž }|  | 	d¡| 	d¡|¡ |  |j
|j
¡ q.d	S )
zTests ufuncrS   r   r“   rf   r,   re   r)   )ÚsqrtÚlogÚlog10ÚexpÚ	conjugateN)r   r\   Úgetattrr    r!   Úfromnumericr   ÚninrP   r   Ú_mask)r$   ÚdÚfÚufÚmfÚargsÚurÚmrr%   r%   r&   Útest_7U  s    **ÿÿäzModuleTester.test_7c              	   C   s¾  | j g d¢g d¢d}|  d| j|dd¡ |  d| j|g d¢d¡ | j|g d¢d	d
\}}|  d|¡ |dks;J ‚| j|d d …< | j|dd| ju sNJ ‚| j g d¢g d¢d}| dd¡}| j|d d …d	f< |  | j|ddddg¡ | j|d	dd | ju sƒJ ‚|  ddg| j|dd¡ | j|dd	d\}}|  |ddg¡ g d¢}g d¢g d¢g}|  d¡}|  | j|ddd¡ |  | j|d|dd¡ |   |  d¡d|  d¡ g¡}|  |  |d ¡tj t d¡¡d d ¡ |  | j|ddt d¡d d ¡ |  | j|d	d| j|dd| j|ddd g¡ |  | j|d |dd¡ |  | j|d|dg d¢¡ |  | j|d	d| j|dd| j|ddd g¡ |  	d¡}g d¢}	g d¢g d¢g}
|  
d¡}g d¢}|  | j|  ||¡ddd¡ |  | j|  ||	¡ddd¡ |  | j|  ||¡ddd¡ |  |  | j|  ||¡dd¡d¡ |  ||
¡}|  |  |d ¡d¡ |  | j|ddg d¢¡ |  | j|d	dddg¡ |  | j|d|dg d¢¡ d S )N)r_   rS   rU   rZ   rq   r)   rU   r   rƒ   )rS   rS   rU   rS   )Úweightsr,   )r§   ÚreturnedrV   rf   r_   )r„   r¨   rS   )r   r,   r,   r,   r,   r   )r,   r   r   r   r   r,   re   g      @)r„   r§   rZ   g      (@g«ªªªªª
@)r_   rS   rU   rZ   rV   rY   )r   r   r,   r,   r   r   )r   r,   r,   r,   r,   r,   )r_   rS   ç     ÀX@r©   rV   g      @rW   )r_   rS   r©   r©   rV   rY   )r   rP   Úaverager   rŽ   r   r6   Úaddrk   r   r   r   r
   )r$   ÚottÚresultÚwtsÚw1Úw2r.   r/   rl   rm   r€   Úm4Úm5Úzr%   r%   r&   Útest_99x  sT   
*$22

$ zModuleTester.test_99c                 C   s*   |   d¡}| j|dd…< | ddd¡}d S )Nr‹   rt   re   rf   rd   rc   )r   r   rŽ   )r$   r.   r%   r%   r&   Útest_A¦  s   
zModuleTester.test_AN)r(   r(   T)r(   )Ú__name__Ú
__module__Ú__qualname__r'   rO   rP   r6   Úerrstater^   rp   r   rŠ   r   r’   r•   r¦   r´   rµ   r%   r%   r%   r&   r      s4    "
ÿ
7







*





4

3

"

-r   Ú__main__zNfrom __main__ import ModuleTester 
import numpy
tester = ModuleTester(module)
zimport numpy.ma.core as module
)r‘   r‘   r,   r‚   ztester.test_%i()r‘   z#%iz2..................................................zModuleTester.test_%i.__doc__zcore_current : z.3fz - )rj   ÚtimeitÚnumpyr6   Únumpy._core.fromnumericÚ_corerœ   Únumpy.testingr   r\   r   r¶   Ú
setup_baseÚ	setup_curÚnrepeatÚnloopÚrangeÚiÚfuncÚTimerr   Úcurr   ÚprintÚevalr%   r%   r%   r&   Ú<module>   s.       $
"ó