HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/testing/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/testing/tests/__pycache__/test_utils.cpython-36.pyc
3

���h#��@sddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlm Z Gdd�d�Z!Gdd�de!�Z"Gdd	�d	�Z#Gd
d�de"�Z$Gdd
�d
e!�Z%Gdd�de!�Z&Gdd�d�Z'Gdd�d�Z(ej)j*dd�Gdd�d��Z+Gdd�d�Z,Gdd�d�Z-Gdd�d�Z.Gdd�d�Z/Gd d!�d!�Z0d?d"d#�Z1d$d%�Z2d&d'�Z3d(d)�Z4d*d+�Z5d,d-�Z6d.d/�Z7d0d1�Z8d2d3�Z9d4d5�Z:d6d7�Z;Gd8d9�d9e�Z<d:d;�Z=ej)j>ed<d�Gd=d>�d>��Z?dS)@�N)�assert_equal�assert_array_equal�assert_almost_equal�assert_array_almost_equal�assert_array_less�
build_err_msg�raises�
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_REFCOUNT)�ARRAY_FUNCTION_ENABLEDc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�_GenericTestcCs|j||�dS)N)�_assert_func)�self�a�b�r�?/tmp/pip-build-5_djhm0z/numpy/numpy/testing/tests/test_utils.py�_test_equalsz_GenericTest._test_equalc
Cs$tt��|j||�WdQRXdS)N)r	�AssertionErrorr)rrrrrr�_test_not_equals
z_GenericTest._test_not_equalcCs,tjddg�}tjddg�}|j||�dS)z/Test two equal array of rank 1 are found equal.��N)�np�arrayr )rrrrrr�test_array_rank1_eqsz _GenericTest.test_array_rank1_eqcCs,tjddg�}tjddg�}|j||�dS)z7Test two different array of rank 1 are found not equal.r#r$N)r%r&r")rrrrrr�test_array_rank1_noteq$sz#_GenericTest.test_array_rank1_noteqcCs<tjddgddgg�}tjddgddgg�}|j||�dS)z/Test two equal array of rank 2 are found equal.r#r$��N)r%r&r )rrrrrr�test_array_rank2_eq+sz _GenericTest.test_array_rank2_eqcCs4tjddg�}tjddgddgg�}|j||�dS)z:Test two arrays with different shapes are found not equal.r#r$N)r%r&r")rrrrrr�test_array_diffshape2sz!_GenericTest.test_array_diffshapecCs"tjddgtd�}|j|d�dS)zTest object arrays.r#)�dtypeN)r%r&�objectr )rrrrr�
test_objarray9sz_GenericTest.test_objarraycCs|jdddgd�dS)Nr#r$r))r#r$r))r )rrrr�test_array_likes>sz_GenericTest.test_array_likesN)�__name__�
__module__�__qualname__r r"r'r(r+r,r/r0rrrrrsrc@sneZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zej
jedd�dd��ZdS)�TestArrayEqualcCs
t|_dS)N)rr)rrrr�setupDszTestArrayEqual.setupcs<�fdd�}xdD]}||�qWxdD]}||�q(WdS)z!Test rank 1 array for all dtypes.csLtjd|�}|jd�|j�}|j�}|jd��j||��j||�dS)Nr$r#r)r%�empty�fill�copyr r")�trr�c)rrr�fooIs

z.TestArrayEqual.test_generic_rank1.<locals>.fooz?bhilqpBHILQPfdgFDG�S1�U1N)r<r=r)rr;r9r)rr�test_generic_rank1Gs



z!TestArrayEqual.test_generic_rank1cCsltjd�}tjd�}tt|j||�|}|j||�tjd�}tjd�}tt|j||�|}|j||�dS)NlCj�<T"3��w�
�-l(M$c7u��v��+�
)r%r&r	r!r)r�x�yrrr�test_0_ndim_arrayZs



z TestArrayEqual.test_0_ndim_arraycs<�fdd�}xdD]}||�qWxdD]}||�q(WdS)z!Test rank 3 array for all dtypes.csLtjd|�}|jd�|j�}|j�}|jd��j||��j||�dS)Nr*r$r)r#r)r*r$r))r%r6r7r8r r")r9rrr:)rrrr;ks

z.TestArrayEqual.test_generic_rank3.<locals>.fooz?bhilqpBHILQPfdgFDGr<r=N)r<r=r)rr;r9r)rr�test_generic_rank3is



z!TestArrayEqual.test_generic_rank3cCsPtjddtjg�}tjddtjg�}|j||�tjdddg�}|j||�dS)z$Test arrays with nan values in them.r#r$r)N)r%r&�nanr r")rrrr:rrr�test_nan_array|s
zTestArrayEqual.test_nan_arraycCsFtjddg�}tjddg�}|j||�tjddg�}|j||�dS)z:Test two arrays with different shapes are found not equal.�floupi�floupa�floupipiN)r%r&r r")rrrr:rrr�test_string_arrays�s
z!TestArrayEqual.test_string_arrayscCs�tjddtfdtfg�}ddg|d<ddg|d<|j�}|j||�tjddtfdtfg�}|dj�|d<|dj�|d<t��.}|jtdd�}|j||�t	t
|�d�WdQRXdS)	zTest record arrays.r$rGrHr#rIzelementwise == )�messageN)r%r6�floatr8r r�record�
FutureWarningr"r�len)rrrr:�sup�lrrr�test_recarrays�szTestArrayEqual.test_recarrayscCs�tjjdddgdddgd�}tjdtjdg�}|j||�|j||�tjjdddgdddgd�}tjtjddg�}|j||�|j||�dS)Ng@g@g@FT)�mask)r%�ma�MaskedArrayr&rEr �inf)rrrrrr�test_masked_nan_inf�sz"TestArrayEqual.test_masked_nan_infcCs�Gdd�dtj�}tjddg�j|�}tjddg�j|�}tt||k�t�t||k�t||k�|j||�|j||�|j||�dS)Nc@seZdZdd�Zdd�ZdS)z?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArraycSsttj||�j��S)N)�boolr%�equal�all)r�otherrrr�__eq__�szFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__cSs
||kS)Nr)rr[rrr�__ne__�szFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__N)r1r2r3r\r]rrrr�MyArray�sr^g�?g@g@)	r%�ndarrayr&�viewr�typerXr r")rr^rrrrr�test_subclass_that_overrides_eq�sz.TestArrayEqual.test_subclass_that_overrides_eqzrequires __array_function__)�reasonc
Cs�Gdd�dtj�}tjddg�j|�}tjddg�j|�}tt��tj|�WdQRX|j||�|j||�|j||�dS)Nc@seZdZdd�ZdS)zKTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc_stS)N)�NotImplemented)r�args�kwargsrrr�__array_function__�sz^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__N)r1r2r3rgrrrrr^�sr^g�?g@g@)	r%r_r&r`r	�	TypeErrorrZr r")rr^rrrrr�+test_subclass_that_does_not_implement_npall�s
z:TestArrayEqual.test_subclass_that_does_not_implement_npallN)r1r2r3r5r>rCrDrFrJrRrWrb�pytest�mark�skipifrrirrrrr4Bs
r4c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestBuildErrorMessagecCsDtjdddg�}tjdddg�}d}t||g|�}d}t||�dS)	Ngr�Z|
�?gr�Z|
@g�&��@g㈵��?g�&��@g㈵�@zThere 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)rrArB�err_msgrrrrr�test_build_err_msg_defaults�sz1TestBuildErrorMessage.test_build_err_msg_defaultscCsHtjdddg�}tjdddg�}d}t||g|dd	�}d
}t||�dS)Ngr�Z|
�?gr�Z|
@g�&��@g㈵��?g�&��@g㈵�@zThere is a mismatchF)�verbosez)
Items are not equal: There is a mismatch)r%r&rr)rrArBrnrrrrr�test_build_err_msg_no_verbose�sz3TestBuildErrorMessage.test_build_err_msg_no_verbosecCsHtjdddg�}tjdddg�}d}t||g|dd
�}d}t||�dS)
Ngr�Z|
�?gr�Z|
@g�&��@g㈵��?g�&��@g㈵�@zThere is a mismatch�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]))rrrs)r%r&rr)rrArBrnrrrrr�test_build_err_msg_custom_names�sz5TestBuildErrorMessage.test_build_err_msg_custom_namescCsHtjdddg�}tjdddg�}d}t||g|dd	�}d
}t||�dS)Ng0�D�?gr�Z|
@g�&��@g_p��?g�&��@g㈵�@zThere is a mismatchr@)Z	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&rr)rrArBrnrrrrr�#test_build_err_msg_custom_precision�sz9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r1r2r3rorqrurvrrrrrm�s	rmc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�	TestEqualcCs
t|_dS)N)rr)rrrrr5szTestEqual.setupcCsH|jtjtj�|jtjgtjg�|jtjtjg�|jtjd�dS)Nr#)rr%rEr")rrrr�test_nan_itemsszTestEqual.test_nan_itemscCs:|jtjtj�|jtjgtjg�|jtjtjg�dS)N)rr%rVr")rrrr�test_inf_itemsszTestEqual.test_inf_itemscCst|jtjdd�tjdd��|jtjdd�tjdd��|jtjdd�tjdd��|jtjdd�tjdd��dS)Nz
2017-01-01�s�mz
2017-01-02)r r%�
datetime64r")rrrr�
test_datetimes



zTestEqual.test_datetimecCs�tjd�}tjdd�}tjdd�}tjd�}tjdd�}tjdd�}|||g}|||g}xBtj||�D]2\}	}
|j|	|
�|j|	g|
g�|j|	g|
�qfWxBtj||�D]2\}	}
|j|	|
�|j|	g|
g�|j|	g|
�q�Wx�tj||�D]�\}	}
|j|	|
�|j|	|
g�|j|	g|
g�|j|	gtjdd��|j|
gtjdd��|j|	gtjdd��|j|
gtjdd��q�WdS)NZNaTrz�nsz
2017-01-01�{)r%r|Ztimedelta64�	itertools�productrr")rZnadt_no_unitZnadt_sZnadt_dZnatd_no_unitZnatd_sZnatd_dZdtsZtdsrrrrr�test_nat_items$s0



zTestEqual.test_nat_itemscCs|jdd�|jdd�dS)N�abZabb)rr")rrrr�test_non_numericCszTestEqual.test_non_numericcCs�|jtdd�tdd��|jtdtj�tdtj��|jtdtj�tdd��|jttjd�tdtj��|jttjtj�ttjd��dS)Nr#r$)r�complexr%rEr"rV)rrrr�test_complex_itemGs
zTestEqual.test_complex_itemcCs|jtjtj�dS)N)r"r%�PZERO�NZERO)rrrr�test_negative_zeroNszTestEqual.test_negative_zerocCsRtjtdd�tdtj�g�}tjtdd�tdd�g�}|j||�|j||�dS)Nr#r$)r%r&r�rErr")rrArBrrr�test_complexQszTestEqual.test_complexcCsDddl}tj|jddd�|jddd�g�}|j||ddd��dS)Nri�r#r$���)�datetimer%r&r")rr�rrrr�test_objectWszTestEqual.test_objectN)
r1r2r3r5rxryr}r�r�r�r�r�r�rrrrrwsrwc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestArrayAlmostEqualcCs
t|_dS)N)rr)rrrrr5aszTestArrayAlmostEqual.setupcsL�jdddd�tt�fdd���jdgdgdd�tt�fdd��dS)Ng����?gr)�decimalcs�jdddd�S)Ng�?gr)r�)rr)rrr�<lambda>nsz5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>cs�jdgdgdd�S)Ng�?gr)r�)rr)rrrr�ss)rr	r!)rr)rr�test_closenessdsz#TestArrayAlmostEqual.test_closenesscsRtjdg��tjdg���j��dd��j��dd�tt���fdd��dS)Ng��e��H�@g�w���H�@r))r�r*cs�j��dd�S)N�)r�)rr)rrArBrrr�|sz2TestArrayAlmostEqual.test_simple.<locals>.<lambda>)r%r&rr	r!)rr)rrArBr�test_simpleusz TestArrayAlmostEqual.test_simplecsztjtjg��tjdg��tjtjg���j���tt���fdd��tt���fdd��tt���fdd��dS)Nr#cs�j���S)N)rr)�anan�aonerrrr��sz/TestArrayAlmostEqual.test_nan.<locals>.<lambda>cs�j���S)N)rr)�ainfr�rrrr��scs�j���S)N)rr)r�r�rrrr��s)r%r&rErVrr	r!)rr)r�r�r�rr�test_nan~szTestArrayAlmostEqual.test_nancsdtjddgddgg���j��tj�d	<tt���fdd��tj�d
<tt���fdd��dS)Ng�?g@g@g@rcs�j���S)N)rr)rrrrrr��sz/TestArrayAlmostEqual.test_inf.<locals>.<lambda>cs�j���S)N)rr)rrrrrr��s)rr)rr)r%r&r8rVr	r!)rr)rrrr�test_inf�s
zTestArrayAlmostEqual.test_infcCsNtjddgddgg�}tjjddgddggddgddgg�}|j||�|j||�|j||�tjjddd	�}tjddd
g�}|j||�|j||�tjj}tjddd
g�}|j||�|j||�tjjddd
gdddgd	�}tjdddg�}|j||�|j||�tjjddd
gdddgd	�}tjd�}|j||�|j||�dS)Ng�?g@g@g@gFTg@)rSg@)r%r&rTZmasked_arrayrrUr Zmasked)rrrrrr�
test_subclass�s,
z"TestArrayAlmostEqual.test_subclasscs:G�fdd�dtj��tjddg�j��}|j||�dS)Ncs4eZdZ��fdd�Z��fdd�Zdd�Z�ZS)zGTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArraycst�|�j|�jtj�S)N)�superr\r`r%r_)rr[)r^�	__class__rrr\�szNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cst�|�j|�jtj�S)N)r��__lt__r`r%r_)rr[)r^r�rrr��szNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_st�dS)N)�NotImplementedError)rrerfrrrrZ�szKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all)r1r2r3r\r�rZ�
__classcell__r)r^)r�rr^�sr^g�?g@)r%r_r&r`r)rrr)r^r�!test_subclass_that_cannot_be_bool�s
z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN)
r1r2r3r5r�r�r�r�r�r�rrrrr�_s	
r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestAlmostEqualcCs
t|_dS)N)rr)rrrrr5�szTestAlmostEqual.setupcsL�jdddd�tt�fdd���jdgdgdd�tt�fdd��dS)Ng����?gr)r�cs�jdddd�S)Ng�?gr)r�)rr)rrrr��sz0TestAlmostEqual.test_closeness.<locals>.<lambda>cs�jdgdgdd�S)Ng�?gr)r�)rr)rrrr��s)rr	r!)rr)rrr��szTestAlmostEqual.test_closenesscsJ�jtjtj�tt�fdd��tt�fdd��tt�fdd��dS)Ncs�jtjd�S)Nr#)rr%rEr)rrrr��sz/TestAlmostEqual.test_nan_item.<locals>.<lambda>cs�jtjtj�S)N)rr%rErVr)rrrr��scs�jtjtj�S)N)rr%rVrEr)rrrr��s)rr%rEr	r!)rr)rr�
test_nan_item�szTestAlmostEqual.test_nan_itemcsL�jtjtj��jtjtj�tt�fdd��tt�fdd��dS)Ncs�jtjd�S)Nr#)rr%rVr)rrrr��sz/TestAlmostEqual.test_inf_item.<locals>.<lambda>cs�jtjtj�S)N)rr%rVr)rrrr��s)rr%rVr	r!)rr)rr�
test_inf_item�szTestAlmostEqual.test_inf_itemcCs|jdd�dS)Nr#r$)r")rrrr�test_simple_item�sz TestAlmostEqual.test_simple_itemcCs�|jtdd�tdd��|jtdtj�tdtj��|jttjtj�ttjtj��|jtdtj�tdd��|jttjd�tdtj��|jttjtj�ttjd��dS)Nr#r$)rr�r%rErVr")rrrrr��s z!TestAlmostEqual.test_complex_itemcCsztjtdd�tdtj�g�}tjtdd�ttjd�g�}tjtdd�tdd�g�}|j||�|j||�|j||�dS)Nr#r$)r%r&r�rErr")rrA�zrBrrrr��szTestAlmostEqual.test_complexcCs(tjdddg�}tjdddg�}tjt��}|j||dd�Wd	QRXt|j�jd
�}t	|dd�t	|d
d�t	|dd�t	|dd�t	|dd�tjt��}|j||�Wd	QRXt|j�jd
�}t	|dd�t	|d
d�t	|dd�t	|dd�t	|dd�tjtj
dg�}tjtj
dg�}tjt��}|j||�Wd	QRXt|j�jd
�}t	|dd�t	|d
d�t	|dd�t	|dd�t	|dd�tjddg�}tjddg�}tjt��}|j||�Wd	QRXt|j�jd
�}t	|dd �t	|d
d!�t	|dd"�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�@g�&��@g�_�?g�@g㈵�@�)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%)zMax absolute difference: 1.zMax 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&rjrr!r�str�value�splitrrV)rrArB�exc_info�msgsrrr�test_error_message�sPz"TestAlmostEqual.test_error_messagecCs�d}tjd�}tjt��}|j||�WdQRXt|j�jd�}t	|dd�t	|dd�t	|d	d
�d}tjd�}tjt��}|j||�WdQRXt|j�jd�}t	|dd�t	|dd�t	|d	d�dS)zHCheck the message is formatted correctly when either x or y is a scalar.r$�Nr�r)z#Mismatched elements: 20 / 20 (100%)r*zMax absolute difference: 1.r�zMax relative difference: 1.zMax relative difference: 0.5)
r%�onesrjrr!rr�r�r�r)rrArBr�r�rrr�test_error_message_21s 

z$TestAlmostEqual.test_error_message_2cs:G�fdd�dtj��tjddg�j��}|j||�dS)Ncs4eZdZ��fdd�Z��fdd�Zdd�Z�ZS)zBTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArraycst�|�j|�jtj�S)N)r�r\r`r%r_)rr[)r^r�rrr\KszITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__cst�|�j|�jtj�S)N)r�r�r`r%r_)rr[)r^r�rrr�NszITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__c_st�dS)N)r�)rrerfrrrrZQszFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all)r1r2r3r\r�rZr�r)r^)r�rr^Jsr^g�?g@)r%r_r&r`r)rrr)r^rr�Es
z1TestAlmostEqual.test_subclass_that_cannot_be_boolN)
r1r2r3r5r�r�r�r�r�r�r�r�r�rrrrr��s	6r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestApproxEqualcCs
t|_dS)N)r
r)rrrrr5ZszTestApproxEqual.setupcsNtjd��tjd���j��dd��j��dd�tt���fdd��dS)Ng{�G�H�@gR���H�@r�)�significantr�cs�j��dd�S)Nr�)r�)rr)rrArBrrr�dsz7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>)r%r&rr	r!)rr)rrArBr�test_simple_0d_arrays]s

z%TestApproxEqual.test_simple_0d_arrayscsRd�d��j��dd��j��dd��j��dd�tt���fdd��dS)	Ng{�G�H�@gR���H�@r*)r�r�r�cs�j��dd�S)Nr�)r�)rr)rrArBrrr�nsz3TestApproxEqual.test_simple_items.<locals>.<lambda>)rr	r!)rr)rrArBr�test_simple_itemsfsz!TestApproxEqual.test_simple_itemscsttjtj��tjd��tjtj���j���tt���fdd��tt���fdd��tt���fdd��dS)Nr#cs�j���S)N)rr)r�r�rrrr�usz0TestApproxEqual.test_nan_array.<locals>.<lambda>cs�j���S)N)rr)r�r�rrrr�vscs�j���S)N)rr)r�r�rrrr�ws)r%r&rErVrr	r!)rr)r�r�r�rrrFps
zTestApproxEqual.test_nan_arraycsttjtj��tjd��tjtj���j���tt���fdd��tt���fdd��tt���fdd��dS)Nr#cs�j���S)N)rr)r�r�rrrr�~sz0TestApproxEqual.test_nan_items.<locals>.<lambda>cs�j���S)N)rr)r�r�rrrr�scs�j���S)N)rr)r�r�rrrr��s)r%r&rErVrr	r!)rr)r�r�r�rrrxys
zTestApproxEqual.test_nan_itemsN)r1r2r3r5r�r�rFrxrrrrr�Xs
	
	r�c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestArrayAssertLesscCs
t|_dS)N)rr)rrrrr5�szTestArrayAssertLess.setupcs|tjddg��tjddg���j���tt���fdd��tjddg��tt���fdd��tt���fd	d��dS)
Ng�������?g������@g333333�?gffffff@cs�j���S)N)rr)rrArBrrr��sz8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>g�?cs�j���S)N)rr)rrArBrrr��scs�j���S)N)rr)rrArBrrr��s)r%r&rr	r!)rr)rrArBr�test_simple_arrays�sz&TestArrayAssertLess.test_simple_arrayscs�tjddgddgg��tjddgddgg���j���tt���fd	d
��tjddgddgg��tt���fdd
��tt���fd
d
��dS)Ng�������?g������@gffffff
@g������@g333333�?gffffff@g333333@g@cs�j���S)N)rr)rrArBrrr��sz0TestArrayAssertLess.test_rank2.<locals>.<lambda>g�?cs�j���S)N)rr)rrArBrrr��scs�j���S)N)rr)rrArBrrr��s)r%r&rr	r!)rr)rrArBr�
test_rank2�szTestArrayAssertLess.test_rank2csvtjd	d��tjd
d�d��j���tt���fdd��d�d<tt���fdd��tt���fdd��dS)Nr$)�shaper#cs�j���S)N)rr)rrArBrrr��sz0TestArrayAssertLess.test_rank3.<locals>.<lambda>rcs�j���S)N)rr)rrArBrrr��scs�j���S)N)rr)rrArBrrr��s)r$r$r$)r$r$r$)rrr)r%r�rr	r!)rr)rrArBr�
test_rank3�szTestArrayAssertLess.test_rank3cs�d�d��j���tt���fdd��tjddg���j���tt���fdd��tjddg��tt���fdd��dS)	Ng�������?g������@cs�j���S)N)rr)rrArBrrr��sz7TestArrayAssertLess.test_simple_items.<locals>.<lambda>gffffff
@cs�j���S)N)rr)rrArBrrr��sg�?cs�j���S)N)rr)rrArBrrr��s)rr	r!r%r&)rr)rrArBrr��sz%TestArrayAssertLess.test_simple_itemscs�tjtj��tjd��tjtj���j���tt���fdd��tt���fdd��tt���fdd��tt���fdd��dS)Nr#cs�j���S)N)rr)r�r�rrrr��sz9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>cs�j���S)N)rr)r�r�rrrr��scs�j���S)N)rr)r�r�rrrr��scs�j���S)N)rr)r�r�rrrr��s)r%r&rErVrr	r!)rr)r�r�r�rr�test_nan_noncompare�s
z'TestArrayAssertLess.test_nan_noncomparecs�tjdddg��tjtj��tt���fdd��tt���fdd��tjddtjg��tt���fdd��tt���fdd��tjd	d
tjg���j���tt���fdd��dS)Ng�������?g������@gffffff
@cs�j���S)N)rr)r�rrArrr��sz?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>cs�j���S)N)rr)r�rrArrr��scs�j���S)N)rr)r�rrArrr��scs�j���S)N)rr)r�rrArrr��sg�?g@cs�j���S)N)rr)rrArBrrr��s)r%r&rEr	r!r)rr)r�rrArBr�test_nan_noncompare_array�sz-TestArrayAssertLess.test_nan_noncompare_arraycs�tjd��tjtj���j����j����j���tt���fdd��tt���fdd��tt��fdd��tt��fdd��tt��fdd��dS)Nr#cs�j���S)N)rr)r�r�rrrr��sz6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>cs�j���S)N)rr)r�r�rrrr��scs�j���S)N)rr)r�rrrr��scs�j���S)N)rr)r�rrrr��scs�j���S)N)rr)r�rrrr��s)r%r&rVrr	r!)rr)r�r�rr�test_inf_compare�s
z$TestArrayAssertLess.test_inf_comparecs�tjddtjg��tjtj��tt���fdd��tt���fdd��tt���fdd��tt���fdd��tt���fdd���j���dS)	Ng�������?g������@cs�j���S)N)rr)r�rrArrr��sz<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>cs�j���S)N)rr)r�rrArrr��scs�j���S)N)rr)r�rrArrr��scs�j���S)N)rr)r�rrArrr��scs�j���S)N)rr)r�rrArrr��s)r%r&rVr	r!r)rr)r�rrAr�test_inf_compare_array�sz*TestArrayAssertLess.test_inf_compare_arrayN)r1r2r3r5r�r�r�r�r�r�r�r�rrrrr��s

r�z$The raises decorator depends on Nose)rcc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
TestRaisescCsGdd�dt�}||_dS)Nc@seZdZdS)z%TestRaises.setup.<locals>.MyExceptionN)r1r2r3rrrr�MyException�sr�)�	Exception�e)rr�rrrr5�szTestRaises.setupcCs|�dS)Nr)rr�rrr�raises_exception�szTestRaises.raises_exceptioncCsdS)Nr)rrrr�does_not_raise_exception�sz#TestRaises.does_not_raise_exceptioncCst|j�|j�|j�dS)N)rr�r�)rrrr�test_correct_catch�szTestRaises.test_correct_catchcCs:yt|j�|j�t�Wntk
r,dSXtd��dS)Nzshould have caught RuntimeError)rr�r��RuntimeErrorr!)rrrr�test_wrong_exceptions
zTestRaises.test_wrong_exceptioncCs8yt|j�|j��Wntk
r*dSXtd��dS)Nz$should have raised an AssertionError)rr�r�r!)rrrr�test_catch_no_raise
s
zTestRaises.test_catch_no_raiseN)	r1r2r3r5r�r�r�r�r�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�	TestWarnscCshdd�}tjdjdd�}ttt|�d�tjdj}ttt|�ttdd�d�d�t||d�dS)	NcSstjd�dS)N�yor))�warnings�warnrrrr�fs
zTestWarns.test_warn.<locals>.fr�r)cSs|S)Nr)rArrrr�sz%TestWarns.test_warn.<locals>.<lambda>r#z.assert_warns does not preserver warnings state)	�sys�modules�filtersrr
�UserWarningr	r!r)rr��before_filters�
after_filtersrrr�	test_warnszTestWarns.test_warncCs`tjdjdd�}tt��tjd�WdQRXtjdj}dd�}tt|�t	||d�dS)Nr�r�c	Ss t��tjd�WdQRXdS)Nr�)rr�r�rrrr�no_warnings,sz3TestWarns.test_context_manager.<locals>.no_warningsz.assert_warns does not preserver warnings state)
r�r�r�r
r�r�r�r	r!r)rr�r�r�rrr�test_context_manager%s

zTestWarns.test_context_managercCsddd�}d}tj��:tjdt�ytt|�d}Wntk
rHYnXWdQRX|r`td��dS)NcSstjdt�dS)Nr�)r�r��DeprecationWarningrrrrr�5sz,TestWarns.test_warn_wrong_warning.<locals>.fF�errorTz#wrong warning caught by assert_warn)r��catch_warnings�simplefilterr�r
r�r!)rr��failedrrr�test_warn_wrong_warning4s

z!TestWarns.test_warn_wrong_warningN)r1r2r3r�r�r�rrrrr�sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestAssertAllclosecCs�d}d}t||dd�ttt||�tj||||g�}tj||||g�}t||dd�ttt||�|d
|d<t||�ttt||dd�tddd	d�tttddd	d�dS)Ng����MbP?g��&�.>r#)Zatolg:�0�yE>)Zrtolr�r@g�?g�1��?r�)rr	r!r%r&)rrArBrrrrrr�Hs
zTestAssertAllclose.test_simplecCs*tjtjtj�jgtjd�}t||�dS)N)r-)r%r&Ziinfo�int_�minr)rrrrr�test_min_int\szTestAssertAllclose.test_min_intc
Cs^tjddddg�}tjddddg�}tjt��}t||�WdQRXt|j�}td|k�dS)Nr#r$zXMismatched elements: 1 / 4 (25%)
Max absolute difference: 1
Max relative difference: 0.5)	r%r&rjrr!rr�r�r)rrrr��msgrrr�test_report_fail_percentageas
z.TestAssertAllclose.test_report_fail_percentagecCs.tjtjg�}tjtjg�}t||dd�dS)NT)�	equal_nan)r%r&rEr)rrrrrr�test_equal_nanlsz!TestAssertAllclose.test_equal_nancCs2tjtjg�}tjtjg�}ttt||dd�dS)NF)r�)r%r&rEr	r!r)rrrrrr�test_not_equal_nanrsz%TestAssertAllclose.test_not_equal_nancCsHtjtjg�}tjtjg�}t||�t||�t||�t||�dS)N)r%r&rErrrr)rrrrrr�test_equal_nan_defaultws


z)TestAssertAllclose.test_equal_nan_defaultc
CsVtjddg�}tjddg�}tjt��}t||�WdQRXt|j�}td|k�dS)Nrr#r$zMax relative difference: 0.5)	r%r&rjrr!rr�r�r)rrrr�r�rrr�test_report_max_relative_error�s
z1TestAssertAllclose.test_report_max_relative_errorN)
r1r2r3r�r�r�r�r�r�r�rrrrr�Fsr�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestArrayAlmostEqualNulpcCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}t|||�tj|j�j}||||d}t|||�dS)Nr�r��2)r-r@g@i��)	r%�linspace�float64�r_�finfor-�epsr�epsneg)r�nulprAr�rBr�rrr�test_float64_pass�sz*TestArrayAlmostEqualNulp.test_float64_passcCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}ttt	|||�tj|j�j
}||||d}ttt	|||�dS)Nr�r�r�)r-r@g@i��)r%r�r�r�r�r-r�r	r!rr�)rr�rAr�rBr�rrr�test_float64_fail�s
z*TestArrayAlmostEqualNulp.test_float64_failcCsTtjd�}tjtjtjd�jtj�}||A}|jtj�}|jtj�}t||d�dS)Nl��)r-r)r%Zuint64r&rEr�r`r)r�offsetZnan1_i64Znan2_i64Znan1_f64Znan2_f64rrr�test_float64_ignore_nan�s
z0TestArrayAlmostEqualNulp.test_float64_ignore_nancCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}t|||�tj|j�j}||||d}t|||�dS)Nr�r�r�)r-r@g@i��)	r%r��float32r�r�r-r�rr�)rr�rAr�rBr�rrr�test_float32_pass�sz*TestArrayAlmostEqualNulp.test_float32_passcCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}ttt	|||�tj|j�j
}||||d}ttt	|||�dS)Nr�r�r�)r-r@g@i��)r%r�r�r�r�r-r�r	r!rr�)rr�rAr�rBr�rrr�test_float32_fail�s
z*TestArrayAlmostEqualNulp.test_float32_failcCsTtjd�}tjtjtjd�jtj�}||A}|jtj�}|jtj�}t||d�dS)Ni��)r-r)r%Zuint32r&rEr�r`r)rr�Znan1_i32Znan2_i32Znan1_f32Znan2_f32rrr�test_float32_ignore_nan�s
z0TestArrayAlmostEqualNulp.test_float32_ignore_nancCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}t|||�tj|j�j}||||d}t|||�dS)Nr�r*r@)r-g@���)	r%r��float16r�r�r-r�rr�)rr�rAr�rBr�rrr�test_float16_pass�sz*TestArrayAlmostEqualNulp.test_float16_passcCs�d}tjdddtjd�}d|}tj||f}tj|j�j}||||d}ttt	|||�tj|j�j
}||||d}ttt	|||�dS)Nr�r*r@)r-g@r�)r%r�r�r�r�r-r�r	r!rr�)rr�rAr�rBr�rrr�test_float16_fail�s
z*TestArrayAlmostEqualNulp.test_float16_failcCsTtjd�}tjtjtjd�jtj�}||A}|jtj�}|jtj�}t||d�dS)N�)r-r)r%Zuint16r&rEr�r`r)rr�Znan1_i16Znan2_i16Znan1_f16Znan2_f16rrr�test_float16_ignore_nans
z0TestArrayAlmostEqualNulp.test_float16_ignore_nancCs$d}tjd	ddtjd�}d|}tj||f}||d}tj|j�j}||||d}t|||d|�t|||d|�||||d}t|||d|�tj|j�j}||||d}t|||d|�t|||d|�||||d}t|||d|�dS)
Nr�r�r�)r-r@y�?g@g@i��)	r%r�r�r�r�r-r�rr�)rr�rA�xir�rBr�rrr�test_complex128_pass
s"z-TestArrayAlmostEqualNulp.test_complex128_passcCs4d}tjdddtjd�}d|}tj||f}||d}tj|j�j}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�tj|j�j
}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�dS)	Nr�r�r�)r-r@y�?g@i��)r%r�r�r�r�r-r�r	r!rr�)rr�rAr�r�rBr�rrr�test_complex128_fail$s.z-TestArrayAlmostEqualNulp.test_complex128_failcCs$d}tjd	ddtjd�}d|}tj||f}||d}tj|j�j}||||d}t|||d|�t|||d|�||||d}t|||d|�tj|j�j}||||d}t|||d|�t|||d|�||||d}t|||d|�dS)
Nr�r�r�)r-r@y�?g@g@i��)	r%r�r�r�r�r-r�rr�)rr�rAr�r�rBr�rrr�test_complex64_passAs"z,TestArrayAlmostEqualNulp.test_complex64_passcCs4d}tjdddtjd�}d|}tj||f}||d}tj|j�j}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�tj|j�j
}||||d}ttt	|||d|�ttt	|||d|�||||}ttt	|||d|�dS)	Nr�r�r�)r-r@y�?g@i��)r%r�r�r�r�r-r�r	r!rr�)rr�rAr�r�rBr�rrr�test_complex64_failVs.z,TestArrayAlmostEqualNulp.test_complex64_failN)r1r2r3r�r�r�r�r�r�r�r�r�rrrrrrrrr��sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestULPcCstjjd�}t||dd�dS)Nr@r)�maxulp)r%�random�randnr)rrArrr�
test_equaltszTestULP.test_equalcCsRtjd�jtj�}|dtjjd�jtj�7}tjtj�j}t|||dd�dS)Nr@g{�G�z�?r�)r)	r%r��astyper�rrr�r�r)rrAr�rrr�test_singlexszTestULP.test_singlecCsRtjd�jtj�}|dtjjd�jtj�7}tjtj�j}t|||dd�dS)Nr@g{�G�z�?��)r)	r%r�r	r�rrr�r�r)rrAr�rrr�test_doubleszTestULP.test_doublecCsPxJtjtjgD]:}tjtjg�j|�}tjtj|�jg�}t||dd�qWdS)Nr)r)	r%r�r�r&rVr	r��maxr)r�dtrV�bigrrrr��szTestULP.test_infcs�xtjtjgD]�}|tjkr$d�nd�tjtjg�j|��tjtjg�j|��tjtj|�jg��tjtj|�j	g��tjtj
g�j|��tjtjg�j|��tt
���fdd��tt
���fdd��tt
���fdd��tt
���fdd��tt
���fdd��qWdS)	Ng��.Ag��mBcst���d�S)N)r)rr)rVrrErrr��sz"TestULP.test_nan.<locals>.<lambda>cst���d�S)N)r)rr)rrrErrr��scst���d�S)N)r)rr)rrE�tinyrrr��scst���d�S)N)r)rr)rrE�zerorrr��scst���d�S)N)r)rr)rrE�nzerorrr��s)r%r�r�r&rVr	rEr�r
rr�r�r	r!)rrr)rrVrrErrrrr��s(
zTestULP.test_nanN)r1r2r3rr
rr�r�rrrrrrs
rc@seZdZdd�Zdd�ZdS)�TestStringEqualcCsZtdd�tdd�tjt��}tdd�WdQRXt|j�}t|d�ttdd��dS)N�hellozhello
multilinezfoo
barz	hello
barz%Differences in strings:
- foo
+ hellocSs
tdd�S)Nr;r)rrrrrr��sz-TestStringEqual.test_simple.<locals>.<lambda>)rrjrr!r�r�rr	)rr�r�rrrr��s



zTestStringEqual.test_simplecCstdd�ttdd��dS)Nza+*bcSs
tdd�S)NZaaaza+b)rrrrrr��sz,TestStringEqual.test_regex.<locals>.<lambda>)rr	r!)rrrr�
test_regex�s
zTestStringEqual.test_regexN)r1r2r3r�rrrrrr�srcCs�y
|j}Wntk
r"i}YnXt|�}d|krz|d8}tjdd�dkr\|dk	rz|}ntjdd�dkrz|dk	rz|}t||�dS)	N�versionr#r$r)r�r*)r)r�)r)r*)�__warningregistry__�AttributeErrorrOr��version_infor)�mod�n_in_context�py34�py37Z	mod_warnsZ	num_warnsrrr�assert_warn_len_equal�s

rcCsDGdd�d�}|�}t|dd�Gdd�d�}|�}t|dd�dS)Nc@seZdZdS)z/test_warn_len_equal_call_scenarios.<locals>.modN)r1r2r3rrrrr�srr)rrc@seZdZdd�ZdS)z/test_warn_len_equal_call_scenarios.<locals>.modcSsddd�|_dS)Nr#r$)Zwarning1Zwarning2)r)rrrr�__init__�sz8test_warn_len_equal_call_scenarios.<locals>.mod.__init__N)r1r2r3rrrrrr�sr$)r)rZmod_instrrr�"test_warn_len_equal_call_scenarios�sr cCs2tjt}y|jj�Wntk
r,YnX|S)N)r�r�r1r�clearr)�my_modrrr�_get_fresh_mod�s
r#c"Cs�t�}tt|di�i�t|gd��tjd�tjd�WdQRXt|ji�t��tjd�tjd�WdQRXt|ddd�t|gd��tjd�tjd�WdQRXt|ddd�t��tjd�tjd�WdQRXt|d	ddd
�dS)Nr)r��ignorezSome warningr#r)rzAnother warningr$)rr)	r#r�getattrrr�r�r�rr)r"rrr�test_clear_and_catch_warningss$



r&c!Cs:t�}tt|di�i�dd�}t|d�t��0}|jt�|jtj	j
d�tjd�|�WdQRXtt
|j�d�t|jdjjdd�t|ddd�t�}|j|d�|�tjd�WdQRXt|d�|j|d�|�tjd�WdQRXt|d�t��tjd	�tjd�WdQRXt|ddd�dS)
NrcSsdd�}tj|ddg�dS)NcSstjddd�|S)NzSome warning 2r$)�
stacklevel)r�r�)�arrrrrr�,szFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnr)r%�apply_along_axis)r�rrr�warn_other_module)sz8test_suppress_warnings_module.<locals>.warn_other_moduler)�modulezSome warningr#)rr$)r#rr%rrrMr��filterr%�libZ
shape_baser�r�rO�logrKrer�)r"r*rPrrr�test_suppress_warnings_module$s2	





r/c!Cs�t�}tt|di�i�t��}|jt�tjd�WdQRXt|d�t�}|jt�|�tjd�WdQRXt|d�|j|d�|�tjd�WdQRXt|d�t��tj	d�tjd�WdQRXt|ddd�dS)NrzSome warningr)r+r$r#)r)
r#rr%rr,r�r�r�rr�)r"rPrrr�test_suppress_warnings_typeRs&





r0c
Cs`t�}|jt�|dd��}tjdd��.}tjd�|t�|t�tt|�d�WdQRXdS)NcSstjd|�dS)NzSome warning)r�r�)�categoryrrrr�ssz7test_suppress_warnings_decorate_no_record.<locals>.warnT)rM�alwaysr#)	rr,r�r�r�r��RuntimeWarningrrO)rPr��wrrr�)test_suppress_warnings_decorate_no_recordos

r5cCs�t�}|j�}|�~|jdd�}|jdd�tjd�tjd�tjd�tt|j�d�tt|�d�tt|�d�t|djj	dd�WdQRX|�~|jdd�}|jdd�tjd�tjd�tjd�tt|j�d�tt|�d�tt|�d�t|djj	dd�WdQRXt��`}|j�t��6}|jdd�tjd�tjd�tt|j�d�WdQRXtt|j�d�WdQRXdS)NzSome other warning 2)rKzSome warningzSome other warningr$r#r)
rrMr,r�r�rrOr.rKre)rPZlog1�log2�sup2rrr�test_suppress_warnings_record~s<


 


 

r8c;Cs�dd�}t��N}|j�td��"xtd�D]}tjd�q,WWdQRXtt|j�d�WdQRXt��X}|j�td��,x$td�D]}tjd�tjd�q�WWdQRXtt|j�d�WdQRXt��^}|j�td��2x*td�D]}tjd�tjd�|�q�WWdQRXtt|j�d�WdQRXt��`}|j�td��4x,td�D] }tjd�tjd	�|��qTWWdQRXtt|j�d�WdQRXdS)
NcSsdd�}tj|ddg�dS)NcSstjddd�|S)NzSome warningr$)r')r�r�)r(rrrr��szJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warnr)r%r))r�rrrr*�sz<test_suppress_warnings_forwarding.<locals>.warn_other_moduler2r$zSome warning�locationr+�oncezSome other warning)rrM�ranger�r�rrOr.)r*rP�irrr�!test_suppress_warnings_forwarding�s<








r=cCs�t��*}tjj|d�}t|d��WdQRXWdQRXttjj|��d}yt��}t��WdQRXWntk
r�d}YnXt|�ttjj|��dS)N�tmpr4FT)r�os�path�join�openr�isdir�
ValueError)Ztdir�fpath�raisedrrr�test_tempdir�s
rGcCs�t��}t|d��WdQRXWdQRXttjj|��d}yt��}t��WdQRXWntk
rrd}YnXt|�ttjj|��dS)Nr4FT)rrBrr?r@�isfilerD)rErFrrr�
test_temppath�s
rIc@seZdZejefZdS)�my_cacwN)r1r2r3r�r�Z
class_modulesrrrrrJ�srJc
Cs<t�}t��tjd�tjd�WdQRXt|ji�dS)Nr$zSome warning)r#rJr�r�r�rr)r"rrr�%test_clear_and_catch_warnings_inherit�s

rKzPython lacks refcountsc@s0eZdZdZdd�Zdd�Zejjdd��Z	dS)	�TestAssertNoGcCyclesz Test assert_no_gc_cycles c	Cs,dd�}t��|�WdQRXt|�dS)NcSsg}|jg�|S)N)�append)rrrr�no_cycles
z2TestAssertNoGcCycles.test_passes.<locals>.no_cycle)r)rrNrrr�test_passessz TestAssertNoGcCycles.test_passescCsTdd�}tt��t��|�WdQRXWdQRXtt��t|�WdQRXdS)NcSsg}|j|�|j|�|S)N)rM)rrrr�
make_cycles

z5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle)r	r!r)rrPrrr�test_assertss

z!TestAssertNoGcCycles.test_assertscs�G�fdd�d��z`tj���}y$tt��tdd��WdQRXWn*tk
rn|�dk	rjtjd��YnXWdd�_XdS)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
||_dS)N)�cycle)rrrrr.szETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__csd|_�jr��dS)N)rRrP)r)�ReferenceCycleInDelrr�__del__1szDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__N)r1r2r3�__doc__rPrrTr)rSrrrS'srScSsdS)Nrrrrrr�?sz1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Nz*GC does not call __del__ on cyclic objectsF)	�weakref�refr	r�rr!rj�skiprP)rr4r)rSr�
test_fails s


zTestAssertNoGcCycles.test_failsN)
r1r2r3rUrOrQrjrkZslowrYrrrrrLsrL)NN)@r�r�r?r�rjrVZnumpyr%Z
numpy.testingrrrrrrrr	r
rrr
rrrrrrrrrrZnumpy.core.overridesrrr4rmrwr�r�r�r�rkrXr�r�r�r�rrrr r#r&r/r0r5r8r=rGrIrJrKrlrLrrrr�<module>sN`.-_b+m#3Fg8
".(/