HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/testing/tests/__pycache__/test_utils.cpython-310.pyc
o

���g���@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZGdd�d�ZGdd�de�ZGdd�d�Z Gd	d
�d
e�Z!Gdd�de�Z"Gd
d�de�Z#Gdd�d�Z$Gdd�d�Z%Gdd�d�Z&Gdd�d�Z'Gdd�d�Z(Gdd�d�Z)Gdd�d�Z*dd�Z+dd �Z,d!d"�Z-d#d$�Z.d%d&�Z/d'd(�Z0d)d*�Z1d+d,�Z2d-d.�Z3d/d0�Z4d1d2�Z5Gd3d4�d4e�Z6d5d6�Z7ej8j9ed7d8�Gd9d:�d:��Z:dS);�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@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�_GenericTestcCs|�||�dS�N��_assert_func��self�a�b�r�I/usr/local/lib/python3.10/dist-packages/numpy/testing/tests/test_utils.py�_test_equal�z_GenericTest._test_equalcCs:tt��|�||�Wd�dS1swYdSr)r�AssertionErrorrrrrr �_test_not_equals
"�z_GenericTest._test_not_equalcCs,t�ddg�}t�ddg�}|�||�dS)z/Test two equal array of rank 1 are found equal.��N��np�arrayr!rrrr �test_array_rank1_eq�z _GenericTest.test_array_rank1_eqcCs,t�ddg�}t�ddg�}|�||�dS)z7Test two different array of rank 1 are found not equal.r%r&N�r(r)r$rrrr �test_array_rank1_noteq#r+z#_GenericTest.test_array_rank1_noteqcCs<t�ddgddgg�}t�ddgddgg�}|�||�dS)z/Test two equal array of rank 2 are found equal.r%r&��Nr'rrrr �test_array_rank2_eq*sz _GenericTest.test_array_rank2_eqcCs4t�ddg�}t�ddgddgg�}|�||�dS)�:Test two arrays with different shapes are found not equal.r%r&Nr,rrrr �test_array_diffshape1sz!_GenericTest.test_array_diffshapecCs"tjddgtd�}|�|d�dS)zTest object arrays.r%��dtypeN)r(r)�objectr!�rrrrr �
test_objarray8sz_GenericTest.test_objarraycCs|�gd�d�dS)N�r%r&r.)r!�rrrr �test_array_likes=�z_GenericTest.test_array_likesN)�__name__�
__module__�__qualname__r!r$r*r-r0r2r7r:rrrr rsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�TestArrayEqualcC�
t|_dSr)rrr9rrr �setup_methodC�
zTestArrayEqual.setup_methodc�4�fdd�}dD]}||�qdD]}||�qdS)z!Test rank 1 array for all dtypes.c�Lt�d|�}|�d�|��}|��}|�d���||���||�dS)Nr&r%r�r(�empty�fill�copyr!r$��trr�cr9rr �fooH�

z.TestArrayEqual.test_generic_rank1.<locals>.foo�?bhilqpBHILQPfdgFDG��S1�U1Nr�rrLrJrr9r �test_generic_rank1F�


�z!TestArrayEqual.test_generic_rank1cCslt�d�}t�d�}tt|j||�|}|�||�t�d�}t�d�}tt|j||�|}|�||�dS)NlCj�<T"3��w�
�-l(M$c7u��v��+�
)r(r)rr#r�r�x�yrrr �test_0_ndim_arrayYs



z TestArrayEqual.test_0_ndim_arraycrC)z!Test rank 3 array for all dtypes.crD)N)r/r&r.r%rrErIr9rr rLjrMz.TestArrayEqual.test_generic_rank3.<locals>.foorNrONrrRrr9r �test_generic_rank3hrTz!TestArrayEqual.test_generic_rank3cCsNt�ddtjg�}t�ddtjg�}|�||�t�gd��}|�||�dS)z$Test arrays with nan values in them.r%r&r8N)r(r)�nanr!r$�rrrrKrrr �test_nan_array{s
zTestArrayEqual.test_nan_arraycCsFt�ddg�}t�ddg�}|�||�t�ddg�}|�||�dS)r1�floupi�floupa�floupipiN)r(r)r!r$r]rrr �test_string_arrays�s
z!TestArrayEqual.test_string_arrayscCs�t�ddtfdtfg�}ddg|d<ddg|d<|��}|�||�t�ddtfdtfdtfg�}|d��|d<|d��|d<t�t��|�||�Wd�dS1sXwYdS)zTest record arrays.r&r_r`r%raN)	r(rF�floatrHr!�pytest�raises�	TypeErrorr$r]rrr �test_recarrays�s�"�zTestArrayEqual.test_recarrayscCs�tjjgd�gd�d�}t�dtjdg�}|�||�|�||�tjjgd�gd�d�}t�tjddg�}|�||�|�||�dS)N��@�@�@)FTF��maskrirk)TFFrj)r(�ma�MaskedArrayr)r\r!�infrrrr �test_masked_nan_inf�sz"TestArrayEqual.test_masked_nan_infcCs�Gdd�dtj�}t�ddg��|�}t�ddg��|�}tt||k�t�t||k�t||k�|�||�|�||�|�||�dS)Nc@�eZdZdd�Zdd�ZdS)z?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArraycSstt�||����Sr)�boolr(�equal�all�r�otherrrr �__eq__�r;zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__cSs
||kSrrrvrrr �__ne__�rBzFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__N)r<r=r>rxryrrrr �MyArray�srz��?�@ri)	r(�ndarrayr)�viewr�typersr!r$�rrzrrrrr �test_subclass_that_overrides_eq�sz.TestArrayEqual.test_subclass_that_overrides_eqcCs�Gdd�dtj�}t�ddg��|�}t�ddg��|�}tt��
t�|�Wd�n1s1wY|�||�|�||�|�||�dS)Nc@�eZdZdd�ZdS)zKTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc_stSr)�NotImplemented�r�args�kwargsrrr �__array_function__��z^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__N)r<r=r>r�rrrr rz��rzr{r|ri)	r(r}r)r~rrfrur!r$r�rrr �+test_subclass_that_does_not_implement_npall�s
�z:TestArrayEqual.test_subclass_that_does_not_implement_npallc	Cs�t�t��<tjdd��tj�t�gd�tj�t�gd�tj��Wd�n1s,wYWd�dSWd�dS1sDwYdS)N�raise)rur8)r%g�Ww'&l�7r.)	rdrer#r(�errstate�testingrr)�float32r9rrr �test_suppress_overflow_warnings�s���"�z.TestArrayEqual.test_suppress_overflow_warningscC�"t�gd��}d}|�||�dS)z@Test comparing an array with a scalar when all values are equal.�r{r{r{r{Nr'rrrr �test_array_vs_scalar_is_equal��z,TestArrayEqual.test_array_vs_scalar_is_equalcCr�)z@Test comparing an array with a scalar when not all values equal.�r{r|rir{Nr,rrrr �test_array_vs_scalar_not_equal�r�z-TestArrayEqual.test_array_vs_scalar_not_equalcCsPt�gd��}d}t�t��t||dd�Wd�dS1s!wYdS)z9Test comparing an array with a scalar with strict option.r�r{T��strictN�r(r)rdrer#rrrrr �test_array_vs_scalar_strict�s
"�z*TestArrayEqual.test_array_vs_scalar_strictcCs.t�gd��}t�gd��}t||dd�dS)�-Test comparing two arrays with strict option.r�Tr�N)r(r)rrrrr �test_array_vs_array_strict�sz)TestArrayEqual.test_array_vs_array_strictcCsZt�gd��}t�gd��}t�t��t||dd�Wd�dS1s&wYdS)r�)r%r%r%r�Tr�Nr�rrrr � test_array_vs_float_array_strict�s
"�z/TestArrayEqual.test_array_vs_float_array_strictN)r<r=r>rArSrZr[r^rbrgrqr�r�r�r�r�r�r�r�rrrr r?As"

r?c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestBuildErrorMessagecCs@t�gd��}t�gd��}d}t||g|�}d}t||�dS)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)rr�rrXrY�err_msgrrrrr �test_build_err_msg_defaults�sz1TestBuildErrorMessage.test_build_err_msg_defaultscC�Dt�gd��}t�gd��}d}t||g|dd�}d}t||�dS)Nr�r�r�F)�verbosez)
Items are not equal: There is a mismatchr�r�rrr �test_build_err_msg_no_verbose	sz3TestBuildErrorMessage.test_build_err_msg_no_verbosecCr�)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�rrr �test_build_err_msg_custom_names�z5TestBuildErrorMessage.test_build_err_msg_custom_namescCr�)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�rrr �#test_build_err_msg_custom_precisionr�z9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r<r=r>r�r�r�r�rrrr r��s
	r�c@�\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�	TestEqualcCr@r)rrr9rrr rA+rBzTestEqual.setup_methodcCsH|�tjtj�|�tjgtjg�|�tjtjg�|�tjd�dS�Nr%)rr(r\r$r9rrr �test_nan_items.szTestEqual.test_nan_itemscCs:|�tjtj�|�tjgtjg�|�tjtjg�dSr)rr(rpr$r9rrr �test_inf_items4szTestEqual.test_inf_itemscCst|�t�dd�t�dd��|�t�dd�t�dd��|�t�dd�t�dd��|�t�dd�t�dd��dS)N�
2017-01-01�s�mz
2017-01-02)r!r(�
datetime64r$r9rrr �
test_datetime9s 

�

�

�

�zTestEqual.test_datetimecCstt�d�}t�dd�}t�dd�}t�d�}t�dd�}t�dd�}|||g}|||g}t�||�D]\}	}
|�|	|
�|�|	g|
g�|�|	g|
�q2t�||�D]\}	}
|�|	|
�|�|	g|
g�|�|	g|
�qRt�||�D]E\}	}
|�|	|
�|�|	|
g�|�|	g|
g�|�|	gt�dd��|�|
gt�dd��|�|	gt�dd��|�|
gt�dd��qrdS)N�NaTr��nsr��{)r(r��timedelta64�	itertools�productrr$)r�nadt_no_unit�nadt_s�nadt_d�natd_no_unit�natd_s�natd_d�dts�tdsrrrrr �test_nat_itemsMs2



�zTestEqual.test_nat_itemscCs|�dd�|�dd�dS)N�ab�abb)rr$r9rrr �test_non_numericlszTestEqual.test_non_numericcCs�|�tdd�tdd��|�tdtj�tdtj��|�tdtj�tdd��|�ttjd�tdtj��|�ttjtj�ttjd��dS�Nr%r&)r�complexr(r\r$rpr9rrr �test_complex_itemps
"zTestEqual.test_complex_itemcCs|�tjtj�dSr)r$r(�PZERO�NZEROr9rrr �test_negative_zerowr;zTestEqual.test_negative_zerocCsRt�tdd�tdtj�g�}t�tdd�tdd�g�}|�||�|�||�dSr��r(r)r�r\rr$rWrrr �test_complexzszTestEqual.test_complexcCsDddl}t�|�ddd�|�ddd�g�}|�||ddd��dS)Nri�r%r&���)�datetimer(r)r$)rr�rrrr �test_object�s
�zTestEqual.test_objectN)
r<r=r>rAr�r�r�r�r�r�r�r�r�rrrr r�)sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestArrayAlmostEqualcCr@r)rrr9rrr rA�rBz!TestArrayAlmostEqual.setup_methodc�L�jdddd�tt�fdd���jdgdgdd�tt�fdd��dS)N���?�r��decimalc��jdddd�S�Ng�?r�rr�rrr9rr �<lambda>��z5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>c��jdgdgdd�Sr�rrr9rr r����rrr#r9rr9r �test_closeness��
�
�z#TestArrayAlmostEqual.test_closenesscsRt�dg��t�dg���j��dd��j��dd�tt���fdd��dS)Ng��e��H�@g�w���H�@r.r�r/c��j��dd�S)N�r�rrrWrr r��r�z2TestArrayAlmostEqual.test_simple.<locals>.<lambda>�r(r)rrr#r9rrWr �test_simple�s�z TestArrayAlmostEqual.test_simplecszt�tjg��t�dg��t�tjg�������tt���fdd��tt���fdd��tt���fdd��dS)Nr%c������Srrr��anan�aonerrr r���z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>c������Srrr��ainfr�rrr r��r�cr�rrrr�rr r��r��r(r)r\rprrr#r9r�r�r�r�rr �test_nan�s���zTestArrayAlmostEqual.test_nancsdt�ddgddgg������tj�d<tt���fdd��tj�d<tt���fdd��dS)	Nr{r|rirj)rrcr�rrr�rrrrr r��r�z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>cr�rrrr�rr r��r�)r(r)rHrprr#r9rr�r �test_inf�s
��zTestArrayAlmostEqual.test_infcCs@t�ddgddgg�}tj�ddgddggddgddgg�}|�||�|�||�|�||�tjjddd	�}t�gd
��}|�||�|�||�tjj}t�gd
��}|�||�|�||�tjjgd
�gd�d	�}t�gd��}|�||�|�||�tjjgd
�gd�d	�}t�d�}|�||�|�||�dS)
Nr{r|rirjr�FTg@rlrh)TTTr�)r(r)rn�masked_arrayrror!�maskedrrrr �
test_subclass�s.�
z"TestArrayAlmostEqual.test_subclasscC�6Gdd�dtj�}t�ddg��|�}|�||�dS)Nc�0eZdZ�fdd�Z�fdd�Zdd�Z�ZS)zGTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc�t��|��tj�Sr��superrxr~r(r}rv��	__class__rr rx�r;zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cr�r�r�__lt__r~r(r}rvrrr r�r;zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_�t�r��NotImplementedErrorr�rrr ru�r�zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all�r<r=r>rxrru�
__classcell__rrrr rz��rzr{r|�r(r}r)r~r�rrzrrrr �!test_subclass_that_cannot_be_bool��
z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN)
r<r=r>rAr�r�r�r�r�rrrrr r��s	
r�c@r�)�TestAlmostEqualcCr@r)rrr9rrr rA�rBzTestAlmostEqual.setup_methodcr�)Nr�r�rr�cr�r�rrr9rr r��r�z0TestAlmostEqual.test_closeness.<locals>.<lambda>cr�r�rrr9rr r��r�r�r9rr9r r��r�zTestAlmostEqual.test_closenesscsJ��tjtj�tt�fdd��tt�fdd��tt�fdd��dS)Nc���tjd�Sr�)rr(r\rr9rr r��z/TestAlmostEqual.test_nan_item.<locals>.<lambda>c���tjtj�Sr)rr(r\rprr9rr r�r�crr)rr(rpr\rr9rr r�r�)rr(r\rr#r9rr9r �
test_nan_items
�
�
�zTestAlmostEqual.test_nan_itemcsL��tjtj���tjtj�tt�fdd��tt�fdd��dS)Ncrr��rr(rprr9rr r�
rz/TestAlmostEqual.test_inf_item.<locals>.<lambda>cs��tjtj�Srrrr9rr r�s)rr(rprr#r9rr9r �
test_inf_item	s
�
�zTestAlmostEqual.test_inf_itemcCs|�dd�dSr�)r$r9rrr �test_simple_itemr"z TestAlmostEqual.test_simple_itemcCs�|�tdd�tdd��|�tdtj�tdtj��|�ttjtj�ttjtj��|�tdtj�tdd��|�ttjd�tdtj��|�ttjtj�ttjd��dSr�)rr�r(r\rpr$r9rrr r�s "z!TestAlmostEqual.test_complex_itemcCszt�tdd�tdtj�g�}t�tdd�ttjd�g�}t�tdd�tdd�g�}|�||�|�||�|�||�dSr�r�)rrX�zrYrrr r�szTestAlmostEqual.test_complexcCsvt�gd��}t�gd��}t�t��}|j||dd�Wd�n1s&wYt|j��d�}t	|dd�t	|d	d
�t	|dd�t	|d
d�t	|dd�t�t��}|�||�Wd�n1slwYt|j��d�}t	|dd�t	|d	d
�t	|dd�t	|d
d�t	|dd�t�tj
dg�}t�tj
dg�}t�t��}|�||�Wd�n1s�wYt|j��d�}t	|dd�t	|d	d�t	|dd�t	|d
d�t	|dd�t�ddg�}t�ddg�}t�t��}|�||�Wd�n	1�swYt|j��d�}t	|dd�t	|d	d�t	|dd�dS)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/zMax 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])rr%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%)zMax absolute difference: 2zMax relative difference: inf)r(r)rdrer#r�str�value�splitrrp�rrXrY�exc_info�msgsrrr �test_error_message$s\������z"TestAlmostEqual.test_error_messagecCsd}t�d�}t�t��}|�||�Wd�n1swYt|j��d�}t	|dd�t	|dd�t	|d	d
�d}t�d�}t�t��}|�||�Wd�n1s\wYt|j��d�}t	|dd�t	|dd�t	|d	d�dS)zHCheck the message is formatted correctly when either x or y is a scalar.r&�Nrr.z#Mismatched elements: 20 / 20 (100%)r/rr�r�Max relative difference: 0.5)
r(�onesrdrer#rrr r!rr"rrr �test_error_message_2Zs$
�
�z$TestAlmostEqual.test_error_message_2cCr�)Ncr�)zBTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArraycr�rrrvrrr rxtr;zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cr�rrrvrrr rwr;zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_rrrr�rrr ruzr�zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allr	rrrr rzsrrzr{r|rr
rrr rnrz1TestAlmostEqual.test_subclass_that_cannot_be_boolN)
r<r=r>rAr�rrrr�r�r%r)rrrrr r�s	6rc@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestApproxEqualcCr@r)rrr9rrr rA�rBzTestApproxEqual.setup_methodcsNt�d��t�d���j��dd��j��dd�tt���fdd��dS)N�{�G�H�@�R���H�@r���significantrcr��Nrr.rrrWrr r��r�z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>r�r9rrWr �test_simple_0d_arrays�s

�z%TestApproxEqual.test_simple_0d_arrayscsRd�d��j��dd��j��dd��j��dd�tt���fdd��dS)	Nr,r-r/r.r�rcr�r0rrrWrr r��r�z3TestApproxEqual.test_simple_items.<locals>.<lambda>r�r9rrWr �test_simple_items�s�z!TestApproxEqual.test_simple_itemsc�tt�tj��t�d��t�tj�������tt���fdd��tt���fdd��tt���fdd��dS)Nr%cr�rrrr�rr r��r�z0TestApproxEqual.test_nan_array.<locals>.<lambda>cr�rrrr�rr r��r�cr�rrrr�rr r��r�r�r9rr�r r^��
zTestApproxEqual.test_nan_arraycr3)Nr%cr�rrrr�rr r��r�z0TestApproxEqual.test_nan_items.<locals>.<lambda>cr�rrrr�rr r��r�cr�rrrr�rr r��r�r�r9rr�r r��r4zTestApproxEqual.test_nan_itemsN)r<r=r>rAr1r2r^r�rrrr r+�s	
	r+c@�TeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestArrayAssertLesscCr@r)rrr9rrr rA�rBz TestArrayAssertLess.setup_methodcs|t�ddg��t�ddg�������tt���fdd��t�ddg��tt���fdd��tt���fd	d��dS)
N皙�����?皙����@�333333�?�ffffff@c������SrrrrWrr r��r�z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>r{c������SrrrrWrr r��r�cr;rrrrWrr r��r�r�r9rrWr �test_simple_arrays�sz&TestArrayAssertLess.test_simple_arrayscs�t�ddgddgg��t�ddgddgg�������tt���fd	d
��t�ddgddgg��tt���fdd
��tt���fd
d
��dS)Nr7r8�ffffff
@g������@r9r:g333333@g@cr;rrrrWrr r��r�z0TestArrayAssertLess.test_rank2.<locals>.<lambda>r{cr<rrrrWrr r��r�cr;rrrrWrr r��r�r�r9rrWr �
test_rank2�szTestArrayAssertLess.test_rank2csvtjdd��tjdd�d������tt���fdd��d�d<tt���fdd��tt���fd	d��dS)
N)r&r&r&)�shaper%cr;rrrrWrr r��r�z0TestArrayAssertLess.test_rank3.<locals>.<lambda>r)rrrcr<rrrrWrr r��r�cr;rrrrWrr r��r�)r(r(rrr#r9rrWr �
test_rank3�szTestArrayAssertLess.test_rank3cs�d�d������tt���fdd��t�ddg�������tt���fdd��t�ddg��tt���fdd��dS)	Nr7r8cr;rrrrWrr r��r�z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>r>cr;rrrrWrr r��r�r{cr<rrrrWrr r��r�)rrr#r(r)r9rrWr r2�sz%TestArrayAssertLess.test_simple_itemscs�t�tj��t�d��t�tj�������tt���fdd��tt���fdd��tt���fdd��tt���fdd��dS)Nr%cr�rrrr�rr r��r�z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>cr�rrrr�rr r��r�cr�rrrr�rr r��r�cr�rrrr�rr r��r�r�r9rr�r �test_nan_noncompare�s
z'TestArrayAssertLess.test_nan_noncomparecs�t�gd���t�tj��tt���fdd��tt���fdd��t�ddtjg��tt���fdd��tt���fdd��t�d	d
tjg�������tt���fdd��dS)N)r7r8r>c������Srrr�r�rrXrr r��r�z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>c������SrrrrDrr r��r�r7r8crCrrrrDrr r��r�crErrrrDrr r��r�r{r|cr<rrrrWrr r��r�)r(r)r\rr#rr9r)r�rrXrYr �test_nan_noncompare_array�sz-TestArrayAssertLess.test_nan_noncompare_arraycs�t�d��t�tj�����������������tt���fdd��tt���fdd��tt��fdd��tt��fdd��tt��fdd��dS)Nr%cr�rrr�r�r�rrr r�r�z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>cs�����SrrrrGrr r�rcs�����Srrr�r�rrr r�	r�cs�����SrrrrHrr r�
rcs�����SrrrrHrr r�r�)r(r)rprrr#r9rrGr �test_inf_compares
z$TestArrayAssertLess.test_inf_comparecs�t�ddtjg��t�tj��tt���fdd��tt���fdd��tt���fdd��tt���fdd��tt���fdd�������dS)	Nr7r8crCrrr�r�rrXrr r�r�z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>crErrrrJrr r�r�cs�����SrrrrJrr r�rcs�����SrrrrJrr r�r�cs�����SrrrrJrr r�r�)r(r)rprr#rr9rrJr �test_inf_compare_array
sz*TestArrayAssertLess.test_inf_compare_arrayN)r<r=r>rAr=r?rAr2rBrFrIrKrrrr r6�s

r6c@s$eZdZdd�Zdd�Zdd�ZdS)�	TestWarnscCshdd�}tjdjdd�}ttt|�d�tjdj}ttt|�ttdd�d�d�t||d�dS)	NcSst�d�dS)N�yor.��warnings�warnrrrr �fs
zTestWarns.test_warn.<locals>.frOr.cSs|Srr)rXrrr r�%�z%TestWarns.test_warn.<locals>.<lambda>r%�.assert_warns does not preserver warnings state)	�sys�modules�filtersrr	�UserWarningrr#r
)rrQ�before_filters�
after_filtersrrr �	test_warns�zTestWarns.test_warncCsttjdjdd�}tt��
t�d�Wd�n1swYtjdj}dd�}tt|�t	||d�dS)NrOrMcSs6t��t�d�Wd�dS1swYdS�NrM)r
rOrPrrrr �no_warnings2s"�z3TestWarns.test_context_manager.<locals>.no_warningsrS)
rTrUrVr	rWrOrPrr#r)rrXrYr\rrr �test_context_manager+s
�
�zTestWarns.test_context_managerc	Csvdd�}d}t���!t�dt�z	tt|�d}Wn	ty#YnwWd�n1s.wY|r9td��dS)NcSst�dt�dSr[)rOrP�DeprecationWarningrrrr rQ;r"z,TestWarns.test_warn_wrong_warning.<locals>.fF�errorTz#wrong warning caught by assert_warn)rO�catch_warnings�simplefilterr^r	rWr#)rrQ�failedrrr �test_warn_wrong_warning:s

���	�z!TestWarns.test_warn_wrong_warningN)r<r=r>rZr]rcrrrr rLsrLc@r5)�TestAssertAllclosecCs�d}d}t||dd�ttt||�t�||||g�}t�||||g�}t||dd�ttt||�|d|d<t||�ttt||dd�tdd	d
d�tttd	dd
d�dS)Ng����MbP?g��&�.>r%��atolg�1��?r�)�rtolrrVg�?)rrr#r(r))rrXrYrrrrr r�Ns
zTestAssertAllclose.test_simplecCs*tjt�tj�jgtjd�}t||�dS)Nr3)r(r)�iinfo�int_�minrr6rrr �test_min_intbszTestAssertAllclose.test_min_intcCsjt�gd��}t�gd��}t�t��
}t||�Wd�n1s#wYt|j�}td|v�dS)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)rdrer#rrr r�rrrr#�msgrrr �test_report_fail_percentagegs�

�z.TestAssertAllclose.test_report_fail_percentagecCs.t�tjg�}t�tjg�}t||dd�dS)NT��	equal_nan)r(r)r\rrrrr �test_equal_nanrsz!TestAssertAllclose.test_equal_nancCs2t�tjg�}t�tjg�}ttt||dd�dS)NFrp)r(r)r\rr#rrrrr �test_not_equal_nanxsz%TestAssertAllclose.test_not_equal_nancCsHt�tjg�}t�tjg�}t||�t||�t||�t||�dSr)r(r)r\rrrrrrrr �test_equal_nan_default}s


z)TestAssertAllclose.test_equal_nan_defaultcCsjt�ddg�}t�ddg�}t�t��
}t||�Wd�n1s#wYt|j�}td|v�dS)Nrr%r&r'rlrmrrr �test_report_max_relative_error�s�
z1TestAssertAllclose.test_report_max_relative_errorcCs"tjgd�gdd�}t||�dS)N)r%r&r.r�zm8[ns]r3)r(r)rr6rrr �test_timedelta�sz!TestAssertAllclose.test_timedeltacCs~tjgd�dd�}tjgd�dd�}t�t��}t||dd�Wd�n1s)wYt|j��d�}t	|d	d
�dS)zYCheck the the message is formatted correctly when overflow can occur
           (gh21768))rr%��uint8r3)r/r/r/r.reNrr/zMax absolute difference: 4)
r(�asarrayrdrer#rrr r!rr"rrr �test_error_message_unsigned�s�z.TestAssertAllclose.test_error_message_unsignedN)r<r=r>r�rkrorrrsrtrurvrzrrrr rdLs	rdc@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestArrayAlmostEqualNulpcC�d}tjdddtjd�}d|}tj||f}t�|j�j}||||d}t|||�t�|j�j}||||d}t|||�dS�Nr����r&�2r3rVr|�	r(�linspace�float64�r_�finfor4�epsr
�epsneg�r�nulprXr�rYr�rrr �test_float64_pass�sz*TestArrayAlmostEqualNulp.test_float64_passcC�d}tjdddtjd�}d|}tj||f}t�|j�j}||||d}ttt	|||�t�|j�j
}||||d}ttt	|||�dSr}�r(r�r�r�r�r4r�rr#r
r�r�rrr �test_float64_fail����z*TestArrayAlmostEqualNulp.test_float64_failcC�Tt�d�}tjtjtjd��tj�}||A}|�tj�}|�tj�}t||d�dS)Nl��r3r)r(�uint64r)r\r�r~r)r�offset�nan1_i64�nan2_i64�nan1_f64�nan2_f64rrr �test_float64_ignore_nan��
z0TestArrayAlmostEqualNulp.test_float64_ignore_nancCr|r}�	r(r�r�r�r�r4r�r
r�r�rrr �test_float32_pass��z*TestArrayAlmostEqualNulp.test_float32_passcCr�r}�r(r�r�r�r�r4r�rr#r
r�r�rrr �test_float32_fail�r�z*TestArrayAlmostEqualNulp.test_float32_failcCr�)Ni��r3r)r(�uint32r)r\r�r~r)rr��nan1_i32�nan2_i32�nan1_f32�nan2_f32rrr �test_float32_ignore_nan�r�z0TestArrayAlmostEqualNulp.test_float32_ignore_nancCs�d}tjdddtjd�}d|}tj||f}t�|j�j}||||d}t|||�t�|j�j}||||d}t|||�dS�Nr����r/rVr3r|)	r(r��float16r�r�r4r�r
r�r�rrr �test_float16_pass�r�z*TestArrayAlmostEqualNulp.test_float16_passcCs�d}tjdddtjd�}d|}tj||f}t�|j�j}||||d}ttt	|||�t�|j�j
}||||d}ttt	|||�dSr�)r(r�r�r�r�r4r�rr#r
r�r�rrr �test_float16_failr�z*TestArrayAlmostEqualNulp.test_float16_failcCr�)N�r3r)r(�uint16r)r\r�r~r)rr��nan1_i16�nan2_i16�nan1_f16�nan2_f16rrr �test_float16_ignore_nanr�z0TestArrayAlmostEqualNulp.test_float16_ignore_nancC�$d}tjdddtjd�}d|}tj||f}||d}t�|j�j}||||d}t|||d|�t|||d|�||||d	}t|||d|�t�|j�j}||||d}t|||d|�t|||d|�||||d	}t|||d|�dS�
Nr�r~r&rr3rV��?r|rjr��rr�rX�xir�rYr�rrr �test_complex128_pass&s"z-TestArrayAlmostEqualNulp.test_complex128_passcC�4d}tjdddtjd�}d|}tj||f}||d}t�|j�j}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�t�|j�j
}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�dS�	Nr�r~r&rr3rVr�r|r�r�rrr �test_complex128_fail=s:������z-TestArrayAlmostEqualNulp.test_complex128_failcCr�r�r�r�rrr �test_complex64_passZs"z,TestArrayAlmostEqualNulp.test_complex64_passcCr�r�r�r�rrr �test_complex64_failos:������z,TestArrayAlmostEqualNulp.test_complex64_failN)r<r=r>r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr r{�sr{c@r*)�TestULPcCstj�d�}t||dd�dS)NrVr��maxulp)r(�random�randnr)rrXrrr �
test_equal�szTestULP.test_equalcC�Rt�d��tj�}|dtj�d��tj�7}t�tj�j}t|||dd�dS)NrV�{�G�z�?r&r�)	r(r(�astyper�r�r�r�r�r�rrXr�rrr �test_single��zTestULP.test_singlecCr�)NrVr���r�)	r(r(r�r�r�r�r�r�rr�rrr �test_double�r�zTestULP.test_doublecCsLtjtjfD]}t�tjg��|�}t�t�|�jg�}t||dd�qdS)Nr�r�)	r(r�r�r)rpr�r��maxr)r�dtrp�bigrrr r��s
�zTestULP.test_infcstjtjfD]}|tjkrd�nd�t�tjg��|��t�tjg��|��t�t�|�jg��t�t�|�j	g��t�tj
g��|��t�tjg��|��tt
���fdd��tt
���fdd��tt
���fdd��tt
���fdd��tt
���fdd��qdS)	Ng��.Ag��mBc�t���d�S�Nr��rr)rpr�r\rr r����z"TestULP.test_nan.<locals>.<lambda>cr�r�r�r)r�r�r\rr r��r�c�t���d�Sr�r�r)r�r\�tinyrr r��r�cr�r�r�r)r�r\�zerorr r��r�cr�r�r�r)r�r\�nzerorr r��r�)r(r�r�r)rpr�r\r�r�r�r�r�rr#)rr�r)r�rpr�r\r�r�r�r r��s4
������zTestULP.test_nanN)r<r=r>r�r�r�r�r�rrrr r��sr�c@rr)�TestStringEqualcCsntdd�tdd�t�t��
}tdd�Wd�n1swYt|j�}t|d�ttdd��dS)N�hellozhello
multilinezfoo
barz	hello
barz%Differences in strings:
- foo
+ hellocS�
tdd�S)NrLr��rrrrr r���
z-TestStringEqual.test_simple.<locals>.<lambda>)rrdrer#rr rr)rr#rnrrr r��s

�

�zTestStringEqual.test_simplecCstdd�ttdd��dS)Nza+*bcSr�)N�aaaza+br�rrrr r��r�z,TestStringEqual.test_regex.<locals>.<lambda>)rrr#r9rrr �
test_regex�s
�zTestStringEqual.test_regexN)r<r=r>r�r�rrrr r��sr�cCsHz|j}Wntyi}Ynwt|�}d|vr|d8}t||�dS)N�versionr%)�__warningregistry__�AttributeError�lenr)�mod�n_in_context�	mod_warns�	num_warnsrrr �assert_warn_len_equal�s
�
r�cCsDGdd�d�}|�}t|dd�Gdd�d�}|�}t|dd�dS)Nc@seZdZdS)�/test_warn_len_equal_call_scenarios.<locals>.modN)r<r=r>rrrr r��sr�r)r�r�c@r�)r�cSsddd�|_dS)Nr%r&��warning1�warning2)r�r9rrr �__init__s�z8test_warn_len_equal_call_scenarios.<locals>.mod.__init__N)r<r=r>r�rrrr r�r�r&)r�)r��mod_instrrr �"test_warn_len_equal_call_scenarios�s�
�r�cCs0tjt}z|j��W|StyY|Swr)rTrUr<r��clearr���my_modrrr �_get_fresh_mod
s
��r�cCsFt�}tt|di�i�t|gd��t�d�t�d�Wd�n1s'wYt|ji�t��t�d�t�d�Wd�n1sJwYt|d�ddd�|_t|gd��t�d�t�d	�Wd�n1suwYt|d�t��t�d�t�d	�Wd�n1s�wYt|d�dS)
Nr�)rU�ignore�Some warningrr%r&r�zAnother warning)	r�r�getattrrrOrarPr�r�r�rrr �test_clear_and_catch_warningss2
�
�
�
�

�r�cCs�t�}tt|di�i�dd�}t|d�t��}|�t�|jtj	j
d�t�d�|�Wd�n1s8wYtt
|j�d�t|jdjjdd�t|d�t�}|j|d�|�
t�d�Wd�n1sqwYt|d�|j|d�|�
t�d�Wd�n1s�wYt|d�t��t�d�t�d�Wd�n1s�wYt|d�dS)	Nr�cS�dd�}t�|ddg�dS)NcS�tjddd�|S)NzSome warning 2r&��
stacklevelrN��arrrrr rP>�zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnr�r(�apply_along_axis�rPrrr �warn_other_module;�z8test_suppress_warnings_module.<locals>.warn_other_moduler��moduler�r%r�)r�rr�r�r�recordrW�filterr(�lib�
shape_baserOrPr��log�messager�ra)r�r��suprrr �test_suppress_warnings_module6s:
	

�	
�
�

�rcCs0t�}tt|di�i�t��}|�t�t�d�Wd�n1s$wYt|d�t�}|�t�|�
t�d�Wd�n1sHwYt|d�|j|d�|�
t�d�Wd�n1sjwYt|d�t��t�	d�t�d�Wd�n1s�wYt|d�dS)Nr�r�rr�r�)
r�rr�rrrWrOrPr�ra)r�rrrr �test_suppress_warnings_typeds.
�

�
�

�rcCsvt�}|�t�|dd��}tjdd��}t�d�|t�|t�tt|�d�Wd�dS1s4wYdS)NcSst�d|�dS)Nr�rN)�categoryrrr rP�sz7test_suppress_warnings_decorate_no_record.<locals>.warnT)r��alwaysr%)	rrrWrOr`ra�RuntimeWarningrr�)rrP�wrrr �)test_suppress_warnings_decorate_no_record�s


"�rc	Cs�t�}|��}|�D|jdd�}|jdd�t�d�t�d�t�d�tt|j�d�tt|�d�tt|�d�t|djj	dd�Wd�n1sPwY|�D|jdd�}|jdd�t�d�t�d�t�d�tt|j�d�tt|�d�tt|�d�t|djj	dd�Wd�n1s�wYt��@}|��t�� }|jdd�t�d�t�d�tt|j�d�Wd�n1s�wYtt|j�d�Wd�dS1s�wYdS)NzSome other warning 2)rr��Some other warningr&r%r)
rr�rrOrPrr�rrr�)r�log1�log2�sup2rrr �test_suppress_warnings_record�sD


�



�


�"�rc	Cs2dd�}t��4}|��td��td�D]}t�d�qWd�n1s'wYtt|j�d�Wd�n1s>wYt��9}|��td��td�D]}t�d�t�d�qTWd�n1skwYtt|j�d�Wd�n1s�wYt��<}|��td��td�D]}t�d�t�d�|�q�Wd�n1s�wYtt|j�d�Wd�n1s�wYt��=}|��td��td�D]}t�d�t�d	�|�q�Wd�n1s�wYtt|j�d�Wd�dS1�swYdS)
NcSr�)NcSr�)Nr�r&r�rNr�rrr rP�r�zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warnrr�r�rrr r��r�z<test_suppress_warnings_forwarding.<locals>.warn_other_moduler	r&r��locationr��oncer
)rr��rangerOrPrr�r)r�r�irrr �!test_suppress_warnings_forwarding�sT
���

���	


���



��$�rc	Cs�t��$}tj�|d�}t|d��Wd�n1swYWd�n1s*wYttj�|��d}zt��}t��1sEwYWntyVd}Ynwt|�ttj�|��dS)N�tmprFT)r�os�path�join�openr�isdir�
ValueError)�tdir�fpath�raisedrrr �test_tempdir�s$�����r!c	Cs�t��}t|d��Wd�n1swYWd�n1s#wYttj�|��d}zt��}t��1s>wYWntyOd}Ynwt|�ttj�|��dS)NrFT)rrrrr�isfiler)rr rrr �
test_temppath�s"�����r#c@seZdZejefZdS)�my_cacwN)r<r=r>rTrU�
class_modulesrrrr r$sr$cCsPt�}t��t�d�t�d�Wd�n1swYt|ji�dS)Nr�r�)r�r$rOrarPrr�r�rrr �%test_clear_and_catch_warnings_inherits
�r&zPython lacks refcounts)�reasonc@s0eZdZdZdd�Zdd�Zejjdd��Z	dS)	�TestAssertNoGcCyclesz Test assert_no_gc_cycles cCs@dd�}t��|�Wd�n1swYt|�dS)NcSsg}|�g�|Sr��append)rrrr �no_cycles
z2TestAssertNoGcCycles.test_passes.<locals>.no_cycle)r)rr+rrr �test_passess
�z TestAssertNoGcCycles.test_passesc	Cs�dd�}tt��t��|�Wd�n1swYWd�n1s)wYtt��
t|�Wd�dS1sBwYdS)NcSsg}|�|�|�|�|Srr))rrrr �
make_cycle$s

z5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle)rr#r)rr-rrr �test_asserts#s
���

"�z!TestAssertNoGcCycles.test_assertscs�G�fdd�d��zCt����}ztt��tdd��Wd�n1s&wYWnty@|�dur>t�d��YnwWd�_dSWd�_dSd�_w)z�
        Test that in cases where the garbage cannot be collected, we raise an
        error, instead of hanging forever trying to clear it.
        cs(eZdZdZdZdd�Z�fdd�ZdS)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
            TcSs
||_dSr)�cycler9rrr r�?rBzETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__csd|_�jr��dSdSr)r/r-r9��ReferenceCycleInDelrr �__del__Bs
�zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__N)r<r=r>�__doc__r-r�r2rr0rr r18s
r1cSsdSrrrrrr r�PrRz1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Nz*GC does not call __del__ on cyclic objectsF)	�weakref�refr�RuntimeErrorrr#rd�skipr-)rrrr0r �
test_fails1s$
��

���
	�zTestAssertNoGcCycles.test_failsN)
r<r=r>r3r,r.rd�mark�slowr8rrrr r(sr();rOrTrr�rdr4�numpyr(�
numpy.testingrrrrrrrr	r
rrr
rrrrrrrrrrr?r�r�r�rr+r6rLrdr{r�r�r�r�r�r�rrrrrr!r#r$r&r9�skipifr(rrrr �<module>sN\
.<-_b+m3Yg8 .(/