a :jgKV@s$ddlZddlZddlZddlZddlZddlZddlmZddlZ ddl m Z m Z ddl mZddlmZddlmZddlmZmZmZddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$dd lm%Z%dd l&m'Z'm(Z)dd l*mZ+Gd ddZ,GdddZ-GdddZ.GdddZ/GdddZ0GdddZ1GdddZ2GdddZ3GdddZ4Gdd d e5Z6Gd!d"d"Z7Gd#d$d$Z8Gd%d&d&Z9Gd'd(d(Z:Gd)d*d*Z;d+d,ZGd1d2d2Z?Gd3d4d4Z@Gd5d6d6ZAGd7d8d8ZBGd9d:d:ZCGd;d<d<ZDGd=d>d>ZEGd?d@d@ZFGdAdBdBZGGdCdDdDZHejIJdEGdFdGdGZKGdHdIdIZLGdJdKdKZMGdLdMdMZNGdNdOdOZOdPdQZPGdRdSdSZQGdTdUdUZRGdVdWdWZSGdXdYdYZTGdZd[d[ZUGd\d]d]ZVdS)^N)Decimal)umathsctypes) obj2sctype)set_string_function) AxisError)randrandintrandn) assert_ assert_equal assert_raisesassert_raises_regexassert_array_equalassert_almost_equalassert_array_almost_equal assert_warnsassert_array_max_ulp HAS_REFCOUNTIS_WASM)rational)ma)given strategies)numpyc@s<eZdZddZddZddZddZd d Zd d Zd S) TestResizecCstddgddgg}tgdgdg}tt|d|tddgddgddgddgg}tt|d|tgdgd gd gd g}tt|d |dS) Nrrrrrrrrrrr)rrr)rrrrrrrrnparrayr resizeselfAZAr1ZAr2ZAr3r-H/usr/local/lib/python3.9/site-packages/numpy/_core/tests/test_numeric.py test_copiess""zTestResize.test_copiescCstgd}tgdgdg}tt|d|tddgddgddgddgg}tt|d|tgdgdgdgdg}tt|d |dS) Nr#)rrrr)rrrrr!rrrr"r%r&r*r-r-r. test_repeats's""zTestResize.test_repeatscCsttddgddgg}t|d}t|tgt|j|jt|d}t|jdt|d}t|jddS)Nrrrrrrrrr)r'r(r)rr dtypeshaper+r,ZArr-r-r.test_zeroresize2s    zTestResize.test_zeroresizecCsHtjddtjfgd}t|d}t|td|jt|j|jdS)Nrar4rr)r'zerosfloat32r)rr4r r6r-r-r.test_reshape_from_zero>s z!TestResize.test_reshape_from_zerocCsVtjddtjd}d}tjtddtj||dWdn1sH0YdS)Nr r9)negativematch) new_shape)r'aranger<pytestraises ValueErrorr))r+r,rDr-r-r.test_negative_resizeEszTestResize.test_negative_resizecCsGdddtj}tdg|}tt|d|us.MyArray?N)__name__ __module__ __qualname__Z__array_priority__r-r-r-r.MyArrayLsrNrr)r'ndarrayr(viewtyper))r+rNZmy_arrr-r-r. test_subclassKs zTestResize.test_subclassN) rKrLrMr/r0r7r=rIrSr-r-r-r.rs    rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZejdejejejejejejejejejejejg ddZejdejddejj dd d!dd"e!"e!#dfde!"e!#d fgd#d$Z$d%d&Z%ejj&e'd'd(d)d*Z(d+d,Z)d-d.Z*d/d0Z+d1d2Z,d3d4Z-d5d6Z.d7d8Z/d9d:Z0d;d<Z1d=d>Z2d?d@Z3dAdBZ4dCdDZ5dEdFZ6dGdHZ7dIdJZ8dKdLZ9dMdNZ:dOdPZ;dQdRZirrY)rrOrrrYrrr'clipr )r+arrr]r\r-r-r. test_clipcszTestNonarrayArgs.test_clipcCs<gdgdg}gdg}tjddg|dd}t||dS)NrrrrrrOrXrY rraxis)r'compressr r+rbr\r]r-r-r. test_compressis  zTestNonarrayArgs.test_compresscCs:gdgdg}tddg}tj|dd}t||dS)NrrrYrrrrrrrrrrh)r'r( count_nonzeror rkr-r-r.test_count_nonzerops z#TestNonarrayArgs.test_count_nonzerocCs6gdgdgdg}t|}gd}t||dS)Nrrrr)rrOrXrY)rfrgr> )rrOr>)r'Zdiagonalr )r+r8r]r\r-r-r. test_diagonalws zTestNonarrayArgs.test_diagonalcCsgdgdg}tt|dkttt|dtgdkttt|dtddgktjd d D}td d ttt tgt|dj tuWdn1s0YdS) Nr#rrOrX @r)g@rvg@r@@Trecordalways) r r'meanallr(warningscatch_warningsfilterwarningsRuntimeWarningisnancategoryr+r,wr-r-r. test_means$$zTestNonarrayArgs.test_meancCs gd}ttj|ddddS)N)rrrOr>g@rrhg.@)r r'Zptpr+r8r-r-r.test_ptpszTestNonarrayArgs.test_ptpcCs6gdgdgdg}gd}ttj|dd|dS)Nr )rOrXrYrg)r>rrrO)ibiXr@rh)r r'prodr+rbr\r-r-r. test_prods zTestNonarrayArgs.test_prodcCs8gdgdgdgdg}gd}tt||dS)Nr#rurYrfrgr>rs ) rrrrrOrXrYrfrgr>rsr)r r'Zravel)r+r8r\r-r-r. test_ravelszTestNonarrayArgs.test_ravelcCs*gd}gd}t|d}t||dS)Nr#)rrrrrrr)r'repeatr )r+r8r\r]r-r-r. test_repeats zTestNonarrayArgs.test_repeatcCsBgdgdgdgdg}gdgdg}tt|d|dS)Nr#rurr)rrrrrOrX)rYrfrgr>rsr)rrX)r r'reshaperr-r-r. test_reshapeszTestNonarrayArgs.test_reshapecCsTgd}gd}ttj|dd|td}tt|tjt|ddS)N)g(\?g(\"R@gffffff@g @)g?g R@g@g @r)ZdecimalsrJ)r r'aroundfloat64r isinstanceround)r+rbr\sr-r-r. test_rounds  zTestNonarrayArgs.test_roundr4cCsx|d}ttt|tttt|dtttt|ddttt|dtt|ddtt|ddddS)Nrndigits)r rrintr )r+r4rr-r-r.test_dunder_roundsz"TestNonarrayArgs.test_dunder_roundz val, ndigitsir@zOut of range of int32reason)ZmarksrcCs tt||tt||dSN)r rr'int32)r+valrr-r-r.test_dunder_round_edgecasessz,TestNonarrayArgs.test_dunder_round_edgecasescCstddd}ttt|dtjtt|ddddttt|ddtjtt|dddddtd}ttt|dtjtt|dd ttt|ddtjtt|ddd dS) Nffffff@r>Irxrii)r'rr rrrint64)r+fir-r-r.test_dunder_round_accuracys z+TestNonarrayArgs.test_dunder_round_accuracyzgh-15896)rGrcCs,ddd}ttt|dt|ddS)Nrr>rr)r rr'r)r+rr-r-r.test_round_py_consistencys z*TestNonarrayArgs.test_round_py_consistencycCs"gd}t|d}t|ddS)N)irr@rrXr>rr)r'Z searchsortedr )r+rbr]r-r-r.test_searchsorteds z"TestNonarrayArgs.test_searchsortedcCsNgdgdg}tt|dktt|ddktt|ddkdS)Nr#rurXrrrr)r r'sizer+r,r-r-r. test_sizeszTestNonarrayArgs.test_sizecCsgdgdgdgg}tt|jdtttdjdttjtdddjd ttjtdd djd ttjtdd djd tttd gjdttjtd gddjd ttjtd gd djd ttjtd gd djd dS) Nrrrrrrrrrrr)rrr)rrrhrrr@rrr)r r'Zsqueezer5r;rr-r-r. test_squeezeszTestNonarrayArgs.test_squeezecCsgdgdg}tt|dtt|dtgdtt|dtddgtjdd D}td d ttt tgt|dj tuWdn1s0YdS) Nr#rug bp@S?r)?rrrgɪo ?Tryr{r|) rr'stdr(rrrrr rrrr-r-r.test_stdszTestNonarrayArgs.test_stdcCs\ddgddggddgddggg}ddgddggddgddggg}t|dd}t||dS) NrrrrXrrOrrY)r'swapaxesr )r+r\r8r]r-r-r. test_swapaxess  zTestNonarrayArgs.test_swapaxescCsDgdgdgdg}dgdgdgg}tj|ddd }t||dS) Nr#rurrXrrTrikeepdims)r'sumr )r+mr\r]r-r-r.test_sumszTestNonarrayArgs.test_sumcCs2gd}gd}gd}t||}t||dS)N)rrrO)rrrrrrrrO)r'Ztaker )r+r\indicesr8r]r-r-r. test_take s  zTestNonarrayArgs.test_takecCs*ddgddgddgg}tt|ddS)NrrrrrOrX)r r'trace)r+cr-r-r. test_traceszTestNonarrayArgs.test_tracecCsLddgddgddgg}gdgdg}tt|d |tt||dS) NrrrrrOrX)rrrO)rrrXrr)r r'Z transposeZmatrix_transposerr-r-r.test_transposeszTestNonarrayArgs.test_transposecCsgdgdg}tt|dtt|dtgdtt|dtddgtjdd D}td d ttt tgt|dj tuWdn1s0Ytddg}d |d<tt|d dS)Nr#rugUUUUUU@r)@rrrgvWUU?Tryr{r|?g?) rr'varr(rrrrr rr)r+r,rBr-r-r.test_vars0zTestNonarrayArgs.test_varcCstjd}|dddd}td}td}tj||ddd }||usPJtj||dd|d }||uspJ|j|jksJ|jdksJtj|ddd }|j|jksJt||dS Nr>rO?)r>rrOrTr]rirr]rirr}r) r'random RandomStater r;r}rr5r)r+rngr,mean_outstd_outr}rstd_oldr-r-r.test_std_with_mean_keyword,s,     z+TestNonarrayArgs.test_std_with_mean_keywordcCstjd}|dddd}td}td}tj||ddd }||usPJtj||dd|d }||uspJ|j|jksJ|jdksJtj|ddd }|j|jksJt||dSr) r'rrr r;r}rr5r)r+rr,rvar_outr}rvar_oldr-r-r.test_var_with_mean_keywordOs,     z+TestNonarrayArgs.test_var_with_mean_keywordcCstjd}|dddd}tj|ddd}tj|dd |d }|jd ksNJtj|dd d}tj|dd d}|j|jks~Jt||dS Nrr>rrOrrTrFrirr}r>rOr'rrr r}rr5r )r+rr,r}rrmean_oldr-r-r.)test_std_with_mean_keyword_keepdims_falsers  z:TestNonarrayArgs.test_std_with_mean_keyword_keepdims_falsecCstjd}|dddd}tj|ddd}tj|dd |d }|jd ksNJtj|dd d}tj|dd d}|j|jks~Jt||dSrr'rrr r}rr5r )r+rr,r}rrrr-r-r.)test_var_with_mean_keyword_keepdims_falses  z:TestNonarrayArgs.test_var_with_mean_keyword_keepdims_falsecCstjd}|dddd}|dk}tj|dd|d}tj|dd ||d }|jd ksZJtj|d|d }tj|d|d }|j|jksJt||dS Nrr>rrOrrT)rirwhereF)rirr}rr)rirr)r+rr,rr}rrrr-r-r.+test_std_with_mean_keyword_where_nontrivials& zrrOrr2TrFr)rrr'rrr r}rr5rr+rr,rir}rrr-r-r.(test_std_with_mean_keyword_multiple_axiss" z9TestNonarrayArgs.test_std_with_mean_keyword_multiple_axiscCsttjd}|dddd}d}tj|d|dd}tj|d|d|d }|jd ksVJtj||dd }t||dS) Nrr>rrOrTrFrr-rrrr-r-r.$test_std_with_mean_keyword_axis_Nones" z5TestNonarrayArgs.test_std_with_mean_keyword_axis_Nonec Csbtjgdgdggdgdgd}tjgdgdggdgdgd}tjgdggdgd}tjgdggdgd}d }tj|||d d }tj|||d |d }|j|jksJ|jd ksJtj||d d}tj||d d} |j| jksJt||t|| ||usJ||us(Jtj||d d} tj||d | d} t|| t|| dSN)rw@@rx)rJrwrr)TFTF)mask)gY@rgZ@rx)g@Y@rwgY@r)rrr)FFFFrTrrrrrr)rr(r'r}rr5r) r+r,rrrrir}rrrmean_bZstd_br-r-r./test_std_with_mean_keyword_keepdims_true_masked sR       z@TestNonarrayArgs.test_std_with_mean_keyword_keepdims_true_maskedc Csbtjgdgdggdgdgd}tjgdgdggdgdgd}tjgdggdgd}tjgdggdgd}d }tj|||d d }tj|||d |d }|j|jksJ|jd ksJtj||d d}tj||d d} |j| jksJt||t|| ||usJ||us(Jtj||d d} tj||d | d} t|| t|| dSr)rr(r'r}rr5r) r+r,rrrrir}rrrrZvar_br-r-r./test_var_with_mean_keyword_keepdims_true_masked9sR       z@TestNonarrayArgs.test_var_with_mean_keyword_keepdims_true_maskedN)=rKrLrMr^rcrlrqrtrrrrrrrrFmark parametrizer'int8int16rruint8uint16uint32uint64float16r<rrparamskipmathceillog10rrxfailAssertionErrorrrrrrrrrrrrrrrrrrrrrrr-r-r-r.rTWsb            ##/rTc@seZdZddZdS) TestIsscalarcCsttdtttdttdttdttdg ttd ddlm}tt|dddd lm}tt|dS) Ng@i90Frr)FractionrO)Number)r r'isscalarr fractionsrnumbersr)r+rrr-r-r. test_isscalarjs  zTestIsscalar.test_isscalarN)rKrLrMrr-r-r-r.r isr c@s,eZdZddZddZddZddZd S) TestBoolScalarcCs4tj}tj}d}t|o||ut|o(||udS)NZxyzr'False_ZTrue_r )r+rtrr-r-r. test_logicalzs zTestBoolScalar.test_logicalcCsPtj}tj}t||B|ut||B|ut||B|ut||B|udSrrr+rrr-r-r.test_bitwise_ors zTestBoolScalar.test_bitwise_orcCsPtj}tj}t||@|ut||@|ut||@|ut||@|udSrrrr-r-r.test_bitwise_ands zTestBoolScalar.test_bitwise_andcCsPtj}tj}t||A|ut||A|ut||A|ut||A|udSrrrr-r-r.test_bitwise_xors zTestBoolScalar.test_bitwise_xorN)rKrLrMrrrrr-r-r-r.rysrc@s,eZdZddZddZddZddZd S) TestBoolArraycCstjdgdtddd|_tjdgdtddd|_tjdgdtddd|_|j|_|j|_d|jd<d|jd <d|jd<d|jd <dS) NT)r9rF*rrr) r'r(boolrrocopynmimr+r-r-r. setup_methods     zTestBoolArray.setup_methodcCst|jt|jt|j t|j t|jt|jt|j t|j tdD]v}tj dgdt ddd}d||<tt|tj dgdt ddd}d||<tt| t ||qt tddd gd D]l}tj dgd t d}d||<tt|d |d tj dgd t d}d||<tt| d |d qdS)NFr9rYTrgipi)iTi_r?iˆz%rmsg) r rr~anyrr$r%ranger'r(r!rlist)r+rder-r-r. test_all_anys. zTestBoolArray.test_all_anycCst|j|jtt|j|jtt|j|jtt|j|jtt|j|jtt|j|jtt|j|jtj|j|jdt|j|jtj|j|jdt|j|jdS)Nr]) rrrr'absr$r%Z logical_notr"r&r-r-r.test_logical_not_abssz"TestBoolArray.test_logical_not_abscCsBt|j|jB|jt|j|jB|jt|j|jB|jt|j|jB|jtj|j|j|jdt|j|jt|j|j@|jt|j|j@|jt|j|j@|jt|j|j@|jtj|j|j|jdt|j|jt|j|jA|jt|j|jA|jt|j|jA|jt|j|jA|jtj|j|j|jdt|j|jt|j|j@|jt|j |j@dt|jd@|jt|j d@|jt|j|jB|jt|j |jB|j t|jdB|jt|j dB|j t|j|jA|j t|j |jA|j t|jdA|j t|j dA|j dS)Nr2FT) rrrr' logical_orr" logical_and logical_xorr$r%r&r-r-r.test_logical_and_or_xors<z%TestBoolArray.test_logical_and_or_xorN)rKrLrMr'r1r4r8r-r-r-r.rs  rc@s$eZdZddZddZddZdS) TestBoolCmpcstjdtjd|_tj|jjtd|_tjdtjd|_tj|jjtd|_ d}t dD]Tfddt dD|j||d<fd dt dD|j||d<|d7}qXd}t d D]Tfd dt d D|j||d <fd dt d D|j ||d <|d 7}q|j |_ |j |_ tj|j |j<tj|j |j <|j |_|j |_tj|jddd|jddd<tj|jddd|j ddd<tj |jddd|jddd<tj |jddd|j ddd<tj|jddd|jddd<tj|jddd|j ddd<|j |_d|jddd<|j |_d|jddd<|j |_|j |_|j|jd9<|j|j d9<tj |jddd|jddd<tj |jddd|j ddd<tdkrtj |jddd|jddd<tj |jddd|j ddd<d|jd dd|jd dd<d|jd dd|j d dd<dS)Nr)r9r csg|]}d|@qSrr-.0xrr-r. z,TestBoolCmp.setup_method..rfcsg|]}d|@dkqSr3r-r=r@r-r.rArBcsg|]}d|@qSr<r-r=r@r-r.rArBrcsg|]}d|@dkqSr3r-r=r@r-r.rArBrrrFrXriscv64g)r'onesr<rrr!efrr/edr-r#nfndnaninffinfdinfefnonanednonansignfsigndplatform processor)r+rr-r@r.r'sR $$  $$     ""$$""    $$$$ zTestBoolCmp.setup_methodcCs@tdD]0}t|j|ddk|j|dt|j|dddk|j|dt|j|ddk|j|dt|j|d dk|j|dt|j|d ddk|j|d|j|ddk}t||j|d|j|dt|j|dk}d|j|dk}t||t||t|tj|tjt|tj|tjt|tj|tjtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt|j|d|j|dqdS)Nrrr)r-rrrGr' zeros_likerQrastyperrIisfiniterLisinfrOsignbitrQr+rrr2Zr3r-r-r. test_float's("&$$("  $&&$zTestBoolCmp.test_floatcCs@tdD]0}t|j|ddk|j|dt|j|dddk|j|dt|j|ddk|j|dt|j|d dk|j|dt|j|d ddk|j|d|j|ddk}t||j|d|j|dt|j|dk}d|j|dk}t||t||t|tj|tjt|tj|tjt|tj|tjtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt|j|d|j|dqdS)Nrrr)r-rr/rHr'rUrQrrVrrJrWrMrXrPrYrRrZr-r-r. test_doubleAs("&$$("  $&&$zTestBoolCmp.test_doubleN)rKrLrMr'r]r^r-r-r-r.r9s5r9c@sLeZdZddZddZejjeddejje dkddd d Z d S) TestSeterrcCs"t}t|tddddddS)Nwarnignore)divideinvalidoverZunder)r'geterrr dict)r+errr-r-r. test_default]szTestSeterr.test_defaultcCstt}tjdd}t||kt}t|ddktjddttddkt|ddktjfi|tt|kWdn1s0YdS)Nprintrbrbraise)rdrd)r'errstateseterrr re)r+rgoldnewr-r-r.test_setfs    zTestSeterr.test_setno wasm fp exception supportrZarmv5telz See gh-413.c Cstjddttt(tdgtdgWdn1sD0YtjddtdgtdgWdn1s0YdS)NrkrjrJrra)r'rlr FloatingPointErrorr(rmr&r-r-r.test_divide_errss  6 zTestSeterr.test_divide_errN) rKrLrMrhrprFrskipifrrSmachinersr-r-r-r.r_\s   r_c@s`eZdZddZddZejjeddej de j dd d Z ejjeddd d Z d S)TestFloatExceptionsc Csrt|}z |||tdd||fWnDtyl}z,tt||dkd||fWYd}~n d}~00dS)NFz%Type %s did not raise fpe error '%s'.rz$Type %s raised wrong fpe error '%s'.)rRr rrstrfind)r+fpeerrflopr?yftypeexcr-r-r.assert_raises_fpes   z%TestFloatExceptions.assert_raises_fpecCsT|||||||||d||||||d||||d|ddS)Nr-)r~)r+ryrzZsc1Zsc2r-r-r.assert_op_raises_fpesz(TestFloatExceptions.assert_op_raises_fperqrtypecodeZAllFloatc CsFdtjvr|dvrtjddtjddt|}t|jdkrnt |}|j j }|j }|j }d}d }n@t|d j} t | }||j j }||j }||j }d }d }d } d } t|s||dd||||dd|||| dd||d|| dd||d|| dd||||| dd| |||| tj|d|d|j||dd|d|d || dd|tj|tj|| dd|d |d || dd|tj|tj|| dd|tj|tj || dd|d |tjWdn1s80YdS)NZbsdZgGzhFallback impl for (c)longdouble may not raise FPE errors as expected on BSD OSes, see gh-24876, gh-23379rrkr~r underflowdivide by zerorr|overflowrccSs||Srr-r8br-r-r.rBz>TestFloatExceptions.test_floating_exceptions..cSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBrcSs||Srr-rr-r-r.rrBrcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBrcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrBcSs||Srr-rr-r-r.rrB)sysrSrFrr'rlrr4kindfinfoZ_macharZtinymaxepsrRrealrr~powerZnexprN) r+rr|fiZft_tinyZft_maxZft_epsrZ divbyzeroZrtyperrcr-r-r.test_floating_exceptionssx         z,TestFloatExceptions.test_floating_exceptionsc CsHtjdd$}tdtjddtddtt|dtdt |d j vt d t d tt|d td t |d j vt tj t tj tt|dtdt |d j vt dt dtt|dtdt |d j vWdn1s0YWdn1s:0YdS)NTryr{r`rrrrrgu<7~rrr@rz invalid valuegYnrr) rr simplefilterr'rlrbr lenr rwmessager(rN)r+rr-r-r. test_warningss  z!TestFloatExceptions.test_warningsN)rKrLrMr~rrFrrtrrr' typecodesrrr-r-r-r.rv~s   ?rvc @seZdZddZddZddZddZd d Zej d d d gej d ddgddZ ej ddge de dge dge dgggddZej ddge de dge dge de dfgge de dge de dggdd Zej d!ee jd"d#d$d%d&d'd(egd)d*Zej jej d+ej ddgejee jd"d#d%d&d'd(egd,d-d.d/Zd0d1Zd2d3Zd4d5Zej je d6kd7d8d9d:Zej d!ed;egdS)? TestTypescCs~td}tdtdtdtdf\}}}}tdtdtdt df\}}} } t dt dt d} } } t dtdtd}}}t|||ttjt|||ttjt|||ttjt||| ttjt|| | ttj t|| | ttj t|| | ttj t|||ttjt|||ttjt||| ttjt|||ttjt|||ttjt|||ttjt|||ttjt||| ttjt|| |ttj t||| ttj t||| ttj t|| |ttj t|| | ttj t|| |ttj t||| ttjt||| ttjt|t|g|ttjt|t|g|ttjt|t|g|ttjt|t|g| ttjt|t|g|ttjt|| t|gttj t||t| gttjt|t|g|ttjt|tdt| gttj t|| t| gttj t|| t| gttj t|t| g| ttj t|| t|gttjt||t| gttjt|t dt| gttjt|t| g|ttjt|t|g| ttj t|t|g|ttjt|t|g| ttj t|t|g| ttj t|t|g| ttj dS)Nrr@y@)r'r!rrrrrrrrr<r longdouble complex64 complex128 clongdoubler r4r()r+Z promote_funcri8Zi16Zi32Zi64u8u16u32Zu64f32Zf64ZfldZc64Zc128Zcldr-r-r.check_promotion_casess~ ,,""                    zTestTypes.check_promotion_casescCsdd}||tddgtjddgtjdfD]d}d|}t|jtd d |jtd|}t|jttjd |jtd|}t|jtd d |jtd|}t|jtd d |jt d|}t|jtd d |jd |}t|jtdd |jt d |}t|jttj d |jt d |}t|jtdd |jt d |}t|jtdd |jq4dS)NcSst||jSr)r'addr4rr-r-r.res_type3sz)TestTypes.test_coercion..res_typeTFrrr9gX9v?f8z array type %sf4f2yX9v?c16Zc8) rr'r(rr r4rrr<rrrr)r+rr8rr-r-r. test_coercion2s2 (zTestTypes.test_coercioncCs(|tjttdtdkdSr)rr' result_typer r4r&r-r-r.test_result_typehs zTestTypes.test_result_typecCsttddtdttddtdttddtdttddtdttddtdttddtdttddtd ttd d td ttddtd ttd d td ttd dtd ttd d td ttddtdttddtdttddtdttddtddS)Ni8z>U16U21zS5z>U8zU5zM8zm8)r r' promote_typesr4r&r-r-r.test_promote_types_endianls z#TestTypes.test_promote_types_endianc Csgd}d}tt}|D]2}t|}t||s8Jt|||usJq|D]T}t|}t||rpJttt||WdqR1s0YqRtd}t||sJt|||usJdS)N)rrrrr!Z BHILQPFDGmMfVdouble)r'r4rcan_castrrFrG TypeError)r+Z valid_typesZ invalid_typesZ rational_dtZ numpy_dtypeZ double_dtr-r-r.#test_can_cast_and_promote_usertypess    , z-TestTypes.test_can_cast_and_promote_usertypesswapr| string_dtypeUScCs|dkrdd}ntj}|}t|d|t|dt|d|t|dt|d|t|d t|d |t|dt|d |t|d t|d |t|dt|d|t|dt|d|t|dt|d|t|dt|d|t|dt|d|dt|dt|d|dt|dt|d|dt|dt|d|dt|dt|d|dt|d t|d|dt|dt|d |dt|dt|d |dt|dt|d |dt|d t|d |dt|dt|d |dt|dt|d |dt|dt|d|dtddS)NrcSs t||Srr'rrr-r-r.rrBz6TestTypes.test_promote_types_strings..r!5r4u13u2u410rZ20i1i26i4Z11r21130O)r'rr r4)r+rrrrr-r-r.test_promote_types_stringss6 z$TestTypes.test_promote_types_stringsdtype1dtype2ZV6V10)name1r)Zname2rcCs:ttt||Wdn1s,0YdSr)rFrGrr'rr+rrr-r-r.test_invalid_void_promotions z%TestTypes.test_invalid_void_promotionrrzi8,i8zi8,>i8i4,i4cCst|||ksJdSrrrr-r-r.test_valid_void_promotionsz#TestTypes.test_valid_void_promotionr4Allzi,iZ10iS3ZS100U3ZU100cCsddi}tj||d}t||}|j|jks2J|}|jrDdSt||}|jdkrj|jdusxJn|j|ksxJ|jsJdS)Nrmetadatar)r'r4rr newbyteorderisnativechar)r+r4rresr-r-r.%test_promote_identical_types_metadatas   z/TestTypes.test_promote_identical_types_metadataz)ignore:Promotion of numbers:FutureWarningr)rcCsddi}ddi}tj||d}tj||d}zt||}WntyPYdS0|jdvsp|jdusp|jdkr|jdusJnV||kr||usJn@||krt||j|kr|jduq|j|kn|jdusJ| }|j|ksJt||}||ksJ|j|jksJdS)aMetadata handling in promotion does not appear formalized right now in NumPy. This test should thus be considered to document behaviour, rather than test the correct definition of it. This test is very ugly, it was useful for rewriting part of the promotion, but probably should eventually be replaced/deleted (i.e. when metadata handling in promotion is better defined). rrrNZUSVr-) r'r4rrrnamesr5rrr)r+rrZ metadata1Z metadata2rZres_bsr-r-r.test_promote_types_metadatas,    z%TestTypes.test_promote_types_metadatacCstttjtjtttjttttt ttddttdd ttddttdddttddd ttddd ttd dd  ttd dd ttdd d  ttdd d ttddd  ttdddttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttdd ttdd ttddttdd ttdd!ttdd ttddttdd ttdd"ttdd# ttdd#ttdd$ ttdd%ttdd" ttdd&ttdd' ttdd(ttdd) ttdd"ttdd# ttdd*ttdd% ttdd+ttdd& ttdd,ttdd( tt tjddtt tjddttjtjtjd-dS).NrrrrZS11norrequivzi4 same_kindz>u4unsafer!ZS5ZS4rrrZS2rrZS10ZS9rZS20ZS19rrZS6ZS21ZU4rZU2ZU5ZU10ZU9ZU20ZU19ZU6ZU11r)Zfrom_to) r r'rrrrcomplexfloatr rr&r-r-r. test_can_cast#stzTestTypes.test_can_castcCsttdd ttdd ttjddddttjddddttddg ttjddgdd ttjddgddttdd g ttjdd gddttdd g ttjdd gdddS) Nrrzi4,i2rcastingrf1rr)rr)rz(2,3)i4r r'rr&r-r-r."test_can_cast_simple_to_structuredpsz,TestTypes.test_can_cast_simple_to_structuredcCsttdgd ttjdgdddttjdgdddttjdddd ttddgfgd ttjddgfgdddttd gd ttjd gdddttjd gddd dS) Nrrrrrrr)r?r)f0z(3,)i4)rrr<rr&r-r-r."test_can_cast_structured_to_simples z,TestTypes.test_can_cast_structured_to_simplelegacyz1NEP 50: no python int/float/complex support (yet)rcCstdtdD]b}t|}tt|j|tt|j|tt|jd| tt|jd| qtdD]2}t|}tt|j|tt|j|q|dS)NrZuintrr)rr'iinfor rminrr)r+dtiirr-r-r.test_can_cast_valuess   zTestTypes.test_can_cast_valuesz?bhilqBHILQefdgFDGcCsHt|}|d}t|dt|dks0Jtj|dddsDJdS)Nrrr<rr)r'r4rRr)r+r4Zscalarr-r-r.test_can_cast_scalarss  zTestTypes.test_can_cast_scalarsN)!rKrLrMrrrrrrFrrrr'r4rrrr.rrrZslowr itertoolsproductrrrrr Z_get_promotion_staterrr-r-r-r.rshF6 #          .M  rc@s eZdZdS) NIterErrorNrKrLrMr-r-r-r.rsrc @seZdZddZddZddZddZd d Zej d e e gej d d gddgddZ ej d gdddZej d dgdgdfdgdfdgdfdgdfedddgfgej dd d!gd"d#Zd$d%Zd&d'Zd(d)Zd*S)+ TestFromitercCsddtdDS)Ncss|]}|dVqdS)rNr-r=r-r-r. rBz'TestFromiter.makegen..r)r-r&r-r-r.makegenszTestFromiter.makegencCsxt|tj}t|tj}t|t}t|jttjkt|jttjkt|jttkdSr)r'fromiterrrrrr r4)r+Zai32Zai64afr-r-r. test_typess zTestFromiter.test_typescCsztt|}t|t}t|td}tt|t|ktt|dktt tj|tt|ddS)Nrr>) r'r(r.rrrr rr rHr+expectedr8Za20r-r-r. test_lengthsszTestFromiter.test_lengthscCsltt|}t|t}t|td}ttj||kddttj||ddkdddS)Nrrrh)r'r(r.rrrr r~rr-r-r. test_valuess zTestFromiter.test_valuesccs,t|D]}||kr td||VqdS)Nzerror at index %s)r-r)r+nZeindexr0r-r-r. load_datas  zTestFromiter.load_datar4count error_indexr)r>rgcCsJ|||}tt tj|||dWdn1s<0YdS)N)r4r)rrFrGrr'r)r+rrr4iterabler-r-r. test_2592s  zTestFromiter.test_2592)rZS0V0ZU0cCs@tjtddtjg|dWdn1s20YdS)NzMust specify lengthrBr9)rFrGrHr'r)r+r4r-r-r.test_empty_not_structuredsz&TestFromiter.test_empty_not_structureddatar/) rrrrrOrXrYrfrgrzi,O)rr)rOrrr)rgrfrXrYZ2i)rr )r#rV))rrr)rOrr length_hintrrcsRt|}dGfddd}tj||d}tj|d}t||dS)Ndcs$eZdZfddZfddZdS)z?TestFromiter.test_growth_and_complicated_dtypes..MyItercsSrr-r&)rr-r.__length_hint__szOTestFromiter.test_growth_and_complicated_dtypes..MyIter.__length_hint__cstSriterr&)r r-r.__iter__szHTestFromiter.test_growth_and_complicated_dtypes..MyIter.__iter__NrKrLrMrrr-r rr-r.MyIters rr9)r'r4rr(r)r+r4r rrrrr-rr."test_growth_and_complicated_dtypess  z/TestFromiter.test_growth_and_complicated_dtypescCs>Gddd}tj|dd}|jdks,J|jdks:JdS)Nc@seZdZddZddZdS)z.TestFromiter.test_empty_result..MyItercSsdSNr>r-r&r-r-r.rsz>TestFromiter.test_empty_result..MyIter.__length_hint__cSstgSrrr&r-r-r.r sz7TestFromiter.test_empty_result..MyIter.__iter__Nrr-r-r-r.rsrr/r9r1)r'rr5r4)r+rrr-r-r.test_empty_resultszTestFromiter.test_empty_resultcCsJd}tjt|d$tjgddtdWdn1s<0YdS)Nz>iterator too short: Expected 10 but iterator had only 3 items.rBr#r>)rr4)rFrGrHr'rr)r+r+r-r-r.test_too_few_itemsszTestFromiter.test_too_few_itemscCstt"tjgdtdWdn1s20YddtdD}tt(tj|ttdfdWdn1s0YdS)N)rNrr9css|] }dVqdS)r$Nr-)r>rr-r-r.rrBz7TestFromiter.test_failed_itemsetting..rOr) rFrGrr'rrr-rHr4)r+rr-r-r.test_failed_itemsettings  0 z$TestFromiter.test_failed_itemsettingN)rKrLrMrrrrrrFrrrobjectrr r'r4rrrrr-r-r-r.rs2           rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zejjed!d"d#d$Zd%S)& TestNonzerocCstttgdtttjgdddtttggftttdgdtttjdgdddtttdggftttdgdtttjdgdddtttdgdgfdSNr?r9r)r r'rpr(nonzeror&r-r-r.test_nonzero_trivial sz TestNonzero.test_nonzero_trivialcCstttddtttjddddtt(tttdgfWdn1sf0Ytttddtttjddddtt*tttddgfWdn1s0YdSr)r r'rpr(rDeprecationWarningr!r&r-r-r.test_nonzero_zerod-s 6 zTestNonzero.test_nonzero_zerodcCstgd}tt|dtt|dtt|gdftjgdgdd}tt|ddtt|d dtt|d dtt|d dtt|dgd ftt|d gd fdS)N)rrrr@rrrfr)rrrrX))rrrr)rrrrY)rrrr)r@rrr)rrYrr))r8r)rr)rr)r/rr9r8rrrr/)rrr)rrrr)r'r(r rpr!r+r?r-r-r.test_nonzero_onedim8s zTestNonzero.test_nonzero_onedimcCstgdgdg}tt|ddtt|ddtt|ddtt|ddtt|gdgd ftd}tt|ddtt|ddtt|ddtt|ddtt|gd gd ftjgd gd gd gddgd}tt|ddtt|ddtt|dgdgdftt|dgdgdft|djj j tt|djdtt|djdtt|djgdgdftt|djgdgdfdS)N)rrr)rrrrrrrrrrr)rrrrU)rrrr)rrs)rrrr))r))rrOr()r8r)rrr9r8rrrO)rrrr)rrrr)rrrrr)rrrrr)rrrr)rrrrr) r'r(r rprVr!eyer Tflagsalignedr%r-r-r.test_nonzero_twodimIs6    "zTestNonzero.test_nonzero_twodimc CstdD]}tjdtd}d||dd<tt|dt|d|dtjdtd}d|d|d|<d|d|d<tt|dttd|d|d|dgfqdS) Nrr9Trir>r)r-r'r;r!r r!rEZ concatenate)r+rrr-r-r. test_sparsefs "&zTestNonzero.test_sparsecCsGdddtj}|tjfD]}tddD]r}ttdd|}tt|||}t||fD],}|D]"}t t |tjut |j j qvqnq*qdS)Nc@s eZdZdS)z'TestNonzero.test_return_type..CNrr-r-r-r.Ctsr2rrr) r'rPr-tuplerErrrQr!r rRr- writeable)r+r2rQrJr5r?ZnzxZnzx_ir-r-r.test_return_typesszTestNonzero.test_return_typecCstgdgdg}tgd}ttj|dd|tddg}ttj|dd|tttj|d dtttj|d dtttj|ddtttj|tdgdggddS) Nrmrn)rrrrrrrhrrrr*foo)r'r(r rpr rHrr)r+rrr-r-r.test_count_nonzero_axissz#TestNonzero.test_count_nonzero_axiscCs d}dd}tjdD]}|t|jf}|dkrP|dkrvtjd|d}tjd |d}|d |d <|d |d <n4td gd}|d}d|d <d|d <||}tjgdtj d}|tj |d d||dtjgdtj d}|tj |d d||dtd}t tj |dd||dt tj |dd||dt t |||d|dkrtt d gdd}tjgdtj d}|tj |d d||dtjd d gtj d}|tj |d d||dtd }t tj |dd||dt tj |dd||dt t |||dqdS)NzMismatch for dtype: %scSs$t|j|j|dt|||ddS)Nerr_msg)r r4)r8rr9r-r-r.assert_equal_w_dtszITestNonzero.test_count_nonzero_axis_all_dtypes..assert_equal_w_dtrVMrr9rrr)rz 1970-01-01rgz 1970-01-12)rrrrhr8)rrrrr(rXr rrr) r'rr4namer;rFr(rrVintprpr void)r+r+r:rr9rrrr-r-r."test_count_nonzero_axis_all_dtypessj        z.TestNonzero.test_count_nonzero_axis_all_dtypesc Csddlm}m}d}d}d}tjd}|jdd|d }|t}t t |D]J} ||| D]:} || D],} t tj || d tj || d || fd qhq\qNdS) Nr) combinations permutationsrr)rOrOrOrOzMismatch for axis: %srirrrhr8) rrBrCr'rrr rVrr-rr rp) r+rBrCrirr+rrrlengthZcombopermr-r-r."test_count_nonzero_axis_consistents     z.TestNonzero.test_count_nonzero_axis_consistentcCs4tgdgdg}ttj|dd|tdS)N)rrr)rrrr-rh)r'r(r rprVr!rr-r-r.test_countnonzero_axis_emptysz(TestNonzero.test_countnonzero_axis_emptycCsvtgdgdgdg}ttj|dddgdgttj|ddddgd gd ggttj|dd d ggdS) N)rrrr)rrrOr)rYrgrrrTr)rrrrrrrrrX)r'r(r rprr-r-r.test_countnonzero_keepdimss z&TestNonzero.test_countnonzero_keepdimscCs8tgdgdg}gdgdg}t||dS)N)rrr)rrrXr')rrr)r'r(r r!)r+rr\r-r-r.test_array_methodszTestNonzero.test_array_methodcCsTtjtddgdgtd}tttj|Gddd}tttjt|gdS)Nrrrr9c@seZdZddZdS)z;TestNonzero.test_nonzero_invalid_object..BoolErrorscSs tddS)Nz Not allowed)rHr&r-r-r.__bool__szDTestNonzero.test_nonzero_invalid_object..BoolErrors.__bool__N)rKrLrMrLr-r-r-r. BoolErrorssrM)r'r(rr rHr!)r+r8rMr-r-r.test_nonzero_invalid_objectsz'TestNonzero.test_nonzero_invalid_objectcCsGddd}Gddd}td|g}tttj|tdg|gg}tttj|td|g}tttj|tdg|gg}tttj|dS)Nc@seZdZdZddZdS)zATestNonzero.test_nonzero_sideeffect_safety..FalseThenTrueFcSsz|jWd|_Sd|_0dS)NT_valr&r-r-r.rLs zJTestNonzero.test_nonzero_sideeffect_safety..FalseThenTrue.__bool__NrKrLrMrPrLr-r-r-r. FalseThenTrue srRc@seZdZdZddZdS)zATestNonzero.test_nonzero_sideeffect_safety..TrueThenFalseTcSsz|jWd|_Sd|_0dS)NFrOr&r-r-r.rLs zJTestNonzero.test_nonzero_sideeffect_safety..TrueThenFalse.__bool__NrQr-r-r-r. TrueThenFalsesrSTF)r'r(r RuntimeErrorr!)r+rRrSr8r-r-r.test_nonzero_sideeffect_safety s z*TestNonzero.test_nonzero_sideeffect_safetycCsZtjddd}|jjsJ|djjr*Jt||jjs@Jt||jjsVJdS)NrOzi1,i8,i8r9r)r'r;r-r.r!rpr+rbr-r-r.'test_nonzero_sideffects_structured_void+s    z3TestNonzero.test_nonzero_sideffects_structured_voidcCszGddd}t|dgd}tttj|t|dgd}tttj|t|dggd}tttj|dS)Nc@seZdZddZddZdS)z.ThrowsAftercSs ||_dSr) iters_left)r+itersr-r-r.__init__;szETestNonzero.test_nonzero_exception_safe..ThrowsAfter.__init__cSs$|jdkrtd|jd8_dS)Nrzcalled `iters` timesrT)rXrHr&r-r-r.rL>s zETestNonzero.test_nonzero_exception_safe..ThrowsAfter.__bool__N)rKrLrMrZrLr-r-r-r. ThrowsAfter:sr[rOr>r)r'r(r rHr!)r+r[r8r-r-r.test_nonzero_exception_safe7sz'TestNonzero.test_nonzero_exception_safezwasm doesn't have threadsrcsddlm}tdg}td|fg}td|fgd}tjjdd|dddfdd |d d fd d tdD}|D] }|qj|usJdS)Nr)ThreadPoolExecutor)r|rr|r)irrDcSs |dSr)r!)rbr-r-r.funcdsz6TestNonzero.test_structured_threadsafety..funcrf) max_workerscsg|]}qSr-)Zsubmit)r>_rbr^Ztper-r.rAhrBz.r>) concurrent.futuresr]r'r4runiformrQr-result)r+r]rZfuturesrr-rar.test_structured_threadsafetyXs     z(TestNonzero.test_structured_threadsafetyN)rKrLrMr"r$r&r/r1r5r7rArGrHrJrKrNrUrWr\rFrrtrrer-r-r-r.rs$    B    !rc@seZdZddZddZdS) TestIndexcCstddd}tdd}tdddd}tdddd}|||f |||f<tt|d|dk|d|dk|d|dkg|dd|dkfkdS) NrrOrfrrrDrr)rr r r'r(r~)r+r8r;g1g2r-r-r. test_booleanps   zTestIndex.test_booleancCsDtjgdd}tjgdd}||}t|gt|jtddS)Nrr9r!)r'r(r r4)r+r8rrr-r-r.test_boolean_edgecasexs  zTestIndex.test_boolean_edgecaseN)rKrLrMrirjr-r-r-r.rfosrfc@s<eZdZddZddZddZddZd d Zd d Zd S)TestBinaryReprcCsttdddS)Nr0r r' binary_reprr&r-r-r. test_zeroszTestBinaryRepr.test_zerocCs4ttddttddttdddS)Nr>Z1010i0Z11000011101010iԣZ101000111101010011010000rmr&r-r-r. test_positives  zTestBinaryRepr.test_positivecCsDttddttddttddttdddS) Nr@z-1r?z-1010iz-11000011101010i0+\z-101000111101010011010000rmr&r-r-r. test_negatives  zTestBinaryRepr.test_negativecCs@ttjddddttjddddttjdddd dS) NrrOwidthZ00000r>rYZ0001010rZ1111011rmr&r-r-r.test_sufficient_widthsz$TestBinaryRepr.test_sufficient_widthcCsZttjddddtddD]6}d|d }d|dd }ttj||d|qdS) NrfrrZ10000000rrsrrrl)r r'rnr-)r+rsnumexpr-r-r.test_neg_width_boundariess z(TestBinaryRepr.test_neg_width_boundariescCsttjtdddddS)Nl@rrZ@1100000000000000000000000000000000000000000000000000000000000000)r r'rnrr&r-r-r.test_large_neg_int64sz#TestBinaryRepr.test_large_neg_int64N) rKrLrMrorprqrtrxrzr-r-r-r.rks  rkc@s4eZdZddZddZddZddZd d Zd S) TestBaseReprcCsttddddS)NrZ100000r r' base_reprr&r-r-r. test_base3szTestBaseRepr.test_base3cCsNttdddttddddttdddttddd dS) Nrr>Z12rZ000012rl5j$Z 10QR0ROFCEWr}r&r-r-r.rpszTestBaseRepr.test_positivecCs<ttdddttddddttddddS)Nr>z-12rz-000012z-30r}r&r-r-r.rqszTestBaseRepr.test_negativecCsltttddWdn1s*0YtttddWdn1s^0YdS)Nr%)r rHr'r~r&r-r-r.test_base_ranges * zTestBaseRepr.test_base_rangecCstttdddS)Nruz -10000000)r r'r~rr&r-r-r.test_minimal_signed_intsz$TestBaseRepr.test_minimal_signed_intN)rKrLrMrrprqrrr-r-r-r.r{s r{ccs tjddd}tjddd}||ddfV||ddfV||ddfV||ddfV||ddfV||ddfVtdd g}|}tgd }tdd g}td d g}tjd gdd}|}tjdgdd} | } ||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV|d|dddfV|d|dddfV|d|dddfVtdd tjg} tdtjd g} tdd tjg} ttj}| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV| | ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV| d}| d}||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfV||ddfVtddgtjdgg}||ddfV||ddfV||ddfV||ddfV||ddfV||ddfVttjtjdggd \}}tdtjttjd}}||ddfV||ddfV||ddfV||ddfV||ddfV||ddfVdS)z we pre-create arrays as we sometime want to pass the same instance and sometime not. Passing the same instances may not mean the array are equal, especially when containing None rrr9rrNTFrr#rrr8ZS1)r8rzS1,u4 timedelta64r)r'r(r#rVrKrNr)Ze0e1Za12Za12bZa123Za13Za34ZaS1ZaS1bZaS1u4ZaS1u4bb1b2Zb3Zb4t1t2Zmd1Zcplx1Zcplx2Zcplx3Zcplx4r-r-r."_test_array_equal_parametrizationss   "rc@sVeZdZejdeddZddZddZ dd Z ejd gd d d Z dS)TestArrayComparisonszbx,by,equal_nan,expectedcCsF|durt||}ntj|||d}t||utt|tudS)z This test array_equal for a few combinaison: - are the two inputs the same object or not (same object many not be equal if contains NaNs) - Whether we should consider or not, NaNs, being equal. N equal_nan)r' array_equalr rRr!)r+bxZbyrrrr-r-r.test_array_equal_equal_nanCs  z/TestArrayComparisons.test_array_equal_equal_nancCs8td}td}t||r$Jt||r4JdS)Nr6r)r'r(r array_equiv)r+r8rr-r-r.'test_array_equal_different_scalar_typesVs  zd?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dLdMZ)dNdOZ*dPdQZ+dRdSZ,dTdUZ-dVdWZ.dXdYZ/dZd[Z0d\d]Z1d^d_Z2d`daZ3dbdcZ4dddeZ5dfdgZ6dhdiZ7djdkZ8dldmZ9e jdndodpe:;dqfe:dudvdwe:j?dqdwe>dufe:j;dqdxdudpdvdve:j;dqdxdufgdydzZ@e jd{e:j;dqe:jAdue:Be:jCe:j;dqe:jDdufgd|d}ZEe jjFd~de jd{e:jBdpgdqdxdue:Gde:j;dqe:jDdufge jHdddZIeJeKLeMjNeMOeMPBeMQddddZRdS)TestClipcCsd|_d|_dS)NrOr)nrncr&r-r-r.r'szTestClip.setup_methodNcKs|j||fd|i|S)Nr])ra)r+r8rr<r]kwargsr-r-r.fastclipszTestClip.fastclipcCs0t||dt||}|j|||f|dS)Nrr2)r'lessZgreaterrZ)r+r8rr<r]selectorr-r-r.rasz TestClip.clipcCs t||Sr)r r+rrr-r-r._generate_dataszTestClip._generate_datacCst||dt||S)Nr)r rrr-r-r._generate_data_complexszTestClip._generate_data_complexcCst||tjSr)r rVr'r<rr-r-r._generate_flt_dataszTestClip._generate_flt_datacCs>t|}tjdkr(||jd}n||jd}|S)Nlittle><)r'Zasarrayr byteorderrVr4rrr-r-r._neg_byteorders   zTestClip._neg_byteordercCs&t||}||}t|jj |Sr)r rr r4r)r+rrr r-r-r._generate_non_native_datas  z"TestClip._generate_non_native_datacCsdt||tjSr)rrVr'rrr-r-r._generate_int_dataszTestClip._generate_int_datacCsdt||tjSr)rrVr'rrr-r-r._generate_int32_dataszTestClip._generate_int32_datar4z?bhilqpBHILQPefdgFDGOcCsVtjd|d}tjd|d}t|dd}|dkrH||ksRJn t||dS)Nr>r9rrr)r'rFr;ratolistr )r+r4rbractualr-r-r.test_ones_pathologicals zTestClip.test_ones_pathologicalcCsB||j|j}d}d}||||}||||}t||dS)N皙?333333?rrrrrarr+r8rr<acactr-r-r.test_simple_doubles zTestClip.test_simple_doublecCsL||j|j}|t}d}d}||||}||||}t||dSNrr)rrrrVrrrarrr-r-r.test_simple_ints zTestClip.test_simple_intcCsN||j|j}t|j}|d}||||}||||}t||dS)Nr rrrr'r;r5rrarrr-r-r.test_array_doubles  zTestClip.test_array_doublecCs||j|j}d}d}||||}||||}t||||j|j}d}|d}t|j j ||||}||||}t||dSNr) rrrrrarrrr r4rrr-r-r.test_simple_nonnatives  zTestClip.test_simple_nonnativecCsd||j|j}d}d}||||}||||}t||d||j|j}d}d}||||}||||}t||dS)NrrrJy?y?@)rrrrrarrrr-r-r.test_simple_complex s zTestClip.test_simple_complexcCsRtjdtd}|}|}|||d}||d|}t||t||dSNr>r9)r'rFrrrrr)r+r8rr<amZaMr-r-r.test_clip_complex! s zTestClip.test_clip_complexcCsz||jd|jd}|ddddddf}t|jd t|jd ||dd}||dd}t||dS)Nrr F_CONTIGUOUS C_CONTIGUOUSgg333333?)rrrr r-rrar)r+r8rrr-r-r.test_clip_non_contig- szTestClip.test_clip_non_contigcCs^||j|j}d}d}t|j}t|j}||||||||||t||dSrrrr-r-r.test_simple_out7 s  zTestClip.test_simple_outrrcCs||j|j}td}td}tj|jtjd}|}|durt t $|j |||||dWdq1sz0Yn.|j |||||d| ||||t||dS)Nrrr9r)rrrr'rr;r5rr#rFrGrrrar)r+rr8rr<rrr-r-r.test_simple_int32_inoutB s   4z TestClip.test_simple_int32_inoutcCsl||j|j}td}td}tj|jtjd}|}| ||||| ||||t ||dSNr@rr9 rrrr'rr;r5rr#rrarrr-r-r.test_simple_int64_outS s  zTestClip.test_simple_int64_outcCsv||j|j}t|jtj}td}tj|jtjd}|}|j ||||dd| ||||t ||dSNrr9rr]r rrrr'r;r5rrr#rrarrr-r-r.test_simple_int64_inout^ s z TestClip.test_simple_int64_inoutcCsd||j|j}d}d}tj|jtjd}|}|j||||dd| ||||t ||dSNrDrwr9rr rrrr'r;r5rr#rrarrr-r-r.test_simple_int32_outi szTestClip.test_simple_int32_outcCsV||j|j}|}t|j}d}||||||||||t ||dSNrJ rrrr#r'r;r5rrarr+r8rrr<r-r-r.test_simple_inplace_01t s zTestClip.test_simple_inplace_01cCsN||j|j}|}d}d}||||||||||t||dSrrrrr#rrarrr-r-r.test_simple_inplace_02~ szTestClip.test_simple_inplace_02cCs||jd|jd}|ddddddf}t|jd t|jd |}d}d}||||||||||t||dS)Nrrrrrr) rrrr r-r#rrarrr-r-r.test_noncontig_inplace szTestClip.test_noncontig_inplacecCsB||j|j}d}d}||||}||||}t||dSrrrr-r-r.test_type_cast_01 s zTestClip.test_type_cast_01cCsN||j|j}|tj}d}d}||||}||||}t||dSr) rrrrVr'rrrarrr-r-r.test_type_cast_02 s zTestClip.test_type_cast_02cCsZ||j|j}d}d}||t|t|}||t|t|}t||dSr)rrrrr'rrarrr-r-r.test_type_cast_03 s zTestClip.test_type_cast_03cCsN||j|j}td}td}||||}||||}t||dSr)rrrr'r<rrar)r+r8rr<rrr-r-r.test_type_cast_04 s   zTestClip.test_type_cast_04cCsZ||j|j}d}d}|||t|j|}|||t|j|}t||dSNrrJ) rrrrr'r;r5rarrr-r-r.test_type_cast_05 s zTestClip.test_type_cast_05cCsL||j|j}d}||}d}||||}||||}t||dS)NrrJ)rrrrrarr)r+r8rm_sr<rrr-r-r.test_type_cast_06 s zTestClip.test_type_cast_06cCsd||j|j}dt|j}d}||}t|jj | ||}| |||}t ||dSr) rrrr'rFr5rr r4rrarr)r+r8rr<a_srrr-r-r.test_type_cast_07 s  zTestClip.test_type_cast_07cCsX||j|j}d}d}||}t|jj ||||}|||}t ||dSr) rrrrr r4rrrar)r+r8rr<rrrr-r-r.test_type_cast_08 s  zTestClip.test_type_cast_08cCsf||j|j}dt|j}d}||}t|jj | |||}| |||}t ||dSr) rrrr'rFr5rr r4rrrar)r+r8rr<rrrr-r-r.test_type_cast_09 s zTestClip.test_type_cast_09cCsh||j|j}tj|jtjd}td}td}|j||||d}|j||||d}t ||dS)Nr9rrr2) rrrr'r;r5r<rarrr+r8rrr<rrr-r-r.test_type_cast_10 s  zTestClip.test_type_cast_10cCsl||j|j}|}||jd}|}d}d}|j||||d|j||||dt ||dS)NrrrJr2) rrrr#rVr4rrrar)r+r8rZbtrr<r-r-r.test_type_cast_11 szTestClip.test_type_cast_11cCsh||j|j}tj|jtjd}td}td}|j||||d}|j ||||d}t ||dS)Nr9rrr2) rrrr'r;r5r<rrarrrr-r-r.test_type_cast_12 s  zTestClip.test_type_cast_12cCs^||j|j}d}d}t|j}t|j}||||||||||t||dSrrrr-r-r.test_clip_with_out_simple s  z"TestClip.test_clip_with_out_simplecCsp||j|j}td}td}tj|jtjd}|}|j ||||dd| ||||t ||dS)Nrrr9rr) rrrr'rr;r5rr#rrarrr-r-r.test_clip_with_out_simple2 s  z#TestClip.test_clip_with_out_simple2cCsl||j|j}td}td}tj|jtjd}|}| ||||| ||||t ||dSrrrr-r-r.test_clip_with_out_simple_int32$ s  z(TestClip.test_clip_with_out_simple_int32cCsv||j|j}t|jtj}td}tj|jtjd}|}|j ||||dd| ||||t ||dSrrrr-r-r.test_clip_with_out_array_int32/ s z'TestClip.test_clip_with_out_array_int32cCsd||j|j}d}d}tj|jtjd}|}|j||||dd| ||||t ||dSrrrr-r-r.!test_clip_with_out_array_outint32: sz*TestClip.test_clip_with_out_array_outint32cCsJtddd}t|j}|jdd|d||dd}t||dS)NrCrr>r2)r'rEr empty_liker,rar)r+r8r]rr-r-r.test_clip_with_out_transposedE s  z&TestClip.test_clip_with_out_transposedcCsftddd}|}|ddjdd|ddd||dddd}t|dd|dS)NrCrr@r>rr2)r'rErr#rar)r+r8rrr-r-r.!test_clip_with_out_memory_overlapM s  z*TestClip.test_clip_with_out_memory_overlapcCsV||j|j}|}t|j}d}||||||||||t ||dSrrrr-r-r.test_clip_inplace_arrayU s z TestClip.test_clip_inplace_arraycCsN||j|j}|}d}d}||||||||||t||dSrrrr-r-r.test_clip_inplace_simple_ sz!TestClip.test_clip_inplace_simplecCs\||j|j}|}d}d}tj||||d}|||||t||t||udS)Nrrr2)rrrr#r'rarr )r+r8rrr<Za2r-r-r.test_clip_func_takes_outi s z!TestClip.test_clip_func_takes_outcCstd}t|jtjdtjt|jtjdtjt|jtjtjdtjt|jdtjdtjt|jtjddtjdS)Ng@)r)r)rrrr>)r'rEr rarK)r+r/r-r-r. test_clip_nant s  zTestClip.test_clip_nancCsBtjdtd}t|dd}tgd}||ks>JdS)Nr>r9rrO) rrrrrrOrOrOrOrO)r'rErrar(r)r+r8rrr-r-r.test_object_clip| szTestClip.test_object_clipcCsJtjdtd}ttdt|ddWdn1s<0YdS)Nr>r9z max or min)r'rErrrHrarr-r-r.test_clip_all_none s zTestClip.test_clip_all_nonecCsNtjdtd}ttd"|j|ddddWdn1s@0YdS)Nr>r9zcasting must be one ofrrfgarbager)r'rErrrHrrr-r-r.test_clip_invalid_casting s z"TestClip.test_clip_invalid_castingz amin, amaxrrr>cCs@tjdtjd}tt|||}t|||}t||dSr)r'rErminimummaximumrar )r+aminamaxr8rrr-r-r.test_clip_value_min_max_flip s z%TestClip.test_clip_value_min_max_flipzarr, amin, amax, expr9rlrcCst|||}t||dSrr`)r+rbrrrwrr-r-r.test_clip_problem_cases sz TestClip.test_clip_problem_caseszarr, amin, amaxcCs0tt|||}t|||}t||dSrr'rrrar r+rbrrrrr-r-r. test_clip_scalar_nan_propagation s z)TestClip.test_clip_scalar_nan_propagationzpropagation doesn't match specrNaTzignore::DeprecationWarningcCs0tt|||}t|||}t||dSrrrr-r-r.test_NaT_propagation s zTestClip.test_NaT_propagation)r4r5)r rbc CsttB}|tjd|jd\}}|dd}||tj||dddidB}||tj||d ddidB}t |||} t |||} tj |tj ||| d | d } | j | ksJt| | d S) aA property-based test using Hypothesis. This aims for maximum generality: it could in principle generate *any* valid inputs to np.clip, and in practice generates much more varied inputs than human testers come up with. Because many of the inputs have tricky dependencies - compatible dtypes and mutually-broadcastable shapes - we use `st.data()` strategy draw values *inside* the test function, from strategies we construct based on previous values. An alternative would be to define a custom strategy with `@st.composite`, but until we have duplicated code inline is fine. That accounts for most of the function; the actual test is just three lines to calculate and compare actual vs expected results! r)Z num_shapesZ base_shapecSstj|ddS)NF) allow_nan)hynpZ from_dtyper?r-r-r.r rBz-TestClip.test_clip_property..rr F)r4r5elementsrr9N)r integer_dtypesfloating_dtypesZdrawZmutually_broadcastable_shapesr5Zflatmaparraysr'rarrrr4r) r+r rbZnumeric_dtypesZ in_shapesZ result_shaperrrrdrrr-r-r.test_clip_property s(    zTestClip.test_clip_property)N)N)SrKrLrMr'rrarrrrrrrrFrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'r;rFrrfullrrr(rKrrr rrrrstr r rr rZ array_shapesrr-r-r-r.rs                                              rc@sdeZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZdS) TestAllcloseh㈵>:0yE>cCstjdd|_dS)Nrarcr'rmZolderrr&r-r-r.r' szTestAllclose.setup_methodcCstjfi|jdSrrr&r-r-r.teardown_method szTestAllclose.teardown_methodcCstt||d||fdSNz%s and %s not closer r'allcloser+r?r{r-r-r. tst_allclose szTestAllclose.tst_allclosecCs tt|| d||fdSNz%s and %s shouldn't be closerrr-r-r.tst_not_allclose szTestAllclose.tst_not_allclosec Cstddg}tdd}|j}|j}ddgddgf|gdgfdgd||gf||||f|||||df||||ftjtjftjtjgfg}|D]\}}|||qdS)Nr}rOrOrOrrr)r'r(rEratolrtolrNr)r+rbaranr#r$r r?r{r-r-r.test_ip_allclose s    zTestAllclose.test_ip_allclosecCstdd}|j}|j}tjdgdtjgftjdgddgftjtjgdtjgftjtjgddgftj dgtjdgftjdgtjdgf|dgdgfdgd||dgf|||||dfttjdgtdtjgfg }|D]\}}|||qdS)Nr!r"rrr) r'rErr#r$rNrKr(r)r+r%r#r$r r?r{r-r-r.test_ip_not_allclose s  z!TestAllclose.test_ip_not_allclosecCs\ttjdg}tdtjg}t||t|ttjdgt|tdtjgdSNrr)r'r(rNrrrr-r-r.test_no_parameter_modification4 s  z+TestAllclose.test_no_parameter_modificationcCs4ttjj}tj|gtjd}tt||dS)Nr9)r'rint_rr(r r)r+Zmin_intr8r-r-r. test_min_int; szTestAllclose.test_min_intcCs(tdtjg}ttj||dddS)NrJTr)r'r(rKr rr%r-r-r. test_equalnanA szTestAllclose.test_equalnancCs8Gdddtj}|dg}ttt||tudS)Nc@seZdZddZdS)z6TestAllclose.test_return_class_is_ndarray..Fooc_stj|i||Sr)r'r(rQ)clsargsrr-r-r.__new__I sz>TestAllclose.test_return_class_is_ndarray..Foo.__new__N)rKrLrMr/r-r-r-r.FooH sr0r)r'rPr rRrr!)r+r0r8r-r-r.test_return_class_is_ndarrayE s z)TestAllclose.test_return_class_is_ndarrayN)rKrLrMr$r#r'rrrr&r'r)r+r,r1r-r-r-r.r src@seZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdd Zd!S)" TestIscloserrc Cs>|j}|j}tddg}tdd}ddgddgf|gdgfdgd||gf||||f|||||f||||ftjtjftjtjgftjtj gtjtj gfg |_tjdgdtjgftjtj gddgftjtjgdtj gftjtjgddgftjdgtjtj gf|dgdgfdgd||dgf|||d||dfttjdgtdtjgfg |_ tjdgtj|dgf|dd dd||gdtjd gftd gd ftjtjtjtjgfdg|tjtj tjgfd|tjtj tjgfg|_ d d ggdgdgdgdgdg|_ dS)Nrr r!r"rrrg?g.Ar)rr@TF)TFFTTFr)TFFF) r#r$r'r(rErrNall_close_testsrKnone_close_testssome_close_testssome_close_results)r+r#r$rbr%r-r-r._setupT sL     $ zTestIsclose._setupc CsB||j}|j}t||D]\\}}}tt|||qtdddddtjg}tddddtjdg}gd}gd}tgd}ttj||||d|d} td d g}t t | d  tj|||d Wdn1s0Ytd d g}t t | d  tj|||d Wdn1s40YdS)Nr3rOr))\(?g ףp= ?rrrr)rrgQ?g{Gz?rr)TFTFFF)r$r#z+operands could not be broadcast together...rr*r#r)r$) r9r7r8ziprr'iscloser(rKr rH) r+testsresultsr?r{rdr#r$rrr-r-r.test_ip_isclose s$.zTestIsclose.test_ip_isclosecCstdtdj}t|d}|t|ks2J||ks>Jtj||dddsTJtj|td|dsnJtj|dd|ddsJtj|t|dddrJtj|tdt|drJtj|ddt|ddrJdS)NrJrrr)r#r$r;r)rr'rrr(r=r<r)r+Z below_onerr-r-r.test_nep50_isclose s   zTestIsclose.test_nep50_isclosecCs$ttt||d||fdSr)r r'r~r=rr-r-r.tst_all_isclose szTestIsclose.tst_all_isclosecCs*d}ttt|| |||fdSr)r r'r,r=)r+r?r{r+r-r-r.tst_none_isclose szTestIsclose.tst_none_isclosecCsrd}d}t|rFt|rFtt||t||k|||fdn(tt||t|||||fdS)Nz4isclose.all() and allclose aren't same for %s and %sz.isclose and allclose aren't same for %s and %sr*)r'rr r=rrr~)r+r?r{r+Zmsg2r-r-r.tst_isclose_allclose s *z TestIsclose.tst_isclose_allclosecCs||jD]\}}|||qtdddtjg}tdddtjg}gd}gd}tj||||d d stJtj||d d d d rJtjd dtd gd dtd ggdd dsJdS)Ngffffff@g @g@rrr)gףp= ?rrr)rgzG?r:rT)r#r$rrrrKrr#r)r9r5rBr'r(rKrr)r+r?r{r#r$r-r-r.test_ip_all_isclose szTestIsclose.test_ip_all_isclosecCs(||jD]\}}|||qdSr)r9r6rCrr-r-r.test_ip_none_isclose sz TestIsclose.test_ip_none_isclosecCs8||j|j|j}|D]\}}|||qdSr)r9r5r6r7rD)r+r>r?r{r-r-r.test_ip_isclose_allclose s   z$TestIsclose.test_ip_isclose_allclosecCsJttjtjtjdddgtdtjg}ttj||ddddgdS)NTrrJ)rr'r=rKr(rVr-r-r.test_equal_nan szTestIsclose.test_equal_nancCstjgdtd}tt|ttd|utt|tt|dutjgdtjtjtjg}tt|tttj|utt|tt|tjutjgdtjtjtjg}tjtj|dd}tt|t|ut gd|j tj|tjdd}tt|t|ut gd|j tjgdtjtjtjg}tj||dd}tt|t|ut gd|j dS)Nr4rrTr) r'rZ masked_whererEr rRr=rKrNrrrr-r-r.test_masked_arrays s"zTestIsclose.test_masked_arrayscCstttdddSNr)r r'rr=r&r-r-r.test_scalar_return szTestIsclose.test_scalar_returncCs\ttjdg}tdtjg}t||t|ttjdgt|tdtjgdSr()r'r(rNr=rrr-r-r.r) s  z*TestIsclose.test_no_parameter_modificationcCsTtttjtj tjuttdtjtjutttdtjtjudSNr)r r'r=rNrrRr!r&r-r-r.test_non_finite_scalar sz"TestIsclose.test_non_finite_scalarcCstjgdgdd}tj||ddds.Jtj||tddddsPJtj||dddsfJtj||tddddsJdS) N)rrrrzm8[ns]r9rTrErns)r'r(r=r~rrrr-r-r.test_timedelta s "zTestIsclose.test_timedeltaN)rKrLrMr$r#r9r@rArBrCrDrFrGrHrIrJrLr)rNrPr-r-r-r.r2P s"-r2c@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestStdVarcCstgd|_d|_dS)N)rr@rr@r)r'r(r,real_varr&r-r-r.r' szTestStdVar.setup_methodcCs0tt|j|jtt|jd|jdS)Nr)rr'rr,rRrr&r-r-r. test_basic szTestStdVar.test_basiccCs$ttddttdddSr(r r'rrr&r-r-r. test_scalars szTestStdVar.test_scalarscCshttj|jdd|jt|jt|jdttj|jddd|jt|jt|jddS)Nrddofrrr'rr,rRrrr&r-r-r. test_ddof1 s zTestStdVar.test_ddof1cCshttj|jdd|jt|jt|jdttj|jddd|jt|jt|jddS)NrrVrXr&r-r-r. test_ddof2 s zTestStdVar.test_ddof2cCsttj|jddtj|jddttj|jddtj|jddd}tt|"tj|jdddWdn1sz0Ytt|"tj|jdddWdn1s0YdS)Nr) correctionrVz5ddof and correction can't be provided simultaneously.r)rWr[)rr'rr,rrrH)r+r9r-r-r.test_correction& s 0 zTestStdVar.test_correctioncCstd}td}tj||d}t||ut||tj||d}t||ut||tj||d}t||ut||dS)Nr>rr2)r'rEr(rr rrr})r+r/r]r[r-r-r.test_out_scalar6 s       zTestStdVar.test_out_scalarN) rKrLrMr'rSrUrYrZr\r]r-r-r-r.rQ srQc@seZdZddZddZdS)TestStdVarComplexcCs:tgd}d}tt||tt|d|dS)N)rrr@yrr)r'r(rrr)r+r,rRr-r-r.rSE szTestStdVarComplex.test_basiccCs$ttddttdddS)NrrrTr&r-r-r.rUK szTestStdVarComplex.test_scalarsN)rKrLrMrSrUr-r-r-r.r^D sr^c@sXeZdZddZdddZddZdd Zd d Zd d Ze j j e ddddZ dS)TestCreationFuncscCsddtjtD}dd|D}dd}t||dd|DB|d|_|jdd t||dD7_d d d |_d |_dS)NcSsh|]}t|qSr-)r'r4r>tpr-r-r. T rBz1TestCreationFuncs.setup_method..cSsh|]}|jdr|qS)rl)rwendswithr`r-r-r.rbV rBcSs|jSr)rwr9r-r-r.rW rBz0TestCreationFuncs.setup_method..c Ss4h|],}tddD]}t|jdt|qqS)rr>rl)r-r'r4rwreplace)r>rarr-r-r.rbY s)keycSsg|] }t|qSr-)rR)r>rr-r-r.rA\ rBz2TestCreationFuncs.setup_method..rr)r2Fr>)rchainrvaluessorteddtypesordersndims)r+rjZvariable_sizedZkeyfuncr-r-r.r'S s  zTestCreationFuncs.setup_methodNcCs`dt|j|j|jf}i}|dur*d|i}tj|D]$\}}}}||g} |tjjupnt|tj on|j d} |rz| rzq4|| f||d|} t|tj rt | j |ndt|t tj r|tjjtjjfvrt |j j dd} t | j t | nt | j t |j tt| j|j||dur4| j j drFt |} n|} t | | | q4dS)NrU fill_valuez|Vorderr4rlrz|S)r-rlrkrjrrr'Z VoidDTyperr4rw startswithr rRZStrDTypeZ BytesDTyperdr getattrr-)r+r^rmZpar fill_kwargrrlror4r5Zis_voidrbZ dtype_strrr-r-r.check_function` s>    z TestCreationFuncs.check_functioncCs|tjdSr)rsr'r;r&r-r-r. test_zeros szTestCreationFuncs.test_zeroscCs|tjdSr)rsr'rFr&r-r-r. test_ones szTestCreationFuncs.test_onescCs|tjdSr)rsr'emptyr&r-r-r. test_empty szTestCreationFuncs.test_emptycCs |tjd|tjddS)Nrr)rsr'rr&r-r-r. test_full szTestCreationFuncs.test_fullzPython lacks refcountsrcCsd}t|}t|gdtt||kt|gdtt||kt|gdtt||kt|gddtt||kdS)Nrr>r)r getrefcountr'r;r rFrvr)r+dimbegr-r-r.test_for_reference_leak s z)TestCreationFuncs.test_for_reference_leak)N)rKrLrMr'rsrtrurwrxrFrrtrr|r-r-r-r.r_P s 'r_c@seZdZdZddZddZdddZd d Zd d Zd dZ ddZ e j dejejejejge j deegddZdS) TestLikeFuncsz4Test ones_like, zeros_like, empty_like and full_likecCs0tddftddftjddddftddftddddftdddd ftdjd d d dftdjd d d d ftdddddftdddddftdjdd d dftdjdd d dftdddddddftdddddddfg|_gd|_dS)NrrrrXrr9rrrr rf)rorrrrr$)rrrrrr )r-rO)rOrXrW)r'r(rErrr shapesr&r-r-r.r' s    zTestLikeFuncs.setup_methodcCsH|durD|r2t||j}tt||kntt||kdSr)r'r(rVr4r r~)r+dzvaluermzr-r-r.compare_array_value s z!TestLikeFuncs.compare_array_valueFc Cs*|rd|i}ni}|jD]P\}}||fd|i|}t|j|jtt|j|jjt|j|jjt|jj |jj t|jj |jj |durt|j|jnt|jt|| |||||fd|d|}t|j|jt |jj |durt|j|jnt|jt|| |||||fd|d|}t|j|jt |jj |dur~t|j|jnt|jt|| |||||fd|d|}t|j|j|jj rt |jj n t |jj |durt|j|jnt|jt|| ||||j D]@}dD]} ||f||| d|} t| j||durrt| j|jnt| jt|| dks| dkr|jj rt | jj n*| dks| dkr|jj rt | jj | | ||q0|jt|kr8tt||f||d d|jttj||dd jn.tt||f||d d|jt|jq&qGd d d tj} td dgddgg| } || fi|} t t| | u|| fddi|} t t| | utt.td} || fddi|Wdn1s0YdS)Nrmr4r2rnrfr,ZCFA)r4r5roK)r4roc@s eZdZdS)z4TestLikeFuncs.check_like_function..MyNDArrayNrr-r-r-r. MyNDArray srrrrrZsubokFsabczS-1)r r r5r'r(stridesr4rr-rrrr rndimrZargsortrvrPrQrRr r)r+Z like_functionrrmrrr/r4rrr"szrr8rr-r-r.check_like_function s                z!TestLikeFuncs.check_like_functioncCs|tjddSrK)rr' ones_liker&r-r-r.test_ones_like, szTestLikeFuncs.test_ones_likecCs|tjddSrM)rr'rUr&r-r-r.test_zeros_like/ szTestLikeFuncs.test_zeros_likecCs|tjddSr)rr'rr&r-r-r.test_empty_like2 szTestLikeFuncs.test_empty_likecCs|tjdd|tjdd|tjdd|tjddtjdd"|tjtjdWdn1st0YdS)NrTrr gw/^@rar)rr' full_likerlrNr&r-r-r.test_filled_like5 s zTestLikeFuncs.test_filled_likelikefuncr4cCs|tddd}|dddddf}|tjkr:ddini}||fd|i|}|tkrj|jdksxJn|jdksxJdS) NrCrrfrmr|r4)rCr)rr)r'rErrrwr)r+rr4r8rrrdr-r-r.test_dtype_str_bytes> sz"TestLikeFuncs.test_dtype_str_bytesN)F)rKrLrM__doc__r'rrrrrrrFrrr'rrrUrrwbytesrr-r-r-r.r} s a r}c@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestCorrelatecCstjgd|d|_tddddd|_tjgd|d|_tjgd|d|_tjgd|d|_tjgd |d|_tjgd |d|_ tjgd |d|_ tjgd |d|_ dS) Nrr9rrr)r@rr) ,4:r)grrg&rr).6r0$rD)rrrrrrr)rDrrrrrr) rrg>gHgPgUgYgKg3) r'r(r?rExsr{z1z1_4z1rz2z2rzs)r+rr-r-r.r9O s zTestCorrelate._setupcCs|tt|j|jd}t||jt|j|jddd}t||jt|j|jd}t||j t|jddd|jd}t||j t|j|jdddd}t||j t|j |jd}t||j dS)Nrr@)r9rr' correlater?r{rrrrrrrrr+rr-r-r.r][ s      zTestCorrelate.test_floatcCsJ|tt|j|jd}t||jt|j|jd}t||jdS)Nr) r9rr'rr?r{rrrrr-r-r. test_objectj s   zTestCorrelate.test_objectcCsDtd}td}t||t|tdt|tddSNrr)r'rFrrr+r/kr-r-r.test_no_overwriteq s    zTestCorrelate.test_no_overwritecCsftjgdtd}tjgdtd}tjgdtd}|ddd}tj||dd}t||dS)N)rrry@?r9)r@yy@?)y@rXy @?y&@@y @yr@rmode)r'r(r conjugaterr)r+r?r{Zr_zrr-r-r. test_complexx s zTestCorrelate.test_complexcCstt,tjtgtdddWdn1s<0Ytt,tjtdtgddWdn1s0YdS)Nr rr)rFrGrHr'rr(rFr&r-r-r.test_zero_size s : zTestCorrelate.test_zero_sizecCstd}td}tj||dd}tt tj||dd}Wdn1sR0Yt||tt tj||ddWdn1s0Yttj||dd|tt tj||ddWdn1s0YdS)NrrZvalidrvr@r) r'rFrrr#rr rHr)r+r/r default_modeZ valid_moder-r-r. test_mode s   .  . zTestCorrelate.test_modeN) rKrLrMr9r]rrrrrr-r-r-r.rN s rc@s$eZdZddZddZddZdS) TestConvolvecCs:dgd}dgd}tt||ddtdddS)NrJrrrrb)rr'convolverrr-r-r.r s  zTestConvolve.test_objectcCsDtd}td}t||t|tdt|tddSr)r'rFrrrr-r-r.r s    zTestConvolve.test_no_overwritecCstd}td}tj||dd}tt tj||dd}Wdn1sR0Yt||tt tj||ddWdn1s0Yttj||dd|tt tj||ddWdn1s0YdS)Nrrrrrr@r) r'rFrrr#rr rHr)r+r/rrZ full_moder-r-r.r s   .  . zTestConvolve.test_modeN)rKrLrMrrrr-r-r-r.r src@s6eZdZejdgdddZddZddZd S) TestArgwhererJrUcCstd|t}d|d<tt|jd|fd|d<d|jd<tt|jd|fd|d<d|jd<tt|j|jd|fd|d<tt|j|j|fdS)Nr<F.rTr)r'rvr!r argwherer5Zflatr)r+rJr?r-r-r.test_nd s  zTestArgwhere.test_ndcCs@tdd}tt|dkddgddgddgddggdS)NrXr rrr)r'rErrrr%r-r-r.test_2D szTestArgwhere.test_2DcCs(ttgddgdgdgdggdS)N)rrrrrrrrr)r r'rr&r-r-r. test_list szTestArgwhere.test_listN) rKrLrMrFrrrrrr-r-r-r.r s rz1ignore:.*set_string_function.*:DeprecationWarningc@seZdZddZdS)TestStringFunctioncCstdg}tddddtt|dtdddtt|dtddd dtt|dtdd dtt|d dS) NrcSsdSNFOOr-r r-r-r.r rBz=TestStringFunction.test_set_string_function..T)reprrz array([1])cSsdSrr-r r-r-r.r rBFz[1])r'r(rr rrwrr-r-r.test_set_string_function s   z+TestStringFunction.test_set_string_functionN)rKrLrMrr-r-r-r.r src@s$eZdZddZddZddZdS)TestRollcCs.td}t|d}t|tgddS)Nr>r) rfrgrrrrrrOrXrY)r'rErollr r()r+r?Zxrr-r-r. test_roll1d s  zTestRoll.test_roll1dcCszttdd}t|d}t|tgdgdgtj|ddd}t|tgdgd gtj|ddd}t|tgd gd gtj|dd d}t|tgd gd gtj|d d d}t|tgdgd gtj|dd d}t|tgdgd gtj|d d d}t|tgd gd gtj|dd d}t|tgdgdgtj|dd d}t|tgd gd gtj|dd d}t|tgdgdgtj|ddd}t|tgd gdgtj|ddd}t|tgdgdgtj|ddd}t|tgd gd gtj|ddd}t|tgd gd gdS)Nr>rrOr)rgrrrr)rrOrXrYrfrrhrerd)rrrrr)rgrOrXrYrfr(r)r@r)rr@)rrrrr)rXrYrfrgrOr*)r@r@r))rrrrr)rfrgrOrXrYrXr_)r'rrErr r()r+Zx2Zx2rr-r-r. test_roll2d s: zTestRoll.test_roll2dcCs&tg}tt|dtgdSrK)r'r(r rr%r-r-r.test_roll_emptys zTestRoll.test_roll_emptyN)rKrLrMrrrr-r-r-r.r s/rc@sJeZdZdddddddddddddddd d dddd Zd d ZddZdS) TestRollaxisr rrrr)rrrr)rrrrrrrrrrrr)rrrr)rrrr)rrrr)rrrr)r)r(r2)rrrrrr*r rrr3r:rrr r!rrrr~rrrcCsbtddddd}tttj|ddtttj|ddtttj|ddtttj|dddS) NrrrrrrrrO)r'rErr rrollaxisrr-r-r.test_exceptions5s zTestRollaxis.test_exceptionsc Csptddddd}t|j}t|jd|jD].\}}tj |||d}|t |jd\}}}} tt ||||| f|kt|j|j||fkt ||ft|jd |d} tj || |d}|t |jd\}}}} tt ||||| f|kt|j|jd| |fkt|jd |dkrR|dn|} tj ||| d}|t |jd\}}}} tt ||||| f|kt|j|j|d| fkt|jd |d} |dkr|dn|} tj || | d}|t |jd\}}}} tt ||||| f|kt|j|jd| d| fkt|jd q:dS)NrrrrrOWNDATA)ristart) r'rErr#rr5r r-tgtshaperr(r~rw) r+r8ZaindrjrZi0rrZi3ipjpr-r-r. test_results<s8 " zTestRollaxis.test_resultsN)rKrLrMrrrr-r-r-r.r$s rc@s<eZdZddZddZddZddZd d Zd d Zd S) TestMoveaxiscCs<tjddd}dD]"\}}t||dj}t||qdS)NrOrXrY))r)rXrYrO)r)rOrYrX)rrW)r@rWr@r'rr moveaxisr5r )r+r?sourcerrr-r-r.test_move_to_endcs zTestMoveaxis.test_move_to_endcCs@tjdddd}dD]$\}}}t|||j}t||qdS)Nrrrr))rrr)rrr)rr@rrr+r?r destinationrrr-r-r.test_move_new_positionlsz#TestMoveaxis.test_move_new_positioncCsftd}dddddgddgfddgddgftdtdffD]"\}}t|||j}t|dq>dS) Nr r))rr@)r@rrr@rr)r'r;r-rr5r )r+r?rrrr-r-r.test_preserve_ordervs  z TestMoveaxis.test_preserve_ordercCstd}ddgddgdfddgddgdfgdgddfddgddgd fddgddgd ffD]$\}}}t|||j}t||q^dS) Nrrrrrr)rrrrrU)rrr)rrrr)r'r;rr5r rr-r-r.test_move_multipless z TestMoveaxis.test_move_multiplescCstjddd}ttdtj|ddttdtj|ddttdtj|ddttd tj|ddgddgttd tj|ddgddgttd tj|dddgttd tj|ddgdgdS) Nrrrzsource.*out of boundsrr_zdestination.*out of boundsrOzrepeated axis in `source`zrepeated axis in `destination`zmust have the same number)r'rr rrrrHr%r-r-r. test_errorss,   zTestMoveaxis.test_errorscCsrtjd}t|dd}t|j|jtt|tjjgd}t|dd}t|t|tt|tj dS)Nr#r) r'rr;rr r5rZ MaskedArrayr.rP)r+r?rdr-r-r.test_array_likess zTestMoveaxis.test_array_likesN) rKrLrMrrrrrrr-r-r-r.rbs     rc@seZdZejdddZejdddZddZejddd Z ejdd d Z d d Z ej ddddgfddgdfgddZ dS) TestCrossz3ignore:.*2-dimensional vectors.*:DeprecationWarningcCsFddg}ddg}d}t||}t||t||}t|| dS)Nrrrrr)r'crossr r+urrcpr-r-r.test_2x2s   zTestCross.test_2x2cCsPddg}gd}tgd}t||}t||t||}t|| dS)NrrrVr>rrr'r(rr rr-r-r.test_2x3s   zTestCross.test_2x3cCsPgd}gd}tgd}t||}t||t||}t|| dS)Nr#rurrXrrrr-r-r.test_3x3s   zTestCross.test_3x3cCstddgd}tddgd}d}tt|||tt||| tt||dtddgdj}tgdd}tgd d}ttj||dd |tt||j| tt||dtgd dj}tddgdj}tgd d}ttj||ddd |tt|j|j| tt|j|jdtgd d}tgddj}tgdd}ttj||dd|tt|j|| tt||ddS)Nrr)rsrrrrrrVr)axisar#)rrgrraxisb)rOrrur)r)r'Ztiler rr,r+rrrr-r-r.test_broadcastings0zTestCross.test_broadcastingcCstd}td}tt||jdtd}td}ttj||dddjd tttj||dd dtttj||d ddtd }td }ttj||dd djdtttj||dd dtttj||dddtd}tdd D]}ttj|||djdqdS)N)rrr)rOr)rrOr)r>rrOrrrr)r>rOrrr)r>rrOrY)rOrYr)raxisc)r>rOrrYrr_)rrrr)rr)r'rFr rr5r rr-)r+rrrr-r-r.test_broadcasting_shapess        z"TestCross.test_broadcasting_shapescCsftgdgtj}tgdtj}tjgdgtjd}tt|||tt||| dS)N)rfrg)D)ii+i^r9)r'r(rrr rrr-r-r.test_uint8_int32_mixed_dtypess z'TestCross.test_uint8_int32_mixed_dtypesza, brrrrcCsLtt}t||Wdn1s,0Ydt|jvsHJdS)Nz%At least one array has zero dimension)rFrGrHr'rrwr)r+r8rr}r-r-r.test_zero_dimension s *zTestCross.test_zero_dimensionN)rKrLrMrFrrrrrrrrrrr-r-r-r.rs(      rcCsjtd}td}tddd}tjdd}tjdd}t|||}t||tt||||dS) Nrr<rrrO)rOrO)r5r)r'rFZlinspacerPouterr )Zarr1Zarr2Zarr3Zout1Zout2Zres1r-r-r.test_outer_out_params     rc@sdeZdZddZddZddZddZej d e j e j e j e jgej d gd d d ZdS) TestIndicesc Csbtd\}}t|tgdgdgdgdgt|tgdgdgdgdgdS)Nr%r=rrrrUr'rrr(rr-r-r. test_simple!szTestIndices.test_simplecCsHtd\}t|tgdtjddd\}t|tgddS)N)rrrTsparserr%r-r-r.test_single_input,s zTestIndices.test_single_inputcCsPtgtdtgtjdddtggtdtggtjddddS)Nr-Trr1)rr'rr&r-r-r.test_scalar_input3szTestIndices.test_scalar_inputcCsLtjddd\}}t|tdgdgdgdggt|tgdgdS) Nr%TrrrrrrUrrr-r-r.r19s zTestIndices.test_sparser4dims)r-r1r%cCsDtj||d}t|j|ktj||ddD]}t|j|kq,dS)Nr9T)r4r)r'rr r4)r+r4rZindsrbr-r-r.r5>szTestIndices.test_return_typeN)rKrLrMrrrr1rFrrr'rrr<rr5r-r-r-r.rs rc@sTeZdZgdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS) TestRequire) r2rZ CONTIGUOUSrfrZFORTRANr,ZALIGNEDWZ WRITEABLErrcCs|tddd|fg}|jdd|d}t|jd t|jd t|jd t|jd  t|jd  |S) Nr)Zjunkrr8F)writer2rfrr r,)r'r;Zsetflagsr r-)r+r4rbr8r-r-r.generate_all_falseOs zTestRequire.generate_all_falsecCsv|dur|j}t|||g}t|j|t|j|kt|d|g}|ddkrdt||unt|j|dS)Nrr)r4r'requirer r-)r+flagr4rbrrr-r-r.set_and_check_flagZs zTestRequire.set_and_check_flagcCsHddg}gd}t|||jD]"\}}}||}||||q dS)Nrr)Nrr)rr flag_namesr r)r+idfdZidtypeZfdtyperr8r-r-r.test_require_eachis  zTestRequire.test_require_eachcCs |d}tttj|dddS)NrQ)r r KeyErrorr'r rr-r-r.test_unknown_requirementqs z$TestRequire.test_unknown_requirementcCs`tgddgd}t|jdt|jdt|jdt|jdkt|gddS)Nr r)r2r,rrr2r,)r'r r r-r4r rr-r-r.test_non_array_inputus z TestRequire.test_non_array_inputcCs$|d}tttj|dddgdS)Nrr2rf)r r rHr'r rr-r-r.test_C_and_F_simul}s zTestRequire.test_C_and_F_simulcCs@Gdddtj}|d}t|ddg}tt|tjudS)Nc@s eZdZdS)z4TestRequire.test_ensure_array..ArraySubclassNrr-r-r-r. ArraySubclasssrrE)r'rPr r rR)r+rr8rr-r-r.test_ensure_arrayszTestRequire.test_ensure_arraycCs8Gdddtj}|jD]}|d}||d|qdS)Nc@s eZdZdS)z8TestRequire.test_preserve_subtype..ArraySubclassNrr-r-r-r.rsrr)r'rPrr)r+rrr8r-r-r.test_preserve_subtypes z!TestRequire.test_preserve_subtypeN) rKrLrMrr rrrrrrrr-r-r-r.r Hs r c@s4eZdZddZddZddZddZd d Zd S) TestBroadcastc Cs(tdtdtdtdg}tj|ttj|ddtj|ddttj|ddtj|ddttj|ddtj|ddt|dtj|dd|dg}|D]Z}t|jd t|jd t|jd t|jd t||j D]\}}t ||j uqqdS) Nr)rOrXr)rY)rOrrYrrrr@rWrr) r'rv broadcastr r5rrJnumiterr<rYr base)r+arrsZmitsmitr8iar-r-r.test_broadcast_in_argss &&&"    z$TestBroadcast.test_broadcast_in_argscCsbtdg}tj|}t|jdt|jdt|jdt|jdt|d|j dj udS)NrWrrr) r'rvrr r5rrJrr rYr )r+r!r"r-r-r.test_broadcast_single_args      z'TestBroadcast.test_broadcast_single_argcCsZtd}tdD]B}|g|}|dkr>tttjg|Rqtj|}t|j|qdS)NrFry)r'rvr-r rHrr r)r+rbrr!r"r-r-r.test_number_of_argumentss    z&TestBroadcast.test_number_of_argumentscCstdg}tj|}tj|ii}t|j|jt|j|jt|j|jt|j|jt|j dj |j dj ut t tjdfiddidS)NrWrrr?) r'rvrr r5rrJrr rYr r rH)r+r!r"Zmit2r-r-r.test_broadcast_error_kwargss  z)TestBroadcast.test_broadcast_error_kwargscCsRtjtdd0tgdgdgdggddgWdn1sD0YdS)Nz5arg 0 with shape \(1, 3\) and arg 2 with shape \(2,\)rBr#rrOrXrY)rFrGrHr'rr&r-r-r.!test_shape_mismatch_error_messagesz/TestBroadcast.test_shape_mismatch_error_messageN)rKrLrMr$r%r'r(r)r-r-r-r.rs    rc@s&eZdZGdddejZddZdS) TestKeepdimsc@seZdZdddZdS)zTestKeepdims.sub_arrayNcCstjj||||ddS)NTrI)r'rPr)r+rir4r]r-r-r.rszTestKeepdims.sub_array.sum)NNN)rKrLrMrr-r-r-r. sub_arraysr+cCs,|j}td|}tttj|dddS)NTrI)r+r'rErQr rr)r+Z sub_classr?r-r-r. test_raiseszTestKeepdims.test_raiseN)rKrLrMr'rPr+r-r-r-r-r.r*sr*c@seZdZddZddZdS) TestTensordotcCsLtd}td}t||d}t|t||t|td||dS)Nrrrzij,jk)r'rP tensordotrdotZeinsum)r+r8rtdr-r-r.rs   z!TestTensordot.test_zero_dimensioncCs*td}t||ggf}t||dSrK)r'r(r/r)r+Zarr_0dretr-r-r.test_zero_dimensionals z#TestTensordot.test_zero_dimensionalN)rKrLrMrr3r-r-r-r.r.sr.c@seZdZddZdS) TestAsTypecCsddgddgg}ttj|tjdtj}tj|tjd}t||t|j|jt|tj||jddspJt j t dd t|tj Wdn1s0YdS) Nrrrrr9F)r#zInput should be a NumPy arrayrB) r'rVr(rrrr r4Z shares_memoryrFrGrr)r+r rrr-r-r. test_astypes zTestAsType.test_astypeN)rKrLrMr5r-r-r-r.r4sr4)WrrrrSrFrdecimalrrr'Z numpy._corerrZnumpy._core.numerictypesrZnumpy._core.arrayprintrZnumpy.exceptionsrZ numpy.randomrr r Z numpy.testingr r r rrrrrrrrZnumpy._core._rational_testsrrZ hypothesisrrrZhypothesis.extrar rrTr rrr9r_rvr Exceptionrrrrfrkr{rrrrrr2rQr^r_r}rrrrrrrrrrrrr rr*r.r4r-r-r-r.s    4   <!Wk"mHkR*SYU>7 S,H%:>Jh )J9