a
    ç´«jl ã                   @   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Zd dl	m
  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" 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„ Z0dd „ Z1d!d"„ Z2d#d$„ Z3d%d&„ Z4d'd(„ Z5d)d*„ Z6d+d,„ Z7d-d.„ Z8d/d0„ Z9d1d2„ Z:G d3d4„ d4eƒZ;d5d6„ Z<ej=j>e" d7d8�G d9d:„ d:ƒƒZ?ej= @d;eeg¡d<d=„ ƒZAd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/laksyashrimp/venv/lib/python3.9/site-packages/numpy/testing/tests/test_utils.pyÚ_test_equal   s    z_GenericTest._test_equalc                 C   s8   t tƒ� |  ||¡ W d   ƒ n1 s*0    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   s    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%   s    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_diffshape3   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_objarray:   s    z_GenericTest.test_objarrayc                 C   s   |   g d¢d¡ d S )N©r$   r%   r,   )r!   ©r   r   r   r    Útest_array_likes?   s    z_GenericTest.test_array_likesN)Ú__name__Ú
__module__Ú__qualname__r!   r#   r)   r+   r.   r0   r5   r8   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   s
   t | _d S r   )r   r   r7   r   r   r    Úsetup_methodE   s    zTestArrayEqual.setup_methodc                    s4   ‡ fdd„}dD ]}||ƒ qdD ]}||ƒ q"dS )z!Test rank 1 array for all dtypes.c                    sL   t  d| ¡}| d¡ | ¡ }| ¡ }| d¡ ˆ  ||¡ ˆ  ||¡ d S )Nr%   r$   r   ©r'   ÚemptyÚfillÚcopyr!   r#   ©Útr   r   Úcr7   r   r    ÚfooJ   s    

z.TestArrayEqual.test_generic_rank1.<locals>.fooú?bhilqpBHILQPfdgFDG©ZS1ZU1Nr   ©r   rE   rC   r   r7   r    Útest_generic_rank1H   s
    

z!TestArrayEqual.test_generic_rank1c                 C   sÜ   t  d¡}t  d¡}t t¡�}|  ||¡ W d   ƒ n1 s@0    Y  t|jƒ}td|v ƒ |}|  ||¡ t  d¡}t  d¡}d}tjtt	 
|¡d�� |  ||¡ W d   ƒ n1 s¾0    Y  |}|  ||¡ d S )Nl   Cj¬<T"3ÿËwÝ¤-l   (M$c7u£†vÈz"Mismatched elements: 1 / 1 (100%)
g„L”xrú�Br   z‰Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 4.39506535e+12
Max relative difference among violations: inf
©Úmatch)r'   r(   ÚpytestÚraisesr"   r   ÚstrÚvaluer   ÚreÚescape)r   ÚxÚyÚexc_infoÚmsgÚexpected_msgr   r   r    Útest_0_ndim_array[   s"    

*
ÿ

*z TestArrayEqual.test_0_ndim_arrayc                    s4   ‡ fdd„}dD ]}||ƒ qdD ]}||ƒ q"dS )z!Test rank 3 array for all dtypes.c                    sL   t  d| ¡}| d¡ | ¡ }| ¡ }| d¡ ˆ  ||¡ ˆ  ||¡ d S )N)r-   r%   r,   r$   r   r>   rB   r7   r   r    rE   v   s    

z.TestArrayEqual.test_generic_rank3.<locals>.foorF   rG   Nr   rH   r   r7   r    Útest_generic_rank3t   s
    

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%   r6   N)r'   r(   Únanr!   r#   ©r   r   r   rD   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 )r/   ÚfloupiÚfloupaÚfloupipiN)r'   r(   r!   r#   rZ   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  ƒ n1 s®0    Y  dS )zTest record arrays.r%   r\   r]   r$   r^   N)	r'   r?   ÚfloatrA   r!   rL   rM   Ú	TypeErrorr#   rZ   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©Úmaskrd   rf   )TFFre   )r'   ÚmaÚMaskedArrayr(   rY   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}t	j
tt |¡d�� |  ||¡ W d   ƒ n1 sÂ0    Y  t  dd	g¡ |¡}d
}t	j
tt |¡d�� |  ||¡ W d   ƒ n1 �s0    Y  d S )Nc                   @   s   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__¾   s    zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__c                 S   s
   | |k S r   r   rp   r   r   r    Ú__ne__Á   s    zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__N)r9   r:   r;   rr   rs   r   r   r   r    ÚMyArray½   s   rt   ç      ð?ç       @rd   z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5rJ   ç        g333333@z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 2.
Max relative difference among violations: inf)r'   Úndarrayr(   Úviewr   Útyperm   r!   r#   rL   rM   r"   rP   rQ   )r   rt   r   r   rV   rD   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 sb0    Y  |  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   s   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__Ü   s    z^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__N)r9   r:   r;   r€   r   r   r   r    rt   Û   s   rt   ru   rv   rd   )	r'   rx   r(   ry   r   ra   ro   r!   r#   )r   rt   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¡�f tjdd��: tj t g d¢tj¡t g d¢tj¡¡ W d   ƒ n1 sX0    Y  W d   ƒ n1 sv0    Y  d S )NÚraise©ro   r6   )r$   gœWw'&l¡7r,   )	rL   rM   r"   r'   ZerrstateÚtestingr   r(   Úfloat32r7   r   r   r    Útest_suppress_overflow_warningsç   s    þz.TestArrayEqual.test_suppress_overflow_warningsc                 C   s"   t  g d¢¡}d}|  ||¡ dS )z@Test comparing an array with a scalar when all values are equal.©ru   ru   ru   ru   Nr&   r   r   r   r    Útest_array_vs_scalar_is_equalï   s    z,TestArrayEqual.test_array_vs_scalar_is_equalc                 C   s¶   t  g d¢¡}t  g d¢¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 sV0    Y  t  g d¢¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 s¨0    Y  dS )z@Test comparing an array with a scalar when not all values equal.)éªˆ  éŒS égµ é6š )r‰   rŠ   r‹   r   zMismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 563766
Max relative difference among violations: infrJ   N)r‰   rŠ   gÍÌÌÌœÕArŒ   z‹Mismatched elements: 2 / 4 (50%)
Max absolute difference among violations: 563766.
Max relative difference among violations: 4.54902139e-07©r'   r(   rL   rM   r"   rP   rQ   r   ©r   r   r   rV   r   r   r    Útest_array_vs_array_not_equalö   s    *z,TestArrayEqual.test_array_vs_array_not_equalc                 C   sP   t  g d¢¡}d}t t¡�  | j||dd� W d  ƒ n1 sB0    Y  dS )z9Test comparing an array with a scalar with strict option.r‡   ru   T©ÚstrictN©r'   r(   rL   rM   r"   r   r   r   r   r    Útest_array_vs_scalar_strict
  s    z*TestArrayEqual.test_array_vs_scalar_strictc                 C   s0   t  g d¢¡}t  g d¢¡}| j||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¡�  | j||dd� W d  ƒ n1 sL0    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)r9   r:   r;   r=   rI   rW   rX   r[   r_   rb   rl   r{   r�   r†   rˆ   r�   r“   r•   r–   r   r   r   r    r<   C   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   rR   rS   Úerr_msgr   r   r   r   r    Útest_build_err_msg_defaults$  s    z1TestBuildErrorMessage.test_build_err_msg_defaultsc                 C   sD   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   sD   t  g d¢¡}t  g d¢¡}d}t||g|dd�}d}t||ƒ d S )Nr˜   r›   rž   )ZFOOZ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_names8  s    z5TestBuildErrorMessage.test_build_err_msg_custom_namesc                 C   sD   t  g d¢¡}t  g d¢¡}d}t||g|dd�}d}t||ƒ d S )N)g0¸D   ð?r™   rš   )g_p‰   ð?rœ   r�   rž   é
   )Ú	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_precisionC  s    z9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r9   r:   r;   r¢   r¤   r¦   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S )Ú	TestEqualc                 C   s
   t | _d S r   )r   r   r7   r   r   r    r=   Q  s    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'   rY   r#   r7   r   r   r    Útest_nan_itemsT  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'   rk   r#   r7   r   r   r    Útest_inf_itemsZ  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#   r7   r   r   r    Útest_datetime_  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 ]2\}	}
|  |	|
¡ |  |	g|
g¡ |  |	g|
¡ qdt ||¡D ]2\}	}
|  |	|
¡ |  |	g|
g¡ |  |	g|
¡ q¤t ||¡D ]Š\}	}
|  |	|
¡ |  |	|
g¡ |  |	g|
g¡ |  |	gt  dd¡¡ |  |
gt  dd¡¡ |  |	gt  dd¡¡ |  |
gt  dd¡¡ qäd S )NÚNaTr¯   Únsr®   é{   )r'   r±   Ztimedelta64Ú	itertoolsÚproductr   r#   )r   Znadt_no_unitZnadt_sZnadt_dZnatd_no_unitZnatd_sZnatd_dÚdtsZtdsr   r   r   r   r    Útest_nat_itemss  s0    



zTestEqual.test_nat_itemsc                 C   s   |   dd¡ |  dd¡ d S )NÚabZabb)r   r#   r7   r   r   r    Útest_non_numeric’  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'   rY   r#   rk   r7   r   r   r    Útest_complex_item–  s
    zTestEqual.test_complex_itemc                 C   s   |   tjtj¡ d S r   )r#   ÚncuZPZEROZNZEROr7   r   r   r    Útest_negative_zero�  s    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½   rY   r   r#   ©r   rR   rS   r   r   r    Útest_complex   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)r9   r:   r;   r=   r¬   r­   r²   r¹   r»   r¾   rÀ   rÃ   rÆ   r   r   r   r    rª   O  s   rª   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S )ÚTestArrayAlmostEqualc                 C   s
   t | _d S r   )r   r   r7   r   r   r    r=   °  s    z!TestArrayAlmostEqual.setup_methodc                 C   sN  d}t jtt |¡d��  | jdddd� W d   ƒ n1 s>0    Y  | jdgdgdd� d}t jtt |¡d��$ | jdgdgdd� W d   ƒ n1 sž0    Y  dd	g}d
dg}d}t jtt |¡d��  | j||dd� W d   ƒ n1 sö0    Y  d}t jtt |¡d��  | j||dd� W d   ƒ n1 �s@0    Y  d S )Nz}Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.5
Max relative difference among violations: infrJ   ç      ø?rw   r   ©Údecimalçõ…�óþÿ÷?ge(åÿÿ÷?giUMuÿ>gB?×çÿÿ÷?zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: infé   z~Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: 1.©rL   rM   r"   rP   rQ   r   )r   rV   r   r   r   r   r    Útest_closeness³  s    .2.z#TestArrayAlmostEqual.test_closenessc                 C   s„   t  dg¡}t  dg¡}| j||dd� | j||dd� d}tjtt |¡d��  | j||dd� W d   ƒ n1 sv0    Y  d S )	Ng¯”eˆãH“@gšwœ¢ãH“@r,   rÉ   r-   z‹Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-04
Max relative difference among violations: 8.10226812e-08rJ   é   ©r'   r(   r   rL   rM   r"   rP   rQ   ©r   rR   rS   rV   r   r   r    Útest_simpleØ  s    z TestArrayAlmostEqual.test_simplec                 C   s>  g d¢}d}d}t jtt |¡d��  | j||dd� W d   ƒ n1 sJ0    Y  d}t jtt |¡d��  | j||dd� W d   ƒ n1 s’0    Y  ddg}d	}t jtt |¡d��  | j||d
d� W d   ƒ n1 sâ0    Y  d}d	}t jtt |¡d��  | j||d
d� W d   ƒ n1 �s00    Y  d S )N)çŒmlzµ@gHPüXŒŠ@rw   rÓ   z„Mismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 1.rJ   é	   rÉ   z‹Mismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 5.4722099rw   zƒMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infrÌ   r   rÍ   rŽ   r   r   r    Útest_array_vs_scalarç  s     ...z)TestArrayAlmostEqual.test_array_vs_scalarc                    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   ˆ  ˆ ˆ¡S r   r   r   ©ÚananÚaoner   r   r    Ú<lambda>  ó    z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>c                      s   ˆ  ˆˆ ¡S r   r   r   ©Úainfr×   r   r   r    rÙ     rÚ   c                      s   ˆ  ˆ ˆ¡S r   r   r   rÛ   r   r    rÙ     rÚ   ©r'   r(   rY   rk   r   r   r"   r7   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 )	Nru   rv   rd   re   )r   r   c                      s   ˆ  ˆ ˆ¡S r   r   r   ©r   r   r   r   r    rÙ     rÚ   z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>c                      s   ˆ  ˆ ˆ¡S r   r   r   rà   r   r    rÙ     rÚ   )r'   r(   rA   rk   r   r"   r7   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 )Nru   rv   rd   re   rw   FTg      @rg   rc   )TTT)ru   rv   rd   )r'   r(   ri   Zmasked_arrayr   rj   r!   Zmaskedr   r   r   r    Útest_subclass  s.    ÿ
z"TestArrayAlmostEqual.test_subclassc                 C   sª   G dd„ dt jƒ}t  ddg¡ |¡}|  ||¡ t  ddg¡ |¡}t|ƒ t  ddg¡ |¡}d}tjtt	 
|¡d�� |  ||¡ W d   ƒ n1 sœ0    Y  d S )	Nc                       s0   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Z‡  ZS )z5TestArrayAlmostEqual.test_subclass_2.<locals>.MyArrayc                    s   t ƒ  |¡ tj¡S r   ©Úsuperrr   ry   r'   rx   rp   ©Ú	__class__r   r    rr   >  s    z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__eq__c                    s   t ƒ  |¡ tj¡S r   ©rä   Ú__lt__ry   r'   rx   rp   rå   r   r    rè   A  s    z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__c                 _   s   t | ƒS r   rƒ   r}   r   r   r    ro   D  s    z9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.all©r9   r:   r;   rr   rè   ro   Ú__classcell__r   r   rå   r    rt   =  s   rt   ru   rv   TéÊ   z�Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 200.
Max relative difference among violations: 0.99009rJ   )r'   rx   r(   ry   r   ro   rL   rM   r"   rP   rQ   )r   rt   r   Úzr   rV   r   r   r    Útest_subclass_28  s    
z$TestArrayAlmostEqual.test_subclass_2c                 C   s6   G dd„ dt jƒ}t  ddg¡ |¡}|  ||¡ d S )Nc                       s0   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                    s   t ƒ  |¡ tj¡S r   rã   rp   rå   r   r    rr   Y  s    zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__c                    s   t ƒ  |¡ tj¡S r   rç   rp   rå   r   r    rè   \  s    zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c                 _   s   t ‚d S r   ©ÚNotImplementedErrorr}   r   r   r    ro   _  s    zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allré   r   r   rå   r    rt   X  s   rt   ru   rv   ©r'   rx   r(   ry   r   ©r   rt   r   r   r   r    Ú!test_subclass_that_cannot_be_boolS  s    
z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN)r9   r:   r;   r=   rÎ   rÒ   rÕ   rß   rá   râ   rí   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S )ÚTestAlmostEqualc                 C   s
   t | _d S r   )r   r   r7   r   r   r    r=   h  s    zTestAlmostEqual.setup_methodc                    sL   ˆ j dddd� tt‡ fdd„ƒ ˆ j dgdgdd� tt‡ fdd„ƒ d S )NrË   rw   r   rÉ   c                      s   ˆ j dddd�S ©NrÈ   rw   r   rÉ   r   r   r7   r   r    rÙ   u  rÚ   z0TestAlmostEqual.test_closeness.<locals>.<lambda>c                      s   ˆ j dgdgdd�S rô   r   r   r7   r   r    rÙ   z  rÚ   ©r   r   r"   r7   r   r7   r    rÎ   k  s    
ÿ
ÿ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                      s   ˆ   tjd¡S r«   )r   r'   rY   r   r7   r   r    rÙ     rÚ   z/TestAlmostEqual.test_nan_item.<locals>.<lambda>c                      s   ˆ   tjtj¡S r   )r   r'   rY   rk   r   r7   r   r    rÙ   �  rÚ   c                      s   ˆ   tjtj¡S r   )r   r'   rk   rY   r   r7   r   r    rÙ   ƒ  rÚ   )r   r'   rY   r   r"   r7   r   r7   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                      s   ˆ   tjd¡S r«   ©r   r'   rk   r   r7   r   r    rÙ   ‰  rÚ   z/TestAlmostEqual.test_inf_item.<locals>.<lambda>c                      s   ˆ   tj tj¡S r   r÷   r   r7   r   r    rÙ   ‹  rÚ   )r   r'   rk   r   r"   r7   r   r7   r    Útest_inf_item…  s    
ÿ
ÿzTestAlmostEqual.test_inf_itemc                 C   s   |   dd¡ d S r¼   )r#   r7   r   r   r    Útest_simple_item�  s    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'   rY   rk   r#   r7   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   rR   rì   rS   r   r   r    rÃ   ˜  s    zTestAlmostEqual.test_complexc                 C   st  t  g d¢¡}t  g d¢¡}d}tjtt |¡d��  | j||dd� W d  ƒ n1 sZ0    Y  d}tjtt |¡d�� |  ||¡ W d  ƒ n1 sž0    Y  t  t jd	g¡}t  t jd
g¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 �s0    Y  t  d
dg¡}t  d	d	g¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 �sf0    Y  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�   a  Mismatched elements: 3 / 3 (100%)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.00000000001, 2.00000000002, 3.00003      ])
 DESIRED: array([1.00000000002, 2.00000000003, 3.00004      ])rJ   é   rÉ   NzåMismatched elements: 1 / 3 (33.3%)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.     , 2.     , 3.00003])
 DESIRED: array([1.     , 2.     , 3.00004])r   r$   z±Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.
 ACTUAL: array([inf,  0.])
 DESIRED: array([inf,  1.])r%   z{Mismatched elements: 2 / 2 (100%)
Max absolute difference among violations: 2
Max relative difference among violations: inf)	r'   r(   rL   rM   r"   rP   rQ   r   rk   rÑ   r   r   r    Útest_error_message   s$    	.*,z"TestAlmostEqual.test_error_messagec                 C   s¨   d}t  d¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 sH0    Y  d}t  d¡}d}tjtt |¡d�� |  ||¡ W d  ƒ n1 sš0    Y  dS )z)Check the message is formatted correctly r%   é   z}Mismatched elements: 20 / 20 (100%)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.rJ   Nz~Mismatched elements: 20 / 20 (100%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5)r'   ÚonesrL   rM   r"   rP   rQ   r   rÑ   r   r   r    Útest_error_message_2Ó  s    
*
z$TestAlmostEqual.test_error_message_2c                 C   s6   G dd„ dt jƒ}t  ddg¡ |¡}|  ||¡ d S )Nc                       s0   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Z‡  ZS )zBTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                    s   t ƒ  |¡ tj¡S r   rã   rp   rå   r   r    rr   ì  s    zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__c                    s   t ƒ  |¡ tj¡S r   rç   rp   rå   r   r    rè   ï  s    zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c                 _   s   t ‚d S r   rî   r}   r   r   r    ro   ò  s    zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allré   r   r   rå   r    rt   ë  s   rt   ru   rv   rð   rñ   r   r   r    rò   æ  s    
z1TestAlmostEqual.test_subclass_that_cannot_be_boolN)r9   r:   r;   r=   rÎ   rö   rø   rù   r¾   rÃ   rû   rþ   rò   r   r   r   r    ró   f  s   	3ró   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestApproxEqualc                 C   s
   t | _d S r   )r   r   r7   r   r   r    r=   û  s    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Ï   ©Zsignificanté   c                      s   ˆ j ˆˆdd�S ©NrÌ   r  r   r   rÂ   r   r    rÙ     rÚ   z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>)r'   r(   r   r   r"   r7   r   rÂ   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                      s   ˆ j ˆˆdd�S r  r   r   rÂ   r   r    rÙ     rÚ   z3TestApproxEqual.test_simple_items.<locals>.<lambda>rõ   r7   r   rÂ   r    Útest_simple_items  s    ÿz!TestApproxEqual.test_simple_itemsc                    st   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                      s   ˆ  ˆ ˆ¡S r   r   r   rÖ   r   r    rÙ     rÚ   z0TestApproxEqual.test_nan_array.<locals>.<lambda>c                      s   ˆ  ˆˆ ¡S r   r   r   rÛ   r   r    rÙ     rÚ   c                      s   ˆ  ˆ ˆ¡S r   r   r   rÛ   r   r    rÙ     rÚ   rÝ   r7   r   rÞ   r    r[     s    
zTestApproxEqual.test_nan_arrayc                    st   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                      s   ˆ  ˆ ˆ¡S r   r   r   rÖ   r   r    rÙ     rÚ   z0TestApproxEqual.test_nan_items.<locals>.<lambda>c                      s   ˆ  ˆˆ ¡S r   r   r   rÛ   r   r    rÙ      rÚ   c                      s   ˆ  ˆ ˆ¡S r   r   r   rÛ   r   r    rÙ   !  rÚ   rÝ   r7   r   rÞ   r    r¬     s    
zTestApproxEqual.test_nan_itemsN)r9   r:   r;   r=   r  r  r[   r¬   r   r   r   r    rÿ   ù  s
   	
	rÿ   c                   @   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d„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestArrayAssertLessc                 C   s
   t | _d S r   )r   r   r7   r   r   r    r=   &  s    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„ƒ t  g d
¢¡}t  g d¢¡}d}tjtt |¡d�� ˆ  ||¡ W d   ƒ n1 sÎ0    Y  d S )Nçš™™™™™ñ?çš™™™™™@ç333333ó?çffffff@c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   .  rÚ   z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>ru   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   2  rÚ   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   3  rÚ   )r$   r,   r  rü   )r%   r-   r  é   z{Mismatched elements: 2 / 4 (50%)
Max absolute difference among violations: 12
Max relative difference among violations: 1.5rJ   )	r'   r(   r   r   r"   rL   rM   rP   rQ   rŽ   r   rÂ   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¡‰ˆ  ˆˆ¡ d	}tjtt |¡d
�� ˆ  ˆˆ¡ W d   ƒ n1 sr0    Y  t  ddgddgg¡‰tt‡ ‡‡fdd„ƒ tt‡ ‡‡fdd„ƒ d S )Nr  r	  çffffff
@gš™™™™™@r
  r  g333333@g      @z„Mismatched elements: 4 / 4 (100%)
Max absolute difference among violations: 0.1
Max relative difference among violations: 0.09090909rJ   ru   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   J  rÚ   z0TestArrayAssertLess.test_rank2.<locals>.<lambda>c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   K  rÚ   )	r'   r(   r   rL   rM   r"   rP   rQ   r   ©r   rV   r   rÂ   r    Ú
test_rank2>  s    *zTestArrayAssertLess.test_rank2c                    s¤   t jdd�‰t jdd�d ‰ˆ  ˆˆ¡ tt‡ ‡‡fdd„ƒ dˆd< d}tjtt |¡d	�� ˆ  ˆˆ¡ W d   ƒ n1 s€0    Y  tt‡ ‡‡fd
d„ƒ d S )N)r%   r%   r%   )Úshaper$   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   R  rÚ   z0TestArrayAssertLess.test_rank3.<locals>.<lambda>r   )r   r   r   z}Mismatched elements: 1 / 8 (12.5%)
Max absolute difference among violations: 1.
Max relative difference among violations: infrJ   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   [  rÚ   )	r'   rý   r   r   r"   rL   rM   rP   rQ   r  r   rÂ   r    Ú
test_rank3M  s    *zTestArrayAssertLess.test_rank3c                    s°   d‰d‰ˆ   ˆˆ¡ d}tjtt |¡d�� ˆ   ˆˆ¡ W d   ƒ n1 sN0    Y  t ddg¡‰ˆ   ˆˆ¡ tt‡ ‡‡fdd„ƒ t ddg¡‰tt‡ ‡‡fd	d„ƒ d S )
Nr  r	  z|Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.1
Max relative difference among violations: 1.rJ   r  c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   k  rÚ   z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>ru   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   o  rÚ   )	r   rL   rM   r"   rP   rQ   r'   r(   r   r  r   rÂ   r    r  ]  s    *z%TestArrayAssertLess.test_simple_itemsc                 C   sè   t  g d¢g d¢g d¢g¡}d}|  ||¡ d}|  ||¡ t  g d¢g d¢g d¢g¡}d	}d
}tjtt |¡d�� |  ||¡ W d   ƒ n1 s–0    Y  d}tjtt |¡d�� |  ||¡ W d   ƒ n1 sÚ0    Y  d S )N)g.c}Ãjƒ@g±áé•²hx@gÄ|yöÅE@gã¥›Ä “ƒ@)g…ëQ¸EK@gH¿}¸šƒ@g      *@çV-²Xy@)ç�Âõ(\ü€@ç®Gáz® @ç˜nƒÀâV@gÍÌÌÌÌÔt@g…ëQ¸šƒ@gmXSY® @)gŒ¹k	ù @g6<½R­¢@g˜//À¾8{@gÓMbÐµÎA)g×£p=ŠIµ@çHáze}.Ag=
×£øÏÿ@r  )r  r  r  g¼‘ye}.Ar  z}Mismatched elements: 1 / 12 (8.33%)
Max absolute difference among violations: 0.
Max relative difference among violations: 0.rJ   z’Mismatched elements: 12 / 12 (100%)
Max absolute difference among violations: 999087.0864
Max relative difference among violations: 289288.5934676rÐ   rÑ   r   r   r    Útest_simple_items_and_arrayq  s&    
þ
þ*z/TestArrayAssertLess.test_simple_items_and_arrayc                 C   s2  t  g d¢¡}t  d¡}d}tjtt |¡d�� |  ||¡ W d   ƒ n1 sR0    Y  d}tjtt |¡d�� |  ||¡ W d   ƒ n1 s–0    Y  d}d}tjtt |¡d�� |  ||¡ W d   ƒ n1 sÞ0    Y  d}tjtt |¡d�� |  ||¡ W d   ƒ n1 �s$0    Y  d S )	N)g    0­ Ar   g)\�Âõè.@g    `fõ@z‰Mismatched elements: 1 / 3 (33.3%)
Max absolute difference among violations: 458802.
Max relative difference among violations: 5.23423917rJ   zŠMismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 87654.
Max relative difference among violations: 5670.5626011r   z�Mismatched elements: 3 / 3 (100%)
Max absolute difference among violations: 546456.
Max relative difference among violations: infz}Mismatched elements: 1 / 3 (33.3%)
Max absolute difference among violations: 0.
Max relative difference among violations: infr�   rÑ   r   r   r    Útest_zeroesŽ  s    
***zTestArrayAssertLess.test_zeroesc                    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                      s   ˆ  ˆˆ ¡S r   r   r   rÖ   r   r    rÙ   ²  rÚ   z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>c                      s   ˆ  ˆ ˆ¡S r   r   r   rÖ   r   r    rÙ   ³  rÚ   c                      s   ˆ  ˆˆ ¡S r   r   r   rÛ   r   r    rÙ   ´  rÚ   c                      s   ˆ  ˆ ˆ¡S r   r   r   rÛ   r   r    rÙ   µ  rÚ   rÝ   r7   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)r  r	  r  c                      s   ˆ  ˆˆ ¡S r   r   r   ©r×   r   rR   r   r    rÙ   »  rÚ   z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>c                      s   ˆ  ˆ ˆ¡S r   r   r   r  r   r    rÙ   ¼  rÚ   r  r	  c                      s   ˆ  ˆˆ ¡S r   r   r   r  r   r    rÙ   À  rÚ   c                      s   ˆ  ˆ ˆ¡S r   r   r   r  r   r    rÙ   Á  rÚ   ru   rv   c                      s   ˆ   ˆˆ¡S r   r   r   rÂ   r   r    rÙ   Æ  rÚ   )r'   r(   rY   r   r"   r   r7   r   )r×   r   rR   rS   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                      s   ˆ  ˆ ˆ¡S r   r   r   ©rÜ   rØ   r   r   r    rÙ   Ï  rÚ   z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>c                      s   ˆ  ˆˆ  ¡S r   r   r   r  r   r    rÙ   Ð  rÚ   c                      s   ˆ  ˆ ˆ ¡S r   r   r   ©rÜ   r   r   r    rÙ   Ñ  rÚ   c                      s   ˆ  ˆ ˆ  ¡S r   r   r   r  r   r    rÙ   Ò  rÚ   c                      s   ˆ  ˆ  ˆ  ¡S r   r   r   r  r   r    rÙ   Ó  rÚ   )r'   r(   rk   r   r   r"   r7   r   r  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 )	Nr  r	  c                      s   ˆ  ˆˆ ¡S r   r   r   ©rÜ   r   rR   r   r    rÙ   Ù  rÚ   z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>c                      s   ˆ  ˆ ˆ¡S r   r   r   r   r   r    rÙ   Ú  rÚ   c                      s   ˆ  ˆˆ  ¡S r   r   r   r   r   r    rÙ   Û  rÚ   c                      s   ˆ  ˆ ˆ  ¡S r   r   r   r   r   r    rÙ   Ü  rÚ   c                      s   ˆ  ˆ  ˆ ¡S r   r   r   r   r   r    rÙ   Ý  rÚ   )r'   r(   rk   r   r"   r   r7   r   r   r    Útest_inf_compare_arrayÕ  s    z*TestArrayAssertLess.test_inf_compare_arrayc                 C   sº   t  d¡}t  d¡}|  ||¡ t t¡�  | j||dd� W d  ƒ n1 sP0    Y  t  ||j¡}|  ||¡ t t¡�( | j|| 	t j
¡dd� W d  ƒ n1 s¬0    Y  dS ©z)Test the behavior of the `strict` option.r,   r   Tr�   N)r'   Zzerosrý   r   rL   rM   r"   Zbroadcast_tor  Úastyper…   rÂ   r   r   r    Útest_strictà  s    

.zTestArrayAssertLess.test_strictN)r9   r:   r;   r=   r  r  r  r  r  r  r  r  r  r!  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	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>.fr(  r,   c                 S   s   | S r   r   ©rR   r   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   r*  Ú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<0    Y  t jd j}dd„ }tt|ƒ t	||dƒ d S )Nr(  r&  c                   S   s4   t ƒ � t d¡ W d   ƒ n1 s&0    Y  d S ©Nr&  )r
   r(  r)  r   r   r   r    Úno_warnings  s    z3TestWarns.test_context_manager.<locals>.no_warningsr,  )
r-  r.  r/  r	   r0  r(  r)  r   r"   r   )r   r1  r2  r5  r   r   r    Útest_context_managerÿ  s    
(
ÿzTestWarns.test_context_managerc              	   C   s,  ddd„}t t|dd�dks J ‚t t¡�H}t tdd�� t d	t¡ W d   ƒ n1 sZ0    Y  W d   ƒ n1 sx0    Y  d
t|ƒv s’J ‚dt|ƒv s¢J ‚t t¡�H}t tdd�� t d	t¡ W d   ƒ n1 sÜ0    Y  W d   ƒ n1 sú0    Y  d
t|ƒv �sJ ‚dt|ƒv�s(J ‚d S )Nr   r$   c                 S   s   t  d¡ | | S r4  r'  )r   r   r   r   r    r*    s    
zTestWarns.test_args.<locals>.frü   ©r   ÚArJ   ÚBr	   zpytest.warns)Zwrong)r   r$   )r	   r0  rL   rM   ÚRuntimeErrorr(  r)  rN   )r   r*  Úexcr   r   r    Ú	test_args  s    
HHzTestWarns.test_argsc              	   C   sv   dd„ }d}t  ¡ �B t  dt¡ ztt|ƒ d}W n tyF   Y n0 W d   ƒ n1 s\0    Y  |rrtdƒ‚d S )Nc                   S   s   t  dt¡ d S r4  )r(  r)  ÚDeprecationWarningr   r   r   r    r*  $  s    z,TestWarns.test_warn_wrong_warning.<locals>.fFÚerrorTz#wrong warning caught by assert_warn)r(  Úcatch_warningsÚsimplefilterr=  r	   r0  r"   )r   r*  Úfailedr   r   r    Útest_warn_wrong_warning#  s    

$z!TestWarns.test_warn_wrong_warningN)r9   r:   r;   r3  r6  r<  rB  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S )ÚTestAssertAllclosec                 C   s&  d}d}t ||dd� ttt ||ƒ d}tjtt |¡d�� t ||ƒ W d   ƒ n1 s\0    Y  d}d}tjtt |¡d�� t ||ƒ W d   ƒ n1 s¢0    Y  d	}tjtt |¡d�� t ||ƒ W d   ƒ n1 sä0    Y  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� t ||||g¡}t ||||g¡}d}tjtt |¡d�� t ||ƒ W d   ƒ n1 �sÔ0    Y  d}tjtt |¡d�� t ||ƒ W d   ƒ n1 �s0    Y  d S )Ngü©ñÒMbP?g•Ö&è.>r$   ©ZatolzƒMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 999999.rJ   r   z€Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: infzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: 1.gÜ1¯  ð?rÄ   )Zrtolr  r§   g      à?z~Mismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 0.001
Max relative difference among violations: infz}Mismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 1.)	r   r   r"   rL   rM   rP   rQ   r'   r(   )r   rR   rS   rV   rì   r   r   rD   r   r   r    rÒ   7  s>    (((
*zTestAssertAllclose.test_simplec                 C   s*   t jt  t j¡jgt jd�}t||ƒ d S )Nr1   )r'   r(   ZiinfoÚint_Úminr   r4   r   r   r    Útest_min_intl  s    zTestAssertAllclose.test_min_intc                 C   sb   t  g d¢¡}t  g d¢¡}d}tjtt |¡d�� t||ƒ W d   ƒ n1 sT0    Y  d S )N)r$   r$   r$   r$   )r$   r$   r$   r%   zzMismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 1
Max relative difference among violations: 0.5rJ   ©r'   r(   rL   rM   r"   rP   rQ   r   rŽ   r   r   r    Útest_report_fail_percentageq  s
    z.TestAssertAllclose.test_report_fail_percentagec                 C   s.   t  t jg¡}t  t jg¡}t||dd� d S )NT©Z	equal_nan)r'   r(   rY   r   r   r   r   r    Útest_equal_nan{  s    z!TestAssertAllclose.test_equal_nanc                 C   s2   t  t jg¡}t  t jg¡}ttt||dd� d S )NFrJ  )r'   r(   rY   r   r"   r   r   r   r   r    Útest_not_equal_nan�  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(   rY   r   r   r   r   r   r   r   r    Útest_equal_nan_default†  s    


z)TestAssertAllclose.test_equal_nan_defaultc                 C   sb   t  ddg¡}t  ddg¡}d}tjtt |¡d�� t||ƒ W d   ƒ n1 sT0    Y  d S )Nr   r$   r%   z-Max relative difference among violations: 0.5rJ   rH  rŽ   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]r1   )r'   r(   r   r4   r   r   r    Útest_timedelta™  s    z!TestAssertAllclose.test_timedeltac                 C   sn   t jg d¢dd�}t jg d¢dd�}d}tjtt |¡d�� t||dd� W d	  ƒ n1 s`0    Y  d	S )
zUCheck the message is formatted correctly when overflow can occur
           (gh21768))r   r$   r  Zuint8r1   )r-   r-   r-   z+Max absolute difference among violations: 4rJ   r,   rD  N)r'   ZasarrayrL   rM   r"   rP   rQ   r   rÑ   r   r   r    Útest_error_message_unsignedž  s
    z.TestAssertAllclose.test_error_message_unsignedc                 C   s¤   t  d¡}t  d¡}t||ƒ t t¡� t||dd� W d  ƒ n1 sL0    Y  t||ƒ t t¡�& t|| t j¡dd� W d  ƒ n1 s–0    Y  dS r"  )r'   rý   r   rL   rM   r"   r#  r…   rÂ   r   r   r    r$  «  s    


,
zTestAssertAllclose.test_strictN)r9   r:   r;   rÒ   rG  rI  rK  rL  rM  rN  rO  rP  r$  r   r   r   r    rC  5  s   5
rC  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   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ü   é2   r1   r§   rv   ©	r'   ÚlinspaceÚfloat64Úr_Úfinfor2   Úepsr   Úepsneg©r   ÚnulprR   rZ  rS   r[  r   r   r    Útest_float64_pass¹  s    z*TestArrayAlmostEqualNulp.test_float64_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 rR  ©r'   rV  rW  rX  rY  r2   rZ  r   r"   r   r[  r\  r   r   r    Útest_float64_failË  s    ÿÿz*TestArrayAlmostEqualNulp.test_float64_failc                 C   sT   t  d¡}t jt jt jd� t j¡}||A }| t j¡}| t j¡}t||dƒ d S )Nl   ÿÿ r1   r   )r'   Zuint64r(   rY   rW  ry   r   )r   ÚoffsetZnan1_i64Znan2_i64Znan1_f64Znan2_f64r   r   r    Útest_float64_ignore_nanÛ  s    
z0TestArrayAlmostEqualNulp.test_float64_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 rR  ©	r'   rV  r…   rX  rY  r2   rZ  r   r[  r\  r   r   r    Útest_float32_passæ  s    z*TestArrayAlmostEqualNulp.test_float32_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 rR  ©r'   rV  r…   rX  rY  r2   rZ  r   r"   r   r[  r\  r   r   r    Útest_float32_failô  s    ÿÿz*TestArrayAlmostEqualNulp.test_float32_failc                 C   sT   t  d¡}t jt jt jd� t j¡}||A }| t j¡}| t j¡}t||dƒ d S )Niÿÿ  r1   r   )r'   Zuint32r(   rY   r…   ry   r   )r   ra  Znan1_i32Znan2_i32Znan1_f32Znan2_f32r   r   r    Útest_float32_ignore_nan  s    
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-   r§   r1   rv   )	r'   rV  Úfloat16rX  rY  r2   rZ  r   r[  r\  r   r   r    Útest_float16_pass  s    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 rh  )r'   rV  rj  rX  rY  r2   rZ  r   r"   r   r[  r\  r   r   r    Útest_float16_fail  s    ÿÿz*TestArrayAlmostEqualNulp.test_float16_failc                 C   sT   t  d¡}t jt jt jd� t j¡}||A }| t j¡}| t j¡}t||dƒ d S )Néÿ   r1   r   )r'   Zuint16r(   rY   rj  ry   r   )r   ra  Znan1_i16Znan2_i16Znan1_f16Znan2_f16r   r   r    Útest_float16_ignore_nan-  s    
z0TestArrayAlmostEqualNulp.test_float16_ignore_nanc                 C   s$  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Ï   rS  rü   rT  r1   r§   ù              ð?rv   re   rU  ©r   r]  rR   ÚxirZ  rS   r[  r   r   r    Útest_complex128_pass8  s"    z-TestArrayAlmostEqualNulp.test_complex128_passc                 C   s4  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Ï   rS  rü   rT  r1   r§   rp  rv   r_  rq  r   r   r    Útest_complex128_failO  s:    ÿÿÿÿÿÿz-TestArrayAlmostEqualNulp.test_complex128_failc                 C   s$  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 ro  rc  rq  r   r   r    Útest_complex64_passl  s"    z,TestArrayAlmostEqualNulp.test_complex64_passc                 C   s4  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 rt  re  rq  r   r   r    Útest_complex64_fail�  s:    ÿÿÿÿÿÿz,TestArrayAlmostEqualNulp.test_complex64_failN)r9   r:   r;   r^  r`  rb  rd  rf  rg  rk  rl  rn  rs  ru  rv  rw  r   r   r   r    rQ  ·  s   rQ  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestULPc                 C   s   t j d¡}t||dd� d S )Nr§   r   ©Úmaxulp)r'   ÚrandomÚrandnr   )r   rR   r   r   r    Ú
test_equalŸ  s    zTestULP.test_equalc                 C   sR   t  d¡ t j¡}|dt j d¡ t j¡ 7 }t  t j¡j}t||| dd� d S )Nr§   ç{®Gáz„?rü   ry  )	r'   rý   r#  r…   r{  r|  rY  rZ  r   ©r   rR   rZ  r   r   r    Útest_single£  s    zTestULP.test_singlec                 C   sR   t  d¡ t j¡}|dt j d¡ t j¡ 7 }t  t j¡j}t||| dd� d S )Nr§   r~  éÈ   ry  )	r'   rý   r#  rW  r{  r|  rY  rZ  r   r  r   r   r    Útest_doubleª  s    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�  ry  )	r'   r…   rW  r(   rk   r#  rY  Úmaxr   )r   Údtrk   Ú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  dg¡ |¡‰t  d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   ¢”mBrw   g       €c                      s   t ˆˆ ˆd�S ©Nry  ©r   r   )rk   rz  rY   r   r    rÙ   Å  s   ÿz"TestULP.test_nan.<locals>.<lambda>c                      s   t ˆˆ ˆd�S r†  r‡  r   )r…  rz  rY   r   r    rÙ   È  s   ÿc                      s   t ˆˆˆ d�S r†  r‡  r   )rz  rY   Útinyr   r    rÙ   Ë  s   ÿc                      s   t ˆˆˆ d�S r†  r‡  r   )rz  rY   Úzeror   r    rÙ   Î  s   ÿc                      s   t ˆˆˆ d�S r†  r‡  r   )rz  rY   Únzeror   r    rÙ   Ñ  s   ÿ)r'   r…   rW  r(   rk   r#  rY   rY  rƒ  rˆ  r   r"   )r   r„  r   )r…  rk   rz  rY   rŠ  rˆ  r‰  r    rß   ·  s2    
ÿÿÿÿÿzTestULP.test_nanN)r9   r:   r;   r}  r€  r‚  rá   rß   r   r   r   r    rx  �  s
   rx  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestStringEqualc                 C   sn   t ddƒ t ddƒ t t¡�}t ddƒ W d   ƒ n1 s>0    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   s
   t ddƒS )NrE   rŒ  ©r   r   r   r   r    rÙ   à  rÚ   z-TestStringEqual.test_simple.<locals>.<lambda>)r   rL   rM   r"   rN   rO   r   r   )r   rT   rU   r   r   r    rÒ   Ö  s    

(

ÿzTestStringEqual.test_simplec                 C   s   t ddƒ ttdd„ ƒ d S )Nza+*bc                   S   s
   t ddƒS )NZaaaza+br�  r   r   r   r    rÙ   æ  rÚ   z,TestStringEqual.test_regex.<locals>.<lambda>)r   r   r"   r7   r   r   r    Ú
test_regexâ  s    
ÿzTestStringEqual.test_regexN)r9   r:   r;   rÒ   rŽ  r   r   r   r    r‹  Õ  s   r‹  c                 C   sH   z
| j }W n ty    i }Y n0 t|ƒ}d|v r:|d8 }t||ƒ d S )NÚversionr$   )Ú__warningregistry__ÚAttributeErrorÚlenr   )ÚmodÚn_in_contextZ	mod_warnsZ	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)r9   r:   r;   r   r   r   r    r“    s   r“  r   )r“  r”  c                   @   s   e Zd Zdd„ ZdS )r–  c                 S   s   dddœ| _ d S )Nr$   r%   ©Zwarning1Zwarning2)r�  r7   r   r   r    Ú__init__  s    ÿz8test_warn_len_equal_call_scenarios.<locals>.mod.__init__N)r9   r:   r;   r˜  r   r   r   r    r“    s   r%   )r•  )r“  Zmod_instr   r   r    Ú"test_warn_len_equal_call_scenarios   s    ÿÿr™  c                  C   s0   t jt } z| j ¡  W n ty*   Y n0 | S r   )r-  r.  r9   r�  Úclearr‘  ©Úmy_modr   r   r    Ú_get_fresh_mod  s    
r�  c                  C   sH  t ƒ } tt| di ƒi ƒ t| gd��$ t d¡ t d¡ W d   ƒ n1 sN0    Y  t| ji ƒ tƒ �$ t d¡ t d¡ W d   ƒ n1 s”0    Y  t| dƒ dddœ| _t| gd��$ t d¡ t d	¡ W d   ƒ n1 sê0    Y  t| dƒ tƒ �$ t d¡ t d	¡ W d   ƒ n1 �s00    Y  t| dƒ d S )
Nr�  )r.  ÚignoreúSome warningr   r$   r%   r—  zAnother warning)	r�  r   Úgetattrr   r(  r@  r)  r�  r•  r›  r   r   r    Útest_clear_and_catch_warnings(  s*    
(
(
ÿ
(

*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 sp0    Y  tt|jƒdƒ t|jd jjd dƒ t| dƒ tƒ }|j| d� |� t d¡ W d   ƒ n1 sâ0    Y  t| dƒ |j| d� |� t d¡ W d   ƒ n1 �s(0    Y  t| dƒ tƒ �$ t d¡ t d¡ W d   ƒ n1 �sn0    Y  t| dƒ d S )	Nr�  c                  S   s   dd„ } t  | ddg¡ d S )Nc                 S   s   t jddd� | S )NzSome warning 2r%   ©Ú
stacklevelr'  ©Zarrr   r   r    r)  P  s    zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnr   ©r'   Zapply_along_axis©r)  r   r   r    Úwarn_other_moduleM  s    z8test_suppress_warnings_module.<locals>.warn_other_moduler   ©ÚmodulerŸ  r$   rž  )r�  r   r   r•  r   Úrecordr0  Úfilterr'   ÚlibZ_shape_base_implr(  r)  r’  ÚlogÚmessager~   r@  )rœ  r§  Úsupr   r   r    Útest_suppress_warnings_moduleH  s2    	


$
(
*

*r°  c                  C   s2  t ƒ } tt| di ƒi ƒ tƒ �$}| t¡ t d¡ W d   ƒ n1 sH0    Y  t| dƒ tƒ }| t¡ |� t d¡ W d   ƒ n1 s�0    Y  t| dƒ |j| d� |� t d¡ W d   ƒ n1 sÔ0    Y  t| dƒ tƒ �$ t 	d¡ t d¡ W d   ƒ n1 �s0    Y  t| dƒ d S )Nr�  rŸ  r   r¨  rž  )
r�  r   r   r   r«  r0  r(  r)  r•  r@  )rœ  r¯  r   r   r    Útest_suppress_warnings_typev  s&    
(

(
(

*r±  c                  C   st   t ƒ } |  t¡ | dd„ ƒ}tjdd��8}t d¡ |tƒ |tƒ tt|ƒdƒ W d   ƒ n1 sf0    Y  d S )Nc                 S   s   t  d| ¡ d S )NrŸ  r'  )Úcategoryr   r   r    r)  –  s    z7test_suppress_warnings_decorate_no_record.<locals>.warnT)rª  Úalwaysr$   )	r   r«  r0  r(  r?  r@  ÚRuntimeWarningr   r’  )r¯  r)  Úwr   r   r    Ú)test_suppress_warnings_decorate_no_record’  s    


r¶  c               	   C   sä  t ƒ } |  ¡ }| �ˆ | 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 0    Y  | �ˆ | 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>0    Y  t ƒ �€} |  ¡  t ƒ �@}|jdd� t d¡ t d¡ tt|jƒdƒ W d   ƒ n1 �s¦0    Y  tt| jƒdƒ W d   ƒ n1 �sÖ0    Y  d S )NzSome other warning 2)r®  rŸ  úSome other warningr%   r$   r   )
r   rª  r«  r(  r)  r   r’  r­  r®  r~   )r¯  Zlog1Úlog2Úsup2r   r   r    Útest_suppress_warnings_record¡  s<    


4


6

0rº  c               	   C   s<  dd„ } t ƒ �h}| ¡  t dƒ�( tdƒD ]}t d¡ q*W d   ƒ n1 sN0    Y  tt|jƒdƒ W d   ƒ n1 s|0    Y  t ƒ �r}| ¡  t dƒ�2 tdƒD ]}t d¡ t d¡ q¨W d   ƒ n1 sÖ0    Y  tt|jƒdƒ W d   ƒ n1 �s0    Y  t ƒ �|}| ¡  t dƒ�: tdƒD ] }t d¡ t d¡ | ƒ  �q2W d   ƒ n1 �sj0    Y  tt|jƒdƒ W d   ƒ n1 �sš0    Y  t ƒ �|}| ¡  t dƒ�: tdƒD ] }t d¡ t d	¡ | ƒ  �qÆW d   ƒ n1 �sþ0    Y  tt|jƒdƒ W d   ƒ n1 �s.0    Y  d S )
Nc                  S   s   dd„ } t  | ddg¡ d S )Nc                 S   s   t jddd� | S )NrŸ  r%   r¢  r'  r¤  r   r   r    r)  Í  s    zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warnr   r¥  r¦  r   r   r    r§  Ê  s    z<test_suppress_warnings_forwarding.<locals>.warn_other_moduler³  r%   rŸ  Úlocationr©  Úoncer·  )r   rª  Úranger(  r)  r   r’  r­  )r§  r¯  Úir   r   r    Ú!test_suppress_warnings_forwardingÉ  s<    
*.

*0


*0


*r¿  c               	   C   sÚ   t ƒ �H} tj | d¡}t|dƒ� W d   ƒ n1 s60    Y  W d   ƒ n1 sT0    Y  ttj | ¡ ƒ d}z0t ƒ �} tƒ ‚W d   ƒ n1 s˜0    Y  W n tyº   d}Y n0 t|ƒ ttj | ¡ ƒ d S )NÚtmprµ  FT)r   ÚosÚpathÚjoinÚopenr   ÚisdirÚ
ValueError)ZtdirÚfpathÚraisedr   r   r    Útest_tempdirø  s    <(
rÉ  c               	   C   sÌ   t ƒ �:} t| dƒ� W d   ƒ n1 s(0    Y  W d   ƒ n1 sF0    Y  ttj | ¡ ƒ d}z0t ƒ �} tƒ ‚W d   ƒ n1 sŠ0    Y  W n ty¬   d}Y n0 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)r9   r:   r;   r-  r.  Zclass_modulesr   r   r   r    rÌ    s   rÌ  c                  C   sP   t ƒ } tƒ �$ t d¡ t d¡ W d   ƒ n1 s60    Y  t| ji ƒ d S )Nrž  rŸ  )r�  rÌ  r(  r@  r)  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*0    Y  t |ƒ d S )Nc                  S   s   g } |   g ¡ | S r   ©Úappendr7  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 s40    Y  W d   ƒ n1 sR0    Y  t tƒ� t|ƒ W d   ƒ n1 s‚0    Y  d S )Nc                  S   s   g } |   | ¡ |   | ¡ | S r   rÐ  )r   r   r   r    Ú
make_cycle7  s    

z5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle)r   r"   r   )r   rÔ  r   r   r    Útest_asserts6  s    
B
z!TestAssertNoGcCycles.test_assertsc                    s˜   G ‡ fdd„dƒ‰ zxt  ˆ ƒ ¡}z8ttƒ� tdd„ ƒ W d  ƒ n1 sL0    Y  W n( ty€   |ƒ dur|t d¡ ‚ Y n0 W dˆ _ndˆ _0 dS )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   )Úcycler7   r   r   r    r˜  R  s    zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__c                    s   d | _ ˆ jrˆ ƒ  d S r   )rÖ  rÔ  r7   ©ÚReferenceCycleInDelr   r    Ú__del__U  s    zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__N)r9   r:   r;   Ú__doc__rÔ  r˜  rÙ  r   r×  r   r    rØ  K  s   rØ  c                   S   s   d S r   r   r   r   r   r    rÙ   c  rÚ   z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Nz*GC does not call __del__ on cyclic objectsF)	ÚweakrefÚrefr   r:  r   r"   rL   ÚskiprÔ  )r   rµ  r   r×  r    Ú
test_failsD  s    
.


zTestAssertNoGcCycles.test_failsN)
r9   r:   r;   rÚ  rÓ  rÕ  rL   ÚmarkZslowrÞ  r   r   r   r    rÏ  '  s
   rÏ  Úassert_funcc              	   C   s†  | ddƒ | ddd� d}t jt|d�� | ddƒ W d   ƒ n1 sH0    Y  t jt|d�� | ddd� W d   ƒ n1 s‚0    Y  d}t jt|d�� | ddd� W d   ƒ n1 sÀ0    Y  t jt|d�� | ddd� W d   ƒ n1 sú0    Y  d	}t jt|d��Z t jt|d��* | ddd
� | dddd� W d   ƒ n1 �sX0    Y  W d   ƒ n1 �sx0    Y  d S )Nr$   )ÚactualÚdesiredzArrays are not...rJ   r%   zUse of keyword argument...)rR   râ  )rS   z#...got multiple values for argumentr+  )rL   rM   r"   Zwarnsr=  ra   )rà  Zassert_messageZdep_messageZtype_messager   r   r    Útest_xy_renamep  s$    
(***ÿrã  )Br(  r-  rÁ  r¶   rL   rÛ  rP   Únumpyr'   Znumpy._core._multiarray_umathZ_coreZ_multiarray_umathr¿   Z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ÿ   r  r%  rC  rQ  rx  r‹  r•  r™  r�  r¡  r°  r±  r¶  rº  r¿  rÉ  rË  rÌ  rÍ  rß  ZskipifrÏ  Zparametrizerã  r   r   r   r    Ú<module>   s^   \
. `-_ 9 + JH  g8 .(/	H
ÿ