a :jgl@sddlZddlZddlZddlZddlZddlZddlZddlZddl m m Z ddl mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"GdddZ#Gddde#Z$GdddZ%Gd d d e$Z&Gd d d e#Z'Gd dde#Z(GdddZ)GdddZ*GdddZ+GdddZ,GdddZ-GdddZ.GdddZ/ddZ0dd Z1d!d"Z2d#d$Z3d%d&Z4d'd(Z5d)d*Z6d+d,Z7d-d.Z8d/d0Z9d1d2Z:Gd3d4d4eZ;d5d6Ze" d7d8Gd9d:d:Z?ej=@d;eegdN) assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_array_less build_err_msg assert_raises assert_warnsassert_no_warningsassert_allcloseassert_approx_equalassert_array_almost_equal_nulpassert_array_max_ulpclear_and_catch_warningssuppress_warningsassert_string_equalassert_tempdirtemppathassert_no_gc_cycles HAS_REFCOUNTc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) _GenericTestcCs|||dSN _assert_funcselfabrH/usr/local/lib/python3.9/site-packages/numpy/testing/tests/test_utils.py _test_equalsz_GenericTest._test_equalcCs8tt|||Wdn1s*0YdSr)rAssertionErrorrrrrr _test_not_equals z_GenericTest._test_not_equalcCs,tddg}tddg}|||dS)z/Test two equal array of rank 1 are found equal.Nnparrayr!rrrr test_array_rank1_eqsz _GenericTest.test_array_rank1_eqcCs,tddg}tddg}|||dS)z7Test two different array of rank 1 are found not equal.r$r%Nr'r(r#rrrr test_array_rank1_noteq%sz#_GenericTest.test_array_rank1_noteqcCs<tddgddgg}tddgddgg}|||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_eqcCs4tddg}tddgddgg}|||dS):Test two arrays with different shapes are found not equal.r$r%Nr*rrrr test_array_diffshape3sz!_GenericTest.test_array_diffshapecCs"tjddgtd}||ddS)zTest object arrays.r$dtypeN)r'r(objectr!rrrrr test_objarray:sz_GenericTest.test_objarraycCs|gdddS)Nr$r%r,)r!rrrr test_array_likes?sz_GenericTest.test_array_likesN) __name__ __module__ __qualname__r!r#r)r+r.r0r5r8rrrr rsrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!S)"TestArrayEqualcCs t|_dSr)rrr7rrr setup_methodEszTestArrayEqual.setup_methodcs4fdd}dD] }||qdD] }||q"dS)z!Test rank 1 array for all dtypes.csLtd|}|d|}|}|d||||dS)Nr%r$rr'emptyfillcopyr!r#trrcr7rr fooJs    z.TestArrayEqual.test_generic_rank1..foo?bhilqpBHILQPfdgFDGZS1ZU1NrrrErCrr7r test_generic_rank1Hs   z!TestArrayEqual.test_generic_rank1cCstd}td}tt}|||Wdn1s@0Yt|j}td|v|}|||td}td}d}tjtt |d|||Wdn1s0Y|}|||dS)NlCjrBr7rr rEvs    z.TestArrayEqual.test_generic_rank3..foorFrGNrrHrr7r test_generic_rank3ts   z!TestArrayEqual.test_generic_rank3cCsNtddtjg}tddtjg}|||tgd}|||dS)z$Test arrays with nan values in them.r$r%r6N)r'r(nanr!r#rrrrDrrr test_nan_arrays  zTestArrayEqual.test_nan_arraycCsFtddg}tddg}|||tddg}|||dS)r/floupifloupafloupipiN)r'r(r!r#rZrrr test_string_arrayss  z!TestArrayEqual.test_string_arrayscCstddtfdtfg}ddg|d<ddg|d<|}|||tddtfdtfdtfg}|d|d<|d|d<tt|||Wdn1s0YdS)zTest record arrays.r%r\r]r$r^N) r'r?floatrAr!rLrM TypeErrorr#rZrrr test_recarrayss      zTestArrayEqual.test_recarrayscCstjjgdgdd}tdtjdg}||||||tjjgdgdd}ttjddg}||||||dS)N@@@)FTFmaskrdrf)TFFre)r'ma MaskedArrayr(rYr!infrrrr test_masked_nan_infs   z"TestArrayEqual.test_masked_nan_infcCs*Gdddtj}tddg|}tddg|}tt||ktt||kt||k|||||||||d}t j t t |d|||Wdn1s0Ytdd g|}d }t j t t |d|||Wdn1s0YdS) Nc@seZdZddZddZdS)z?TestArrayEqual.test_subclass_that_overrides_eq..MyArraycSstt||Sr)boolr'equalallrotherrrr __eq__szFTestArrayEqual.test_subclass_that_overrides_eq..MyArray.__eq__cSs ||k Srrrprrr __ne__szFTestArrayEqual.test_subclass_that_overrides_eq..MyArray.__ne__N)r9r:r;rrrsrrrr MyArraysrt?@rdz{Mismatched elements: 1 / 2 (50%) Max absolute difference among violations: 1. Max relative difference among violations: 0.5rJg333333@z{Mismatched elements: 1 / 2 (50%) Max absolute difference among violations: 2. Max relative difference among violations: inf)r'ndarrayr(viewrtypermr!r#rLrMr"rPrQ)rrtrrrVrDrrr test_subclass_that_overrides_eqs      *z.TestArrayEqual.test_subclass_that_overrides_eqcCsGdddtj}tddg|}tddg|}ttt|Wdn1sb0Y|||||||||dS)Nc@seZdZddZdS)zKTestArrayEqual.test_subclass_that_does_not_implement_npall..MyArrayc_stSr)NotImplementedrargskwargsrrr __array_function__sz^TestArrayEqual.test_subclass_that_does_not_implement_npall..MyArray.__array_function__N)r9r:r;rrrrr rtsrtrurvrd) r'rxr(ryrraror!r#)rrtrrrrr +test_subclass_that_does_not_implement_npalls (  z:TestArrayEqual.test_subclass_that_does_not_implement_npallc Csttftjdd:tjtgdtjtgdtjWdn1sX0YWdn1sv0YdS)Nraiseror6)r$gWw'&l7r,) rLrMr"r'ZerrstateZtestingrr(float32r7rrr test_suppress_overflow_warningss  z.TestArrayEqual.test_suppress_overflow_warningscCs"tgd}d}|||dS)z@Test comparing an array with a scalar when all values are equal.rurururuNr&rrrr test_array_vs_scalar_is_equalsz,TestArrayEqual.test_array_vs_scalar_is_equalcCstgd}tgd}d}tjtt|d|||Wdn1sV0Ytgd}d}tjtt|d|||Wdn1s0YdS)z@Test comparing an array with a scalar when not all values equal.)骈Sg6)rrrrzMismatched elements: 1 / 4 (25%) Max absolute difference among violations: 563766 Max relative difference among violations: infrJN)rrg̜ArzMismatched elements: 2 / 4 (50%) Max absolute difference among violations: 563766. Max relative difference among violations: 4.54902139e-07r'r(rLrMr"rPrQrrrrrVrrr test_array_vs_array_not_equals*z,TestArrayEqual.test_array_vs_array_not_equalcCsPtgd}d}tt |j||ddWdn1sB0YdS)z9Test comparing an array with a scalar with strict option.rruTstrictNr'r(rLrMr"rrrrr test_array_vs_scalar_strict s z*TestArrayEqual.test_array_vs_scalar_strictcCs0tgd}tgd}|j||dddS)-Test comparing two arrays with strict option.rTrN)r'r(rrrrr test_array_vs_array_strictsz)TestArrayEqual.test_array_vs_array_strictcCsZtgd}tgd}tt |j||ddWdn1sL0YdS)r)r$r$r$rTrNrrrrr test_array_vs_float_array_stricts z/TestArrayEqual.test_array_vs_float_array_strictN)r9r:r;r=rIrWrXr[r_rbrlr{rrrrrrrrrrr r<Cs    " r<c@s,eZdZddZddZddZddZd S) TestBuildErrorMessagecCs@tgd}tgd}d}t||g|}d}t||dS)NgrZ| ?rZ| @&@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(rrrrRrSerr_msgrrrrr test_build_err_msg_defaults$s z1TestBuildErrorMessage.test_build_err_msg_defaultscCsDtgd}tgd}d}t||g|dd}d}t||dS)NrrrF)verbosez) Items are not equal: There is a mismatchrrrrr test_build_err_msg_no_verbose/s z3TestBuildErrorMessage.test_build_err_msg_no_verbosecCsDtgd}tgd}d}t||g|dd}d}t||dS)Nrrr)ZFOOZBAR)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])rrrrr test_build_err_msg_custom_names8s z5TestBuildErrorMessage.test_build_err_msg_custom_namescCsDtgd}tgd}d}t||g|dd}d}t||dS)N)g0D?rr)g_p?rrr ) 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 ])rrrrr #test_build_err_msg_custom_precisionCs z9TestBuildErrorMessage.test_build_err_msg_custom_precisionN)r9r:r;rrrrrrrr r"s   rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS) TestEqualcCs t|_dSr)rrr7rrr r=QszTestEqual.setup_methodcCsH|tjtj|tjgtjg|tjtjg|tjddSNr$)rr'rYr#r7rrr test_nan_itemsTszTestEqual.test_nan_itemscCs:|tjtj|tjgtjg|tjtjgdSr)rr'rkr#r7rrr test_inf_itemsZszTestEqual.test_inf_itemscCst|tddtdd|tddtdd|tddtdd|tddtdddS)N 2017-01-01smz 2017-01-02)r!r' datetime64r#r7rrr test_datetime_s         zTestEqual.test_datetimec Csttd}tdd}tdd}td}tdd}tdd}|||g}|||g}t||D]2\} } || | || g| g|| g| qdt||D]2\} } || | || g| g|| g| qt||D]\} } || | || | g|| g| g|| gtdd|| gtdd|| gtdd|| gtddqdS)NNaTrnsr{)r'rZ timedelta64 itertoolsproductrr#) rZ nadt_no_unitZnadt_sZnadt_dZ natd_no_unitZnatd_sZnatd_ddtsZtdsrrrrr test_nat_itemsss0           zTestEqual.test_nat_itemscCs|dd|dddS)NabZabb)rr#r7rrr test_non_numerics zTestEqual.test_non_numericcCs|tddtdd|tdtjtdtj|tdtjtdd|ttjdtdtj|ttjtjttjddSNr$r%)rcomplexr'rYr#rkr7rrr test_complex_items zTestEqual.test_complex_itemcCs|tjtjdSr)r#ncuZPZEROZNZEROr7rrr test_negative_zeroszTestEqual.test_negative_zerocCsRttddtdtjg}ttddtddg}||||||dSrr'r(rrYrr#rrRrSrrr test_complexs zTestEqual.test_complexcCsDddl}t|ddd|dddg}|||ddddS)Nrir$r%)datetimer'r(r#)rrrrrr test_objects  zTestEqual.test_objectN) r9r:r;r=rrrrrrrrrrrrr rOsrc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestArrayAlmostEqualcCs t|_dSr)rrr7rrr r=sz!TestArrayAlmostEqual.setup_methodcCsNd}tjtt|d |jddddWdn1s>0Y|jdgdgddd}tjtt|d$|jdgdgddWdn1s0Ydd g}d dg}d }tjtt|d |j||d dWdn1s0Yd }tjtt|d |j||d dWdn1s@0YdS)Nz}Mismatched elements: 1 / 1 (100%) Max absolute difference among violations: 1.5 Max relative difference among violations: infrJ?rwrdecimal?ge (?giUMu>gB??zMismatched elements: 1 / 2 (50%) Max absolute difference among violations: 3.e-05 Max relative difference among violations: infz~Mismatched elements: 1 / 2 (50%) Max absolute difference among violations: 3.e-05 Max relative difference among violations: 1.rLrMr"rPrQr)rrVrrrrr test_closenesss.2.z#TestArrayAlmostEqual.test_closenesscCstdg}tdg}|j||dd|j||ddd}tjtt|d |j||ddWdn1sv0YdS) NgeH@gwH@r,rr-zMismatched elements: 1 / 1 (100%) Max absolute difference among violations: 1.e-04 Max relative difference among violations: 8.10226812e-08rJr'r(rrLrMr"rPrQrrRrSrVrrr test_simples  z TestArrayAlmostEqual.test_simplecCs>gd}d}d}tjtt|d |j||ddWdn1sJ0Yd}tjtt|d |j||ddWdn1s0Yddg}d }tjtt|d |j||d dWdn1s0Yd }d }tjtt|d |j||d dWdn1s00YdS) N)mlz@gHPX@rwrzMismatched elements: 2 / 3 (66.7%) Max absolute difference among violations: 5498.42354 Max relative difference among violations: 1.rJ rzMismatched elements: 2 / 3 (66.7%) Max absolute difference among violations: 5498.42354 Max relative difference among violations: 5.4722099rwzMismatched elements: 1 / 2 (50%) Max absolute difference among violations: 5498.42354 Max relative difference among violations: infrrrrrrr test_array_vs_scalars ...z)TestArrayAlmostEqual.test_array_vs_scalarcszttjgtdgttjgttfddttfddttfdddS)Nr$cs Srrrananaonerrr z/TestArrayAlmostEqual.test_nan..cs Srrrainfrrrr rrcs Srrrrrr rrr'r(rYrkrrr"r7rrrrrr test_nans  zTestArrayAlmostEqual.test_nancsdtddgddggtjd<ttfddtj d<ttfdddS) Nrurvrdre)rrcs Srrrrrrrr rrz/TestArrayAlmostEqual.test_inf..cs Srrrrrr rr)r'r(rArkrr"r7rrr test_infs  zTestArrayAlmostEqual.test_infcCs@tddgddgg}tjddgddggddgddgg}|||||||||tjjddd }tgd }||||||tjj}tgd }||||||tjjgd gd d }tgd }||||||tjjgd gd d }td}||||||dS) NrurvrdrerwFTg @rgrc)TTT)rurvrd)r'r(riZ masked_arrayrrjr!Zmaskedrrrr test_subclasss.           z"TestArrayAlmostEqual.test_subclasscCsGdddtj}tddg|}|||tddg|}t|tddg|}d}tjtt |d|||Wdn1s0YdS) Ncs0eZdZfddZfddZddZZS)z5TestArrayAlmostEqual.test_subclass_2..MyArraycst|tjSrsuperrrryr'rxrp __class__rr rr>sz.MyArray.__eq__cst|tjSrr__lt__ryr'rxrprrr rAsz.MyArray.__lt__c_st|Srrr}rrr roDsz9TestArrayAlmostEqual.test_subclass_2..MyArray.allr9r:r;rrrro __classcell__rrrr rt=s  rtrurvTzMismatched elements: 1 / 2 (50%) Max absolute difference among violations: 200. Max relative difference among violations: 0.99009rJ) r'rxr(ryrrorLrMr"rPrQ)rrtrzrrVrrr test_subclass_28s  z$TestArrayAlmostEqual.test_subclass_2cCs6Gdddtj}tddg|}|||dS)Ncs0eZdZfddZfddZddZZS)zGTestArrayAlmostEqual.test_subclass_that_cannot_be_bool..MyArraycst|tjSrrrprrr rrYszNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.__eq__cst|tjSrrrprrr r\szNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.__lt__c_stdSrNotImplementedErrorr}rrr ro_szKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.allrrrrr rtXs  rtrurvr'rxr(ryrrrtrrrr !test_subclass_that_cannot_be_boolSs z6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolN) r9r:r;r=rrrrrrrrrrrr rs%!  rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestAlmostEqualcCs t|_dSr)rrr7rrr r=hszTestAlmostEqual.setup_methodcsLjddddttfddjdgdgddttfdddS)NrrwrrcsjddddSNrrwrrrrr7rr rurz0TestAlmostEqual.test_closeness..csjdgdgddSrrrr7rr rzrrrr"r7rr7r rks  zTestAlmostEqual.test_closenesscsJtjtjttfddttfddttfdddS)NcstjdSr)rr'rYrr7rr rrz/TestAlmostEqual.test_nan_item..cstjtjSr)rr'rYrkrr7rr rrcstjtjSr)rr'rkrYrr7rr rr)rr'rYrr"r7rr7r test_nan_item|s   zTestAlmostEqual.test_nan_itemcsLtjtjtj tj ttfddttfdddS)NcstjdSrrr'rkrr7rr rrz/TestAlmostEqual.test_inf_item..cstj tjSrrrr7rr rr)rr'rkrr"r7rr7r test_inf_items  zTestAlmostEqual.test_inf_itemcCs|dddSr)r#r7rrr test_simple_itemsz TestAlmostEqual.test_simple_itemcCs|tddtdd|tdtjtdtj|ttjtjttjtj|tdtjtdd|ttjdtdtj|ttjtjttjddSr)rrr'rYrkr#r7rrr rs  z!TestAlmostEqual.test_complex_itemcCszttddtdtjg}ttddttjdg}ttddtddg}|||||||||dSrr)rrRrrSrrr rs   zTestAlmostEqual.test_complexcCsttgd}tgd}d}tjtt|d |j||ddWdn1sZ0Yd}tjtt|d|||Wdn1s0Yttjd g}ttjd g}d }tjtt|d|||Wdn1s0Ytd d g}td d g}d }tjtt|d|||Wdn1sf0YdS)zCheck 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@raMismatched 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 rNzMismatched 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])rr$zMismatched 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(rLrMr"rPrQrrkrrrr test_error_messages$ .*,z"TestAlmostEqual.test_error_messagecCsd}td}d}tjtt|d|||Wdn1sH0Yd}td}d}tjtt|d|||Wdn1s0YdS)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.rJNz~Mismatched elements: 20 / 20 (100%) Max absolute difference among violations: 1. Max relative difference among violations: 0.5)r'onesrLrMr"rPrQrrrrr test_error_message_2s * z$TestAlmostEqual.test_error_message_2cCs6Gdddtj}tddg|}|||dS)Ncs0eZdZfddZfddZddZZS)zBTestAlmostEqual.test_subclass_that_cannot_be_bool..MyArraycst|tjSrrrprrr rrszITestAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.__eq__cst|tjSrrrprrr rszITestAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.__lt__c_stdSrrr}rrr roszFTestAlmostEqual.test_subclass_that_cannot_be_bool..MyArray.allrrrrr rts  rtrurvrrrrr rs z1TestAlmostEqual.test_subclass_that_cannot_be_boolN) r9r:r;r=rrrrrrrrrrrrr rfs 3rc@s4eZdZddZddZddZddZd d Zd S) TestApproxEqualcCs t|_dSr)r rr7rrr r=szTestApproxEqual.setup_methodcsNtdtdjddjddttfdddS)N{GH@RH@rZ significantcsjddSNrrrrrrr rrz7TestApproxEqual.test_simple_0d_arrays..)r'r(rrr"r7rrr test_simple_0d_arrayss  z%TestApproxEqual.test_simple_0d_arrayscsRddjddjddjddttfdddS) Nrrr-rrrcsjddSrrrrrr rrz3TestApproxEqual.test_simple_items..rr7rrr test_simple_itemssz!TestApproxEqual.test_simple_itemscstttjtdttjttfddttfddttfdddS)Nr$cs Srrrrrr rrz0TestApproxEqual.test_nan_array..cs Srrrrrr rrcs Srrrrrr rrrr7rrr r[s    zTestApproxEqual.test_nan_arraycstttjtdttjttfddttfddttfdddS)Nr$cs Srrrrrr rrz0TestApproxEqual.test_nan_items..cs Srrrrrr r rcs Srrrrrr r!rrr7rrr rs    zTestApproxEqual.test_nan_itemsN)r9r:r;r=rrr[rrrrr rs    rc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)TestArrayAssertLesscCs t|_dSr)rrr7rrr r=&sz TestArrayAssertLess.setup_methodcstddgtddgttfddtddgttfddttfd dtgd }tgd }d }tjtt|d ||Wdn1s0YdS)N皙?皙@333333?ffffff@cs Srrrrrr r.rz8TestArrayAssertLess.test_simple_arrays..rucs Srrrrrr r2rcs Srrrrrr r3r)r$r,rr)r%r-rz{Mismatched elements: 2 / 4 (50%) Max absolute difference among violations: 12 Max relative difference among violations: 1.5rJ) r'r(rrr"rLrMrPrQrrrr test_simple_arrays)s z&TestArrayAssertLess.test_simple_arrayscstddgddggtddgddggd }tjtt|d Wdn1sr0Ytd dgddggttfd d ttfdd dS)Nrrffffff @g@r r g333333 @g@zMismatched elements: 4 / 4 (100%) Max absolute difference among violations: 0.1 Max relative difference among violations: 0.09090909rJrucs Srrrrrr rJrz0TestArrayAssertLess.test_rank2..cs Srrrrrr rKr) r'r(rrLrMr"rPrQrrrVrrr test_rank2>s *zTestArrayAssertLess.test_rank2cstjddtjdddttfdddd<d}tjtt|d Wdn1s0Yttfd ddS) N)r%r%r%)shaper$cs Srrrrrr rRrz0TestArrayAssertLess.test_rank3..r)rrrz}Mismatched elements: 1 / 8 (12.5%) Max absolute difference among violations: 1. Max relative difference among violations: infrJcs Srrrrrr r[r) r'rrrr"rLrMrPrQrrrr test_rank3Ms  *zTestArrayAssertLess.test_rank3csddd}tjtt|dWdn1sN0Ytddgttfddtddgttfd ddS) Nrrz|Mismatched elements: 1 / 1 (100%) Max absolute difference among violations: 1.1 Max relative difference among violations: 1.rJr cs Srrrrrr rkrz7TestArrayAssertLess.test_simple_items..rucs Srrrrrr ror) rrLrMr"rPrQr'r(rrrrr r]s * z%TestArrayAssertLess.test_simple_itemscCstgdgdgdg}d}|||d}|||tgdgdgdg}d }d }tjtt|d |||Wdn1s0Yd }tjtt|d |||Wdn1s0YdS) N)g.c}j@g镲hx@g|yE@g㥛Ġ@)gQEK@gH}@g*@V-Xy@)(\@Gz @nV@gt@gQ@gmXSY @)gk @g6.cs Srrrrrr rrcs Srrrrrr rrcs Srrrrrr rrrr7rrr test_nan_noncompares    z'TestArrayAssertLess.test_nan_noncomparecstgdttjttfddttfddtddtjgttfddttfddtd d tjgttfd ddS) N)rrr cs SrrrrrrRrr rrz?TestArrayAssertLess.test_nan_noncompare_array..cs Srrrrrr rrrrcs Srrrrrr rrcs Srrrrrr rrrurvcs Srrrrrr rr)r'r(rYrr"rr7r)rrrRrSr test_nan_noncompare_arrays  z-TestArrayAssertLess.test_nan_noncompare_arraycstdttj  ttfddttfddttfddttfddttfdddS)Nr$cs Srrrrrrrr rrz6TestArrayAssertLess.test_inf_compare..cs Srrrrrr rrcs Srrrrrrr rrcs Srrrrrr rrcs Srrrrrr rr)r'r(rkrrr"r7rrr test_inf_compares   z$TestArrayAssertLess.test_inf_comparecstddtjgttjttfddttfddttfddttfddttfdd dS) Nrrcs SrrrrrrRrr rrz.cs Srrrrrr rrcs Srrrrrr rrcs Srrrrrr rrcs  Srrrrrr rr)r'r(rkrr"rr7rrr test_inf_compare_arrays z*TestArrayAssertLess.test_inf_compare_arraycCstd}td}|||tt |j||ddWdn1sP0Yt||j}|||tt(|j|| tj ddWdn1s0YdSz)Test the behavior of the `strict` option.r,rTrN) r'ZzerosrrrLrMr"Z broadcast_torastyperrrrr test_stricts    .  zTestArrayAssertLess.test_strictN)r9r:r;r=r rrrrrrrrr r#rrrr r$s   rc@s,eZdZddZddZddZddZd S) TestWarnscCshdd}tjdjdd}ttt|dtjdj}ttt|ttddddt||ddS) NcSstddS)Nyor,warningswarnrrrr fs zTestWarns.test_warn..fr'r,cSs|SrrrRrrr rrz%TestWarns.test_warn..r$.assert_warns does not preserver warnings state) sysmodulesfiltersrr UserWarningrr"r )rr)before_filters after_filtersrrr test_warns  zTestWarns.test_warncCsttjdjdd}tttdWdn1s<0Ytjdj}dd}tt|t ||ddS)Nr'r%cSs4ttdWdn1s&0YdSNr%)r r'r(rrrr no_warningssz3TestWarns.test_context_manager..no_warningsr+) r,r-r.r r/r'r(rr"r)rr0r1r4rrr test_context_managers (  zTestWarns.test_context_managerc Cs,d dd}tt|dddks JttH}ttddtd tWdn1sZ0YWdn1sx0Yd t|vsJd t|vsJttH}ttdd td tWdn1s0YWdn1s0Yd t|vsJd t|vs(JdS)Nrr$cSstd||Sr3r&)rrrrr r)s zTestWarns.test_args..frrArJBr z pytest.warns)Zwrong)rr$)r r/rLrM RuntimeErrorr'r(rN)rr)excrrr test_argss  H HzTestWarns.test_argsc Csvdd}d}tBtdtztt|d}WntyFYn0Wdn1s\0Y|rrtddS)NcSstdtdSr3)r'r(DeprecationWarningrrrr r)$sz,TestWarns.test_warn_wrong_warning..fFerrorTz#wrong warning caught by assert_warn)r'catch_warnings simplefilterr<r r/r")rr)Zfailedrrr test_warn_wrong_warning#s    $z!TestWarns.test_warn_wrong_warningN)r9r:r;r2r5r;r@rrrr r$sr$c@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestAssertAllclosecCs&d}d}t||ddttt||d}tjtt|dt||Wdn1s\0Yd}d}tjtt|dt||Wdn1s0Yd }tjtt|dt||Wdn1s0Yt||||g}t||||g}t||ddttt|||d |d <t||ttt||dd td ddd tttdd dd t||||g}t||||g}d}tjtt|dt||Wdn1s0Yd}tjtt|dt||Wdn1s0YdS)NgMbP?g& .>r$ZatolzMismatched elements: 1 / 1 (100%) Max absolute difference among violations: 0.001 Max relative difference among violations: 999999.rJrzMismatched elements: 1 / 1 (100%) Max absolute difference among violations: 1.e-09 Max relative difference among violations: infzMismatched elements: 1 / 1 (100%) Max absolute difference among violations: 1.e-09 Max relative difference among violations: 1.g1?r)Zrtolrrg?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 rr"rLrMrPrQr'r()rrRrSrVrrrrDrrr r7s>(((  *zTestAssertAllclose.test_simplecCs*tjttjjgtjd}t||dS)Nr1)r'r(Ziinfoint_minr r4rrr test_min_intlszTestAssertAllclose.test_min_intcCsbtgd}tgd}d}tjtt|dt||Wdn1sT0YdS)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.5rJr'r(rLrMr"rPrQr rrrr test_report_fail_percentageqs z.TestAssertAllclose.test_report_fail_percentagecCs.ttjg}ttjg}t||dddS)NTZ equal_nan)r'r(rYr rrrr test_equal_nan{sz!TestAssertAllclose.test_equal_nancCs2ttjg}ttjg}ttt||dddS)NFrH)r'r(rYrr"r rrrr test_not_equal_nansz%TestAssertAllclose.test_not_equal_nancCsHttjg}ttjg}t||t||t||t||dSr)r'r(rYrrrr rrrr test_equal_nan_defaults    z)TestAssertAllclose.test_equal_nan_defaultcCsbtddg}tddg}d}tjtt|dt||Wdn1sT0YdS)Nrr$r%z-Max relative difference among violations: 0.5rJrFrrrr test_report_max_relative_errors z1TestAssertAllclose.test_report_max_relative_errorcCs"tjgdgdd}t||dS)N)r$r%r,rzm8[ns]r1)r'r(r r4rrr test_timedeltasz!TestAssertAllclose.test_timedeltacCsntjgddd}tjgddd}d}tjtt|dt||ddWd n1s`0Yd S) zUCheck the message is formatted correctly when overflow can occur (gh21768))rr$r Zuint8r1)r-r-r-z+Max absolute difference among violations: 4rJr,rBN)r'ZasarrayrLrMr"rPrQr rrrr test_error_message_unsigneds z.TestAssertAllclose.test_error_message_unsignedcCstd}td}t||ttt||ddWdn1sL0Yt||tt&t||tjddWdn1s0YdSr!)r'rr rLrMr"r"rrrrr r#s    ,  zTestAssertAllclose.test_strictN) r9r:r;rrErGrIrJrKrLrMrNr#rrrr rA5s5   rAc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS)TestArrayAlmostEqualNulpcCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}t|||t|jj}||||d}t|||dSNrr2r1rrv r'linspacefloat64r_finfor2epsr epsnegrnulprRrXrSrYrrr test_float64_passs z*TestArrayAlmostEqualNulp.test_float64_passcCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}ttt |||t|jj }||||d}ttt |||dSrP r'rTrUrVrWr2rXrr"r rYrZrrr test_float64_failsz*TestArrayAlmostEqualNulp.test_float64_failcCsTtd}tjtjtjdtj}||A}|tj}|tj}t||ddS)Nlr1r)r'Zuint64r(rYrUryr)roffsetZnan1_i64Znan2_i64Znan1_f64Znan2_f64rrr test_float64_ignore_nans    z0TestArrayAlmostEqualNulp.test_float64_ignore_nancCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}t|||t|jj}||||d}t|||dSrP r'rTrrVrWr2rXr rYrZrrr test_float32_passs z*TestArrayAlmostEqualNulp.test_float32_passcCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}ttt |||t|jj }||||d}ttt |||dSrP r'rTrrVrWr2rXrr"r rYrZrrr test_float32_failsz*TestArrayAlmostEqualNulp.test_float32_failcCsTtd}tjtjtjdtj}||A}|tj}|tj}t||ddS)Nir1r)r'Zuint32r(rYrryr)rr_Znan1_i32Znan2_i32Znan1_f32Znan2_f32rrr test_float32_ignore_nans    z0TestArrayAlmostEqualNulp.test_float32_ignore_nancCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}t|||t|jj}||||d}t|||dSNrr-rr1rv) r'rTfloat16rVrWr2rXr rYrZrrr test_float16_passs z*TestArrayAlmostEqualNulp.test_float16_passcCsd}tjdddtjd}d|}tj| |f}t|jj}||||d}ttt |||t|jj }||||d}ttt |||dSrf) r'rTrhrVrWr2rXrr"r rYrZrrr test_float16_failsz*TestArrayAlmostEqualNulp.test_float16_failcCsTtd}tjtjtjdtj}||A}|tj}|tj}t||ddS)Nr1r)r'Zuint16r(rYrhryr)rr_Znan1_i16Znan2_i16Znan1_f16Znan2_f16rrr test_float16_ignore_nan-s    z0TestArrayAlmostEqualNulp.test_float16_ignore_nancCs$d}tjdddtjd}d|}tj| |f}||d}t|jj}||||d}t|||d|t|||d|||||d }t|||d|t|jj}||||d}t|||d|t|||d|||||d }t|||d|dS NrrQrrRr1r?rvrerSrr[rRxirXrSrYrrr test_complex128_pass8s" z-TestArrayAlmostEqualNulp.test_complex128_passcCs4d}tjdddtjd}d|}tj| |f}||d}t|jj}||||d}ttt |||d|ttt |||d|||||}ttt |||d|t|jj }||||d}ttt |||d|ttt |||d|||||}ttt |||d|dS NrrQrrRr1rrnrvr]rorrr test_complex128_failOs: z-TestArrayAlmostEqualNulp.test_complex128_failcCs$d}tjdddtjd}d|}tj| |f}||d}t|jj}||||d}t|||d|t|||d|||||d }t|||d|t|jj}||||d}t|||d|t|||d|||||d }t|||d|dSrmrarorrr test_complex64_passls" z,TestArrayAlmostEqualNulp.test_complex64_passcCs4d}tjdddtjd}d|}tj| |f}||d}t|jj}||||d}ttt |||d|ttt |||d|||||}ttt |||d|t|jj }||||d}ttt |||d|ttt |||d|||||}ttt |||d|dSrrrcrorrr test_complex64_fails: z,TestArrayAlmostEqualNulp.test_complex64_failN)r9r:r;r\r^r`rbrdrerirjrlrqrsrtrurrrr rOs   rOc@s4eZdZddZddZddZddZd d Zd S) TestULPcCstjd}t||dddS)Nrrmaxulp)r'randomrandnr)rrRrrr test_equals zTestULP.test_equalcCsRtdtj}|dtjdtj7}ttjj}t|||dddS)Nr{Gz?rrw) r'rr"rryrzrWrXrrrRrXrrr test_singleszTestULP.test_singlecCsRtdtj}|dtjdtj7}ttjj}t|||dddS)Nrr|rw) r'rr"rUryrzrWrXrr}rrr test_doubleszTestULP.test_doublecCsLtjtjfD]:}ttjg|}tt|jg}t||ddq dS)Nrrw) r'rrUr(rkr"rWmaxr)rdtrkbigrrr rszTestULP.test_infcs tjtjfD]}|tjkr dndttjg|ttjg|tt|jgtt|j gtdg|tdg|t t fddt t fddt t fddt t fd dt t fd dq dS) Ng.AgmBrwgcstdSNrwrr)rkrxrYrr rsz"TestULP.test_nan..cstdSrrr)rrxrYrr rscstdSrrr)rxrYtinyrr rscstdSrrr)rxrYzerorr rscstdSrrr)rxrYnzerorr rs) r'rrUr(rkr"rYrWrrrr")rrr)rrkrxrYrrrr rs2 zTestULP.test_nanN)r9r:r;r{r~rrrrrrr rvs rvc@seZdZddZddZdS)TestStringEqualcCsntddtddtt}tddWdn1s>0Yt|j}t|dttdddS)Nhellozhello multilinezfoo barz hello barz%Differences in strings: - foo + hellocSs tddS)NrErrrrrr rrz-TestStringEqual.test_simple..)rrLrMr"rNrOrr)rrTrUrrr rs   (  zTestStringEqual.test_simplecCstddttdddS)Nza+*bcSs tddS)NZaaaza+brrrrr rrz,TestStringEqual.test_regex..)rrr"r7rrr test_regexs zTestStringEqual.test_regexN)r9r:r;rrrrrr rs rcCsHz |j}Wnty i}Yn0t|}d|vr:|d8}t||dS)Nversionr$)__warningregistry__AttributeErrorlenr)mod n_in_contextZ mod_warnsZ num_warnsrrr assert_warn_len_equals   rcCsDGddd}|}t|ddGddd}|}t|dddS)Nc@s eZdZdS)/test_warn_len_equal_call_scenarios..modN)r9r:r;rrrr rsrr)rrc@seZdZddZdS)rcSsddd|_dS)Nr$r%Zwarning1Zwarning2)rr7rrr __init__sz8test_warn_len_equal_call_scenarios..mod.__init__N)r9r:r;rrrrr rsr%)r)rZmod_instrrr "test_warn_len_equal_call_scenariossrcCs0tjt}z|jWnty*Yn0|Sr)r,r-r9rclearrmy_modrrr _get_fresh_mods   rcCsHt}tt|diit|gd$tdtdWdn1sN0Yt|jit$tdtdWdn1s0Yt|dddd|_t|gd$tdtd Wdn1s0Yt|dt$tdtd Wdn1s00Yt|ddS) Nr)r-ignore Some warningrr$r%rzAnother warning) rrgetattrrr'r?r(rrrrrr test_clear_and_catch_warnings(s* (  (  (  *rcCst}tt|diidd}t|dt:}|t|jtj j dt d|Wdn1sp0Ytt |jdt|jdjjddt|dt}|j|d|t dWdn1s0Yt|d|j|d|t dWdn1s(0Yt|dt$t dt dWdn1sn0Yt|ddS) NrcSsdd}t|ddgdS)NcSstjddd|S)NzSome warning 2r% stacklevelr&Zarrrrr r(PszFtest_suppress_warnings_module..warn_other_module..warnrr'Zapply_along_axisr(rrr warn_other_moduleMsz8test_suppress_warnings_module..warn_other_modulermodulerr$r)rrrrrrecordr/filterr'libZ_shape_base_implr'r(rlogmessager~r?)rrsuprrr test_suppress_warnings_moduleHs2   $  (  *  *rcCs2t}tt|diit$}|ttdWdn1sH0Yt|dt}|t|tdWdn1s0Yt|d|j|d|tdWdn1s0Yt|dt$t dtdWdn1s0Yt|ddS)Nrrrrr) rrrrrr/r'r(rr?)rrrrr test_suppress_warnings_typevs& (  (  (  *rcCstt}|t|dd}tjdd8}td|t|ttt|dWdn1sf0YdS)NcSstd|dS)Nrr&)categoryrrr r(sz7test_suppress_warnings_decorate_no_record..warnT)ralwaysr$) rrr/r'r>r?RuntimeWarningrr)rr(wrrr )test_suppress_warnings_decorate_no_records   rc Cst}|}||jdd}|jddtdtdtdtt|jdtt|dtt|dt|djj ddWdn1s0Y||jdd}|jddtdtdtdtt|jdtt|dtt|dt|djj ddWdn1s>0Yt}|t@}|jddtdtdtt|jdWdn1s0Ytt|jdWdn1s0YdS)NzSome other warning 2)rrSome other warningr%r$r) rrrr'r(rrrrr~)rZlog1log2sup2rrr test_suppress_warnings_records<     4     6   0rc Cs<dd}th}|td(tdD]}tdq*Wdn1sN0Ytt|jdWdn1s|0Ytr}|td2tdD]}tdtdqWdn1s0Ytt|jdWdn1s0Yt|}|td:tdD] }tdtd|q2Wdn1sj0Ytt|jdWdn1s0Yt|}|td:tdD] }tdtd |qWdn1s0Ytt|jdWdn1s.0YdS) NcSsdd}t|ddgdS)NcSstjddd|S)Nrr%rr&rrrr r(szJtest_suppress_warnings_forwarding..warn_other_module..warnrrrrrr rsz.warn_other_modulerr%rlocationroncer)rrranger'r(rrr)rrirrr !test_suppress_warnings_forwardings<  *.   *0    *0    *rc CstH}tj|d}t|dWdn1s60YWdn1sT0Yttj| d}z0t}tWdn1s0YWntyd}Yn0t|ttj| dS)NtmprFT)rospathjoinopenrisdir ValueError)Ztdirfpathraisedrrr test_tempdirs <(  rc Cst:}t|dWdn1s(0YWdn1sF0Yttj| d}z0t}tWdn1s0YWntyd}Yn0t|ttj| dS)NrFT)rrrrrisfiler)rrrrr test_temppath s <(  rc@seZdZejefZdS)my_cacwN)r9r:r;r,r-Z class_modulesrrrr rsrcCsPt}t$tdtdWdn1s60Yt|jidS)Nrr)rrr'r?r(rrrrrr %test_clear_and_catch_warnings_inherits  (rzPython lacks refcounts)reasonc@s0eZdZdZddZddZejjddZ dS) TestAssertNoGcCyclesz Test assert_no_gc_cycles cCs@dd}t|Wdn1s*0Yt|dS)NcSsg}|g|Srappendr6rrr no_cycle,s z2TestAssertNoGcCycles.test_passes..no_cycle)r)rrrrr test_passes+s$z TestAssertNoGcCycles.test_passesc Csdd}tt<t|Wdn1s40YWdn1sR0Yttt|Wdn1s0YdS)NcSsg}|||||Srr)rrrr make_cycle7s  z5TestAssertNoGcCycles.test_asserts..make_cycle)rr"r)rrrrr test_asserts6s  B z!TestAssertNoGcCycles.test_assertscsGfdddzxt}z8tttddWdn1sL0YWn(ty|dur|tdYn0Wd_nd_0dS)z Test that in cases where the garbage cannot be collected, we raise an error, instead of hanging forever trying to clear it. cs(eZdZdZdZddZfddZdS)z.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)cycler7rrr rRszETestAssertNoGcCycles.test_fails..ReferenceCycleInDel.__init__csd|_jrdSr)rrr7ReferenceCycleInDelrr __del__UszDTestAssertNoGcCycles.test_fails..ReferenceCycleInDel.__del__N)r9r:r;__doc__rrrrrrr rKsrcSsdSrrrrrr rcrz1TestAssertNoGcCycles.test_fails..Nz*GC does not call __del__ on cyclic objectsF) weakrefrefrr9rr"rLskipr)rrrrr test_failsDs  .    zTestAssertNoGcCycles.test_failsN) r9r:r;rrrrLmarkZslowrrrrr r's  r assert_funcc Cs|dd|dddd}tjt|d|ddWdn1sH0Ytjt|d|dddWdn1s0Yd}tjt|d|dddWdn1s0Ytjt|d|dddWdn1s0Yd }tjt|dZtjt|d*|ddd |ddddWdn1sX0YWdn1sx0YdS) Nr$)actualdesiredzArrays are not...rJr%zUse of keyword argument...)rRr)rSz#...got multiple values for argumentr*)rLrMr"Zwarnsr<ra)rZassert_messageZ dep_messageZ type_messagerrr test_xy_renameps$  (***  r)Br'r,rrrLrrPnumpyr'Znumpy._core._multiarray_umathZ_coreZ_multiarray_umathrZ numpy.testingrrrrrrrr r r r r rrrrrrrrrrr<rrrrrrr$rArOrvrrrrrrrrrrrrrrrZskipifrZ parametrizerrrrr s^\ .`-_9+JHg8  .(/ H