o
    Ô­j¼Ù  ã                   @   sæ  d dl Z d dlZd dlZd dlZd dlZd dlZd dl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 G dd„ dƒZG dd„ deƒZG dd„ dƒZ G d	d
„ d
eƒZ!G dd„ deƒZ"G dd„ deƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd„ dƒZ(G dd„ dƒZ)G dd„ dƒZ*dd„ Z+dd „ Z,d!d"„ Z-d#d$„ Z.d%d&„ Z/d'd(„ Z0d)d*„ Z1d+d,„ Z2d-d.„ Z3d/d0„ Z4d1d2„ Z5G d3d4„ d4eƒZ6d5d6„ Z7ej8j9e d7d8�G d9d:„ d:ƒƒZ:dS );é    N)Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_lessÚbuild_err_msgÚassert_raisesÚassert_warnsÚassert_no_warningsÚassert_allcloseÚassert_approx_equalÚassert_array_almost_equal_nulpÚassert_array_max_ulpÚclear_and_catch_warningsÚsuppress_warningsÚassert_string_equalÚassert_ÚtempdirÚtemppathÚassert_no_gc_cyclesÚHAS_REFCOUNTc                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )Ú_GenericTestc                 C   s   |   ||¡ d S ©N©Ú_assert_func©ÚselfÚaÚb© r   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/testing/tests/test_utils.pyÚ_test_equal   ó   z_GenericTest._test_equalc                 C   s:   t tƒ� |  ||¡ W d   ƒ d S 1 sw   Y  d S r   )r   ÚAssertionErrorr   r   r   r   r    Ú_test_not_equal   s   
"ÿz_GenericTest._test_not_equalc                 C   s,   t  ddg¡}t  ddg¡}|  ||¡ dS )z/Test two equal array of rank 1 are found equal.é   é   N©ÚnpÚarrayr!   r   r   r   r    Útest_array_rank1_eq   ó   z _GenericTest.test_array_rank1_eqc                 C   s,   t  ddg¡}t  ddg¡}|  ||¡ dS )z7Test two different array of rank 1 are found not equal.r%   r&   N©r(   r)   r$   r   r   r   r    Útest_array_rank1_noteq#   r+   z#_GenericTest.test_array_rank1_noteqc                 C   s<   t  ddgddgg¡}t  ddgddgg¡}|  ||¡ dS )z/Test two equal array of rank 2 are found equal.r%   r&   é   é   Nr'   r   r   r   r    Útest_array_rank2_eq*   s   z _GenericTest.test_array_rank2_eqc                 C   s4   t  ddg¡}t  ddgddgg¡}|  ||¡ dS )ú:Test two arrays with different shapes are found not equal.r%   r&   Nr,   r   r   r   r    Útest_array_diffshape1   s   z!_GenericTest.test_array_diffshapec                 C   s"   t jddgtd�}|  |d¡ dS )zTest object arrays.r%   ©ÚdtypeN)r(   r)   Úobjectr!   ©r   r   r   r   r    Útest_objarray8   s   z_GenericTest.test_objarrayc                 C   s   |   g d¢d¡ d S )N©r%   r&   r.   )r!   ©r   r   r   r    Útest_array_likes=   ó   z_GenericTest.test_array_likesN)Ú__name__Ú
__module__Ú__qualname__r!   r$   r*   r-   r0   r2   r7   r:   r   r   r   r    r      s    r   c                   @   sŒ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚTestArrayEqualc                 C   ó
   t | _d S r   )r   r   r9   r   r   r    Úsetup_methodC   ó   
zTestArrayEqual.setup_methodc                    ó4   ‡ fdd„}dD ]}||ƒ qdD ]}||ƒ qdS )z!Test rank 1 array for all dtypes.c                    óL   t  d| ¡}| d¡ | ¡ }| ¡ }| d¡ ˆ  ||¡ ˆ  ||¡ d S )Nr&   r%   r   ©r(   ÚemptyÚfillÚcopyr!   r$   ©Útr   r   Úcr9   r   r    ÚfooH   ó   

z.TestArrayEqual.test_generic_rank1.<locals>.fooú?bhilqpBHILQPfdgFDG©ÚS1ÚU1Nr   ©r   rL   rJ   r   r9   r    Útest_generic_rank1F   ó   


ÿz!TestArrayEqual.test_generic_rank1c                 C   sl   t  d¡}t  d¡}tt| j||ƒ |}|  ||¡ t  d¡}t  d¡}tt| j||ƒ |}|  ||¡ d S )Nl   Cj¬<T"3ÿËwÝ¤-l   (M$c7u£†vÈé+   é
   )r(   r)   r   r#   r   ©r   ÚxÚyr   r   r    Útest_0_ndim_arrayY   s   



z TestArrayEqual.test_0_ndim_arrayc                    rC   )z!Test rank 3 array for all dtypes.c                    rD   )N)r/   r&   r.   r%   r   rE   rI   r9   r   r    rL   j   rM   z.TestArrayEqual.test_generic_rank3.<locals>.foorN   rO   Nr   rR   r   r9   r    Útest_generic_rank3h   rT   z!TestArrayEqual.test_generic_rank3c                 C   sN   t  ddt jg¡}t  ddt jg¡}|  ||¡ t  g d¢¡}|  ||¡ dS )z$Test arrays with nan values in them.r%   r&   r8   N)r(   r)   Únanr!   r$   ©r   r   r   rK   r   r   r    Útest_nan_array{   s
   zTestArrayEqual.test_nan_arrayc                 C   sF   t  ddg¡}t  ddg¡}|  ||¡ t  ddg¡}|  ||¡ dS )r1   ÚfloupiÚfloupaÚfloupipiN)r(   r)   r!   r$   r]   r   r   r    Útest_string_arrays…   s
   z!TestArrayEqual.test_string_arraysc                 C   s¾   t  ddtfdtfg¡}ddg|d< ddg|d< | ¡ }|  ||¡ t  ddtfdtfdtfg¡}|d  ¡ |d< |d  ¡ |d< t t¡� |  ||¡ W d  ƒ dS 1 sXw   Y  dS )zTest record arrays.r&   r_   r`   r%   ra   N)	r(   rF   ÚfloatrH   r!   ÚpytestÚraisesÚ	TypeErrorr$   r]   r   r   r    Útest_recarrays�   s   ÿ"ÿzTestArrayEqual.test_recarraysc                 C   sˆ   t jjg d¢g d¢d�}t  dt jdg¡}|  ||¡ |  ||¡ t jjg d¢g d¢d�}t  t jddg¡}|  ||¡ |  ||¡ d S )N©ç      @ç      @ç      @)FTF©Úmaskri   rk   )TFFrj   )r(   ÚmaÚMaskedArrayr)   r\   r!   Úinfr   r   r   r    Útest_masked_nan_inf¡   s   z"TestArrayEqual.test_masked_nan_infc                 C   sŒ   G dd„ dt jƒ}t  ddg¡ |¡}t  ddg¡ |¡}tt||kƒtƒ t||kƒ t||kƒ |  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   ó   e Zd Zdd„ Zdd„ ZdS )z?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArrayc                 S   s   t t | |¡ ¡ ƒS r   )Úboolr(   ÚequalÚall©r   Úotherr   r   r    Ú__eq__²   r;   zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__c                 S   s
   | |k S r   r   rv   r   r   r    Ú__ne__µ   rB   zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__N)r<   r=   r>   rx   ry   r   r   r   r    ÚMyArray±   s    rz   ç      ð?ç       @ri   )	r(   Úndarrayr)   Úviewr   Útypers   r!   r$   ©r   rz   r   r   r   r   r    Útest_subclass_that_overrides_eq¬   s   z.TestArrayEqual.test_subclass_that_overrides_eqc                 C   s”   G dd„ dt jƒ}t  ddg¡ |¡}t  ddg¡ |¡}ttƒ� t  |¡ W d   ƒ n1 s1w   Y  |  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   ó   e Zd Zdd„ ZdS )zKTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc                 _   s   t S r   )ÚNotImplemented©r   ÚargsÚkwargsr   r   r    Ú__array_function__Ã   ó   z^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__N)r<   r=   r>   r‡   r   r   r   r    rz   Â   ó    rz   r{   r|   ri   )	r(   r}   r)   r~   r   rf   ru   r!   r$   r€   r   r   r    Ú+test_subclass_that_does_not_implement_npallÁ   s   
ÿz:TestArrayEqual.test_subclass_that_does_not_implement_npallc              	   C   s–   t  t¡�< tjdd�� tj t g d¢tj¡t g d¢tj¡¡ W d   ƒ n1 s,w   Y  W d   ƒ d S W d   ƒ d S 1 sDw   Y  d S )NÚraise)ru   r8   )r%   gœWw'&l¡7r.   )	rd   re   r#   r(   ÚerrstateÚtestingr   r)   Úfloat32r9   r   r   r    Útest_suppress_overflow_warningsÎ   s   þÿÿ"ÿz.TestArrayEqual.test_suppress_overflow_warningsc                 C   ó"   t  g d¢¡}d}|  ||¡ dS )z@Test comparing an array with a scalar when all values are equal.©r{   r{   r{   r{   Nr'   r   r   r   r    Útest_array_vs_scalar_is_equalÖ   ó   z,TestArrayEqual.test_array_vs_scalar_is_equalc                 C   r�   )z@Test comparing an array with a scalar when not all values equal.©r{   r|   ri   r{   Nr,   r   r   r   r    Útest_array_vs_scalar_not_equalÝ   r“   z-TestArrayEqual.test_array_vs_scalar_not_equalc                 C   sP   t  g d¢¡}d}t t¡� t||dd� W d  ƒ dS 1 s!w   Y  dS )z9Test comparing an array with a scalar with strict option.r‘   r{   T©ÚstrictN©r(   r)   rd   re   r#   r   r   r   r   r    Útest_array_vs_scalar_strictä   s
   "ÿz*TestArrayEqual.test_array_vs_scalar_strictc                 C   s.   t  g d¢¡}t  g d¢¡}t||dd� dS )ú-Test comparing two arrays with strict option.r‘   Tr–   N)r(   r)   r   r   r   r   r    Útest_array_vs_array_strictì   s   z)TestArrayEqual.test_array_vs_array_strictc                 C   sZ   t  g d¢¡}t  g d¢¡}t t¡� t||dd� W d  ƒ dS 1 s&w   Y  dS )rš   )r%   r%   r%   r‘   Tr–   Nr˜   r   r   r   r    Ú test_array_vs_float_array_strictó   s
   "ÿz/TestArrayEqual.test_array_vs_float_array_strictN)r<   r=   r>   rA   rS   rZ   r[   r^   rb   rg   rq   r�   rŠ   r�   r’   r•   r™   r›   rœ   r   r   r   r    r?   A   s"    
r?   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestBuildErrorMessagec                 C   s@   t  g d¢¡}t  g d¢¡}d}t||g|ƒ}d}t||ƒ d S )N©grÄZ|
 ð?çrÄZ|
  @ç«&ˆº @©gãˆµø ð?ç«&ˆº  @çãˆµø @úThere is a mismatchz‚
Items are not equal: There is a mismatch
 ACTUAL: array([1.00001, 2.00002, 3.00003])
 DESIRED: array([1.00002, 2.00003, 3.00004])©r(   r)   r   r   ©r   rX   rY   Úerr_msgr   r   r   r   r    Útest_build_err_msg_defaultsþ   s   z1TestBuildErrorMessage.test_build_err_msg_defaultsc                 C   óD   t  g d¢¡}t  g d¢¡}d}t||g|dd�}d}t||ƒ d S )Nrž   r¡   r¤   F)Úverbosez)
Items are not equal: There is a mismatchr¥   r¦   r   r   r    Útest_build_err_msg_no_verbose	  s   z3TestBuildErrorMessage.test_build_err_msg_no_verbosec                 C   r©   )Nrž   r¡   r¤   )ÚFOOÚBAR)Únamesz{
Items are not equal: There is a mismatch
 FOO: array([1.00001, 2.00002, 3.00003])
 BAR: array([1.00002, 2.00003, 3.00004])r¥   r¦   r   r   r    Útest_build_err_msg_custom_names  ó   z5TestBuildErrorMessage.test_build_err_msg_custom_namesc                 C   r©   )N)g0¸D   ð?rŸ   r    )g_p‰   ð?r¢   r£   r¤   rV   )Ú	precisionzš
Items are not equal: There is a mismatch
 ACTUAL: array([1.000000001, 2.00002    , 3.00003    ])
 DESIRED: array([1.000000002, 2.00003    , 3.00004    ])r¥   r¦   r   r   r    Ú#test_build_err_msg_custom_precision  r°   z9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r<   r=   r>   r¨   r«   r¯   r²   r   r   r   r    r�   ü   s
    	r�   c                   @   ó\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )Ú	TestEqualc                 C   r@   r   )r   r   r9   r   r   r    rA   +  rB   zTestEqual.setup_methodc                 C   sH   |   tjtj¡ |   tjgtjg¡ |  tjtjg¡ |  tjd¡ d S ©Nr%   )r   r(   r\   r$   r9   r   r   r    Útest_nan_items.  s   zTestEqual.test_nan_itemsc                 C   s:   |   tjtj¡ |   tjgtjg¡ |  tjtjg¡ d S r   )r   r(   rp   r$   r9   r   r   r    Útest_inf_items4  s   zTestEqual.test_inf_itemsc                 C   st   |   t dd¡t dd¡¡ |   t dd¡t dd¡¡ |  t dd¡t dd¡¡ |  t dd¡t dd¡¡ d S )Nú
2017-01-01ÚsÚmz
2017-01-02)r!   r(   Ú
datetime64r$   r9   r   r   r    Útest_datetime9  s    

þ

þ

þ

þzTestEqual.test_datetimec                 C   st  t  d¡}t  dd¡}t  dd¡}t  d¡}t  dd¡}t  dd¡}|||g}|||g}t ||¡D ]\}	}
|  |	|
¡ |  |	g|
g¡ |  |	g|
¡ q2t ||¡D ]\}	}
|  |	|
¡ |  |	g|
g¡ |  |	g|
¡ qRt ||¡D ]E\}	}
|  |	|
¡ |  |	|
g¡ |  |	g|
g¡ |  |	gt  dd¡¡ |  |
gt  dd¡¡ |  |	gt  dd¡¡ |  |
gt  dd¡¡ qrd S )NÚNaTr¹   Únsr¸   é{   )r(   r»   Útimedelta64Ú	itertoolsÚproductr   r$   )r   Únadt_no_unitÚnadt_sÚnadt_dÚnatd_no_unitÚnatd_sÚnatd_dÚdtsÚtdsr   r   r   r   r    Útest_nat_itemsM  s2   



ùzTestEqual.test_nat_itemsc                 C   s   |   dd¡ |  dd¡ d S )NÚabÚabb)r   r$   r9   r   r   r    Útest_non_numericl  s   zTestEqual.test_non_numericc                 C   sŒ   |   tddƒtddƒ¡ |   tdtjƒtdtjƒ¡ |  tdtjƒtddƒ¡ |  ttjdƒtdtjƒ¡ |  ttjtjƒttjdƒ¡ d S ©Nr%   r&   )r   Úcomplexr(   r\   r$   rp   r9   r   r   r    Útest_complex_itemp  s
   "zTestEqual.test_complex_itemc                 C   s   |   tjtj¡ d S r   )r$   r(   ÚPZEROÚNZEROr9   r   r   r    Útest_negative_zerow  r;   zTestEqual.test_negative_zeroc                 C   sR   t  tddƒtdt jƒg¡}t  tddƒtddƒg¡}|  ||¡ |  ||¡ d S rÏ   ©r(   r)   rÐ   r\   r   r$   rW   r   r   r    Útest_complexz  s   zTestEqual.test_complexc                 C   sD   dd l }t |  ddd¡|  ddd¡g¡}|  ||d d d… ¡ d S )Nr   iÐ  r%   r&   éÿÿÿÿ)Údatetimer(   r)   r$   )r   rØ   r   r   r   r    Útest_object€  s
   ÿzTestEqual.test_objectN)r<   r=   r>   rA   r¶   r·   r¼   rË   rÎ   rÑ   rÔ   rÖ   rÙ   r   r   r   r    r´   )  s    r´   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestArrayAlmostEqualc                 C   r@   r   )r   r   r9   r   r   r    rA   Š  rB   z!TestArrayAlmostEqual.setup_methodc                    óL   ˆ j dddd� tt‡ fdd„ƒ ˆ j dgdgdd� tt‡ fdd„ƒ d S )Nçõ…�óþÿ÷?ç        r   ©Údecimalc                      ó   ˆ j dddd�S ©Ng      ø?rÝ   r   rÞ   r   r   r9   r   r    Ú<lambda>—  ó    z5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>c                      ó   ˆ j dgdgdd�S rá   r   r   r9   r   r    râ   œ  ó    ©r   r   r#   r9   r   r9   r    Útest_closeness�  ó   
ÿ
ÿz#TestArrayAlmostEqual.test_closenessc                    sR   t  dg¡‰t  dg¡‰ˆ jˆˆdd� ˆ jˆˆdd� tt‡ ‡‡fdd„ƒ d S )Ng¯”eˆãH“@gšwœ¢ãH“@r.   rÞ   r/   c                      ó   ˆ j ˆˆdd�S )Né   rÞ   r   r   rW   r   r    râ   ¥  rã   z2TestArrayAlmostEqual.test_simple.<locals>.<lambda>©r(   r)   r   r   r#   r9   r   rW   r    Útest_simplež  s   ÿz TestArrayAlmostEqual.test_simplec                    sz   t  t jg¡‰t  dg¡‰t  t jg¡‰ ˆ ˆˆ¡ tt‡‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ d S )Nr%   c                      ó   ˆ  ˆ ˆ¡S r   r   r   ©ÚananÚaoner   r   r    râ   ­  ó    z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>c                      ó   ˆ  ˆˆ ¡S r   r   r   ©Úainfrï   r   r   r    râ   ¯  rñ   c                      rí   r   r   r   ró   r   r    râ   ±  rñ   ©r(   r)   r\   rp   r   r   r#   r9   r   ©rô   rï   rð   r   r    Útest_nan§  s   ÿÿÿzTestArrayAlmostEqual.test_nanc                    sd   t  ddgddgg¡‰ ˆ  ¡ ‰t jˆ d< tt‡ ‡‡fdd„ƒ t j ˆd< tt‡ ‡‡fdd„ƒ d S )	Nr{   r|   ri   rj   )r   r   c                      rí   r   r   r   ©r   r   r   r   r    râ   ¸  rñ   z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>c                      rí   r   r   r   rø   r   r    râ   »  rñ   )r(   r)   rH   rp   r   r#   r9   r   rø   r    Útest_inf³  s   
ÿÿzTestArrayAlmostEqual.test_infc                 C   s@  t  ddgddgg¡}t j ddgddggddgddgg¡}|  ||¡ |  ||¡ |  ||¡ t jjddd	�}t  g d
¢¡}|  ||¡ |  ||¡ t jj}t  g d
¢¡}|  ||¡ |  ||¡ t jjg d
¢g d¢d	�}t  g d¢¡}|  ||¡ |  ||¡ t jjg d
¢g d¢d	�}t  d¡}|  ||¡ |  ||¡ d S )Nr{   r|   ri   rj   rÝ   FTg      @rl   rh   )TTTr”   )r(   r)   rn   Úmasked_arrayr   ro   r!   Úmaskedr   r   r   r    Útest_subclass½  s.   ÿ
z"TestArrayAlmostEqual.test_subclassc                 C   ó6   G dd„ dt jƒ}t  ddg¡ |¡}|  ||¡ d S )Nc                       ó0   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Z‡  ZS )zGTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                    ó   t ƒ  |¡ tj¡S r   ©Úsuperrx   r~   r(   r}   rv   ©Ú	__class__r   r    rx   Ý  r;   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__c                    rÿ   r   ©r  Ú__lt__r~   r(   r}   rv   r  r   r    r  à  r;   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c                 _   ó   t ‚r   ©ÚNotImplementedErrorr„   r   r   r    ru   ã  rˆ   zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all©r<   r=   r>   rx   r  ru   Ú__classcell__r   r   r  r    rz   Ü  ó    rz   r{   r|   ©r(   r}   r)   r~   r   ©r   rz   r   r   r   r    Ú!test_subclass_that_cannot_be_bool×  ó   
z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN)
r<   r=   r>   rA   rç   rì   r÷   rù   rü   r  r   r   r   r    rÚ   ˆ  s    	
rÚ   c                   @   r³   )ÚTestAlmostEqualc                 C   r@   r   )r   r   r9   r   r   r    rA   ì  rB   zTestAlmostEqual.setup_methodc                    rÛ   )NrÜ   rÝ   r   rÞ   c                      rà   rá   r   r   r9   r   r    râ   ù  rã   z0TestAlmostEqual.test_closeness.<locals>.<lambda>c                      rä   rá   r   r   r9   r   r    râ   þ  rå   ræ   r9   r   r9   r    rç   ï  rè   zTestAlmostEqual.test_closenessc                    sJ   ˆ   tjtj¡ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nc                      ó   ˆ   tjd¡S rµ   )r   r(   r\   r   r9   r   r    râ     ó    z/TestAlmostEqual.test_nan_item.<locals>.<lambda>c                      ó   ˆ   tjtj¡S r   )r   r(   r\   rp   r   r9   r   r    râ     rã   c                      r  r   )r   r(   rp   r\   r   r9   r   r    râ     rã   )r   r(   r\   r   r#   r9   r   r9   r    Útest_nan_item   s   
ÿ
ÿ
ÿzTestAlmostEqual.test_nan_itemc                    sL   ˆ   tjtj¡ ˆ   tj tj ¡ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nc                      r  rµ   ©r   r(   rp   r   r9   r   r    râ     r  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>c                      s   ˆ   tj tj¡S r   r  r   r9   r   r    râ     s    )r   r(   rp   r   r#   r9   r   r9   r    Útest_inf_item	  s   
ÿ
ÿzTestAlmostEqual.test_inf_itemc                 C   s   |   dd¡ d S rÏ   )r$   r9   r   r   r    Útest_simple_item  r"   z TestAlmostEqual.test_simple_itemc                 C   s¬   |   tddƒtddƒ¡ |   tdtjƒtdtjƒ¡ |   ttjtjƒttjtjƒ¡ |  tdtjƒtddƒ¡ |  ttjdƒtdtjƒ¡ |  ttjtjƒttjdƒ¡ d S rÏ   )r   rÐ   r(   r\   rp   r$   r9   r   r   r    rÑ     s    "z!TestAlmostEqual.test_complex_itemc                 C   sz   t  tddƒtdt jƒg¡}t  tddƒtt jdƒg¡}t  tddƒtddƒg¡}|  ||¡ |  ||¡ |  ||¡ d S rÏ   rÕ   )r   rX   ÚzrY   r   r   r    rÖ     s   zTestAlmostEqual.test_complexc                 C   sv  t  g d¢¡}t  g d¢¡}t t¡�}| j||dd� W d  ƒ n1 s&w   Y  t|jƒ d¡}t	|d dƒ t	|d	 d
ƒ t	|d dƒ t	|d dƒ t	|d dƒ t t¡�}|  ||¡ W d  ƒ n1 slw   Y  t|jƒ d¡}t	|d dƒ t	|d	 d
ƒ t	|d dƒ t	|d dƒ t	|d dƒ t  t j
dg¡}t  t j
dg¡}t t¡�}|  ||¡ W d  ƒ n1 sÂw   Y  t|jƒ d¡}t	|d dƒ t	|d	 dƒ t	|d dƒ t	|d dƒ t	|d dƒ t  ddg¡}t  ddg¡}t t¡�}|  ||¡ W d  ƒ n	1 �sw   Y  t|jƒ d¡}t	|d dƒ t	|d	 dƒ t	|d dƒ dS )zŠCheck the message is formatted correctly for the decimal value.
           Also check the message when input includes inf or nan (gh12200))gì¯    ð?gì¯     @r    )gØ_   ð?gâ    @r£   é   rÞ   NÚ
r.   z!Mismatched elements: 3 / 3 (100%)r/   zMax absolute difference: 1.e-05rê   z'Max relative difference: 3.33328889e-06é   z8 x: array([1.00000000001, 2.00000000002, 3.00003      ])é   z8 y: array([1.00000000002, 2.00000000003, 3.00004      ])z"Mismatched elements: 1 / 3 (33.3%)z& x: array([1.     , 2.     , 3.00003])z& y: array([1.     , 2.     , 3.00004])r   r%   z Mismatched elements: 1 / 2 (50%)úMax absolute difference: 1.úMax relative difference: 1.z x: array([inf,  0.])z y: array([inf,  1.])r&   z!Mismatched elements: 2 / 2 (100%)zMax absolute difference: 2zMax relative difference: inf)r(   r)   rd   re   r#   r   ÚstrÚvalueÚsplitr   rp   ©r   rX   rY   Úexc_infoÚmsgsr   r   r    Útest_error_message$  s\   ÿþþÿÿÿz"TestAlmostEqual.test_error_messagec                 C   s   d}t  d¡}t t¡�}|  ||¡ W d  ƒ n1 sw   Y  t|jƒ d¡}t	|d dƒ t	|d dƒ t	|d	 d
ƒ d}t  d¡}t t¡�}|  ||¡ W d  ƒ n1 s\w   Y  t|jƒ d¡}t	|d dƒ t	|d dƒ t	|d	 dƒ dS )zHCheck the message is formatted correctly when either x or y is a scalar.r&   é   Nr  r.   z#Mismatched elements: 20 / 20 (100%)r/   r  rê   r  úMax relative difference: 0.5)
r(   Úonesrd   re   r#   r   r  r   r!  r   r"  r   r   r    Útest_error_message_2Z  s$   
ÿ
ÿz$TestAlmostEqual.test_error_message_2c                 C   rý   )Nc                       rþ   )zBTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                    rÿ   r   r   rv   r  r   r    rx   t  r;   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__c                    rÿ   r   r  rv   r  r   r    r  w  r;   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c                 _   r  r   r  r„   r   r   r    ru   z  rˆ   zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allr	  r   r   r  r    rz   s  r  rz   r{   r|   r  r  r   r   r    r  n  r  z1TestAlmostEqual.test_subclass_that_cannot_be_boolN)r<   r=   r>   rA   rç   r  r  r  rÑ   rÖ   r%  r)  r  r   r   r   r    r  ê  s    	6r  c                   @   ó4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestApproxEqualc                 C   r@   r   )r   r   r9   r   r   r    rA   ƒ  rB   zTestApproxEqual.setup_methodc                    sN   t  d¡‰t  d¡‰ˆ jˆˆdd� ˆ jˆˆdd� tt‡ ‡‡fdd„ƒ d S )Nç{®GáH“@çR¸…ëH“@rê   ©Úsignificantr  c                      ré   ©Nr  r.  r   r   rW   r   r    râ   �  rã   z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>rë   r9   r   rW   r    Útest_simple_0d_arrays†  s   

ÿz%TestApproxEqual.test_simple_0d_arraysc                    sR   d‰d‰ˆ j ˆˆdd� ˆ j ˆˆdd� ˆ j ˆˆdd� tt‡ ‡‡fdd„ƒ d S )	Nr,  r-  r/   r.  rê   r  c                      ré   r0  r   r   rW   r   r    râ   —  rã   z3TestApproxEqual.test_simple_items.<locals>.<lambda>ræ   r9   r   rW   r    Útest_simple_items�  s   ÿz!TestApproxEqual.test_simple_itemsc                    ót   t  t j¡‰t  d¡‰t  t j¡‰ ˆ ˆˆ¡ tt‡‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ d S )Nr%   c                      rí   r   r   r   rî   r   r    râ   ž  rñ   z0TestApproxEqual.test_nan_array.<locals>.<lambda>c                      rò   r   r   r   ró   r   r    râ   Ÿ  rñ   c                      rí   r   r   r   ró   r   r    râ      rñ   rõ   r9   r   rö   r    r^   ™  ó   
zTestApproxEqual.test_nan_arrayc                    r3  )Nr%   c                      rí   r   r   r   rî   r   r    râ   §  rñ   z0TestApproxEqual.test_nan_items.<locals>.<lambda>c                      rò   r   r   r   ró   r   r    râ   ¨  rñ   c                      rí   r   r   r   ró   r   r    râ   ©  rñ   rõ   r9   r   rö   r    r¶   ¢  r4  zTestApproxEqual.test_nan_itemsN)r<   r=   r>   rA   r1  r2  r^   r¶   r   r   r   r    r+  �  s    	
	r+  c                   @   óT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestArrayAssertLessc                 C   r@   r   )r   r   r9   r   r   r    rA   ®  rB   z TestArrayAssertLess.setup_methodc                    s|   t  ddg¡‰t  ddg¡‰ˆ  ˆˆ¡ tt‡ ‡‡fdd„ƒ t  ddg¡‰tt‡ ‡‡fdd„ƒ tt‡ ‡‡fd	d„ƒ d S )
Nçš™™™™™ñ?çš™™™™™@ç333333ó?çffffff@c                      ó   ˆ   ˆˆ¡S r   r   r   rW   r   r    râ   ¶  rñ   z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>r{   c                      ó   ˆ   ˆˆ¡S r   r   r   rW   r   r    râ   º  rñ   c                      r;  r   r   r   rW   r   r    râ   »  rñ   rë   r9   r   rW   r    Útest_simple_arrays±  s   z&TestArrayAssertLess.test_simple_arraysc                    s”   t  ddgddgg¡‰t  ddgddgg¡‰ˆ  ˆˆ¡ tt‡ ‡‡fd	d
„ƒ t  ddgddgg¡‰tt‡ ‡‡fdd
„ƒ tt‡ ‡‡fdd
„ƒ d S )Nr7  r8  çffffff
@gš™™™™™@r9  r:  g333333@g      @c                      r;  r   r   r   rW   r   r    râ   Â  rñ   z0TestArrayAssertLess.test_rank2.<locals>.<lambda>r{   c                      r<  r   r   r   rW   r   r    râ   Æ  rñ   c                      r;  r   r   r   rW   r   r    râ   Ç  rñ   rë   r9   r   rW   r    Ú
test_rank2½  s   zTestArrayAssertLess.test_rank2c                    sv   t jdd�‰t jdd�d ‰ˆ  ˆˆ¡ tt‡ ‡‡fdd„ƒ dˆd< tt‡ ‡‡fdd„ƒ tt‡ ‡‡fd	d„ƒ d S )
N)r&   r&   r&   )Úshaper%   c                      r;  r   r   r   rW   r   r    râ   Î  rñ   z0TestArrayAssertLess.test_rank3.<locals>.<lambda>r   )r   r   r   c                      r<  r   r   r   rW   r   r    râ   Ò  rñ   c                      r;  r   r   r   rW   r   r    râ   Ó  rñ   )r(   r(  r   r   r#   r9   r   rW   r    Ú
test_rank3É  s   zTestArrayAssertLess.test_rank3c                    s‚   d‰d‰ˆ   ˆˆ¡ tt‡ ‡‡fdd„ƒ t ddg¡‰ˆ   ˆˆ¡ tt‡ ‡‡fdd„ƒ t ddg¡‰tt‡ ‡‡fdd„ƒ d S )	Nr7  r8  c                      r;  r   r   r   rW   r   r    râ   Ú  rñ   z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>r>  c                      r;  r   r   r   rW   r   r    râ   ß  rñ   r{   c                      r<  r   r   r   rW   r   r    râ   ã  rñ   )r   r   r#   r(   r)   r9   r   rW   r    r2  Õ  s   z%TestArrayAssertLess.test_simple_itemsc                    sŠ   t  t j¡‰t  d¡‰t  t j¡‰ ˆ ˆˆ¡ tt‡‡‡fdd„ƒ tt‡‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ d S )Nr%   c                      rò   r   r   r   rî   r   r    râ   ê  rñ   z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>c                      rí   r   r   r   rî   r   r    râ   ë  rñ   c                      rò   r   r   r   ró   r   r    râ   ì  rñ   c                      rí   r   r   r   ró   r   r    râ   í  rñ   rõ   r9   r   rö   r    Útest_nan_noncompareå  s   
z'TestArrayAssertLess.test_nan_noncomparec                    s¼   t  g d¢¡‰t  t j¡‰ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ t  ddt jg¡‰tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ t  d	d
t jg¡‰ˆ ˆˆ¡ tt‡‡‡fdd„ƒ d S )N)r7  r8  r>  c                      ó   ˆ  ˆˆ ¡S r   r   r   ©rï   r   rX   r   r    râ   ó  rñ   z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>c                      ó   ˆ  ˆ ˆ¡S r   r   r   rD  r   r    râ   ô  rñ   r7  r8  c                      rC  r   r   r   rD  r   r    râ   ø  rñ   c                      rE  r   r   r   rD  r   r    râ   ù  rñ   r{   r|   c                      r<  r   r   r   rW   r   r    râ   þ  rñ   )r(   r)   r\   r   r#   r   r9   r   )rï   r   rX   rY   r    Útest_nan_noncompare_arrayï  s   z-TestArrayAssertLess.test_nan_noncompare_arrayc                    sª   t  d¡‰t  t j¡‰ ˆ ˆˆ ¡ ˆ ˆ  ˆ¡ ˆ ˆ  ˆ ¡ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ d S )Nr%   c                      rí   r   r   r   ©rô   rð   r   r   r    râ     rñ   z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>c                      s   ˆ  ˆˆ  ¡S r   r   r   rG  r   r    râ     r  c                      s   ˆ  ˆ ˆ ¡S r   r   r   ©rô   r   r   r    râ   	  rñ   c                      s   ˆ  ˆ ˆ  ¡S r   r   r   rH  r   r    râ   
  r  c                      s   ˆ  ˆ  ˆ  ¡S r   r   r   rH  r   r    râ     rã   )r(   r)   rp   r   r   r#   r9   r   rG  r    Útest_inf_compare   s   
z$TestArrayAssertLess.test_inf_comparec                    sž   t  ddt jg¡‰t  t j¡‰ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ ˆ ˆ  ˆ¡ d S )	Nr7  r8  c                      rC  r   r   r   ©rô   r   rX   r   r    râ     rñ   z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>c                      rE  r   r   r   rJ  r   r    râ     rñ   c                      s   ˆ  ˆˆ  ¡S r   r   r   rJ  r   r    râ     r  c                      s   ˆ  ˆ ˆ  ¡S r   r   r   rJ  r   r    râ     rã   c                      s   ˆ  ˆ  ˆ ¡S r   r   r   rJ  r   r    râ     rã   )r(   r)   rp   r   r#   r   r9   r   rJ  r    Útest_inf_compare_array  s   z*TestArrayAssertLess.test_inf_compare_arrayN)r<   r=   r>   rA   r=  r?  rA  r2  rB  rF  rI  rK  r   r   r   r    r6  ¬  s    
r6  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	TestWarnsc                 C   sh   dd„ }t jd jd d … }ttt|ƒdƒ t jd j}ttt|ƒ ttdd„ dƒdƒ t||dƒ d S )	Nc                   S   s   t  d¡ dS )NÚyor.   ©ÚwarningsÚwarnr   r   r   r    Úf  s   
zTestWarns.test_warn.<locals>.frO  r.   c                 S   s   | S r   r   )rX   r   r   r    râ   %  ó    z%TestWarns.test_warn.<locals>.<lambda>r%   ú.assert_warns does not preserver warnings state)	ÚsysÚmodulesÚfiltersr   r	   ÚUserWarningr   r#   r
   )r   rQ  Úbefore_filtersÚafter_filtersr   r   r    Ú	test_warn  s   ÿzTestWarns.test_warnc                 C   st   t jd jd d … }ttƒ� t d¡ W d   ƒ n1 sw   Y  t jd j}dd„ }tt|ƒ t	||dƒ d S )NrO  rM  c                   S   s6   t ƒ � t d¡ W d   ƒ d S 1 sw   Y  d S ©NrM  )r
   rO  rP  r   r   r   r    Úno_warnings2  s   "ÿz3TestWarns.test_context_manager.<locals>.no_warningsrS  )
rT  rU  rV  r	   rW  rO  rP  r   r#   r   )r   rX  rY  r\  r   r   r    Útest_context_manager+  s   
ÿ
ÿzTestWarns.test_context_managerc              	   C   sv   dd„ }d}t  ¡ �! t  dt¡ z	tt|ƒ d}W n	 ty#   Y nw W d   ƒ n1 s.w   Y  |r9tdƒ‚d S )Nc                   S   s   t  dt¡ d S r[  )rO  rP  ÚDeprecationWarningr   r   r   r    rQ  ;  r"   z,TestWarns.test_warn_wrong_warning.<locals>.fFÚerrorTz#wrong warning caught by assert_warn)rO  Úcatch_warningsÚsimplefilterr^  r	   rW  r#   )r   rQ  Úfailedr   r   r    Útest_warn_wrong_warning:  s   

ÿ€ú	ÿz!TestWarns.test_warn_wrong_warningN)r<   r=   r>   rZ  r]  rc  r   r   r   r    rL    s    rL  c                   @   r5  )ÚTestAssertAllclosec                 C   s°   d}d}t ||dd� ttt ||ƒ t ||||g¡}t ||||g¡}t ||dd� ttt ||ƒ |d |d< t ||ƒ ttt ||dd� t dd	d
d� ttt d	dd
d� d S )Ngü©ñÒMbP?g•Ö&è.>r%   ©ÚatolgÜ1¯  ð?r×   )Úrtolr  rV   g      à?)r   r   r#   r(   r)   )r   rX   rY   r   r   r   r   r    rì   N  s   
zTestAssertAllclose.test_simplec                 C   s*   t jt  t j¡jgt jd�}t||ƒ d S )Nr3   )r(   r)   ÚiinfoÚint_Úminr   r6   r   r   r    Útest_min_intb  s   zTestAssertAllclose.test_min_intc                 C   sj   t  g d¢¡}t  g d¢¡}t t¡�}t||ƒ W d   ƒ n1 s#w   Y  t|jƒ}td|v ƒ d S )N)r%   r%   r%   r%   )r%   r%   r%   r&   zXMismatched elements: 1 / 4 (25%)
Max absolute difference: 1
Max relative difference: 0.5©	r(   r)   rd   re   r#   r   r  r   r   ©r   r   r   r#  Úmsgr   r   r    Útest_report_fail_percentageg  s   ÿ

þz.TestAssertAllclose.test_report_fail_percentagec                 C   s.   t  t jg¡}t  t jg¡}t||dd� d S )NT©Ú	equal_nan)r(   r)   r\   r   r   r   r   r    Útest_equal_nanr  s   z!TestAssertAllclose.test_equal_nanc                 C   s2   t  t jg¡}t  t jg¡}ttt||dd� d S )NFrp  )r(   r)   r\   r   r#   r   r   r   r   r    Útest_not_equal_nanx  s   z%TestAssertAllclose.test_not_equal_nanc                 C   sH   t  t jg¡}t  t jg¡}t||ƒ t||ƒ t||ƒ t||ƒ d S r   )r(   r)   r\   r   r   r   r   r   r   r   r    Útest_equal_nan_default}  s   


z)TestAssertAllclose.test_equal_nan_defaultc                 C   sj   t  ddg¡}t  ddg¡}t t¡�}t||ƒ W d   ƒ n1 s#w   Y  t|jƒ}td|v ƒ d S )Nr   r%   r&   r'  rl  rm  r   r   r    Útest_report_max_relative_errorˆ  s   ÿ
z1TestAssertAllclose.test_report_max_relative_errorc                 C   s"   t jg d¢gdd�}t||ƒ d S )N)r%   r&   r.   r½   zm8[ns]r3   )r(   r)   r   r6   r   r   r    Útest_timedelta‘  s   z!TestAssertAllclose.test_timedeltac                 C   s~   t jg d¢dd�}t jg d¢dd�}t t¡�}t||dd� W d  ƒ n1 s)w   Y  t|jƒ d¡}t	|d	 d
ƒ dS )zYCheck the the message is formatted correctly when overflow can occur
           (gh21768))r   r%   é   Úuint8r3   )r/   r/   r/   r.   re  Nr  r/   zMax absolute difference: 4)
r(   Úasarrayrd   re   r#   r   r  r   r!  r   r"  r   r   r    Útest_error_message_unsigned–  s   ÿz.TestAssertAllclose.test_error_message_unsignedN)r<   r=   r>   rì   rk  ro  rr  rs  rt  ru  rv  rz  r   r   r   r    rd  L  s    	rd  c                   @   st   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestArrayAlmostEqualNulpc                 C   ó�   d}t jdddt jd�}d| }t j| |f }t  |j¡j}||| | d  }t|||ƒ t  |j¡j}||| | d  }t|||ƒ d S ©Nrê   éìÿÿÿr&  é2   r3   rV   r|   ©	r(   ÚlinspaceÚfloat64Úr_Úfinfor4   Úepsr   Úepsneg©r   ÚnulprX   r…  rY   r†  r   r   r    Útest_float64_pass§  s   z*TestArrayAlmostEqualNulp.test_float64_passc                 C   ó˜   d}t jdddt jd�}d| }t j| |f }t  |j¡j}||| | d  }ttt	|||ƒ t  |j¡j
}||| | d  }ttt	|||ƒ d S r}  ©r(   r�  r‚  rƒ  r„  r4   r…  r   r#   r   r†  r‡  r   r   r    Útest_float64_fail¹  ó   ÿÿz*TestArrayAlmostEqualNulp.test_float64_failc                 C   óT   t  d¡}t jt jt jd� t j¡}||A }| t j¡}| t j¡}t||dƒ d S )Nl   ÿÿ r3   r   )r(   Úuint64r)   r\   r‚  r~   r   )r   ÚoffsetÚnan1_i64Únan2_i64Únan1_f64Únan2_f64r   r   r    Útest_float64_ignore_nanÉ  ó   
z0TestArrayAlmostEqualNulp.test_float64_ignore_nanc                 C   r|  r}  ©	r(   r�  rŽ   rƒ  r„  r4   r…  r   r†  r‡  r   r   r    Útest_float32_passÔ  ó   z*TestArrayAlmostEqualNulp.test_float32_passc                 C   rŠ  r}  ©r(   r�  rŽ   rƒ  r„  r4   r…  r   r#   r   r†  r‡  r   r   r    Útest_float32_failâ  r�  z*TestArrayAlmostEqualNulp.test_float32_failc                 C   rŽ  )Niÿÿ  r3   r   )r(   Úuint32r)   r\   rŽ   r~   r   )r   r�  Únan1_i32Únan2_i32Únan1_f32Únan2_f32r   r   r    Útest_float32_ignore_nanò  r–  z0TestArrayAlmostEqualNulp.test_float32_ignore_nanc                 C   s�   d}t jdddt jd�}d| }t j| |f }t  |j¡j}||| | d  }t|||ƒ t  |j¡j}||| | d  }t|||ƒ d S ©Nrê   éüÿÿÿr/   rV   r3   r|   )	r(   r�  Úfloat16rƒ  r„  r4   r…  r   r†  r‡  r   r   r    Útest_float16_passý  r™  z*TestArrayAlmostEqualNulp.test_float16_passc                 C   s˜   d}t jdddt jd�}d| }t j| |f }t  |j¡j}||| | d  }ttt	|||ƒ t  |j¡j
}||| | d  }ttt	|||ƒ d S r¢  )r(   r�  r¤  rƒ  r„  r4   r…  r   r#   r   r†  r‡  r   r   r    Útest_float16_fail  r�  z*TestArrayAlmostEqualNulp.test_float16_failc                 C   rŽ  )Néÿ   r3   r   )r(   Úuint16r)   r\   r¤  r~   r   )r   r�  Únan1_i16Únan2_i16Únan1_f16Únan2_f16r   r   r    Útest_float16_ignore_nan  r–  z0TestArrayAlmostEqualNulp.test_float16_ignore_nanc                 C   ó$  d}t jdddt jd�}d| }t j| |f }||d  }t  |j¡j}||| | d  }t|||d  |ƒ t|||d  |ƒ ||| | d	  }t|||d  |ƒ t  |j¡j}||| | d  }t|||d  |ƒ t|||d  |ƒ ||| | d	  }t|||d  |ƒ d S ©
Nrê   r~  r&  r  r3   rV   ù              ð?r|   rj   r€  ©r   rˆ  rX   Úxir…  rY   r†  r   r   r    Útest_complex128_pass&  s"   z-TestArrayAlmostEqualNulp.test_complex128_passc                 C   ó4  d}t jdddt jd�}d| }t j| |f }||d  }t  |j¡j}||| | d  }ttt	|||d  |ƒ ttt	|||d  |ƒ ||| |  }ttt	|||d  |ƒ t  |j¡j
}||| | d  }ttt	|||d  |ƒ ttt	|||d  |ƒ ||| |  }ttt	|||d  |ƒ d S ©	Nrê   r~  r&  r  r3   rV   r°  r|   r‹  r±  r   r   r    Útest_complex128_fail=  s:   ÿÿÿÿÿÿz-TestArrayAlmostEqualNulp.test_complex128_failc                 C   r®  r¯  r—  r±  r   r   r    Útest_complex64_passZ  s"   z,TestArrayAlmostEqualNulp.test_complex64_passc                 C   r´  rµ  rš  r±  r   r   r    Útest_complex64_failo  s:   ÿÿÿÿÿÿz,TestArrayAlmostEqualNulp.test_complex64_failN)r<   r=   r>   r‰  rŒ  r•  r˜  r›  r¡  r¥  r¦  r­  r³  r¶  r·  r¸  r   r   r   r    r{  ¥  s    r{  c                   @   r*  )ÚTestULPc                 C   s   t j d¡}t||dd� d S )NrV   r   ©Úmaxulp)r(   ÚrandomÚrandnr   )r   rX   r   r   r    Ú
test_equal�  s   zTestULP.test_equalc                 C   óR   t  d¡ t j¡}|dt j d¡ t j¡ 7 }t  t j¡j}t||| dd� d S )NrV   ç{®Gáz„?r&  rº  )	r(   r(  ÚastyperŽ   r¼  r½  r„  r…  r   ©r   rX   r…  r   r   r    Útest_single‘  ó   zTestULP.test_singlec                 C   r¿  )NrV   rÀ  éÈ   rº  )	r(   r(  rÁ  r‚  r¼  r½  r„  r…  r   rÂ  r   r   r    Útest_double˜  rÄ  zTestULP.test_doublec                 C   sL   t jt jfD ]}t  t jg¡ |¡}t  t  |¡jg¡}t||dd� qd S )NrÅ  rº  )	r(   rŽ   r‚  r)   rp   rÁ  r„  Úmaxr   )r   Údtrp   Úbigr   r   r    rù   Ÿ  s
   ýzTestULP.test_infc                    s  t jt jfD ]}|t jkrd‰nd‰t  t jg¡ |¡‰t  t jg¡ |¡‰t  t  |¡jg¡‰ t  t  |¡j	g¡‰t  t j
g¡ |¡‰t  t jg¡ |¡‰tt‡‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡‡‡fdd„ƒ tt‡‡‡fdd„ƒ tt‡‡‡fdd„ƒ qd S )	Ng    €„.Ag   ¢”mBc                      ó   t ˆˆ ˆd�S ©Nrº  ©r   r   )rp   r»  r\   r   r    râ   ³  ó    ÿz"TestULP.test_nan.<locals>.<lambda>c                      rÊ  rË  rÌ  r   )rÉ  r»  r\   r   r    râ   ¶  rÍ  c                      ó   t ˆˆˆ d�S rË  rÌ  r   )r»  r\   Útinyr   r    râ   ¹  rÍ  c                      rÎ  rË  rÌ  r   )r»  r\   Úzeror   r    râ   ¼  rÍ  c                      rÎ  rË  rÌ  r   )r»  r\   Únzeror   r    râ   ¿  rÍ  )r(   rŽ   r‚  r)   rp   rÁ  r\   r„  rÇ  rÏ  rÒ   rÓ   r   r#   )r   rÈ  r   )rÉ  rp   r»  r\   rÑ  rÏ  rÐ  r    r÷   ¥  s4   
ÿÿÿÿÿézTestULP.test_nanN)r<   r=   r>   r¾  rÃ  rÆ  rù   r÷   r   r   r   r    r¹  ‹  s    r¹  c                   @   rr   )ÚTestStringEqualc                 C   sn   t ddƒ t ddƒ t t¡�}t ddƒ W d   ƒ n1 sw   Y  t|jƒ}t|dƒ ttdd„ ƒ d S )NÚhellozhello
multilinezfoo
barz	hello
barz%Differences in strings:
- foo
+ helloc                   S   ó
   t ddƒS )NrL   rÓ  ©r   r   r   r   r    râ   Î  ó   
 z-TestStringEqual.test_simple.<locals>.<lambda>)r   rd   re   r#   r  r   r   r   )r   r#  rn  r   r   r    rì   Ä  s   

ÿ

ÿzTestStringEqual.test_simplec                 C   s   t ddƒ ttdd„ ƒ d S )Nza+*bc                   S   rÔ  )NÚaaaza+brÕ  r   r   r   r    râ   Ô  rÖ  z,TestStringEqual.test_regex.<locals>.<lambda>)r   r   r#   r9   r   r   r    Ú
test_regexÐ  s   
ÿzTestStringEqual.test_regexN)r<   r=   r>   rì   rØ  r   r   r   r    rÒ  Ã  s    rÒ  c                 C   sH   z| j }W n ty   i }Y nw t|ƒ}d|v r|d8 }t||ƒ d S )NÚversionr%   )Ú__warningregistry__ÚAttributeErrorÚlenr   )ÚmodÚn_in_contextÚ	mod_warnsÚ	num_warnsr   r   r    Úassert_warn_len_equal×  s   
ø
rá  c                  C   sD   G dd„ dƒ} | ƒ }t |dd� G dd„ dƒ} | ƒ }t |dd� d S )Nc                   @   s   e Zd ZdS )ú/test_warn_len_equal_call_scenarios.<locals>.modN)r<   r=   r>   r   r   r   r    rÝ  ö  s    rÝ  r   )rÝ  rÞ  c                   @   r‚   )râ  c                 S   s   dddœ| _ d S )Nr%   r&   ©Úwarning1Úwarning2)rÚ  r9   r   r   r    Ú__init__  s   ÿz8test_warn_len_equal_call_scenarios.<locals>.mod.__init__N)r<   r=   r>   ræ  r   r   r   r    rÝ     r‰   r&   )rá  )rÝ  Úmod_instr   r   r    Ú"test_warn_len_equal_call_scenariosî  s   ÿ
ÿrè  c                  C   s0   t jt } z| j ¡  W | S  ty   Y | S w r   )rT  rU  r<   rÚ  ÚclearrÛ  ©Úmy_modr   r   r    Ú_get_fresh_mod
  s   
üürì  c                  C   sF  t ƒ } tt| di ƒi ƒ t| gd�� t d¡ t d¡ W d   ƒ n1 s'w   Y  t| ji ƒ tƒ � t d¡ t d¡ W d   ƒ n1 sJw   Y  t| dƒ dddœ| _t| gd�� t d¡ t d	¡ W d   ƒ n1 suw   Y  t| dƒ tƒ � t d¡ t d	¡ W d   ƒ n1 s—w   Y  t| dƒ d S )
NrÚ  )rU  ÚignoreúSome warningr   r%   r&   rã  zAnother warning)	rì  r   Úgetattrr   rO  ra  rP  rÚ  rá  rê  r   r   r    Útest_clear_and_catch_warnings  s2   
þ
þ
ÿ
þ

þrð  c                  C   s‚  t ƒ } tt| di ƒi ƒ dd„ }t| dƒ tƒ �}| t¡ |jtj	j
d� t d¡ |ƒ  W d   ƒ n1 s8w   Y  tt|jƒdƒ t|jd jjd dƒ t| dƒ tƒ }|j| d� |� t d¡ W d   ƒ n1 sqw   Y  t| dƒ |j| d� |� t d¡ W d   ƒ n1 s“w   Y  t| dƒ tƒ � t d¡ t d¡ W d   ƒ n1 sµw   Y  t| dƒ d S )	NrÚ  c                  S   ó   dd„ } t  | ddg¡ d S )Nc                 S   ó   t jddd� | S )NzSome warning 2r&   ©Ú
stacklevelrN  ©Úarrr   r   r    rP  >  ó   zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnr   ©r(   Úapply_along_axis©rP  r   r   r    Úwarn_other_module;  ó   z8test_suppress_warnings_module.<locals>.warn_other_moduler   ©Úmodulerî  r%   rí  )rì  r   rï  rá  r   ÚrecordrW  Úfilterr(   ÚlibÚ
shape_baserO  rP  rÜ  ÚlogÚmessager…   ra  )rë  rû  Úsupr   r   r    Útest_suppress_warnings_module6  s:   
	

ú	
ÿ
ÿ

þr  c                  C   s0  t ƒ } tt| di ƒi ƒ tƒ �}| t¡ t d¡ W d   ƒ n1 s$w   Y  t| dƒ tƒ }| t¡ |� t d¡ W d   ƒ n1 sHw   Y  t| dƒ |j| d� |� t d¡ W d   ƒ n1 sjw   Y  t| dƒ tƒ � t 	d¡ t d¡ W d   ƒ n1 sŒw   Y  t| dƒ d S )NrÚ  rî  r   rý  rí  )
rì  r   rï  r   r   rW  rO  rP  rá  ra  )rë  r  r   r   r    Útest_suppress_warnings_typed  s.   
þ

ÿ
ÿ

þr  c                  C   sv   t ƒ } |  t¡ | dd„ ƒ}tjdd��}t d¡ |tƒ |tƒ tt|ƒdƒ W d   ƒ d S 1 s4w   Y  d S )Nc                 S   s   t  d| ¡ d S )Nrî  rN  )Úcategoryr   r   r    rP  „  s   z7test_suppress_warnings_decorate_no_record.<locals>.warnT)rÿ  Úalwaysr%   )	r   r   rW  rO  r`  ra  ÚRuntimeWarningr   rÜ  )r  rP  Úwr   r   r    Ú)test_suppress_warnings_decorate_no_record€  s   


"ür  c               	   C   sà  t ƒ } |  ¡ }| �D | jdd�}| jdd� t d¡ t d¡ t d¡ tt| jƒdƒ tt|ƒdƒ tt|ƒdƒ t|d jj	d dƒ W d   ƒ n1 sPw   Y  | �D | jdd�}| jdd� t d¡ t d¡ t d¡ tt| jƒdƒ tt|ƒdƒ tt|ƒdƒ t|d jj	d dƒ W d   ƒ n1 sžw   Y  t ƒ �@} |  ¡  t ƒ � }|jdd� t d¡ t d¡ tt|jƒdƒ W d   ƒ n1 sÑw   Y  tt| jƒdƒ W d   ƒ d S 1 séw   Y  d S )NzSome other warning 2)r  rî  úSome other warningr&   r%   r   )
r   rÿ  r   rO  rP  r   rÜ  r  r  r…   )r  Úlog1Úlog2Úsup2r   r   r    Útest_suppress_warnings_record�  sD   


ö


ö

ü"ùr  c               	   C   s2  dd„ } t ƒ �4}| ¡  t dƒ� tdƒD ]}t d¡ qW d   ƒ n1 s'w   Y  tt|jƒdƒ W d   ƒ n1 s>w   Y  t ƒ �9}| ¡  t dƒ� tdƒD ]}t d¡ t d¡ qTW d   ƒ n1 skw   Y  tt|jƒdƒ W d   ƒ n1 s‚w   Y  t ƒ �<}| ¡  t dƒ� tdƒD ]}t d¡ t d¡ | ƒ  q˜W d   ƒ n1 s²w   Y  tt|jƒdƒ W d   ƒ n1 sÉw   Y  t ƒ �=}| ¡  t dƒ� tdƒD ]}t d¡ t d	¡ | ƒ  qßW d   ƒ n1 sùw   Y  tt|jƒdƒ W d   ƒ d S 1 �sw   Y  d S )
Nc                  S   rñ  )Nc                 S   rò  )Nrî  r&   ró  rN  rõ  r   r   r    rP  »  r÷  zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warnr   rø  rú  r   r   r    rû  ¸  rü  z<test_suppress_warnings_forwarding.<locals>.warn_other_moduler	  r&   rî  Úlocationrþ  Úoncer  )r   rÿ  ÚrangerO  rP  r   rÜ  r  )rû  r  Úir   r   r    Ú!test_suppress_warnings_forwarding·  sT   
ÿÿú

þÿù	


ýÿø



ýÿ$ør  c               	   C   sÌ   t ƒ �$} tj | d¡}t|dƒ� W d   ƒ n1 sw   Y  W d   ƒ n1 s*w   Y  ttj | ¡ ƒ d}zt ƒ �} tƒ ‚1 sEw   Y  W n tyV   d}Y nw t|ƒ ttj | ¡ ƒ d S )NÚtmpr  FT)r   ÚosÚpathÚjoinÚopenr   ÚisdirÚ
ValueError)ÚtdirÚfpathÚraisedr   r   r    Útest_tempdiræ  s$   ÿ€þÿÿr!  c               	   C   s¾   t ƒ �} t| dƒ� W d   ƒ n1 sw   Y  W d   ƒ n1 s#w   Y  ttj | ¡ ƒ d}zt ƒ �} tƒ ‚1 s>w   Y  W n tyO   d}Y nw t|ƒ ttj | ¡ ƒ d S )Nr  FT)r   r  r   r  r  Úisfiler  )r  r   r   r   r    Útest_temppath÷  s"   ÿ€ÿÿÿr#  c                   @   s   e Zd Zeje  fZdS )Úmy_cacwN)r<   r=   r>   rT  rU  Úclass_modulesr   r   r   r    r$    s    r$  c                  C   sP   t ƒ } tƒ � t d¡ t d¡ W d   ƒ n1 sw   Y  t| ji ƒ d S )Nrí  rî  )rì  r$  rO  ra  rP  r   rÚ  rê  r   r   r    Ú%test_clear_and_catch_warnings_inherit  s   
þr&  zPython lacks refcounts)Úreasonc                   @   s0   e Zd ZdZdd„ Zdd„ Zejjdd„ ƒZ	dS )	ÚTestAssertNoGcCyclesz Test assert_no_gc_cycles c                 C   s@   dd„ }t ƒ � |ƒ  W d   ƒ n1 sw   Y  t |ƒ d S )Nc                  S   s   g } |   g ¡ | S r   ©Úappend)r   r   r   r    Úno_cycle  s   
z2TestAssertNoGcCycles.test_passes.<locals>.no_cycle)r   )r   r+  r   r   r    Útest_passes  s
   ÿz TestAssertNoGcCycles.test_passesc              	   C   s’   dd„ }t tƒ� tƒ � |ƒ  W d   ƒ n1 sw   Y  W d   ƒ n1 s)w   Y  t tƒ� t|ƒ W d   ƒ d S 1 sBw   Y  d S )Nc                  S   s   g } |   | ¡ |   | ¡ | S r   r)  )r   r   r   r    Ú
make_cycle$  s   

z5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle)r   r#   r   )r   r-  r   r   r    Útest_asserts#  s   
ÿ€ÿ

"ÿz!TestAssertNoGcCycles.test_assertsc                    s¢   G ‡ fdd„dƒ‰ zCt  ˆ ƒ ¡}zttƒ� tdd„ ƒ W d  ƒ n1 s&w   Y  W n ty@   |ƒ dur>t d¡ ‚ Y nw W dˆ _dS W dˆ _dS dˆ _w )z•
        Test that in cases where the garbage cannot be collected, we raise an
        error, instead of hanging forever trying to clear it.
        c                       s(   e Zd ZdZdZdd„ Z‡ fdd„ZdS )z<TestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDelz¥
            An object that not only contains a reference cycle, but creates new
            cycles whenever it's garbage-collected and its __del__ runs
            Tc                 S   s
   | | _ d S r   )Úcycler9   r   r   r    ræ  ?  rB   zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__c                    s   d | _ ˆ jrˆ ƒ  d S d S r   )r/  r-  r9   ©ÚReferenceCycleInDelr   r    Ú__del__B  s   
ýzDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__N)r<   r=   r>   Ú__doc__r-  ræ  r2  r   r0  r   r    r1  8  s
    r1  c                   S   s   d S r   r   r   r   r   r    râ   P  rR  z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Nz*GC does not call __del__ on cyclic objectsF)	ÚweakrefÚrefr   ÚRuntimeErrorr   r#   rd   Úskipr-  )r   r  r   r0  r    Ú
test_fails1  s$   
þ€

þý€
	úzTestAssertNoGcCycles.test_failsN)
r<   r=   r>   r3  r,  r.  rd   ÚmarkÚslowr8  r   r   r   r    r(    s    r(  );rO  rT  r  rÁ   rd   r4  Únumpyr(   Únumpy.testingr   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+  r6  rL  rd  r{  r¹  rÒ  rá  rè  rì  rð  r  r  r  r  r  r!  r#  r$  r&  r9  Úskipifr(  r   r   r   r    Ú<module>   sN    \
. <-_b +m3Y g8 .(/	