o 6a@sddlZddlZddlZddlZddlmZddlZddlZddlZddl m Z ddl m Z ddlZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZddlmm Z!ddl"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDdd ZEd d ZFGd d d ZGGdddZHGdddZIGdddZJGdddZKGdddZLGdddZMGdddZNGdddZOGdddZPGd d!d!ZQGd"d#d#ZRGd$d%d%ZSGd&d'd'ZTGd(d)d)ZUGd*d+d+ZVGd,d-d-ZWGd.d/d/ZXGd0d1d1ZYGd2d3d3ZZdpd5d6Z[dqd8d9Z\Gd:d;d;Z]Gdd?d?Z_Gd@dAdAZ`GdBdCdCZaGdDdEdEZbGdFdGdGZcGdHdIdIZdGdJdKdKZeGdLdMdMZfGdNdOdOZgGdPdQdQZhGdRdSdSZiGdTdUdUZjGdVdWdWZkGdXdYdYZlGdZd[d[ZmGd\d]d]Znd^d_ZoGd`dadaZpGdbdcdcZqGdddedeZrGdfdgdgZsGdhdidiZtGdjdkdkZuGdldmdmZvGdndodoZwdS)rNFraction)arrays)ma) assert_ assert_equalassert_array_equalassert_almost_equalassert_array_almost_equal assert_raisesassert_allcloseIS_PYPY assert_warnsassert_raises_regexsuppress_warnings HAS_REFCOUNT)rand) add_newdoc_ufuncangleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermeshgridmsort piecewiseplacerot90selectsetxor1dsinctrapz trim_zerosunwrapunique vectorizecCst|}tj||}|SN)nparangeaddouter)ndatar:D/usr/lib/python3/dist-packages/numpy/lib/tests/test_function_base.pyget_mats r<cCs(tt||jtj}||_||_|S)za Like real + 1j * imag, but behaves as expected when imag contains non-finite values )r4zeros broadcastshapecomplex_realimag)rArBretr:r:r; _make_complex$srDc@$eZdZddZddZddZdS) TestRot90cCsttttdttttdddttttdddttttdddttttdddgdgd g}d d gd dgd dgg}gdgdg}dd gdd gd d gg}gdgd g}tdddD] }tt||d|qitdddD] }tt||d|q{tdddD] }tt||d|qtd ddD] }tt||d|qttt|dddd|tt|d ddt|ddddS)NrIrIrrIaxesrIrIrrIrKrK)rKrGrIrTrKrrSrTrGrSrIrKr )krQrrKrKrrYrM)r ValueErrorr*r4onesranger)selfab1b2b3b4rYr:r:r; test_basic0s@"zTestRot90.test_basiccCsRtd}tt|jdtt|ddt|ddtt|ddt|dddS)N)2(rS)rirhrSrOrLrrZrKrIrQrZ)r4r_rr*r?rarbr:r:r; test_axesPs zTestRot90.test_axescCstdd}ddgddggddgd d ggg}ddgddggd dgd dggg}d dgddggd dgddggg}d d gddggddgddggg}tt|d d |tt|d d |tt|dd |tdd D]}tt||ddt||dddqhdS)NrHrIrSrrKrGrTr[rLr\rk)rIrr])r4r5reshaperr*r`)rarb a_rot90_01 a_rot90_12 a_rot90_20 a_rot90_10rYr:r:r;test_rotation_axesVsJzTestRot90.test_rotation_axesN)__name__ __module__ __qualname__rgrnrwr:r:r:r;rF/s rFc@TeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestFlipcCslttjtjtdddttjtjtdddttjtjtdddttjtjtddddS)NrGrKaxisrGrGrIrWrrS)r r4 AxisErrorflipr_rar:r:r;rnuszTestFlip.test_axescCsftd}|dddddf}tt|d|gdgdg}gdgdg}tt|d|dS)NrGrZrKrJrRrVrUr<rr4rrarbbr:r:r; test_basic_lr{zTestFlip.test_basic_lrcCsftd}|dddddf}tt|d|gdgdg}gdgdg}tt|d|dS)NrGrZrrJrRrrr:r:r; test_basic_udrzTestFlip.test_basic_udcCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dS NrrKrIrSrGrTrprqr4arrayrrrr:r:r;test_3d_swap_axis0  zTestFlip.test_3d_swap_axis0cCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dSrrrr:r:r;test_3d_swap_axis1rzTestFlip.test_3d_swap_axis1cCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dSrrrr:r:r;test_3d_swap_axis2rzTestFlip.test_3d_swap_axis2c CsRtddddd}t|jD]}tt||t|d||dqdS)NxrIrSrGrTr) r4r5rrr`ndimrrrswapaxes)rarbir:r:r;test_4ds  zTestFlip.test_4dcCs@tgdgdg}tgdgdg}tt||dS)NrKrIrSrGrTrp)rprTrGrSrIrKrrr:r:r;test_default_axiss  zTestFlip.test_default_axiscCstddgddggddgddggg}ttj|d d |tddgddggddgddggg}ttj|d d |tddgddggddgddggg}ttj|d d |dS) NrrKrIrSrGrTrprqr:r}rOrkrrarbrcr:r:r;test_multiple_axess0   zTestFlip.test_multiple_axesN) rxryrzrnrrrrrrrrr:r:r:r;r|ss      r|c@eZdZddZddZdS)TestAnycCsHgd}gd}gd}tt|tt|tt| dS)NrrrKrrrrr)rKrrKr)rr4anyray1y2y3r:r:r;rgs zTestAny.test_basiccCsXgdgdgdg}tt|ttj|ddgdttj|ddgddS)NrrrrrKrrKrKrrr}rKrrKrK)rr4rrsometruerarr:r:r;test_ndszTestAny.test_ndNrxryrzrgrr:r:r:r;r rc@r)TestAllcCs`gd}gd}gd}tt| tt|tt| ttt|dS)N)rrKrKrrrKrKrKrK)rr4allrrr:r:r;rgszTestAll.test_basiccCsZgdgdgdg}tt| ttj|ddgdttj|ddgddS)NrrrKrrKrKrKrr}rK)rr4rralltruerr:r:r;rszTestAll.test_ndNrr:r:r:r;rs rc@rE)TestCopycCsRtddgddgg}t|}t||d|d<t|ddt|dddS)NrKrIrSrG )rr)r4rcopyrr)rarba_copyr:r:r;rgs   zTestCopy.test_basiccCstddgddgg}t|jjt|jj tjddgddggdd}t|jj t|jjt|}t|jjt|jj t|}t|jj t|jjdS)NrKrIrSrGForder)r4rrflags c_contiguous f_contiguousr)rarba_fortr a_fort_copyr:r:r; test_orders     zTestCopy.test_ordercCsVtd}tttj|dd tttj|ddttt| dS)NrTF)subokT)rr_r isMaskedArrayr4r)ramxr:r:r; test_suboks zTestCopy.test_subokN)rxryrzrgrrr:r:r:r;rs rc@s<eZdZddZddZddZddZd d Zd d Zd S) TestAveragecCstgd}tt|dddktgd}tt|dddkgd}tt|dddktd}d|d <d |d <t|dt|dt|d t|d td d }t|dt|dt|d t|d dS)Nrrr}@)?r@)rrrrr[rIr\rKrT)r4rrrr_r meanr)rarrry4y5r:r:r;rg"s  zTestAverage.test_basicc CsHtd}td}t||d}tdddtd}t||tgdgdg}ddg}t||dd }tgd }t||gd }t||dd }td d g}t||gd gdg}td d g}tt||dd |tt||ddtd tj } td tj } t tj| | dj t| | kdS)NrweightsrIrrrrKr)rr~)r@@rr@)rrrIrrT)r4r5rsumr rrrrastypefloat32float64rdtype result_type) raywactualdesiredrw0w1w2rw3r:r:r; test_weights4s*   $   $zTestAverage.test_weightscCstgdgdg}t|dd\}}t|dt|ddd\}}t|tgdt|ddd\}}t|td d gdd g}t||ddd \}}t|tgd gd}t||ddd \}}t|tddggd gdg}t||ddd \}}t|tddgdS)NrrT)returnedrr)rrrrKrrI)rr~r)rrrrr)r4rrrr)raravgsclrrrr:r:r; test_returnedTs  zTestAverage.test_returnedcCszGdddtj}tddgddgg|}tddgddgg|}ttt||tttj||d|dS)Nc@ eZdZdS)z-TestAverage.test_subclasses..subclassNrxryrzr:r:r:r;subclassorrKrIrSrGr)r4ndarrayrviewrtyper)rarrbrr:r:r;test_subclassesns zTestAverage.test_subclassescCslgd}|D]-\}}}tjddgddgg|d}tjddgddgg|d}ttj||djt|qdS)N))i4rf8)rf4r)rrr)rrr)rrrrKrIrSrGrr)r4rrrr)ratypsatwtrtrbrr:r:r;test_upcastingws zTestAverage.test_upcastingcCsXtddtdD}tddtdD}||}t|dt||ddS)NcSsg|]}t|qSr:decimalDecimal).0xr:r:r; z1TestAverage.test_object_dtype..rcSsg|]}tdqSrKr)r_r:r:r;rrrr)r4rr`rr rr)rarbrr:r:r;test_object_dtypes zTestAverage.test_object_dtypeN) rxryrzrgrrrrrr:r:r:r;r s  rc@seZdZegdegdegdgZegdegdegdgZddd Zd d Zd d Z ddZ ddZ ddZ ddZ dS) TestSelectrrrqro )FFFFTFFFTrcs<g}tt|D]|fddt||Dp|g7}q|S)Ncs g|] \}}|r|qSr:r:)rVCmr:r;rs z&TestSelect._select..)r`lenzip)racondvaluesdefaultoutputr:rr;_selects$zTestSelect._selectcCsL|j}|j}tt||dd|j||ddtt|dtt|ddS)NrrS)choices conditionsrr+rrr rarrr:r:r;rgszTestSelect.test_basiccCsdtdtgdg}dtdddg}tt||tdttdgdgdgd jd dS) NTrrK rGrSrGrSrrr) r4rr5rrrr+r_rr?rarrr:r:r;test_broadcastings zTestSelect.test_broadcastingcCstt|j|jdjtjdd|jD}tt|j|jtjtdddtj ddg}t |}tt|g|gd d d tj d d gdS) N?cSsg|]}|tjqSr:)rr4int8)rchoicer:r:r;rz0TestSelect.test_return_dtype..rKrIrSrTrqr) rr+rrrr4r@rrnanisnan)rardr r:r:r;test_return_dtypes &zTestSelect.test_return_dtypecCs"tttggdtttggdS)N@)r r^r+rr:r:r;test_deprecated_emptysz TestSelect.test_deprecated_emptycCsj|j}|jdd}|dtj|d<ttt|||dtj|d<ttt||ttt||dSNr) rrrr4int_r TypeErrorr+uint8rr:r:r;test_non_bool_deprecationsz$TestSelect.test_non_bool_deprecationcCs2tdggd}tdggd}t||dS)NFdrK)r4rr+rr:r:r;test_many_argumentsszTestSelect.test_many_argumentsNr)rxryrzr4rrrrrgrr!r#r(r*r:r:r:r;rs           rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestInsertcCsvgd}tt|ddgdtt|ddgdtt|gdgdgdtt|dgdgdtt|gd d gd tt|td dd d gd tt|gdgdgdtjddgtjd}tt|d|dgdtt|gg|tjdd*}tddt tt|tdgdd gdt |dj t uWddS1swYdS)NrrrK)rKrKrIrSrS)rKrIrSrKr)rKrKrIrSrIrS)rKrZrSr)rKrrIrrSrrZ)rrKrrIrrSrZrKrSr)rKrorIrqrSrr)rrrTrecordalwaysrG)rKrrrrrIrS) rr#slicer4rrwarningscatch_warningsfilterwarnings FutureWarningrcategory)rarbrrr:r:r;rgs$"zTestInsert.test_basicc Cs~gdg}gdgdg}tt|ddggdtt|dgddd|tt|dddd|tt|ddddgdgtddgddgd d gg}tdd d d d }tj|ddddftdd d d d j|ddddffdd}tt|dgdgdgd ggdd|tt|dggd dd|tt|dgd dd|tt|ddgdgd ggdd|td dd}tt|ddddfd|dddfdd|tt|ddddfd|dddfdd|td d }tt|d|ddddd fddt|d|ddddd fddtt|d|dddddfddt|d|dddddfddt tj t|d|dddddfd dt tj t|d|dddddfddtd d }tt|d|ddddd fddt|d|ddddd fddtt|d|dddddfddt|d|dddddfdddS)NrrHrrKrr}rI)rKrKrIrKrSrGrrIrSrGrZrQ) rr#r4rr5repeatrr concatenateTr r)rarbrrrr:r:r; test_multidimsN ,$"22" " ((" " zTestInsert.test_multidimcCstd}ttjt|gdddWdn1swYttt|gdddWddS1s.SubClassNrr:r:r:r;SubClass rrDrrrKrIrQrZ) r4rr5rr isinstancer#r2rrarDrbr:r:r; test_subclass s " zTestInsert.test_subclasscCs<tgd}tgd|gdt|tgddS)NrrJrR)r4rr#rrarr:r:r;test_index_array_copiedsz"TestInsert.test_index_array_copiedcCstjgdddgd}d}t|d|}t|dtj||jddgd}t|ddg|}t|ddgtj||jddS) N))rKrb)rIr)rSr)foor)bara1r)rGr rrIrS)r4rr#rr)rarbvalrr:r:r;test_structured_arrays  "z TestInsert.test_structured_arraycCstttgdtddgddgWdn1s wYtttgdtjgtdgWddS1sDwYdS)NrJrrrr)rArB IndexErrorr4r#rfloatrr:r:r;test_index_floats&s " "zTestInsert.test_index_floatsN) rxryrzrgr?rCrGrIrNrRr:r:r:r;r,s*  r,c@eZdZddZdS)TestAmaxcCbgd}tt|dgdgdgdg}ttj|ddgdttj|d dgd dS) NrSrGrTrrWr$@rSr"@rGrXrrorrrr}) @rXrZrK)rZrXr])rr4amaxrr:r:r;rg/zTestAmax.test_basicNrxryrzrgr:r:r:r;rT- rTc@rS)TestAmincCrU) NrVgrYr[r\rr})rrrrK)rrr)rr4aminrr:r:r;rg;r_zTestAmin.test_basicNr`r:r:r:r;rb9rarbc@rS)TestPtpcCstgd}t|jdddtgdgdgdg}t|jddgdt|jd dgd t|jdd d gdgt|jd d d dggdS)NrVrr}g.@rYr[r\)r@rerZ)rrrTr~keepdimsr[r])r4rrptprr:r:r;rgGs zTestPtp.test_basicNr`r:r:r:r;rdErardc@rS) TestCumsumc Csgd}gdgdgdg}tjtjtjtjtjtjtjtjtj tj f D]R}t ||}t ||}t gd|}t tj |dd|t gdgdgd g|}t tj |dd|t gd gd gd g|}t tj |d d|q%dS)NrKrIr rprTrGrKrIrSrGrTrprqrrrSrGrT)rKrSrXr8#'rr})rprorrX)rk)rKrSrpr)rTrkrt)rrXrK)r4rr'int16uint16int32uint32rr complex64 complex128rrcumsum)rababa2ctyperba2tgtr:r:r;rgVs&  zTestCumsum.test_basicNr`r:r:r:r;riTraric@rS)TestProdcCsgd}gdgdgdg}tjtjtjtjtjtjtjtjfD]I}t ||}t ||}|dvrCt t tj |t t tj |dq!t |j ddd t|j ddt gd |t|j d dt gd |q!dS) Nrjrlrmrn1rrKrr} grh$TrZ)r8bX)r4rxryrzr{rrr|r}rr ArithmeticErrorprodrrrarrrrbrr:r:r;rgms$    zTestProd.test_basicNr`r:r:r:r;rkrarc@rS) TestCumprodc Csgd}gdgdgdg}tjtjtjtjtjtjtjtjfD]g}t ||}t ||}|dvrJt t tj |t t tj |dt t tj |q!t tj |ddt gd |t tj |d dt gdgd gd g|t tj |ddt gd gdgdg|q!dS)NrjrlrmrnrrKrZr})rKrIrOi(irr)rTrrr)rKrIrpr8)rTror)rrorr)r4rxryrzr{rrr|r}rr rcumprodrrr:r:r;rgsB     zTestCumprod.test_basicNr`r:r:r:r;rrarc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestDiffcCsgd}tgd}tgd}tddg}tt||tt|dd|tt|dd|gd }tgd }tt||gd }tgd }td d g}tt||tt|dd|dS)N)rKrGrprqr)rSrIrKrT)rZrZrGrrTrIr8rS)皙?皙@rgɿ皙)rg?g 皙?)TTFFrT)r4rrrr )raroutout2out3r:r:r;rgszTestDiff.test_basiccCstd}d|dddddddf<td}d|dddddddf<tt|tdtt|ddtdtt|ddtd tt|dd|tt|d d|ttjt|d dttjt|d dtd tj}tt t|dS)N)rrOrorKrI)rrorZ)rrOr}r)rrOrorQrSr:gq?) r4r=r_rrr rrrr^)rarexpr:r:r; test_axiss  zTestDiff.test_axiscCs*dtddd}|ddddddf|ddddddf}|ddddddf|ddddddf}|ddddddf|ddddddf}|ddddddf|ddddddf}tt||tt|dd|tt|dd |tt|ddd |dS) NrOrrorKrZrIrrr})r8r~)rrr)rarout1rrout4r:r:r;rs4444zTestDiff.test_ndcsttdtttddfddtddD}ddgdgggg}ttddutt||dd D])\}\}}tt|t j ut ||t |j t jt t|tdt|q6dS) NrSrZrcsg|]}t|dqS)r)r)rr8rr:r;rrz#TestDiff.test_n..rKrTrstart)listr`r r^rr enumerater rr4rrrrr%r max)rarexpectedr8rr:rr;test_ns  zTestDiff.test_ncCstjddtjd}tjddgddtjdgddg}|tjgddgdt|ddD]\}}t||d }t||t|j |j q-dS) Nz 1066-10-13z 1066-10-16rrKtimedelta64[D]rrSrr) r4r5 datetime64rextendrrrrr)rarrr8rrr:r:r; test_timess  zTestDiff.test_timescCstjddgddgddgddgd d ggd d gd d gd d gd d gd d ggd }t|}t|jdgdgdgdgdggt|jd gd gd gd gd ggtt|t|ut|dd}t|jggggggt|jggggggtt|t|udS)NrKrIrSrGrTrprqrorrFTmaskr)rrrrr9rrr)rarrrr:r:r;rGs$    zTestDiff.test_subclasscCsNtdd}tt|ddtdtt|dgdtdtttj|dd|tt|ddgdtdtddd}tj|ddd }ddgddgg}t||tj|ddgdggd }t||tj|ddd }ddgddgg}t||tj|dddggd }t||tttj|t d dttj t|dd d dS) NrTrKr)prependrZrprGrI)r~rrSrSrS)rr~) r4r5rrr_r~rrr r^r=rrarresultrr:r:r; test_prepends$    zTestDiff.test_prependcCs<td}t|dd}gd}t||t|dgd}t||t|ddgd}|dg}t||tddd}tj|ddd}dd gdd gg}t||tj|ddgdggd}t||tj|ddd}ddgd d gg}t||tj|dddggd}t||tttj|td dttjt|dd ddS)NrTr)append)rKrKrKrKr:rIrGrK)r~rrZrWrQrrS)rr~) r4r5rrrrr r^r=rrr:r:r; test_append s,          zTestDiff.test_appendN) rxryrzrgrrrrrGrrr:r:r:r;rs    rc@r{) TestDeletecCs,td|_tddddd|_dS)NrTrIrK)r4r5rbr;rrnd_arr:r:r;setup(s  zTestDelete.setupcCst|j|}t|j|dd}d|}tt||j|f|j|dt|ddddf|jd|df}t||jddddf|ddS)NrKr}zDelete failed for obj: %r)err_msgr)rrbrrr,)raindicesa_delnd_a_delmsgxorr:r:r;_check_inverse_of_slicing,s $"z$TestDelete._check_inverse_of_slicingcCsHgd}gd}|D]}|D]}|D] }t|||}||qqq dS)N)rQrrKrIrGrT)rWrZrKrS)r2r)ralimsstepsrstopstepsr:r:r; test_slices5s  zTestDelete.test_slicescCsV|tddgddggttt|jdgWdn1s%wYttt|jdgWdn1sAwY|gd|gdttt|jdWdn1sjwYttt|jd Wdn1swYttt|jd gd WddS1swYdS) NrrKrIr)i)rrZrIrI)TFFTFTFrG) rr4rrArBrPrrbr^rr:r:r; test_fancy>s$     "zTestDelete.test_fancycCs|d|ddS)Nrr:)rrr:r:r; test_singleSs zTestDelete.test_singlecCstd}ttjt|gddWdn1swYttt|gddWddS1s:wYdS)NrKrr}r@)r4rrArBrrr&rmr:r:r;rCWs  "zTestDelete.test_0dcCsGdddtj}|j|}ttt|d|ttt|g|ttt|ddg|ttt|tdd|ttt|tdd|dS)Nc@r)z*TestDelete.test_subclass..SubClassNrr:r:r:r;rD_rrDrrKrIrQ)r4rrbrrrErr2rFr:r:r;rG^s zTestDelete.test_subclasscCsRtdjdddd}t|tdddd}t|jj|jjt|jj|jjdS) NrrIrTrr<rKr}) r4r5rrrr2rrrr)rarYr r:r:r;test_array_order_preservehsz$TestDelete.test_array_order_preservecCstttgdtddgWdn1swYtttgdtjgtdWddS1s@wYdS)NrJrrr)rArBrPr4rrrQrr:r:r;rRrs  "zTestDelete.test_index_floatsN) rxryrzrrrrrrCrGrrRr:r:r:r;r&s   rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ejdejejejejgddZejdejejejejgddZejdejejejejgddZejdejejejejgdd Zd!S)" TestGradientcCsfddgddgg}t|}tddgddggtddgddggg}tt||tt||dS)NrKrSrGrrrr)r4rrrravrdxr:r:r;rg{s zTestGradient.test_basicc Csttd}gd}tddd}ttddttdtdttd|t|dt|tdt|||t||dt||ddttd t|tj |gdd dddS) NrT)rrrrZ&@r?rIrKr}z.*scalars or 1drZ) r4r~r_r5rrrrrr^stack)rar dx_unevenf_2dr:r:r; test_argss   zTestGradient.test_argscCstddd}ttd}ttt||tdttt|dtdttt|tdtdttt||ttt||ddttt||||ttt|dddttt|||ddttt|dddddS)NrrTrIrKr[r}) r4r5rrr~r_r r^rr&)rarrr:r:r; test_badargsszTestGradient.test_badargscCsJtjgddd}tjgddd}tt||t|jtdkdS)N)z 1910-08-16z 1910-08-11z 1910-08-10z 1910-08-12z 1910-10-12z 1910-12-12z 1912-12-12z datetime64[D]r)rWrWr=iirr4rrrrrrarrr:r:r;test_datetime64szTestGradient.test_datetime64cCstjjddgddggddgddggd}t|d}tt|t|t|j|jutjd}tjj |d<tj|dd t |j gd dS) NrKrSrGFrrrTrI edge_order)FFTFF) r4rrrrrr_maskr5maskedrr)rarrx2r:r:r; test_maskeds   zTestGradient.test_maskedcCstddd}|d|d}d|dd|dd|}d|dd|d}ttj||dd |d}tt|d kd ktjdttjd}d|dd|dd|}d|dd|d}ttj||dd |d}tt|d kd kdS) NrrKrrIrSrGrprorgQ?T) r4linspaceabsrrrrandomseedsort)rarrr analytical num_errorr:r:r;test_second_order_accurates   z'TestGradient.test_second_order_accuratec Cstgd}t|d|dd}tgd}td}tgdd}tgdd}tgd d}tgd d}d|fd |ffD]r\}} t|d d |d} t|||d |d} t|||d|d} t| | t| | t| d| jt| d| t|d d|d} t||d|d} t | j | j kt| | jt|d d|d} t||d|d} t | j | j kt| | qGd|fd |ffD]E\}} t|||d |d} t|||d|d} t| | t| d| jt| d| t||d|d} t| | jt||d|d} t| | qt|||d dd} t|||ddd} t| d| dt| d| dt| d|jt| d|t|||d d d} t|||dd d} t| d| dt| d| dt| d|jt| d|dS)N)rrrrrr)rprKrZrK)r?rrrrer)rrrrrr)@rrrr)rr333333?r?r)rrrrrgпrIrr[)r~rrr\) r4rtilerrr5rrr r=rr?) rafx_unevenx_even fdx_even_ord1 fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2rexp_resres1res2res3r:r:r; test_spacingsl        zTestGradient.test_spacingcCs@ddgddgg}t|}tddgddggtddgddggg}tt|dd |dtt|dd |dtt|d d |dtt|d d |d|dgtt|dd |d|dgtt|dd t|tt|d dd d |dd|ddgttt|dd dd ttjt|dd ttjt|d d dS)NrKrSrGrrrrrr}rZr\rIrW)r4rrrr r r&rrr:r:r;test_specific_axess" zTestGradient.test_specific_axescCsJtjgddd}tjgddd}tt||t|jtdkdS)N)rWrWrrriA,rr)rIrqrqrwirrr:r:r;test_timedelta645szTestGradient.test_timedelta64cCsDtjtjtjfD]}tjgd|d}tt|jt|jqdS)Nrr) r4float16rrrrrrr)radtrr:r:r;test_inexact_dtypes@sz TestGradient.test_inexact_dtypescCsttdddttdddttttdddttttdddttttdddttttdddttttddddS)NrIrKrrSr)rr4r5r r^rr:r:r; test_valuesFszTestGradient.test_valuesf_dtypecCs2tjgd|d}t|}t|dgt|dS)N)rTrGrSrIrKrrZr4rrrr )rar rgr:r:r;test_f_decreasing_unsigned_intRsz+TestGradient.test_f_decreasing_unsigned_intcCsRt|j}tddg}tjd|g|d}t||}t||ddgddS)NrKrSrZrrI)r4iinforrrr)rar maxintrrdfdxr:r:r;test_f_signed_int_big_jumpYs  z'TestGradient.test_f_signed_int_big_jumpx_dtypecCsBtjgd|d}tgd}t||}t|dgt|dS)NrrrrIrGrQr )rarrrrr:r:r;test_x_decreasing_unsignedbs z'TestGradient.test_x_decreasing_unsignedcCsXt|j}t|j}tjd|g|d}t|ddg}t||}t|ddgdS)NrZrrIrr)r4r minrrrr)rarminintrrrrr:r:r;test_x_signed_int_big_jumpjs   z'TestGradient.test_x_signed_int_big_jumpN)rxryrzrgrrrrrrrrrrrAmark parametrizer4r'ryr{uint64r rrxrzint64rrrr:r:r:r;rys8 @     rc@r) TestAnglec Csdtdddtdddddddd g}t|}td td d tjdtjtj dtd  tjtd g}t|d d}t|dtj}t||dt||ddS)N?@rIrrrKrZ?y@rrrT)degrrk)r4sqrtrarctanpirr )rarryozzor:r:r;rgws     zTestAngle.test_basiccCstjddtdddg}tjj|d<tjtddtdg}tjj|d<t|}tt|t|t|j |j t||dS)NrrKrI??rrr) r4rrr rr!rrrr)rarrrr:r:r;rGs   zTestAngle.test_subclassN)rxryrzrgrGr:r:r:r;ru rc @seZdZegdZeeZee Z ee Z ddZ ddZddZdd Zd d Zd d ZejdegdegdegdgddZddZddZdS) TestTrimZeros)rrrKrrIrSrGrcsd}fdd|DS)N)rbrrr c3s|]}t|VqdSr3)getattr)rnamerr:r; z'TestTrimZeros.values..r:)ra attr_namesr:rr;r szTestTrimZeros.valuescCs6tjdd}|D] }t|}t|||q dS)NrIrZr4s_r r/rraslcarrresr:r:r;rgs  zTestTrimZeros.test_basiccCs:tjdd}|D]}t|dd}t|||q dS)NrZrtrimr.r0r:r:r;test_leading_skip   zTestTrimZeros.test_leading_skipcCs:tjdd}|D]}t|dd}t|||q dS)NrIrr4r.r0r:r:r;test_trailing_skipr7z TestTrimZeros.test_trailing_skipcCsZ|D]&}tj||jd}t|dd}t|dksJt|dd}t|dks*JqdS)NrBr4rr)r r4 zeros_likerr/r )ra_arrr2rrr:r:r; test_all_zeros   zTestTrimZeros.test_all_zerocCs td}t|}t||dSr$)r4r=r/rrar2r3r:r:r;test_size_zeros zTestTrimZeros.test_size_zeror2)rlr)rlr)rlrcCs(tjdd}t|}t|||dS)NrKrI)r4r/r/r)rar2r1r3r:r:r; test_overflowszTestTrimZeros.test_overflowcCs$tgd}t|}t||dS)N)NrKN)r4rr/rr=r:r:r; test_no_trimszTestTrimZeros.test_no_trimcCs t|j}t|tsJdSr3)r/rbtolistrEr)rar3r:r:r;test_list_to_listszTestTrimZeros.test_list_to_listN)rxryrzr4rrbrrQrcomplexrobjectr r rgr6r8r<r>rArrr?r@rBr:r:r:r;r(s*         r(c@rE) TestExtinscCs.tgd}t|dk|}t|gddS)N)rKrSrIrKrIrSrSrK)rSrIrIrSrS)r4rrrrr:r:r;rgszTestExtins.test_basiccstttgdddgddgtgdtgdgdtgd ttd gttdd tgd d d gtgdtt dfddtddgtddgdtddgdS)NrTFrrK)rKrGrSrIrTrorq)rrKrrKrrKrrIrGrp)rKrIrSrGrTrprqrqro)rKrrKrrKrrKr)rorIrrGrorprz!Cannot insert from an empty arraycstgdgS)N)rrrrrrKr)r)r:rbr:r;sz'TestExtins.test_place..12349) r r&r)r4rrr=r5rr^rr:rGr; test_places zTestExtins.test_placecCsHtd}|dk}|}t||}t||dt|||t||dS)Nrrr)rrrr)r)rarbracrr:r:r; test_boths   zTestExtins.test_bothN)rxryrzrgrLrNr:r:r:r;rEs rErcCs|t|Sr3mathfloorrrr:r:r;_foo1rSrcCs|t||Sr3rO)rrr$r:r:r;_foo2srUc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dES)F TestVectorizecCs4dd}t|}|gdgd}t|gddS)NcS||kr||S||Sr3r:rbrr:r:r; addsubtractz.TestVectorize.test_simple..addsubtractrrSrprrKrSrTrqrKrprKrIr2rrarYrr>r:r:r; test_simpleszTestVectorize.test_simplecCs0dd}t|}|gdd}t|gddS)NcSrWr3r:rXr:r:r;rYrZz.TestVectorize.test_scalar..addsubtractr[rT)rTrorKrGr^r_r:r:r; test_scalarszTestVectorize.test_scalarcCs0tddd}tdd}||}t||dS)NrWrIi'cS|Sr3r:rr:r:r;rHz*TestVectorize.test_large..)r4rr2r)rarrrr:r:r; test_larges zTestVectorize.test_largecCsRttj}tddtjtjdtjdtjg}||}t|}t||dS)NrrrrI)r2rPcosr4rr"r )rarargsr1r2r:r:r; test_ufuncs ( zTestVectorize.test_ufunccCsfddd}t|}tgd}||}tgd}t||||d}tgd}t||dS) NrKcS||Sr3r:rXr:r:r;rJ(z(TestVectorize.test_keywords..foorr9rIrRrr2r4rrrarJrrfrgrhr:r:r; test_keywords&s   zTestVectorize.test_keywordscCs:tttgd}|tdd}|td}t||dSNotypesrrr2rSrQr4r5rrarrgrhr:r:r; test_keywords_with_otypes_order14sz.TestVectorize.test_keywords_with_otypes_order1cCs:tttgd}|td}|tdd}t||dSrorrrsr:r:r; test_keywords_with_otypes_order2>sz.TestVectorize.test_keywords_with_otypes_order2cCsTtttgd}|td}|tddd}|td}t||t||dS)Nrprrrrrrarrgrhr3r:r:r; test_keywords_with_otypes_order3Is  z.TestVectorize.test_keywords_with_otypes_order3cCsdtttgd}|ddd}|ddd}|d}t|tdddt|tdddt|tddS)Nrp$@r))r$rZrvr2rUrQrrwr:r:r;+test_keywords_with_otypes_several_kwd_args1Us  z9TestVectorize.test_keywords_with_otypes_several_kwd_args1cCsRtttgd}|dddd}|ddd}t|tddddt|tddddS) Nrpr)rzrZ)r$rrrKrIrSr{rsr:r:r;+test_keywords_with_otypes_several_kwd_args2bs  z9TestVectorize.test_keywords_with_otypes_several_kwd_args2cCs.ddl}zt|jWdStytwr$)rr2 randrange ExceptionAssertionError)rarr:r:r;test_keywords_no_func_codems  z(TestVectorize.test_keywords_no_func_codecCsd dd}t|}tgd}||d}tgd}t|||d|d}t||||dd }tgd }t||dS) NrKcSrjr3r:rXr:r:r;rJzrkz5TestVectorize.test_keywords2_ticket_2100..foorrGr9)rrbrIrrRrrlrmr:r:r;test_keywords2_ticket_2100ws      z(TestVectorize.test_keywords2_ticket_2100cCsrdd}tj|ddgd}ddg}t||ddggd d t||ddggd d t||ddggd dS) NcSs0t|}|d}|r|||d}|s |Sr$)rpop)rp_pr3r:r:r; mypolyvals  z;TestVectorize.test_keywords3_ticket_2100..mypolyvalrrK)excludedrSrprr)rr)r)r4r2r)rarvpolyvalansr:r:r;test_keywords3_ticket_2100s z(TestVectorize.test_keywords3_ticket_2100cCs.tdd}t|ddgddgdddgdS) Nc[sd}|D]}|||9}q|SNrr:)kwr3_kr:r:r;rsz3TestVectorize.test_keywords4_ticket_2100..frKrIrSrGrXror^rarr:r:r;test_keywords4_ticket_2100s "z(TestVectorize.test_keywords4_ticket_2100cCs,tdd}t|ddgddgddgdS)NcW t|Sr3)r4r)rr:r:r;rs z3TestVectorize.test_keywords5_ticket_2100..frKrIrSrGror^rr:r:r;test_keywords5_ticket_2100s  z(TestVectorize.test_keywords5_ticket_2100cCs dd}t|}t|ddS)NcSdSNrKr:r:r:r:r;rJz5TestVectorize.test_coverage1_ticket_2100..foorKr^rarJrr:r:r;test_coverage1_ticket_2100sz(TestVectorize.test_coverage1_ticket_2100cCs>dd}t|}t|j|jd}t||d}t|j|dS)NcSrb)zOriginal documentationr:rr:r:r;rJz3TestVectorize.test_assigning_docstring..foozProvided documentation)doc)r2r__doc__)rarJrrr:r:r;test_assigning_docstrings  z&TestVectorize.test_assigning_docstringcCs`Gddd}tt|jtdtddtt|j|tdtdddS)Nc@seZdZdZddZdS)z9TestVectorize.test_UnboundMethod_ticket_1156..FoorIcSs ||jSr3rrmr:r:r;rKs z=TestVectorize.test_UnboundMethod_ticket_1156..Foo.barN)rxryrzrrKr:r:r:r;Foos rrrI)rr2rKr4r5)rarr:r:r;test_UnboundMethod_ticket_1156s  z,TestVectorize.test_UnboundMethod_ticket_1156cCsltdd}|td}|tdd}tdd}|tdd}|td}t||t||dS)NcSrbr3r:rr:r:r;rHrcz@TestVectorize.test_execution_order_ticket_1487..rSrcSrbr3r:rr:r:r;rHrc)r2r4r5r)raf1res1ares1bf2res2bres2ar:r:r; test_execution_order_ticket_1487s   z.TestVectorize.test_execution_order_ticket_1487cCs$tdd}d}t|||dS)NcSrbr3r:rr:r:r;rHrcz7TestVectorize.test_string_ticket_1892..d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r4r2r)rarrr:r:r;test_string_ticket_1892sz%TestVectorize.test_string_ticket_1892csNdgtfdd}d|_td}t||||tdt|dS)Nrcsdd7<|dS)NrrKrIr:r_callsr:r;rsz#TestVectorize.test_cache..fTrT)r2cacher4r5rrr rarrr:rr; test_caches zTestVectorize.test_cachecCs0tdd}d|_td}t|||dS)NcSrbr3r:rr:r:r;rHrcz+TestVectorize.test_otypes..rrT)r4r2rqr5rrr:r:r; test_otypess zTestVectorize.test_otypescCs2ttddgdgfttddgdgfttdddgdgfttddgdgfttd dgddgfttd gd d gftt td Wdn1s_wYtt tdWdn1sxwYtttdWddS1swYdS)Nz(x)->()rr:z (x,y)->()rRz (x),(y)->()rvz(x)->(y)z (x)->(y),()z(),(a,b,c),(d)->(d,e))r:)rbrr)r )r ez (x)(y)->()z (x),(y)->z ((x))->(x))rnfb_parse_gufunc_signaturer r^rr:r:r;test_parse_gufunc_signatures2                "z)TestVectorize.test_parse_gufunc_signaturecCs8dd}t|dd}|gdgd}t|gddS)NcSrWr3r:rXr:r:r;rYrZz8TestVectorize.test_signature_simple..addsubtractz (),()->() signaturer[r\r]r^r_r:r:r;test_signature_simples z#TestVectorize.test_signature_simplecCs:dd}t|dd}|ddgddgg}t|ddgdS) NcSs|Sr3rrGr:r:r;rrkz4TestVectorize.test_signature_mean_last..meanz(n)->()rrKrSrIrGr^)rarrr>r:r:r;test_signature_mean_last s z&TestVectorize.test_signature_mean_lastcCsBdd}t|dd}|ddgddgg}t|d dgd dggdS) NcSs ||Sr3rrGr:r:r;centers z3TestVectorize.test_signature_center..center(n)->(n)rrKrSrIrGrZr^)rarrr>r:r:r;test_signature_centers z#TestVectorize.test_signature_centercCs^tdddd}|gd}tt|tot|dkt|dgdt|dgddS) NcS||fSr3r:rr:r:r;rHz:TestVectorize.test_signature_two_outputs.. ()->(),()rrrIrrK)r2rrEtupler rrarr>r:r:r;test_signature_two_outputss  z(TestVectorize.test_signature_two_outputscCsttjdd}|ddggd}t|gdgdg|ddggggd}t|gdgdggg|ddgddgggd}t|gdgdggdgdgg|ddggdgdg}t|gdgdggdgdggdS) Nz(a),(b)->(a,b)rrKrIrrFrr)r2r4r7rrr:r:r;test_signature_outer$s z"TestVectorize.test_signature_outercCsXtdddd}|gd}t|ddg|gdgdg}t|ddgdd ggdS) NcS |ddSNrZr:rr:r:r;rH5 z.z(n)->(m)rrrKrIr9rSr^rr:r:r;test_signature_computed_size4s  z*TestVectorize.test_signature_computed_sizecCsNd dd}t|ddhd}t|gdgdt|gdd d gddS) NrKcSrjr3r:rXr:r:r;rJ>rkz2TestVectorize.test_signature_excluded..foo()->()r)rrrr9rrrr^rr:r:r;test_signature_excluded<s z%TestVectorize.test_signature_excludedcCsDtddddgd}|gd}t|jtdt|gddS)NcSrbr3r:rr:r:r;rHFrcz5TestVectorize.test_signature_otypes..rrrrqr)r2rrr4rrr:r:r;test_signature_otypesEs z#TestVectorize.test_signature_otypescCsttjdd}ttd|ddgWdn1swYttd |ddWdn1s7wYttd|ddggdWdn1sUwYttjd d}ttd|ddWddS1swwYdS) Nz (n),(n)->(n)rzwrong number of positionalrKrIzdoes not have enough dimensions$inconsistent size for core dimensionrr)r2operatorr6rr&r^rr:r:r;test_signature_invalid_inputsKs$    "z+TestVectorize.test_signature_invalid_inputscCstdddd}ttd|gdWdn1swYtdddd}ttd  |d Wdn1s?wYtd dd d}ttd |d d gWddS1scwYdS)NcSrrr:rr:r:r;rH\rz>TestVectorize.test_signature_invalid_outputs..rrrrcSrbr3r:rr:r:r;rHarcrzwrong number of outputsrKcSrr3r:rr:r:r;rHerrrI)r2rr^rr:r:r;test_signature_invalid_outputsZs   "z,TestVectorize.test_signature_invalid_outputscCs^tdd}tjddgtd}ttd ||Wdn1s$wYd|_t|||tjddd d }ttd ||Wdn1sPwYtjd dd dd }t|||tjd dddd }t|||tjdddd }t||j|jtjddddd }ttd ||WddS1swYdS)NcSrbr3r:rr:r:r;rHkrcz5TestVectorize.test_size_zero_output..rrTrrqrcSrbr3r:rr:r:r;rHsrcrrcSrbr3r:rr:r:r;rHwrcrcSrbr3r:rr:r:r;rHzrcrcSrbr3r:rr:r:r;rH}rccSs|gSr3r:rr:r:r;rHsz()->(n)znew output dimensions) r4r2r=intrr^rqrr=rr:r:r;test_size_zero_outputis*      "z#TestVectorize.test_size_zero_outputN)%rxryrzr`rardrirnrtruryr|r}rrrrrrrrrrrrrrrrrrrrrrrrr:r:r:r;rVsF               rVc@sLeZdZGdddZejje ddejddej fdgdd Z d S) TestLeaksc@s$eZdZdZddZeddZdS)z TestLeaks.ArOcGrr$r:rarfr:r:r;boundrzTestLeaks.A.boundcGrr$r:)rfr:r:r;unboundrzTestLeaks.A.unboundN)rxryrzitersr staticmethodrr:r:r:r;As rPython lacks refcountsreasonz name, incrr)rrc Csddl}t|j|}|zKt|}t|jjD]}|}t t||dd|_ | t d}qd}t t|||tdD]}| qDt t||W|dS|w)NrrKrrT)gcr)rdisablesys getrefcountr`rr4 frompyfuncrr5rcollectenable) rar*incrrA_funcrefcountrrbrr:r:r;test_frompyfunc_leakss    zTestLeaks.test_frompyfunc_leaksN) rxryrzrrArskipifrrrrr:r:r:r;rs rc@szeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ejjddddZdS) TestDigitizecCs2tdd}tdd}tt||tddS)NrrTrWrkr4r5rrrarbinsr:r:r; test_forwards  zTestDigitize.test_forwardcCs6tddd}tddd}tt||tddS)NrTrrZrWrkrrr:r:r; test_reverseszTestDigitize.test_reversecCs:td}t||d}ttt||dkdS)Nrrrr4rrrrrr)rarbinr:r:r; test_randomszTestDigitize.test_randomcCsFgd}gd}gd}tt|||gd}tt||d|dS)N)rKrTrGrrorkr)rKrTr)rKrIrKrSrIrSr)rrKrKrIrIrSrT)rr)rarrdefault_answer right_answerr:r:r;test_right_basics zTestDigitize.test_right_basiccCs4tdd}tdd}tt||dtddS)NrrTrGTrkrrr:r:r;test_right_opens  zTestDigitize.test_right_opencCs8tddd}tddd}tt||dtddS)NrTrrZrGTrkrrr:r:r;test_right_open_reversesz$TestDigitize.test_right_open_reversecCs<td}t||d}ttt||ddkdS)NrTrrr:r:r;test_right_open_randomsz#TestDigitize.test_right_open_randomcCsgd}gd}tt||dgdtt||dgdgd}tt||dgdtt||dgd gd }tt||dgd tt||dgd gd }ttt||gd}ttt||dS)N)rZrrKrIrF)rrIrSrST)rrrIrSr)rSrIrr)rSrSrIrr)rrrGrG)rrrrGr)rKrKrrK)rrr r^rr:r:r;test_monotonicszTestDigitize.test_monotoniccCs:gd}gd}ttt||||}}ttt||dS)N)rKrIy@?r)r r&rrr:r:r;test_casting_errors  zTestDigitize.test_casting_errorcCshGdddtj}td|}tdd|}ttt||d| ttt||d| dS)Nc@r)z(TestDigitize.test_return_type..ANrr:r:r:r;rrrrTrKrSFT)r4rr5rrrEr)rarrbrr:r:r;test_return_types zTestDigitize.test_return_typecCs&d}tt||d|dgddSNlrKrr4rrHr:r:r;test_large_integers_increasings"z+TestDigitize.test_large_integers_increasingz8gh-11022: np.core.multiarray._monoticity loses precisionrcCs&d}tt||d|dgddSrrrHr:r:r;test_large_integers_decreasings"z+TestDigitize.test_large_integers_decreasingN)rxryrzrrrrrrrrrrrrArxfailrr:r:r:r;rs  rc@r) TestUnwrapcCsHttdddtjgddgtttttddtjkdS)NrKrIrr))rr0r4r"rrrrrr:r:r;r`s (zTestUnwrap.test_simplecCsttddgddddgtttttdddddktgd}t|d}tt|dd|tgd }t|d }t|d d}t|gd t|d d d }t|gd |j |j ksfJdS)NrKiperiodrIr)rKr)rrrrri)rrrrrr)rdiscont) rr0rr4rrrrmodr)ra simple_seqwrap_seq uneven_seq wrap_uneven no_discont sm_discontr:r:r; test_period s&   zTestUnwrap.test_periodN)rxryrzr`r r:r:r:r;r rc@s,eZdZddZddZddZddZd S) TestFilterwindowscC0td}t|t|ttj|dddddS)Nrrr}@rG)r!rrr r4rrarr:r:r; test_hanningzTestFilterwindows.test_hanningcCr)Nrrr}g(\@rG)r rrr r4rrr:r:r; test_hamming&rzTestFilterwindows.test_hammingcCr)Nrrr}g^)@rG)rrrr r4rrr:r:r; test_bartlett-rzTestFilterwindows.test_bartlettcCr)Nrrr}g= ףp=@rG)rrrr r4rrr:r:r; test_blackman4rzTestFilterwindows.test_blackmanN)rxryrzrrrrr:r:r:r;rs  rc@rE) TestTrapzcCsHtddd}ttd|dtdtjdd}t|dddS) NrrrrI)rrKrq)r4r5r.rr r"r )rarr>r:r:r;r`>s*zTestTrapz.test_simplec Cs&tddd}tddd}tddd}t||d|d}|dd<|dd<t||d|d}|dd<|dd<t||d|d}|dd<|dd<|ddddf|ddddf|ddddf}||ddddfjdd}||ddddfjdd} ||ddddfjdd} t||ddddfdd } t| |t||ddddfdd } t| | t||ddddfdd } t| | t||dd } t| |t||dd } t| | t||dd } t| | dS) NrrKrSrIrorXrZr})rr~)r4r ones_likerr.r ) rarrr$wxwywzqqxqyqzr>r:r:r; test_ndimDs86     zTestTrapz.test_ndimcCstd}||}|dk}tjj||d}d}tt|||tjj||d}tt|||tjj||d}tt|||dS)NrTrIrg*@)r4r5rrr r.)rarrrymr>xmr:r:r;ris zTestTrapz.test_maskedN)rxryrzr`r"rr:r:r:r;r<s %rc@r)TestSinccCs6ttddkttddd}t|t|ddS)NrrKrZr)rq)rr-r4rr rrr:r:r;r`|szTestSinc.test_simplecCsFddg}tt|}tt|}tt|}t||t||dS)Nrr)r-r4rrrr)rarrrrr:r:r;test_array_likes    zTestSinc.test_array_likeN)rxryrzr`r&r:r:r:r;r%zrr%c@rS) TestUniquecCstgd}ttt|gdktttgdtdgkgd}ttt|gdktgd}ttt|gdkdS) N) rGrSrIrKrKrIrSrGr)rrKrIrSrG)rKrKrKrKrKrK)widgethamrJrKrJr))rKrJr)r()@@r&?$@rr*)r&r+r*r)r4rrrr1rHr:r:r;r`s"zTestUnique.test_simpleNrxryrzr`r:r:r:r;r'rar'c@r)TestCheckFinitecCsPgd}ddtjg}ddtjg}tj|tttjj|tttjj|dS)NrrKrI)r4infrlibasarray_chkfiniter r^rr:r:r;r`s    zTestCheckFinite.test_simplecCs0gd}tjj|dtjd}t|jtjkdS)Nrr)rr)r4r/r0rrrrmr:r:r;test_dtype_ordersz TestCheckFinite.test_dtype_orderN)rxryrzr`r1r:r:r:r;r-rr-c @seZdZegdgdgdgZegdgdgdgZegdgdgd gZegd gd gd gd gdgdgZddZ ddZ ddZ ddZ ddZ ddZddZddZejd ejejejejgd!d"Zd#S)$ TestCorrCoef)g^?g.{<?g$,?)g4?gp)?gJG?)gY?g?gވ0v?)gة?gBFU?gG)t?)g3TB?gL\?gA?)g> ?gqFE`?g5?)rޛ?r@)r3rp]4?)r4r5r)rr3r4?'L?(8?4V}?)r3rr5w{,H5?jS, ?)r4r5r)h?5#A?)r6r9r<rtoB C,)r7r:r=r?r@02v?)r8r;r>r@rArcCs*ttgdgdddgddggdS)Nr)rKrrKr)r r4rrr:r:r;test_non_arrayszTestCorrCoef.test_non_arraycCsdt|j}t||jttt|dkt|j|j}t||j ttt|dkdSr) rrr rrr4rrr9r)ratgt1tgt2r:r:r;r`s   zTestCorrCoef.test_simplecCstL}tdttt|jdd|ttt|jdd|j tt|j|j dd|j tt|jdd|j tt|j|j dd|j WddS1sRwYdS)Nr0rZddofrS) rr3 simplefilterrDeprecationWarningrrfilterr rr9rrasupr:r:r; test_ddofs  "zTestCorrCoef.test_ddofcCs~t2}tdttt|j|jddttt|jdd|tt t|jdd|j WddS1s8wYdS)Nr0rKr)bias) rr3rHrrIrrr9rJr rrKr:r:r; test_biass  "zTestCorrCoef.test_biascCsZtgdgdg}t|}tddgddgg}t||ttt|dkdSNrry@r"rrr)r4rrr rrr)rarr3rr:r:r; test_complexs  zTestCorrCoef.test_complexcCsHtgdg}tgdg}tt||tddgddggdSrP)r4rr rrarrr:r:r;test_xys(zTestCorrCoef.test_xycCtjddJtdttttgtjtttg ddtg ddtttg ddttjtjgtjtjggWddS1sSwYdSNTr.r0rrI) r3r4rHRuntimeWarningrrr4rrrrrr:r:r; test_empty "zTestCorrCoef.test_emptycCs|ddgddgg}tjdd t|}Wdn1swYt|tddgddggttt|dkdS)Ng0.++g}Ô%ITraise)rrrB)r4errstaterr rrrr)rarrr:r:r; test_extremes  zTestCorrCoef.test_extreme test_typecC*|j|}t||d}||jksJdSNr)rrrr)rar]cast_Ar3r:r:r;test_corrcoef_dtype  z TestCorrCoef.test_corrcoef_dtypeN)rxryrzr4rrr9rrrCr`rMrOrRrTrXr\rArrhalfsingledouble longdoublerar:r:r:r;r2sL    r2c@s\eZdZeddgddgddggjZeddgddggZejgdddZegdZ ed gdgdgdgdgd ggjZ ed d gd d ggZ ej d ej dZegdZeddgddggZe d ZegdZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zejd'ej ej!ej"ej#gd(d)Z$d*S)+TestCovrrIrKrrB)rrr)ndmin)rKrGrKrrg?gٿrSr)rrrgUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?cCstt|j|jdSr3)r rx1rrr:r:r;rgszTestCov.test_basiccCsVtgdgdg}tddgddgg}tt||tt|tdd|dS)NrrQrrrrSaweights)r4rr rr_)rarr3r:r:r;rRszTestCov.test_complexcCsFtgdg}tgdg}tt||tddgddggdSrP)r4rr rrSr:r:r;rTs&zTestCov.test_xycCrUrV) r3r4rHrWrrr4rrrrrr:r:r;rXrYzTestCov.test_emptycCsptjdd(tdttt|jddttj tj gtj tj ggWddS1s1wYdS)NTr.r0rTrF) r3r4rHrWrrrir4rr.rr:r:r;test_wrong_ddof's  "zTestCov.test_wrong_ddofcCsJtt|jt|jddtgd}tt|j|t|j|dddS)NF)rowvar)g+?g4@?g&S?go_?gJ4?)r rx3r4rrarr:r:r;test_1D_rowvar.s"zTestCov.test_1D_rowvarcCs$tt|jddtj|jdddS)NrKrF)r rrnr4varrr:r:r;test_1D_variance3s$zTestCov.test_1D_variancecCstt|j|jdt|jtt|j|jd|jtt|j|jd|j|jd}t t t|j|dt j dt j d}t tt|j|dt j dt j d}t tt|j|ddt j dt j d}t tt|j|ddS)N)fweightsrrIrSrrIrZrS)r rr frequencies x2_repeatsrirunit_frequenciesrr r&r4r_r% RuntimeErrorr^)ranonintrr:r:r; test_fweights6s" zTestCov.test_fweightscCstt|j|jd|jtt|jd|jdt|j|jdtt|j|jd|jtd}t t t|j|dtd}t t t|j|ddtd}t t t|j|ddS)NrjrrtrIrBrS) r rrirr unit_weightsrr4r_r rxr^rr:r:r; test_aweightsFs  zTestCov.test_aweightscCstt|j|j|jdt|jtt|j|j|jd|jtt|j|j|jd|j tt|j|j|j d|j tt|j|jd|j dt|j|j dtt|j|j|jd|j dS)N)rsrkrrj) r rrrur{rvrirrwrrrrr:r:r;test_unit_fweights_and_aweightsRs<      z'TestCov.test_unit_fweights_and_aweightsr]cCr^r_)rirrr)rar]cast_x1r3r:r:r;test_cov_dtypefrbzTestCov.test_cov_dtypeN)%rxryrzr4rr=rirrrurvrr_r%rwrrr{rnrgrRrTrXrlrprrrzr|r}rArrrcrdrerfrr:r:r:r;rgs0$   rgc@rE)Test_I0c Csttdtdtgd}tgd}tt||tt| |tddgddgd d gd d gd dgg}tt|tddgddgddgddgddggtdg}t|jdttdgtdgdS)Nrgǒ#?)gC7?gmM?g3a,?g$WV?ۏ?rX)gֿN^?gE ?g閡1?g%m??gDn@g>@v?guͥ?gVX˳?gua&?gB-sJ?g-^ ?g_V?g X.?gVaX?gj?gp?g~-@?gD/b?gݦ?g,Y1ؔ?g[!?gQL?gWsU+?g@?gfxw?rrr)r r"r4rrr?r)rarrr9i0_0r:r:r;r`os4    zTest_I0.test_simplecsVtdGfddd}tt||sJt}t|}t||dS)NrGcseZdZjZddZdS)z*Test_I0.test_non_array..array_likecSrbr3r:)rar2r:r:r;__array_wrap__rz9Test_I0.test_non_array..array_like.__array_wrap__N)rxryrz__array_interface__rr:rGr:r; array_likes r)r4r5rErr"r)rarrr3r:rGr;rCs   zTest_I0.test_non_arraycCsJtddg}tjtdd t|}WddS1swYdS)Nry?@z#i0 not supported for complex valuesmatch)r4rrArBr&r")rarbr3r:r:r;rRs "zTest_I0.test_complexN)rxryrzr`rCrRr:r:r:r;rms rc@r) TestKaisercCs|tttddttddtgttddtddgttddtgdttddtgd dS) NrKrrrI oF?rT)rvT=?rrrgg?)?YJ?rrr)rr4isfiniter%r rrr:r:r;r`s       zTestKaiser.test_simplecCstdddS)NrSrG)r%rr:r:r; test_int_betarTzTestKaiser.test_int_betaN)rxryrzr`rr:r:r:r;rr'rc@rS) TestMsortcCsFtgdgdgdg}tt|tgdgdgdgdS)N)\?bCQ?הs?)w? kl?*dta?)ӯ?6H?ܘC?)rrr)rrr)rrr)r4rr r')rarr:r:r;r`s  zTestMsort.test_simpleNr,r:r:r:r;rrarc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS) TestMeshgridc Csjtgdgd\}}t|tgdgdgdgdgt|tgdgdgdgdgdS)NrrGrTrprq)rGrGrG)rTrTrT)rprprp)rqrqrqr&rr4rraXYr:r:r;r`s zTestMeshgrid.test_simplecCs&tgd\}t|tgddS)Nrlr)rarr:r:r;test_single_inputszTestMeshgrid.test_single_inputcCs*g}tgt|tgt|ddidS)NrF)rr&rr:r:r; test_no_inputszTestMeshgrid.test_no_inputcCsgd}gd}t||dd\}}t|tgdgdgdgt|tgdgdgdgdd g}tt||d jd ktt||ddd jd ktt|||d jd ktt|||ddd jdkttt||dddS)Nrrijindexingr)rIrIrIrI)rSrSrSrSrorrrrSrG)rGrSrI)rSrGrInotvalid)r&rr4rrr?r r^)rarrrrr$r:r:r; test_indexings"zTestMeshgrid.test_indexingcCsTtgdgddd\}}t|tgdgt|tdgdgdgdggdS) NrrTsparserGrTrprqrrr:r:r; test_sparses$zTestMeshgrid.test_sparsecCstttgdgddddS)Nrrr)r)r r&r&rr:r:r;test_invalid_argumentss z#TestMeshgrid.test_invalid_argumentscCstjddtjd}tjddtjd}t||\}}t|j|jkt|j|jktj||dd\}}t|j|jkt|j|jktj||dd\}}t|j|jkt|j|jkdS)NrrrrOT)rr)r4r5rrr&rr)rarrrrr:r:r;rszTestMeshgrid.test_return_typecCsrtddg}tddg}tj||ddd\}}d|dddf<t|dddfdt|d ddf|dS) Nrrgffffff @g@FT)rrrrK)r4rr&r)rarrrrr:r:r;test_writeback s zTestMeshgrid.test_writebackcCshtjddtddD\}}}}}d}t|j|t|j|t|j|t|j|t|j|dS)Ncss|]}dg|VqdS)rNr:rrr:r:r;r+ r,z-TestMeshgrid.test_nd_shape..rKrp)rIrKrSrGrT)r4r&r`rr?)rarbrrr rexpected_shaper:r:r; test_nd_shape s$    zTestMeshgrid.test_nd_shapecCsptdgddggd\}}}t|gdggdggt|gdggdggt|gdggdggdS)NrrKrIrRrrrHr4r&rrr:r:r;test_nd_values! szTestMeshgrid.test_nd_valuescCsntjdgddggddd\}}}t|gdgdggt|gdgd ggt|gdgdggdS) NrrKrIrRrrrrrHrrr:r:r;test_nd_indexing' s"zTestMeshgrid.test_nd_indexingN)rxryrzr`rrrrrrrrrrr:r:r:r;rs   rc@r{) TestPiecewisecCs4tddgddgdg}t|ddgtddgddggdg}t|ddgtddgtddgdg}t|ddgtddgtddgdg}t|ddgtddgtddggdg}t|ddgtddgddggddg}t|ddgttdtddgddgggttdtddgddgggd dS) NrTFrKcSrrr:rr:r:r;rHE rcz+TestPiecewise.test_simple..rZz1 or 2 functions are expectedr)r(rr4rrr^rHr:r:r;r`0 s$zTestPiecewise.test_simplecCs2tddgddgddggddg}t|ddgdS)NrKrITFrSrGr(rrHr:r:r;test_two_conditionsM s z!TestPiecewise.test_two_conditionscCs"tdgdgd}t|ddS)NrS)TFF)rGrIrrG)r(rrHr:r:r;$test_scalar_domains_three_conditionsQ sz2TestPiecewise.test_scalar_domains_three_conditionscCsNtddgddgdg}t|ddgtddgddgddg}t|ddgdS)NrKrITFrrSrrHr:r:r; test_defaultU szTestPiecewise.test_defaultcCstd}t||dkddg}t|jdkt|dkd}t|ddgddg}t|jdkt|dkt|gdgd }t|ddS) NrSrGrrTTFrKrr)r4rr(rrrrSr:r:r;rC^ s   zTestPiecewise.test_0dcCsd}t||dk|dkgddg}t|dd}t||dk|dk|dk|dkggd}t|dttdt||dk|dkgdgttdt||dk|dkggd dS) NrSrGrrTrrIz2 or 3 functions are expectedrKr)r(rrrr^rSr:r:r;test_0d_comparisonm s * z TestPiecewise.test_0d_comparisoncCs8td}t|dk}t||gddg}t|ddS)NrSrKrI)r4rr(r)rarrrr:r:r;test_0d_0d_condition| s z"TestPiecewise.test_0d_0d_conditioncCsRtgdgdg}t||dk|dkggd}t|tgdgdgdS)N)ggr)rrrrrIr-)rBrBrB)rrr)r4rr(rrSr:r:r;test_multidimensional_extrafunc s  z-TestPiecewise.test_multidimensional_extrafunccCs^Gdddtj}td|}t||dk|dkggd}tt||t|gddS)Nc@r)z/TestPiecewise.test_subclasses..subclassNrr:r:r:r;r rrrrrG)rBrr)rBrBrrr)r4rr5rr(rr)rarrr>r:r:r;r s zTestPiecewise.test_subclassesN) rxryrzr`rrrrCrrrrr:r:r:r;r. s  rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ e jje ddddZe jdddggdgddZdS) TestBincountcCs$ttd}t|tddS)NrG)r4bincountr5rr_ror:r:r;r` szTestBincount.test_simplecCs,ttgd}t|tgddS)N)rKrTrIrGrK)rrIrKrrKrK)r4rrrror:r:r; test_simple2 szTestBincount.test_simple2cCs2td}tgd}t||}t||dS)NrG)皙?333333?rr)r4r5rrrrarrrr:r:r;test_simple_weight s  zTestBincount.test_simple_weightcCs@tgd}tgd}t||}t|tgddS)NrKrIrGrTrIrrrrr)rrrrrrr4rrrrr:r:r;test_simple_weight2 s z TestBincount.test_simple_weight2cCsVtgd}tj|dd}t|tgdg}tj|dd}t|tgdS)N)rrKrrKrKrS minlength)rIrSrrrrSr:r:r;test_with_minlength s z TestBincount.test_with_minlengthcCsVtgd}tj|dd}t|tgdtj|dd}t|tgddS)N)rrKrKrIrIrSrSrIr)rKrIrIrIrrrSr:r:r;)test_with_minlength_smaller_than_maxvalue s z6TestBincount.test_with_minlength_smaller_than_maxvaluecCsBtgd}tgd}t||d}t|tgddS)Nrrro)rrrrrrrrrrr:r:r;test_with_minlength_and_weights z,TestBincount.test_with_minlength_and_weightscCs&tjgtd}t|}t||dSr_)r4rrrrrSr:r:r;rX s zTestBincount.test_emptycCs4tjgtd}tj|dd}t|tjdtddS)NrrTr)r4rrrrr=rSr:r:r;test_empty_with_minlength sz&TestBincount.test_empty_with_minlengthcsltjgtdttdfddttdfddtdttdfddttdfd ddS) Nrz"'str' object cannot be interpretedctjddSNfoobarrr4rr:rr:r;rH z.zmust not be negativecrNrZrrr:rr:r;rH rrTcrrrr:rr:r;rH rcrrrr:rr:r;rH r)r4rrrr&r^r5rr:rr;test_with_incorrect_minlength s$     z*TestBincount.test_with_incorrect_minlengthrrcCstttj}tttj}tdD] }tgdqttttj|ttttj|tdD] }tgdgdq  zTestInterp.cCs t|dSr$rDrr:r:r;rH? rcCs td|Sr$rrr:r:r;rH@ rcCst|t|dS)NrQ)rDr4multiplyrr:r:r;rHA s)rAz complex-realz complex-imagz complex-both)paramsidscCs|jS)z( scale function used by the below tests )param)rarequestr:r:r;sc= s z TestInterp.sccCsttdtjdg|ddg|tjttddtjg|ddg|tjttdddg|tjdg|tjttdddg|dtjg|tjdS)z test that nans are propagated rrKrrN)rr4r$rrarr:r:r;test_non_finite_any_nanL s(((,z"TestInterp.test_non_finite_any_nancCsttdtj tj g|ddg|tjttdddg|tj tj g|tjttdddg|tj tj g|tjttdtj tj g|ddg|ddS)z2 Test that interp between opposite infs gives nan rrrrKNrr4r$r.rrr:r:r;test_non_finite_infS s...0zTestInterp.test_non_finite_infcCstttdtj dg|tj dg|tjttdtj dg|tj dg|tjttdtj dg|dtj g|tjttdtj dg|dtj g|tjttddtj g|tj dg|tjttddtj g|tj dg|tjttddtj g|dtj g|tjttddtj g|dtj g|tjdS)z@ Test that interp where both axes have a bound at inf gives nan rrKrrNrrr:r:r;test_non_finite_half_inf_xf\ s.......2z&TestInterp.test_non_finite_half_inf_xfcCsttdtj tj g|ddg|dttdtj dg|ddg|dttddtj g|ddg|dttdtj tj g|ddg|ddS)z1 Test interp where the x axis has a bound at inf rrrrKNrr4r$r.rr:r:r;test_non_finite_half_inf_xg s,((0z%TestInterp.test_non_finite_half_inf_xcCsttdddg|dtj g|tj ttdddg|dtj g|tj ttdddg|tj dg|tj ttdddg|tj dg|tj ttdddg|tj tj g|tj ttdddg|tj tj g|tj dS)z1 Test interp where the f axis has a bound at inf rrrKrNrrr:r:r;test_non_finite_half_inf_fn s ,,,,04z%TestInterp.test_non_finite_half_inf_fc Cstddd}tddddtdddd}d}|d|d}tt||||d}d}ttj||||d|d }d}ttj||||d |gd }gd }dd tjdg}dd tjdtjdg}tt||||gd}gd}gd}gd}ttj|||dd|dS)NrrKrTrrrZ@@rrrrrl@?rGy?iLiViGrrWrimiBi^i)@?y$@@@@y@@)y@?r y!@?y@?r y @ @y @ @y@@rr)r4rr r$r.) rarrry0rrrrr:r:r;test_complex_interpw s*$zTestInterp.test_complex_interpcCstddd}tddd}td}tt||||tgd}tgd}ttd||}t|dtt|tjtjtd||dd }t|d tt|tjdS) NrrKrTrr)rKrZrKrrGrr) r4rrr r$rrrEr)rarrrrrrr:r:r;)test_zero_dimensional_interpolation_point s   z4TestInterp.test_zero_dimensional_interpolation_pointcCs2tddd}t|}tttj||ddS)Nrrg-C6?r)r4r5sinr r$r")rarrr:r:r;test_if_len_x_is_small s z!TestInterp.test_if_len_x_is_smallcCsgd}gd}gd}gd}ttj|||dd|tj|ddd d }tj|d dd d }ttj|||dd|dS) Nrr)rTrrSrG)g@r!@g@rg @ @g@rrrrrIrZr)r r4r$rrr)rarrrrr:r:r;r  szTestInterp.test_periodN)rxryrzrrgrrrrAfixturerrrrrrr r rr r:r:r:r;r s0&     rcCs(tt|D] }t||||qdSr3)r`r r)r3rrr:r:r;compare_results src@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3S)4TestPercentilecCs~tdd}tt|ddtt|ddtt|ddtj|d <tt|dtjttj|dd d tjdS) Nrorrrr)rrh?rKnearest interpolation)r4r5r percentilerrHr:r:r;rg s zTestPercentile.test_basiccCsddtdD}t|td}t|tdtt|tt|td}t|tddtt|tt|td}t|tdd tt|tt|tdg}t|ttdd gtt|tjdS) NcSg|]}t|dqSrIrrr:r:r;r rz0TestPercentile.test_fraction..rorr)rqrIrhrG)r`r4rrrrrr)rarrr:r:r; test_fraction szTestPercentile.test_fractioncCsRtd}t|ddddt|dddddtd}t|dd|dddS)NrTFlinearr)r4r_r)rar or:r:r;test_api s  zTestPercentile.test_apicCsFtgdgdgdgdgdg}ttj|dddgddS)Nr)rGrGrSrhrr})r4rrrrHr:r:r;test_2D s zTestPercentile.test_2DcCs4tttdddttjtddddddS)Nrrhrrrrr4rr`rr:r:r; test_linear s zTestPercentile.test_linearcCs8ttjtdddddttjtddddddS)NrrhlowerrrGhigherrTr!rr:r:r;test_lower_higher sz TestPercentile.test_lower_highercCsRttjtdddddttjtdddddttjtddddd dS) Nr3midpointrrrk@rhrTr!rr:r:r; test_midpoint szTestPercentile.test_midpointcCs8ttjtdddddttjtddddddS)Nrr&rrrT1rGr!rr:r:r; test_nearest szTestPercentile.test_nearestcCs,tdd}tt|gdgddS)Nror)rr)rh)rrr)r4r5rrrHr:r:r; test_sequence szTestPercentile.test_sequencecCstddd}tt|dgdgdgdgdg}ttj|dd d |gd gd gd g}ttj|ddd t|jtddddd}tt|djdtt|djdttj|dd d jdttj|ddd jdttj|ddd jdttj|ddd jdttj|ddd jdttj|dddjdttj|dddjdttj|dd ddjdttj|ddddjdttj|ddddjdttj|ddddjdttj|ddddjddS)NrrSrG)rrhr))g@r(r)rIrSrGrTr)rorrrkrr})?rrS)@r(rq)r#@rkrKrrTrprrhr)rrhrrS)rIrGrTrp)rIrSrTrprI)rIrSrGrp)rSrSrTrpr$rr~r)r4r5rrrrrr=r?)rarr0rgr:r:r;r sf       zTestPercentile.test_axiscCstddd}tt|ddttt|dtgd}ttj|ddd|ttj|dddj|jtgd }t tj|dd d|ttj|dd dj|jt d }ttj|d|d dt|dt d}ttj|dd|d |t||t d}ttj|dd |d |t||tddd}ttj|dd ddttt|dtgd}tj|dd dd}t||t|j|jtgd}tj|dd d d}t ||t|j|jtj d|j d}tj|dd |d}t|dt|dtj d|j d}tj|dd d|d}t||t||tj d|j d}tj|dd d |d}t||t||dS)NrrSrGrhr(rrrrerr}rr(r/rKrr~rr#rr)rr~)rrrZr:rrrrTrr~r) r4r5rrrrrisscalarrr?r emptyr)rarr3rgrc0c1rr:r:r; test_scalar_q- sR             zTestPercentile.test_scalar_qcCstttjddgdddtttjdgdtttjdgdtttjdgttddgtttjdgttdd gdS) NrKrI8rrerZrhr)r r^r4rrr`rr:r:r;test_exception] s $zTestPercentile.test_exceptioncCsttgddddS)NrrrK)rr4rrr:r:r;test_percentile_liste sz#TestPercentile.test_percentile_listcCstgd}td}d}tj|||dt|t||tgdgdg}td}tj||d|dt|tj||ddtd }tj||d |dt|tj||d dtd d d }tgdgdg}td}ttj|dd|d|t||tgdgdg}td}ttj|dd |d|t||tgdgdg}tjd|jd}tj|ddd|d}t||t||tgdgdg}tjd|jd}tj|ddd |d}t||t||dS)Nrr1r6rrrr7r}rSrIrKrrSrG)rrrrr4)rIrGr0)r-r.rr5rtrrKrIrSrrr#r9)rrGro)rKrTr) r4rr=rrr5rrr;r)rarrrr3rrgrr:r:r;test_percentile_outh sB           z"TestPercentile.test_percentile_outcCstddddd}ttj|dddjdttj|dddjd ttj|dddjd ttj|dd djd ttj|dd djd ttj|dddjd ttj|dddjd ttj|dddjdttj|ddddjd ttj|ddddjd tttj|ddgddjdtttj|ddgddjdtttj|ddgddjdtttj|ddgd djddS)NrwrkrKrIrhrr})rKrIrK)rkrIrK)rkrKrKrS)rkrKrIrZrQrWr:r'r2r)rIrKrIrK)rIrkrIrK)rIrkrKrK)rIrkrKrI)r4r5rrrrr?rrar r:r:r;test_percentile_empty_dim sB  z(TestPercentile.test_percentile_empty_dimcCshtgd}tj|dgddt|tgdtgd}t|dgt|tgddS)NrIrSrGrKrhFoverwrite_inputr4rrrrmr:r:r;test_percentile_no_overwrite s z+TestPercentile.test_percentile_no_overwritecCstjdddd}tjtd|ddt|tjddddtjdddd}tjtd|ddt|tjdddddS)NrY@rT)numr'r)r4rrr5rrA)rarr:r:r;test_no_p_overwrite s z"TestPercentile.test_no_p_overwritecCs^tgd}tj|dgdd}t|tdgtjgddgdd}t|tdgdS)NrHrhTrIrrKrr:r:r;test_percentile_overwrite s z(TestPercentile.test_percentile_overwritec Cstjjdd}t|gd}ttj|dddt|dt|dd}ttj|dd dt|d|dd }ttj|dd dt|d|dd }ttj|d d gddtj|d d gddttj|d d gddtj|d d gddt d d}tj | ttj|d dddt|dddddddf d ttj|ddgddddd ft|ddddd ddf ddgttj|d dddt|dddddddf d ttj|d dddt|dddddddf d ttj|d dddt|dd ddddf d ttj|d dddt|dddddd f d ttj|d dddt|ddddddf d dS)NGrrror[r}rZrrlrKrjrrrJr+rSrTrqrkZrrKrSrSrKr:rIrSrKrIrCrIrKrKrQrKrSrN)r4rnormaldstackrrmoveaxisrrr5rrshuffleravelflattenrarrr r:r:r;test_extended_axis sJ& *&&"""z!TestPercentile.test_extended_axiscCstd}ttjtj|dddttjtj|dddttjtj|dddttjtj|dddtttj|dddtttj|d ddtttj|d dddS) NrVrWr)r~rrrWrGrrGrP)rZrZ)rSrZ)r4r_r rrr^rFr:r:r;test_extended_axis_invalid s z)TestPercentile.test_extended_axis_invalidcCstd}ttj|ddddjdttj|ddddjdttj|ddddjd ttj|dd ddjd ttj|dd dd jdttj|ddddjdttj|ddgdddjdttj|ddgdddjddS)NrVrqTrfrr[rKrKrqrkrrKrTrqrKrrSrKrqrkrD)rgrXrKrKrqrKrK)rIrKrKrqrK)rIrKrTrqrK)r4r_rrr?rFr:r:r; test_keepdims s: zTestPercentile.test_keepdimscCstd}td}ttj|dd|d|ttj|ddd|d|td}ttj|dd|d|ttj|ddd|d|td }ttj|d |d|ttj|d d|d|dS) NrGrrr6rr8r1rKr:rI)r4r=r_rrrarr r:r:r;test_out s    zTestPercentile.test_outc Cstjddrtddttd}td}tj|d<ttj |dd|d |ttj |ddd |d |td }ttj |d d |d |ttj |d d d |d |td}ttj |d |d |ttj |d d |d |WddS1s{wYdS)NTr.r0r1rnrr[rr6rr8r1rKr:) r3r4r5rWr4r=r_rrrror:r:r; test_out_nan s(     "zTestPercentile.test_out_nancCs:tjdtd}tj|d<tt|dtjttj|dddtjttj|ddgddttjgdtjdtdddd }tj|d <tj|d <tt|dtjtt|djdttjdtdddd dd}tj|d <tj|d <tt|dd|ttjdtdddd ddgd}tj|ddddf<tj|ddddf<tt|ddgd|ttjdtdddd dd}tj|d<tj|d <tt|dd|ttjdtdddd ddgd}tj|ddddf<tj|ddddf<tt|ddgd|ttjdtdddd dd}tj|d<tj|d<tt|dd|ttjdtdddd ddgd}tj|dddf<tj|dddf<tt|ddgd|tjtjdtdddd ddgddd}tj|dddf<tj|dddf<ttj|ddgddd|dS)Nr8rrIrrr}g333333?rSrGrrKrKrIrtrkrKr]rOrr) r4r5rQrrrrrrrrr:r:r;test_nan_behavior$ sl   "  "      z TestPercentile.test_nan_behaviorcCstjtddtgdtjWdn1swYtjtddtgdtjgWdn1srArBrErGrLrOrPrerhrmrprqrsrtr:r:r:r;r s4  $0)     =rc @sleZdZddZddZddZddZd d Zej e e j e jd d d e jdddddddddZdS) TestQuantilecCsHtdd}tt|ddtt|ddtt|dddS)NrorrrrKrr)r4r5rquantilerHr:r:r;rgo szTestQuantile.test_basiccCsltdg}tdd}t||dtt||jtgd}t||}t||t|j|jdS)NTFr)FTT)r4rrvrrrr)rarbtf_quant quant_resr:r:r;test_correct_quantile_valueu s    z(TestQuantile.test_correct_quantile_valuecCs8ddtdD}t|d}t|dtt|tt|d}t|tddtt|tt|tdd}t|tddtt|tt|tddg}t|ttddgtt|tjt|tddgg}t|ttddggtt|tjtd}tt|tddtdddS) NcSrrrrr:r:r;r rz.TestQuantile.test_fraction..rorrKrqrIrG) r`r4rvrrrrrr5)rarrr:r:r;r s$    "zTestQuantile.test_fractioncCsjtgd}|}tjtd|ddt|||}|}tjtd|ddt||dS)N)rr-rrrrMr'r)r4rrrvr5rrA)rap0rr:r:r;rO s z TestQuantile.test_no_p_overwritecCs<tddd}ttgdd|}tt||dS)NrrK{Gz?)rrKrKrIrIrSrSrGrTrTrKrKrrrrororqr)r4r5rvrrr)rarzrvr:r:r;test_quantile_monotonic sz$TestQuantile.test_quantile_monotonicrSr) min_value max_valueFu<7u<7~)allow_infinity allow_nanr}r~)rr?elements)r2cCs.tddd}t||}tt||dS)NrrKr{)r4r5rvrr)rar2rzrvr:r:r;test_quantile_monotonic_hypo s z)TestQuantile.test_quantile_monotonic_hypoN)rxryrzrgryrrOr| hypothesisgivenrr4rstintegersfloatsrr:r:r:r;rul s   ruc @seZdZejejdddddejdddddejdddddejdddddddd Zejejdddddejdddddejdddddd d d Zejejdddddejdddddejdddddd d dZ ddZ dS)TestLerpFrrK)rrr}r~rr)t0t1rbrcCsttjj|||}tjj|||}||ks||kr"||ks JdS||k||kkr2||ks0JdS||ks8JdSr3r4r/ function_base_lerp)rarrrbrl0l1r:r:r;test_lerp_monotonic s zTestLerp.test_lerp_monotonic)trbrcCsd||kr|tjj|||kr|ksJJdS|tjj|||kr-|ks0JJdSr3r)rarrbrr:r:r;test_lerp_bounded s..zTestLerp.test_lerp_boundedcCs@tjj||dd|}tjj||d|}||ksJdSrr)rarrbrrrr:r:r;test_lerp_symmetric szTestLerp.test_lerp_symmetriccCs<td}td}td}tjj|||dksJdS)NrIrTrg@)r4rr/rr)rarbrrr:r:r;test_lerp_0d_inputs s   zTestLerp.test_lerp_0d_inputsN) rxryrzrrrrrrrrr:r:r:r;r sL       rc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS) TestMediancCs>td}td}tddd}tt|dtt|dtt|dttj|ddgd ttj|dddd gttj|dddtgd }t|d|dd t|tgd }t|dt|tgd}t|dt|tt|jdtj |d<tt|jddS)NrKrIrprSrrrr}rrrrG)6-¦? 0?}r?g4 ?r)rrr)rrrrZ) r4rr5rrrmedianr r rr)raa0rLrrbr:r:r;rg s$    zTestMedian.test_basiccCstddgddgddgddgg}|tjjdd d d fD]!}|}tj|dd t|jD] }tj||d q.t||qt tj|dd ddgt tj|j dd ddgt t|d t tj|dd d t t|j d dS)NrIrSrrKrprqrGrTr)r9rTr}r) r4rrrandintrrr`rrr r=)raa3rborigaxr:r:r;test_axis_keyword s  zTestMedian.test_axis_keywordcCstddgddgddgddgg}td}td}tddd}ttj|d d dttj|d d d ttj|d d d ttj|d dd gdttj|d dd ddgttj|d dd d ttj|d dd ddgttj|jd dd ddgtjdtjdd}tj | ttj|ddtj|dd dttj|ddtj|dd dttj|ddtj|dd dttj|ddtj|dd ddS)NrIrSrrKrprqrGrTTrIrr)rJr~rrrrRr})r~rJ) r4rr5rrr rrr=rrrarb)rarrrLra4r:r:r;test_overwrite_keyword sP   z!TestMedian.test_overwrite_keywordcCsFgd}tt|d|g}tt|dttj|dd|dS)NrrIrr})r r4rr )rarrr:r:r;r&7 s zTestMedian.test_array_likecCs2Gdddtj}|gd}tt|ddS)Nc@s eZdZdddZdddZdS)z,TestMedian.test_subclass..MySubClassNcSst||}||_|Sr3)r4rrinfo)cls input_arrayrobjr:r:r;__new__B sz4TestMedian.test_subclass..MySubClass.__new__cSr)Nr:)rar~rrr:r:r;rG rz1TestMedian.test_subclass..MySubClass.meanr3)NNN)rxryrzrrr:r:r:r; MySubClass@ s rrr)r4rrr)rarrbr:r:r;rG> s zTestMedian.test_subclasscCsltd}td}ttj|d|d|td}ttj|d|d|td}ttj||d|dS)Nrnrrr6r1rKr:)r4r=r_rrror:r:r;rpM s    zTestMedian.test_outcCstjddItddttd}td}tj|d<ttj |d|d |td }ttj |d |d |td }ttj ||d |WddS1sRwYdS) NTr.r0r1rnrr[rr6r1rKr:) r3r4r5rWr4r=r_rrrror:r:r;rqV s     "zTestMedian.test_out_nancCsftjdtd}tj|d<tt|tjttj|ddtjtjdtdddd}tj|d<tj|d <tt|tjtt|jdttjdtddddd}tj|d <tj|d <tt|d|ttjdtddddd }tj|d <tj|d <tt|d |ttjdtddddd}tj|d <tj|d<tt|d|dS)Nr8rrIrr}rSrGrrrrtrkrKr]rO)r4r5rQrrrrrrrr:r:r;rsb s*            zTestMedian.test_nan_behaviorcCstjgtd}tjdd(}tddttt|tj t |dj tutt |dWdn1s8wYtjgtdd }tjdd!}tddttt|tj t |dj tuWdn1sowYtjgtdd }ttj|dd |ttj|d d |tjtj tdd }tjdd#}tddtttj|dd |t |dj tuWddS1swYdS) NrTr.r0r1rrIrS)rrhr}rK) r4rrQr3r4r5rWrrrrr7r )rarbrrr:r:r;rX s,"zTestMedian.test_emptycCsLtd}ttt|tttj|d<ttt|ttdS)NrerI) r4r5rrrrrDrQr)rarr:r:r; test_object s  zTestMedian.test_objectc Cstjjdd}t|gd}ttj|ddt|t|dd}ttj|ddt||dd }ttj|d dt|ttj|d dtj|ddttj|d dtj|ddttj|d dtj|ddt d d}tj | ttj|d ddt|dddddddf ttj|ddd t|ddddd ddf ttj|dddt|dddddddf ttj|dddt|dddddddf ttj|dddt|dd ddddf ttj|dddt|dddddd f ttj|dddt|ddddddf dS)NrQrTrr[r}rZrrlrKrjrJr+)rZrUrVrXrYrIrZrCr[r\r]rN)r4rr^r_rrr`rrr5rrrarbrcrdr:r:r;re sB$$$$   zTestMedian.test_extended_axiscCsptd}ttjtj|ddttjtj|ddttjtj|ddttjtj|ddtttj|dddS)NrVrWr}rfrGrgrP)r4r_r rrr^rFr:r:r;rh s z%TestMedian.test_extended_axis_invalidcCstd}ttj|dddjdttj|dddjdttj|dddjdttj|d ddjd ttj|d ddjdttj|d ddjd dS)NrVTrfrr[rirrjrrkrDrXrl)r4r_rrr?rFr:r:r;rm s& zTestMedian.test_keepdimsN)rxryrzrgrrr&rGrprqrsrXrrerhrmr:r:r:r;r s!    rc@r)TestAdd_newdoc_ufunccCs"tttddttttjddS)NrIblah)r r&rr^r4r6rr:r:r;test_ufunc_arg sz#TestAdd_newdoc_ufunc.test_ufunc_argcCsttttjddS)NrS)r r&rr4r6rr:r:r;test_string_arg sz$TestAdd_newdoc_ufunc.test_string_argN)rxryrzrrr:r:r:r;r s rc@s\eZdZejjejjdkddejj e ddddZ ejjejjdkddddZ d S) TestAdd_newdocrIPython running -OOrPyPy does not modify tp_doccCsVd}ttjjjjdt||tttjjj jdktttj j j jdkdS)Nz"Current flat index into the array.r) rr4coreflatiterindexrr rufuncidentityr/ index_tricksmgrid)rarr:r:r; test_add_doc szTestAdd_newdoc.test_add_doccCs2tjjjj}tddd|tjjjjksJdS)Nz numpy.corer)rz bad docstring)r4rrrr add_newdoc)raprev_docr:r:r;test_errors_are_ignored s z&TestAdd_newdoc.test_errors_are_ignoredN) rxryrzrArrrroptimizerr rrr:r:r:r;r s  rc@s\eZdZejjejjdkddejje ddddZ ejjejjdkddddZ d S) TestAddDocstringrIrrrcCs0ttjjtjjjdd}t||jdS)NcSr docstringNr:r:r:r:r;funcrz6TestAddDocstring.test_add_same_docstring..func)r4 add_docstringrflatrrarr:r:r;test_add_same_docstring sz(TestAddDocstring.test_add_same_docstringcCszttttjjdWdn1swYdd}ttt|dWddS1s6wYdS)Nzdifferent docstringcSrrr:r:r:r:r;rrz=TestAddDocstring.test_different_docstring_fails..func)r rxr4rrrrr:r:r;test_different_docstring_failss  "z/TestAddDocstring.test_different_docstring_failsN) rxryrzrArrrrrr rrr:r:r:r;r s   rc@s.eZdZejdgdddZddZdS)TestSortComplexztype_in, type_out))lD)hr)Hr)rr)r9r)r GcCsHtjgd|d}t|}t||}t||t|j|jdS)N)rTrSrprIrKr)r4r sort_complexrrrr)ratype_intype_outrbrrr:r:r;test_sort_reals   zTestSortComplex.test_sort_realcCsJtjgddd}tjgddd}t|}t||t|j|jdS)N)r?rrrr)rrrr)r4rrrr)rarbrrr:r:r;test_sort_complex(s   z!TestSortComplex.test_sort_complexN)rxryrzrArrrrr:r:r:r;rs  r)r)rr)xrr3rr fractionsrrPrArhypothesis.extra.numpyrhypothesis.strategies strategiesrnumpyr4r numpy.testingrrrr r r r r rrrrnumpy.lib.function_baser/rr numpy.randomr numpy.librrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r<rDrFr|rrrrrr,rTrbrdrirrrrrrr(rErSrUrVrrrrrr%r'r-r2rgrrrrrrrrrrurrrrrrr:r:r:r;s    8  Dg#e>j   S}A ) (U> [j3 nd`C6N2p