B Z>m?Z?m@Z@mAZAmBZBmCZCmDZDddlEmFZFdd ZGGd d d e ZHGd d d e ZIGddde ZJGddde ZKGddde ZLGddde ZMGddde ZNGddde ZOGddde ZPGddde ZQGddde ZRGd d!d!e ZSGd"d#d#e ZTGd$d%d%e ZUGd&d'd'e ZVGd(d)d)e ZWGd*d+d+e ZXGd,d-d-e ZYGd.d/d/e ZZGd0d1d1e Z[Gd2d3d3e Z\Gd4d5d5e Z]Gd6d7d7e Z^Gd8d9d9e Z_Gd:d;d;e Z`Gdd?d?e ZbGd@dAdAe ZcGdBdCdCe ZdGdDdEdEe ZeGdFdGdGe ZfGdHdIdIe ZgGdJdKdKe ZhGdLdMdMe ZiGdNdOdOe ZjGdPdQdQe ZkGdRdSdSe ZlGdTdUdUe ZmGdVdWdWe ZnGdXdYdYe ZodZd[ZpGd\d]d]e ZqGd^d_d_e ZrGd`dadae ZsGdbdcdce Zteuddkr&e dS)e)divisionabsolute_importprint_functionN)run_module_suiteTestCaseassert_ assert_equalassert_array_equalassert_almost_equalassert_array_almost_equal assert_raisesassert_allcloseassert_array_max_ulp assert_warnsassert_raises_regexdecsuppress_warnings) HAS_REFCOUNT)rand)#add_newdoc_ufuncangleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanning histogram histogramddi0insertinterpkaisermeshgridmsort piecewiseplacerot90selectsetxor1dsincsplittrapz trim_zerosunwrapunique vectorize)longcCst|}tj||}|S)N)nparangeaddouter)ndatar?U/opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/tests/test_function_base.pyget_mats rAc@s$eZdZddZddZddZdS) TestRot90cCs|tttdttttdddttttdddttttdddttttdddd d d gd dd gg}d d gd dgd d gg}d dd gd d d gg}d d gdd gd d gg}d d d gd dd gg}x&tdddD]}tt||d|qWx(tdddD]}tt||d|q Wx(tdddD]}tt||d|q4Wx(td ddD]}tt||d|q^Wttt|dddd|tt|d ddt|ddddS)N)rDrD)rrD)axes)rDrD)rrD)rErE)rErrErD )krG)rrE)rEr)rLrF) assertRaises ValueErrorr.r9onesr ranger)selfaZb1Zb2Zb3Zb4rLr?r?r@ test_basic$s6     zTestRot90.test_basiccCsRtd}tt|jdtt|ddt|ddtt|ddt|dddS)N)2(rH)rVrUrH)rrD)rF)rrM)rErD)rGrM)r9rPrr.shape)rRrSr?r?r@ test_axesDs zTestRot90.test_axescCstdd}ddgddggddgd d ggg}ddgddggd dgd dggg}d dgddggd dgddggg}d d gddggddgddggg}tt|d d |tt|d d |tt|dd |x4tdd D]&}tt||ddt||dddqWdS)N)rDrDrDrDrHrrErCrI)rrE)rF)rEr)rErD)rDr)rLrF)r9r:reshaperr.rQ)rRrSZ a_rot90_01Z a_rot90_12Z a_rot90_20Z a_rot90_10rLr?r?r@test_rotation_axesJs.    zTestRot90.test_rotation_axesN)__name__ __module__ __qualname__rTrXr]r?r?r?r@rB#s rBc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestFlipcCsR|jttjtddd|jttjtddd|jttjtddddS)NrCrE)axis)rCrCrDrJ)rNrOr9fliprP)rRr?r?r@rXiszTestFlip.test_axescCsntd}|dddddf}tt|d|dddgdddgg}dddgdddgg}tt|d|dS)NrCrMrErrDrHrI)rArr9rc)rRrSbr?r?r@ test_basic_lrns  zTestFlip.test_basic_lrcCsntd}|dddddf}tt|d|dddgdddgg}dddgdddgg}tt|d|dS)NrCrMrrErDrHrI)rArr9rc)rRrSrdr?r?r@ test_basic_udxs  zTestFlip.test_basic_udcCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dS) NrrErDrHrCrIrZr[)r9arrayrrc)rRrSrdr?r?r@test_3d_swap_axis0s  zTestFlip.test_3d_swap_axis0cCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dS) NrrErDrHrCrIrZr[)r9rgrrc)rRrSrdr?r?r@test_3d_swap_axis1s  zTestFlip.test_3d_swap_axis1cCsbtddgddggddgddggg}tddgddggddgddggg}tt|d|dS) NrrErDrHrCrIrZr[)r9rgrrc)rRrSrdr?r?r@test_3d_swap_axis2s  zTestFlip.test_3d_swap_axis2c CsVtddddd}x:t|jD],}tt||t|d||dq"WdS)NxrDrHrCrIr) r9r:r\rQndimrrcr swapaxes)rRrSir?r?r@test_4ds zTestFlip.test_4dN) r^r_r`rXrerfrhrirjror?r?r?r@rags     rac@seZdZddZddZdS)TestAnycCsTddddg}ddddg}ddddg}tt|tt|tt| dS)NrrE)rr9any)rRy1y2y3r?r?r@rTs    zTestAny.test_basiccCsbdddgdddgdddgg}tt|ttj|dddddgttj|dddddgdS)NrrE)rb)rr9rqr Zsometrue)rRrrr?r?r@test_ndszTestAny.test_ndN)r^r_r`rTrur?r?r?r@rpsrpc@seZdZddZddZdS)TestAllcCslddddg}ddddg}ddddg}tt| tt|tt| ttt|dS)NrrE)rr9allrg)rRrrrsrtr?r?r@rTs   zTestAll.test_basiccCsddddgdddgdddgg}tt| ttj|dddddgttj|dddddgdS)NrrE)rb)rr9rwr Zalltrue)rRrrr?r?r@ruszTestAll.test_ndN)r^r_r`rTrur?r?r?r@rvs rvc@seZdZddZddZdS)TestCopycCsRtddgddgg}t|}t||d|d<t|ddt|dddS)NrErDrHrC )rr)r9rgcopyr r)rRrSa_copyr?r?r@rTs   zTestCopy.test_basiccCstddgddgg}t|jjt|jj tjddgddggdd}t|jj t|jjt|}t|jjt|jj t|}t|jj t|jjdS)NrErDrHrCF)order)r9rgrflags c_contiguous f_contiguousrz)rRrSZa_fortr{Z a_fort_copyr?r?r@ test_orders     zTestCopy.test_orderN)r^r_r`rTrr?r?r?r@rxsrxc@s<eZdZddZddZddZddZd d Zd d Zd S) TestAveragecCs tdddg}tt|dddktdddg}tt|dddkd d d g}tt|ddd ktd }d|d <d|d <t|dt|dt|dt|dtd d }t|dt|dt|dt|dttd d }t |dt|ddS)NrErDrHr)rbg@g?g@g)rCrC)rrE)rErrI) r9rgrrrPr meanrmatrixr )rRrrrsrtZy4Zy5Zy6r?r?r@rTs    zTestAverage.test_basicc CsTtd}td}t||d}tdddtd}t||tdddgddd gg}ddg}t||d d }td d dg}t||d d dg}t||dd }td dg}t||d d dgd d dgg}td dg}tt||dd |tt||ddtd tj } td tj } t tj| | dj t| | kdS)Nry)weightsrDg?rErHrCrIrZr)rrbg@g@g@g@)r9r:rsumr rgr rrastypefloat32float64rdtypeZ result_type) rRywactualdesiredrrw0w1w2rtZw3r?r?r@ test_weightss*   $    zTestAverage.test_weightscCs&tdddgdddgg}t|dd\}}t|d t|d dd\}}t|td d d gt|ddd\}}t|td d gddg}t||d dd \}}t|td d d gdddg}t||ddd \}}t|td d gd d dgdddgg}t||ddd \}}t|tdd gdS)NrErDrHrCrIrZT)returnedg@rg@g@)rrbrg?)r9rgrrr )rRrZavgZsclrrrr?r?r@ test_returned&s   zTestAverage.test_returnedcCsGdddtj}tddgddgg|}tddgddgg|}ttt||tttj||d|tddgddgg}tddgddgg}tj|d|d }tt|tjt|d d ggdS) Nc@s eZdZdS)z-TestAverage.test_subclasses..subclassN)r^r_r`r?r?r?r@subclassAsrrErDrHrC)rr)rbrg@g @)r9ndarrayrgviewrtyperr)rRrrSrrr?r?r@test_subclasses@szTestAverage.test_subclassescCsvdddddg}xb|D]Z\}}}tjddgdd gg|d }tjddgdd gg|d }ttj||d jt|qWdS) N)i4rf8)rf4r)rrr)rrr)rrrrErDrHrC)r)r)r9rgrrr)rRtypesZatZwtZrtrSrr?r?r@test_upcastingQs zTestAverage.test_upcastingcCsXtddtdD}tddtdD}||}t|dt||ddS)NcSsg|]}t|qSr?)decimalDecimal).0xr?r?r@ Zsz1TestAverage.test_object_dtype..rycSsg|]}tdqS)rE)rr)r_r?r?r@r[sr)r)r9rgrQrr rr)rRrSrr?r?r@test_object_dtypeYs zTestAverage.test_object_dtypeN) r^r_r`rTrrrrrr?r?r?r@rs  rc@seZdZedddgedddgeddd ggZed d d ged d d ged d d ggZdd dZddZddZ ddZ ddZ ddZ ddZ dS) TestSelectrErDrHrCrIrZr[rY FTrcs@g}x6tt|D]&|fddt||Dp4|g7}qW|S)Ncs g|]\}}|r|qSr?r?)rVC)mr?r@rjsz&TestSelect._select..)rQlenzip)rRZcondvaluesdefaultoutputr?)rr@_selectgs&zTestSelect._selectcCsL|j}|j}tt||dd|j||ddtt|dtt|ddS)N)rrH)choices conditionsr r/rrr)rRrrr?r?r@rTms zTestSelect.test_basiccCsftdtdddgg}dtdddg}tt||tdttdgdgdgd jd dS) NTFrE rCrH)rCrHr)r)rE) r9rgr:r\r r/rPrrW)rRrrr?r?r@test_broadcastingvszTestSelect.test_broadcastingcCstt|j|jdjtjdd|jD}tt|j|jtjtdddtj ddg}t |}tt|g|gd d d tj d d gdS) Ny?cSsg|]}|tjqSr?)rr9int8)rZchoicer?r?r@rsz0TestSelect.test_return_dtype..rErDrHrIr[r) rr/rrrr9Zcomplex_rrgnanZisnan)rRrdrr?r?r@test_return_dtype}s zTestSelect.test_return_dtypec Cs|tjdd"tdttggddWdQRXt6tdtttggtdtttggWdQRXdS)NT)recordalwaysy@error)warningscatch_warnings simplefilterrr/rDeprecationWarningr )rRr?r?r@test_deprecated_emptys    z TestSelect.test_deprecated_emptyc Cs|j}|jdd}tltd|dtj|d<tt t |||dtj |d<tt t ||tdt t t ||WdQRXdS)Nrrr) rrrrfilterwarningsrr9Zint_rrr/uint8r )rRrrr?r?r@test_non_bool_deprecations   z$TestSelect.test_non_bool_deprecationcCs2tdggd}tdggd}t||dS)NFdrE)r9rgr/)rRrrr?r?r@test_many_argumentsszTestSelect.test_many_argumentsN)r)r^r_r`r9rgrrrrTrrrrrr?r?r?r@r_s     rc@s<eZdZddZddZddZddZd d Zd d Zd S) TestInsertc Csdddg}tt|ddddddgtt|ddddddgtt|dddgdddgddddddgtt|ddddgddddddgtt|dddgdddddddgtt|tddddddddddgtt|dddgdddgddddddgtjddgtjd }tt|d|dd d d gtt|gg|tjd d R}tddt tt|td gdddddddddgt |dj t kWdQRXdS)NrErDrHrrMrr[rY)rgg?T)rrrC) rr'slicer9rgrrrr FutureWarningrcategory)rRrSrdrr?r?r@rTs  *$$&**zTestInsert.test_basicc Csdddgg}dddgdddgg}tt|ddgddddgtt|ddddgdd|tt|dddd|tt|ddddddddggtddgddgddgg}tddddd}tj|ddddftdddddj|ddddffdd}tt|dgdgdgdggdd|tt|dgdddgdd|tt|ddddgdd|tt|ddgdgdggdd|tddd}tt|ddddfd|dddfdd|tt|ddddfd|dddfdd|tdd}tt|d|dddddfd dt|d|dddddfddtt|d|dddddfd dt|d|dddddfddt tj t|d|dddddfddt tj t|d|dddddfd dtdd}tt|d|dddddfd dt|d|dddddfddtt|d|dddddfd dt|d|dddddfdddS) NrErDr)rbrHrC)rDrHrCrMrG) rr'r9rgr:repeatr\ concatenateTr AxisError)rRrSrrdcr?r?r@ test_multidims>   ,$"22"$"$(("$"zTestInsert.test_multidimc Csbtd}tjddB}tddttt|gdddtdt|dj tkWdQRXdS) NrET)rrrrDr)rb) r9rgrrrrrr'rr)rRrSrr?r?r@test_0ds  zTestInsert.test_0dc CsGdddtj}td|}ttt|ddg|ttt|gg|ttt|ddgddg|ttt|tddddg|ttt|tdddg|td|}ttt|ddg|dS) Nc@s eZdZdS)z*TestInsert.test_subclass..SubClassN)r^r_r`r?r?r?r@SubClasssrryrrErDrGrM) r9rr:rr isinstancer'rrg)rRrrSr?r?r@ test_subclasss " zTestInsert.test_subclasscCsDtdddg}tdddg|dddgt|tdddgdS)NrErrDrHrCrI)r9rgr'r)rRrr?r?r@test_index_array_copiedsz"TestInsert.test_index_array_copiedcCstjdddgddgd}d}t|d|}t|dtj||jddgd }t|dd g|}t|dd gtj||jddS) N)rErS)rDrd)rHr)foorn)bara1)r)rCrrrDrH)r9rgr'r r)rRrSvalrdr?r?r@test_structured_arrays   z TestInsert.test_structured_arrayN) r^r_r`rTrrrrrr?r?r?r@rs * rc@seZdZddZdS)TestAmaxcCsvdddddddg}tt|dddd gddd gd d d gg}ttj|ddddd gttj|ddd ddgdS)NrHrCrIryrJg@g$@g"@g@rYg@g@r)rbg @rE)rr9Zamax)rRrSrdr?r?r@rTs zTestAmax.test_basicN)r^r_r`rTr?r?r?r@r src@seZdZddZdS)TestAmincCsvdddddddg}tt|dddd gdd d gd d dgg}ttj|ddd d dgttj|ddd ddgdS)NrHrCrIryrJrg@gg"@g$@g@rYg@g@r)rbrEg@)rr9Zamin)rRrSrdr?r?r@rTs zTestAmin.test_basicN)r^r_r`rTr?r?r?r@rsrc@seZdZddZdS)TestPtpc Cstdddddddg}t|jdd d tddd gdd d gdddgg}t|jdd d ddgt|jdd dddgdS)NrHrCrIryrJrg@r)rbg.@g"@g$@g@rYg@g@g@rM)r9rgrZptp)rRrSrdr?r?r@rT&s zTestPtp.test_basicN)r^r_r`rTr?r?r?r@r$src@seZdZddZdS) TestCumsumc Cs0dddddddg}ddddgddd d gddddgg}xtjtjtjtjtjtjtjtjtj tj g D]}t ||}t ||}t ddd d d ddg|}t tj |dd|t ddddgdddd gddddgg|}t tj |dd|t ddddgddddgdd ddgg|}t tj |dd|qbWdS)NrErDry rZrIrCrHr[rrKr#'r)rbrY)r9rrint16uint16int32uint32rr complex64 complex128rgr cumsum)rRbaba2ctyperSa2tgtr?r?r@rT2s"   &&zTestCumsum.test_basicN)r^r_r`rTr?r?r?r@r0src@seZdZddZdS)TestProdc Csdddddddg}ddddgddd d gddddgg}xtjtjtjtjtjtjtjtjgD]}t ||}t ||}|d kr| t tj || t tj |dqZt |j d d dt|j d d t ddddg|t|j dd t dddg|qZWdS)NrErDryrrZrIrCrHr[r)1rdr)rbi grU$TrMribiX)r9rrrrrrrrrgrNArithmeticErrorprodrr )rRrrrrSrr?r?r@rTIs"    zTestProd.test_basicN)r^r_r`rTr?r?r?r@rGsrc@seZdZddZdS) TestCumprodc CsZdddddddg}ddddgddd d gddddgg}xtjtjtjtjtjtjtjtjgD]}t ||}t ||}|d kr| t tj || t tj |d| t tj |q\t tj |d d t dddddddg|t tj |dd t ddddgddddgddddgg|t tj |d d t ddddgddddgddddgg|q\WdS) NrErDryrrZrIrCrHr[r)rrdrM)rbi(ii grrrrUrrrribrkiX)r9rrrrrrrrrgrNrZcumprodr )rRrrrrSrr?r?r@rT]s*"     zTestCumprod.test_basicN)r^r_r`rTr?r?r?r@r[src@seZdZddZddZdS)TestDiffcCstdddddg}tddddg}td d dg}td dg}tt||tt|dd |tt|dd |dS) NrErCrZr[rrHrDrIrMr)r=)r9rgr r)rRroutout2out3r?r?r@rTxszTestDiff.test_basiccCs*dtddd}|ddddddf|ddddddf}|ddddddf|ddddddf}|ddddddf|ddddddf}|ddddddf|ddddddf}tt||tt|dd|tt|dd |tt|ddd |dS) NrryrrErMrD)r=r)rb)r=rb)rr r)rRrZout1rr Zout4r?r?r@rus4444zTestDiff.test_ndN)r^r_r`rTrur?r?r?r@rvs rc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) TestDeletecCs,td|_tddddd|_dS)NrIrDrE)r9r:rSrr\nd_a)rRr?r?r@setUps zTestDelete.setUpcCst|j|}t|j|dd}d|}t|ttttjfs\tj |tj d}||dk|dk@}t t ||j|f|j|dt |ddddf|jd|df}t ||jddddf|ddS)NrE)rbzDelete failed for obj: %r)rrrI)err_msg) rrSr rrintr8r9integerasarrayintpr r0)rRindicesZa_delZnd_a_delmsgxorr?r?r@_check_inverse_of_slicings $z$TestDelete._check_inverse_of_slicingcCsbdddddddg}dd dd g}x>|D]6}x0|D](}x"|D]}t|||}||q8Wq.Wq$WdS) NirGrrErDrCrIrJrMrH)rr)rRZlimsZstepsstartstopstepsr?r?r@ test_slicess     zTestDelete.test_slicesc Cs|tddgddggt8tjdtdttt|j dgttt|j dgWdQRXtjdd h}tjd t d|dd ddgtjdd d gt d }||t |dj t kt |dj t kWdQRXdS)NrrErDr)rriT)rrrMF)r)rr9rgrrrrr rrSrboolrr)rRrobjr?r?r@ test_fancys  zTestDelete.test_fancycCs|d|ddS)Nrr)r)rRr?r?r@ test_singles zTestDelete.test_singlec CsZtd}tjdd:}tddttt|gdd|t|dj tkWdQRXdS)NrET)rrrr)rb) r9rgrrrrrrrr)rRrSrr?r?r@rs  zTestDelete.test_0dcCsGdddtj}|j|}ttt|d|ttt|g|ttt|ddg|ttt|tdd|ttt|tdd|dS)Nc@s eZdZdS)z*TestDelete.test_subclass..SubClassN)r^r_r`r?r?r?r@rsrrrErDrG)r9rrSrrrrr)rRrrSr?r?r@rs zTestDelete.test_subclasscCsRtdjdddd}t|tdddd}t|jj|jjt|jj|jjdS) NryrDrIr|)r}<rE)rb) r9r:r\rrrr~rr)rRrLrr?r?r@test_array_order_preservesz$TestDelete.test_array_order_preserveN) r^r_r`r rrrrrrr r?r?r?r@r s   r c@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS) TestGradientcCsfddgddgg}t|}tddgddggtddgddggg}tt||tt||dS)NrErHrCg@g@gg?)r9rgr r!)rRvrdxr?r?r@rTs  zTestGradient.test_basicc Csttd}dddddg}tddd}ttddttdtdttd|t|d t|td t|||t||d t||d d ttd t|tj |gd dd d dS)NrIg?g@g@g"@g&@g@g?rDrE)rbz.*scalars or 1drM) r9rrPr:r\r!rgrrOstack)rRr#Z dx_unevenf_2dr?r?r@ test_argss   zTestGradient.test_argscCstddd}ttd}ttt||tdttt|dtdttt|tdtdttt||ttt||ddttt||||ttt|dddttt|||ddttt|dddddS)Nr$rIrDrE)rrE)rb) r9r:r\rrPr rOr! TypeError)rRr&rr?r?r@ test_badargsszTestGradient.test_badargscCs^tjdddddddgdd }tjd d d d dddgdd }tt||t|jtdkdS)Nz 1910-08-16z 1910-08-11z 1910-08-10z 1910-08-12z 1910-10-12z 1910-12-12z 1912-12-12z datetime64[D])rrrJr=iiztimedelta64[D])r9rgr r!rr)rRrr#r?r?r@test_datetime64 szTestGradient.test_datetime64cCstjjddgddggddgddggd}t|d}tt|t|t|j|jk tjd}tjj |d<tj|dd t |jddd ddgdS) NrErHrCF)maskrrIrD) edge_orderT) r9margr!rrrr-r:Zmaskedr )rRrrx2r?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) NrrEryrDrHrCrZrY)r.gQ?T) r9linspaceabsr!rrwrandomZseedsort)rRrr#rZ analyticalZ num_errorr?r?r@test_second_order_accurate&s   z'TestGradient.test_second_order_accuratec Cstddddddg}t|d|dd}td d d ddd g}td }tddd d d d gd}tddd d d dgd}tdddd dd gd}tdddd ddgd}xd|fd|fgD]\}} 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| | qWxd|fd|fgD]\}} t|||d|d} t|||d|d} t| | t| d| jt| d| t||d|d} t| | jt||d|d} t| | qWt|||ddd} t|||ddd} t| d| dt| d| dt| d|jt| d|t|||ddd} t|||ddd} t| d| dt| d| dt| d|jt| d|dS)Nrg@g@g@g@)rZrErMrEgg?g?g@g@g?g@gg333333?g?gпrD)rrE)rbr.)rEr) r9rgZtiler\r:r!r r rrrW) rRfZx_unevenZx_evenZ fdx_even_ord1Z fdx_even_ord2Zfdx_uneven_ord1Zfdx_uneven_ord2r.Zexp_resres1res2res3r?r?r@ test_spacing:sd          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)NrErHrCg@g@gg?r)rbrM)rErrDrJ)r9rgr r!r r r(r)rRr"rr#r?r?r@test_specific_axeszs zTestGradient.test_specific_axescCs^tjdddddddgdd }tjd d d d d ddgdd }tt||t|jtdkdS)NrrJryrr+iAi,ztimedelta64[D])rrDr[r$wi)r9rgr r!rr)rRrr#r?r?r@test_timedelta64szTestGradient.test_timedelta64cCsttdddttdddttttdddttttdddttttdddttttdddttttddddS)NrDrE)r.rHr)r!r9r:r rO)rRr?r?r@ test_valuesszTestGradient.test_valuesN) r^r_r`rTr'r)r,r1r6r;r<r?r@r?r?r?r@r!s @ r!c@seZdZddZdS) TestAnglec Csdtdddtdddddddd g}t|}td td d tjdtjtj dtd  tjtd g}t|dd }t|dtj}t||dt||ddS)Ny?@rDg@y?rErMyy?y@g@g?r)Zdegrr)r9sqrtrZarctanpirgr )rRrrZyozZzor?r?r@rTs    zTestAngle.test_basicN)r^r_r`rTr?r?r?r@rAsrAc@s(eZdZdZddZddZddZdS) TestTrimZerosz+ Only testing for integer splits. c Cs<tdddddddg}t|}t|tddddgdS)NrrErDrHrC)r9rgr4r )rRrSresr?r?r@rTszTestTrimZeros.test_basicc Cs@tddddddddg}t|}t|tdddddgdS)NrrErDrHrC)r9rgr4r )rRrSrFr?r?r@test_leading_skipszTestTrimZeros.test_leading_skipc CsDtdddddddddg }t|}t|tddddddgdS)NrrErDrHrC)r9rgr4r )rRrSrFr?r?r@test_trailing_skipsz TestTrimZeros.test_trailing_skipN)r^r_r`__doc__rTrGrHr?r?r?r@rEsrEc@s$eZdZddZddZddZdS) TestExtinsc Cs>tdddddddg}t|dk|}t|dddddgdS)NrErHrD)r9rgrr )rRrSrdr?r?r@rTszTestExtins.test_basicc s tttdddgddgddgtdddddd d gtdddddddgddd gtdddddd d gttd gttdd tdddddddgd d gtd dd dd d d gtt d fddtddgtddgdtddgdS)NrErDrHTFrrCrIrYr[rZrz!Cannot insert from an empty arrayc stdddddddggS)NrrE)r-r?)rSr?r@z'TestExtins.test_place..Z12Z349) r r(r-r9rgr zerosr:rrO)rRr?)rSr@ test_places zTestExtins.test_placecCsHtd}|dk}|}t||}t||dt|||t||dS)Nryg?r)rrzrr-r )rRrSr-Zacrr?r?r@ test_boths   zTestExtins.test_bothN)r^r_r`rTrOrPr?r?r?r@rJsrJc@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;S)< TestVectorizecCs@dd}t|}|ddddgdddd g}t|dddd gdS) NcSs||kr||S||SdS)Nr?)rSrdr?r?r@ addsubtractsz.TestVectorize.test_simple..addsubtractrrHrZrrErIr[rD)r7r )rRrRr7rr?r?r@ test_simpleszTestVectorize.test_simplecCs8dd}t|}|ddddgd}t|ddd d gdS) NcSs||kr||S||SdS)Nr?)rSrdr?r?r@rRsz.TestVectorize.test_scalar..addsubtractrrHrZrrIrYrErC)r7r )rRrRr7rr?r?r@ test_scalarszTestVectorize.test_scalarcCs0tddd}tdd}||}t||dS)NrJrDi'cSs|S)Nr?)rr?r?r@rKrLz*TestVectorize.test_large..)r9r2r7r )rRrr7rr?r?r@ test_larges zTestVectorize.test_largecCsZddl}t|j}tddtjtjdtjdtjg}||}t|}t||dS)Nrg?g?rD)mathr7Zcosr9rgrCr )rRrVr7argsr1r2r?r?r@ test_ufuncs  ( zTestVectorize.test_ufunccCslddd}t|}tdddg}||}tdddg}t||||d}tdddg}t||dS) NrEcSs||S)Nr?)rSrdr?r?r@r"sz(TestVectorize.test_keywords..foorDrHrCrI)rE)r7r9rgr )rRrr7rWrXrYr?r?r@ test_keywords s   zTestVectorize.test_keywordscCs.ddl}yt|jWntYnXdS)Nr)r4r7Z randrangeAssertionError)rRr4r?r?r@test_keywords_no_func_code.s z(TestVectorize.test_keywords_no_func_codecCsd dd}t|}tdddg}||d}tdddg}t|||d|d}t||||dd }tddd g}t||dS) NrEcSs||S)Nr?)rSrdr?r?r@r;sz5TestVectorize.test_keywords2_ticket_2100..foorDrH)rSrC)rdrS)rdrI)rE)r7r9rgr )rRrr7rWrXrYr?r?r@test_keywords2_ticket_21008s      z(TestVectorize.test_keywords2_ticket_2100cCsxdd}tj|ddgd}ddg}t||ddgdd dgd t||ddgdd dgd t||ddgdd dgdS) NcSs2t|}|d}x|r,|||d}qW|S)Nr)listpop)rpZ_prFr?r?r@ mypolyvalKs  z;TestVectorize.test_keywords3_ticket_2100..mypolyvalrarE)excludedrHrZrrD)rra)ra)r9r7r )rRrbZvpolyvalZansr?r?r@test_keywords3_ticket_2100Is z(TestVectorize.test_keywords3_ticket_2100cCs.tdd}t|ddgddgdddgdS) Nc[s"d}x|D]}|||9}q W|S)Ng?r?)kwrFZ_kr?r?r@r7Zs z3TestVectorize.test_keywords4_ticket_2100..frErDrHrC)rSrdrY)r7r )rRr7r?r?r@test_keywords4_ticket_2100Xs z(TestVectorize.test_keywords4_ticket_2100cCs,tdd}t|ddgddgddgdS)NcWs t|S)N)r9r)r"r?r?r@r7esz3TestVectorize.test_keywords5_ticket_2100..frErDrHrCrY)r7r )rRr7r?r?r@test_keywords5_ticket_2100cs z(TestVectorize.test_keywords5_ticket_2100cCs dd}t|}t|ddS)NcSsdS)NrEr?r?r?r?r@rlsz5TestVectorize.test_coverage1_ticket_2100..foorE)r7r )rRrr7r?r?r@test_coverage1_ticket_2100ksz(TestVectorize.test_coverage1_ticket_2100cCs>dd}t|}t|j|jd}t||d}t|j|dS)NcSs|S)zOriginal documentationr?)rr?r?r@rssz3TestVectorize.test_assigning_docstring..foozProvided documentation)doc)r7rrI)rRrr7rir?r?r@test_assigning_docstringrs  z&TestVectorize.test_assigning_docstringcCs`Gddd}tt|jtdtddtt|j|tdtdddS)Nc@seZdZdZddZdS)z9TestVectorize.test_UnboundMethod_ticket_1156..FoorDcSs ||jS)N)rd)rRrSr?r?r@rsz=TestVectorize.test_UnboundMethod_ticket_1156..Foo.barN)r^r_r`rdrr?r?r?r@FoosrkrrD)r r7rr9r:)rRrkr?r?r@test_UnboundMethod_ticket_1156~s z,TestVectorize.test_UnboundMethod_ticket_1156cCsltdd}|td}|tdd}tdd}|tdd}|td}t||t||dS)NcSs|S)Nr?)rr?r?r@rKrLz@TestVectorize.test_execution_order_ticket_1487..rHg?cSs|S)Nr?)rr?r?r@rKrL)r7r9r:r)rRf1Zres1aZres1bf2Zres2bZres2ar?r?r@ test_execution_order_ticket_1487s   z.TestVectorize.test_execution_order_ticket_1487cCs$tdd}d}t|||dS)NcSs|S)Nr?)rr?r?r@rKrLz7TestVectorize.test_string_ticket_1892..Zd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r9r7r)rRr7rr?r?r@test_string_ticket_1892sz%TestVectorize.test_string_ticket_1892csNdgtfdd}d|_td}t||||tdt|dS)Nrcsdd7<|dS)NrrErDr?)r)_callsr?r@r7sz#TestVectorize.test_cache..fTrI)r7cacher9r:r rr)rRr7rr?)rqr@ test_caches  zTestVectorize.test_cachecCs0tdd}d|_td}t|||dS)NcSs|S)Nr?)rr?r?r@rKrLz+TestVectorize.test_otypes..rnrI)r9r7otypesr:r )rRr7rr?r?r@ test_otypess zTestVectorize.test_otypesc Csttddgdgfttddgdgfttdddgdgfttddgdgfttd dgddgfttd dd d gd gftttdWdQRXtttdWdQRXtttdWdQRXdS)Nz(x)->())rr?z (x,y)->())rrz (x),(y)->())rz(x)->(y)z (x)->(y),()z(),(a,b,c),(d)->(d,e))rSrdr)r)rez (x)(y)->()z (x),(y)->z ((x))->(x))rnfbZ_parse_gufunc_signaturer rO)rRr?r?r@test_parse_gufunc_signatures"        z)TestVectorize.test_parse_gufunc_signaturecCsDdd}t|dd}|ddddgd dd d g}t|d dd d gdS) NcSs||kr||S||SdS)Nr?)rSrdr?r?r@rRsz8TestVectorize.test_signature_simple..addsubtractz (),()->()) signaturerrHrZrrErIr[rD)r7r )rRrRr7rr?r?r@test_signature_simples z#TestVectorize.test_signature_simplecCs:dd}t|dd}|ddgddgg}t|ddgdS) NcSs|S)N)r)rSr?r?r@rsz4TestVectorize.test_signature_mean_last..meanz(n)->())ryrErHrDrC)r7r )rRrr7rr?r?r@test_signature_mean_lasts z&TestVectorize.test_signature_mean_lastcCsBdd}t|dd}|ddgddgg}t|d dgd dggdS) NcSs ||S)N)r)rSr?r?r@centersz3TestVectorize.test_signature_center..centerz(n)->(n))ryrErHrDrCrM)r7r )rRr|r7rr?r?r@test_signature_centers z#TestVectorize.test_signature_centercCsdtdddd}|dddg}tt|to4t|dkt|ddddgt|ddddgdS) NcSs||fS)Nr?)rr?r?r@rKrLz:TestVectorize.test_signature_two_outputs..z ()->(),())ryrErDrHr)r7rrtuplerr )rRr7rr?r?r@test_signature_two_outputss z(TestVectorize.test_signature_two_outputscCs ttjdd}|ddgdddg}t|dddgdddgg|ddgggdddg}t|dddgdddgggg|ddgddggdddg}t|dddgdddggdddgdddggg|ddgdddgdddgg}t|dddgdddggdddgdddgggdS) Nz(a),(b)->(a,b))ryrErDrHrCrZr)r7r9r<r )rRr7rr?r?r@test_signature_outersz"TestVectorize.test_signature_outercCs^tdddd}|dddg}t|ddg|dddgdddgg}t|ddgddggdS) NcSs |ddS)NrMr?)rr?r?r@rKrLz.z(n)->(m))ryrErDrHrC)r7r )rRr7rr?r?r@test_signature_computed_sizes z*TestVectorize.test_signature_computed_sizecCsVd dd}t|ddhd}t|dddgddd gt|dddgd d dddgdS) NrEcSs||S)Nr?)rSrdr?r?r@rsz2TestVectorize.test_signature_excluded..fooz()->()rd)ryrcrDrHrCr)rd)rE)r7r )rRrr7r?r?r@test_signature_excludeds z%TestVectorize.test_signature_excludedcCsHtddddgd}|dddg}t|jtdt|dddgdS) NcSs|S)Nr?)rr?r?r@rKrLz5TestVectorize.test_signature_otypes..z(n)->(n)r)ryrtrErDrH)r7rrr9r )rRr7rr?r?r@test_signature_otypessz#TestVectorize.test_signature_otypesc Csttjdd}ttd|ddgWdQRXttd|ddWdQRXttd|ddgdddgWdQRXttjd d}ttd|ddWdQRXdS) Nz (n),(n)->(n))ryzwrong number of positionalrErDzdoes not have enough dimensionsz$inconsistent size for core dimensionrHz()->())r7operatorr;rr(rO)rRr7r?r?r@test_signature_invalid_inputs s    z+TestVectorize.test_signature_invalid_inputsc Cstdddd}ttd|dddgWdQRXtd dd d}ttd |dWdQRXtd dd d}ttd |ddgWdQRXdS)NcSs |ddS)NrMr?)rr?r?r@rKrLz>TestVectorize.test_signature_invalid_outputs..z(n)->(n))ryz$inconsistent size for core dimensionrErDrHcSs|S)Nr?)rr?r?r@rK"rLz ()->(),()zwrong number of outputscSs||fS)Nr?)rr?r?r@rK&rLz()->())r7rrO)rRr7r?r?r@test_signature_invalid_outputss   z,TestVectorize.test_signature_invalid_outputsc Cs tdd}tjddgtd}ttd||WdQRXd|_t|||tjddd d }ttd||WdQRXtjd dd dd }t|||tjd dddd }t|||tjdddd }t||j|jtjddddd }ttd||WdQRXdS)NcSs|S)Nr?)rr?r?r@rK,rLz5TestVectorize.test_size_zero_output..rrI)rrtrncSs|S)Nr?)rr?r?r@rK4rLz()->())rycSs|S)Nr?)rr?r?r@rK8rL)ryrtcSs|S)Nr?)rr?r?r@rK;rLz(n)->(n)cSs|S)Nr?)rr?r?r@rK>rLcSs|gS)Nr?)rr?r?r@rKArLz()->(n)znew output dimensions) r9r7rNrrrOrtr r)rRr7rr?r?r@test_size_zero_output*s$   z#TestVectorize.test_size_zero_outputN) r^r_r`rSrTrUrZr[r]r^rdrfrgrhrjrlrorprsrurxrzr{r}rrrrrrrrr?r?r?r@rQs:         rQc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS) TestDigitizecCs2tdd}tdd}tt||tddS)NirIrr)r9r:r r)rRrbinsr?r?r@ test_forwardHs  zTestDigitize.test_forwardcCs6tddd}tddd}tt||tddS)NrIirMrr)r9r:r r)rRrrr?r?r@ test_reverseMszTestDigitize.test_reversecCs:td}t||d}ttt||dkdS)Nryr)rr9r2minmaxrrwr)rRrbinr?r?r@ test_randomRszTestDigitize.test_randomcCsfdddddddg}dddg}dddd dd dg}tt|||dddddd dg}tt||d |dS) NrErIrCryrYrrrDrHT)r r)rRrrZdefault_answerZ right_answerr?r?r@test_right_basicWs  zTestDigitize.test_right_basiccCs4tdd}tdd}tt||dtddS)NirIrCTr)r9r:r r)rRrrr?r?r@test_right_open_s  zTestDigitize.test_right_opencCs8tddd}tddd}tt||dtddS)NrIirMrCTr)r9r:r r)rRrrr?r?r@test_right_open_reversedsz$TestDigitize.test_right_open_reversecCs<td}t||d}ttt||ddkdS)NryT)rr9r2rrrrwr)rRrrr?r?r@test_right_open_randomisz#TestDigitize.test_right_open_randomcCsddddg}dddg}tt||dddddgtt||dddddgdddg}tt||dddddgtt||dddddgddddg}tt||dddddgtt||dddddgddddg}ttt||ddddg}ttt||dS) NrMrrErDFrHTrC)r rr rO)rRrrr?r?r@test_monotonicns      zTestDigitize.test_monotoniccCs>dddg}dddg}ttt||||}}ttt||dS)NrErDy@?rH)r r(r)rRrrr?r?r@test_casting_error~s    zTestDigitize.test_casting_errorcCshGdddtj}td|}tdd|}ttt||d| ttt||d| dS)Nc@s eZdZdS)z(TestDigitize.test_return_type..AN)r^r_r`r?r?r?r@AsrrIrErHFT)r9rr:rrrr)rRrrSrdr?r?r@test_return_types zTestDigitize.test_return_typeN) r^r_r`rrrrrrrrrrr?r?r?r@rFsrc@seZdZddZdS) TestUnwrapcCsHttdddtjgddgtttttddtjkdS)NrErDryr)r r5r9rCrrwrr)rRr?r?r@rSs zTestUnwrap.test_simpleN)r^r_r`rSr?r?r?r@rsrc@s,eZdZddZddZddZddZd S) TestFilterwindowscCs2td}t|t|dttj|dddddS)Nryr[r)rbg@rC)r#r r r r9r)rRrr?r?r@ test_hanningszTestFilterwindows.test_hanningcCs2td}t|t|dttj|dddddS)Nryr[r)rbg(\@rC)r"r r r r9r)rRrr?r?r@ test_hammingszTestFilterwindows.test_hammingcCs2td}t|t|dttj|dddddS)Nryr[r)rbg^)@rC)rr r r r9r)rRrr?r?r@ test_bartlettszTestFilterwindows.test_bartlettcCs2td}t|t|dttj|dddddS)Nryr[r)rbg= ףp=@rC)rr r r r9r)rRrr?r?r@ test_blackmanszTestFilterwindows.test_blackmanN)r^r_r`rrrrr?r?r?r@rsrc@s,eZdZddZddZddZddZd S) TestTrapzcCsHtddd}ttd|dtdtjdd}t|dddS) Niryg?grD)r#rEr[)r9r:r3ZexprBrCr )rRrrr?r?r@rSs*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) NrrErHrDrYrKrM)rb)rrb)r9r2Z ones_likerr3r ) rRrrrDZwxZwyZwzqZqxZqyZqzrr?r?r@ test_ndims86     zTestTrapz.test_ndimcCstd}||}|dk}tjj||d}d}tt|||tjj||d}tt|||tjj||d}tt|||dS)NrIrD)r-g*@)r9r:r/rgr r3)rRrrr-ZymrZxmr?r?r@r1s zTestTrapz.test_maskedcCsJtdd}||}t||}t|}t|}t||}t||dS)NrrI)r9r2r3rr )rRrrrZmxZmyZmrr?r?r@ test_matrixs     zTestTrapz.test_matrixN)r^r_r`rSrr1rr?r?r?r@rs%rc@seZdZddZddZdS)TestSinccCs6ttddkttddd}t|t|ddS)NrrErMrr[)rr1r9r2r r )rRrr?r?r@rSszTestSinc.test_simplecCsFddg}tt|}tt|}tt|}t||t||dS)Nrg?)r1r9rgr_r~r )rRrrrrsrtr?r?r@test_array_likes    zTestSinc.test_array_likeN)r^r_r`rSrr?r?r?r@rsrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)& TestHistogramcCsdS)Nr?)rRr?r?r@r szTestHistogram.setUpcCsdS)Nr?)rRr?r?r@tearDownszTestHistogram.tearDowncCsPd}t|}t|\}}ttj|dd|ttddd\}}t|ddS)Nrr)rbry)rr$rr9rr2r )rRr=r"rSrdr?r?r@rSs  zTestHistogram.test_simplecCstddddgddg\}}t|dgt|ddgtttddgddtddgdd\}}t|tdgt|tddgdS) NrErDrHrCr)rg?g@)r$r r rOrr9rgr )rRhistedgeshrvr?r?r@ test_one_bin#s zTestHistogram.test_one_bincCsd}t|}t|dd\}}t|t|}t|dtd}dddddg}t||dd\}}t|t|}t|ddS) NrT)normedrEryrrIr)rr$r9rrr r:)rRr=r"rSrdarearr?r?r@ test_normed-s  zTestHistogram.test_normedc Csd}t|}t|dd\}}t|t|}t|dtd}dddddg}t||dd\}}t|d tt|t|dtd}ddddtj g}t||dd\}}t|d d d d gtjdd dd gd dtj gdd\}}t|ddgdS)NrT)densityrEryrrHrZg?grDrCg?g?g?) rr$r9rrr r:r rinf) rRr=r"rSrdrrZcountsZdmyr?r?r@ test_density=s"     zTestHistogram.test_densitycCstdd}t|ddgd\}}t|dt|ddgd\}}t|dt|ddgdd\}}t|t|dd d tdd}t|ddg|dd \}}t|t|dt|d ddg|d \}}t||dddS)Nryg?rr)rQrET)rQrr)r)rQrrrY)rrQrrM)r9r:r$rrr r)rRrSrrdrr?r?r@ test_outliersYszTestHistogram.test_outlierscCstdd}t|\}}tt|jtt|dd\}}tt|jtt|tdtd\}}tt|jtt|tdtd\}}tt|jtdS)Nryg?T)r)r) r9r:r$rZ issubdtyperrfloatrP)rRrSrrdr?r?r@ test_typeqs zTestHistogram.test_typecCsTtjdddgtjd}tjdddgtjd}tj||dd \}}}t|d dS) Ng2VEq@gx>fQg-VT5@)rg!@gS@g^z@r)rg@)r9rgrZ histogram2drr)rRrrZ counts_histZxedgesZyedgesr?r?r@test_f32_roundingszTestHistogram.test_f32_roundingc Cs~td}tdd}t|\}}t|dd\}}t||d\}}t||dd\} } t|d|t|| tddd}ttdtdf}t|td |d \}}t||td d d d gd d dd d gd \}}t |d ddd gtd d d d gd d dd d gdd\}}t|t d ddd gddd ttddd dddgd d d d d d d d d g dd\}}t |ddddgdS)NrrIT)r)r)rrrryr)rrrErDrCrH)rrrg$@g@rrZ)rrg?g?g333333?) rr9rPr$r r2rrNr:r rgr ) rRr"rrSrdZnaZnbwawbZnwaZnwbr?r?r@rs*   ""$ zTestHistogram.test_weightscCsHtdddg}tdddgdtdddg}t|ddd g|d \}}t|tddgdtdd gt|ddd g|d \}}t|tddgdtdd gdd lm}tdddg}t|d|d|d g}t|ddd g|d \}}t||d|d gt|ddd g|d \}}t||d|d gdS)Ng?g@gffffff@rErMrDy?rrH)rr)rrQr)rrI)r9rgr$r rr)rRrrrrrr?r?r@test_exotic_weightss$&& z!TestHistogram.test_exotic_weightscCs8tdddg}tj|ddgddt|dddgdS)Ng?g@gffffff@iryr)rQr)r9rgr$r )rRrr?r?r@test_no_side_effectssz"TestHistogram.test_no_side_effectscCs>tgddgd\}}t|tdgt|tddgdS)NrrE)r)r$r r9rg)rRrSrdr?r?r@ test_emptyszTestHistogram.test_emptycCs,tjdddd}t|dttt|ddS)Ngg?r)numrIg333333@)r9r2r$r r()rRvalsr?r?r@test_error_binnum_types z$TestHistogram.test_error_binnum_typecCsPtjdddd}t|ddgdttt|tjdgdttt|dtjgddS)Ngg?r)rg?g?)rQ)r9r2r$r rOrr)rRrr?r?r@test_finite_rangeszTestHistogram.test_finite_rangec Cstdddddddg}tj|dd d \}}|d k}|dd |}|d d|}x2t|||D]"\}}} |||||| qbWdS)NiQiii&iiiih )rDi)rrQrrMrE)r9rgr$rZassertGreaterEqualZ assertLess) rRarrrrr-Z left_edgesZ right_edgesrleftrightr?r?r@test_bin_edge_casess z!TestHistogram.test_bin_edge_casesc CsDtdddddddddg }tj|ddd \}}||d d dS) Ngg?g@g@g@g@r)grI)rrQrMrE)r9rgr$ assertEqual)rRrrrr?r?r@test_last_bin_inclusive_rangesz+TestHistogram.test_last_bin_inclusive_rangec CsJtdg}tjdddgdd}tttj||d\}}WdQRXdS)NrDrErHZuint64)r)r)r9rgr rOr$)rRrrrrr?r?r@ test_unsigned_monotonicity_checks  z.TestHistogram.test_unsigned_monotonicity_checkN)r^r_r`r rrSrrrrrrrrrrrrrrrr?r?r?r@rs$   rc@sPeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS)TestHistogramOptimBinNumsz] Provide test coverage when using provided estimators for optimal number of bins cCsZdddddddg}xB|D]:}tg|d\}}t|td gt|td d gqWdS) NfdscottricesturgesdoanerBauto)rrrE)r$r r9rg)rRestimator_list estimatorrSrdr?r?r@rs   z$TestHistogramOptimBinNums.test_emptyc Csddddddddddddddddd d d d d d d dd }x|D]\}}tdd|dd}tdd|dd}t||f}x>|D]2\}}t||\} } tt| |d||dqWqFWdS)z Straightforward testing with a mixture of linspace data (for consistency). All test values have been precomputed and the values shouldn't change rCrYr[)rrrrrrBrrryrrrrG)rUiiirMrIrDrErHz*For the {0} estimator with datasize of {1})r N)itemsr9r2rr$rrformat) rR basic_testtestlenexpectedResultsx1r0rrnumbinsrSrdr?r?r@rSs  z%TestHistogramOptimBinNums.test_simplec Csdddddddddddddddddddddd}x^|D]R\}}t|}x>|D]2\}}t||\}}tt||d||dq\Wq@WdS) z Smaller datasets have the potential to cause issues with the data adaptive methods, especially the FD method. All bin numbers have been precalculated. rE)rrrrrrBrDrH)rErDrHz*For the {0} estimator with datasize of {1})r N)rr9r:r$rrr) rRZ small_datrrZtestdatrZexpbinsrSrdr?r?r@ test_smalls z$TestHistogramOptimBinNums.test_smallcCs2ddddg}x |D]}tttdddg|qWdS) zS Check a Value Error is thrown when an unknown string is passed in ZmadZfreemanZ histogramsZIQRrErDrHN)r rOr$)rRZ check_listrr?r?r@test_incorrect_methods1s  z0TestHistogramOptimBinNums.test_incorrect_methodscCs`td}dddddddd}x<|D]0\}}t||\}}tt||d|dq(WdS)z Check that methods handle no variance in data Primarily for Scott and FD as the SD and IQR are both 0 in this case rrE)rrrrrrBrz{0} estimator, No Variance test)r N)r9rPrr$rrr)rRZ novar_datasetZnovar_resultdictrrrSrdr?r?r@test_novariance9s  z)TestHistogramOptimBinNums.test_novariancecCsjtddd}ttddd|f}dddd }x2|D]&\}}t||\}}tt||qdddddg}x*|D]"}tttdddg|dddgd qWd S) z= Check that weighted data raises a TypeError rrrrrrErDrH)rN)r r(r$)rRrrr?r?r@test_simple_weightedzs z.TestHistogramOptimBinNums.test_simple_weightedN) r^r_r`rIrrSrrrrrrr?r?r?r@rs rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestHistogramddc Csrtdddgdddgdddgdddgdddgdddgg}t|dddgdd gdd ggd \}}tdddgdddgdddggdddgdddgdddggg}t||d dd gddd d gddd d gg}t||d d\}}tt||dkt|dddgdd gddggd d\}}tddddgddddgddddggddddgddddgddddggg}t||ddddt|d ddD}t|dd d gdd gdd ggd\}}tddgddgddggddgddgddggddgddgddggddgddgddggg}t||td}d|t t dt t dt t df<tt dt dt dgd\}}t||dS)Ngg?g?g@)rDrHrHrMrErrH)rQrGrDT)rrg(@)rDrHrCrC)rQrg@cSsg|]}t|qSr?)r9Zsqueeze)rrr?r?r@rsz/TestHistogramdd.test_simple..)rb)rCrHrD)rrQ)rIrIrIg?rI) r9rgr%r rrwr r2rNr_rQr:)rRrHrZanswerZedrDZr?r?r@rSs8    $&"  &&zTestHistogramdd.test_simplecCs<d}tdd}x(|D] }t||\}}t|j|kqWdS)N))rIrCrZ)rZrCrI)rIrZrC)rCrZrI)rZrIrC)rCrIrZryrH)rr%rrW)rRrrrdrrr?r?r@ test_shape_3ds   zTestHistogramdd.test_shape_3dcCs<d}tdd}x(|D] }t||\}}t|j|kqWdS)N))r[rCrIrZ)rCrIr[rZ)rIrZrCr[)r[rZrIrC)rIr[rZrC)rCrZr[rI)rZrIr[rC)r[rIrCrZ)r[rCrZrI)rZrCr[rI)rZr[rIrC)rCrZrIr[)rCr[rIrZ)rIrCrZr[)rIr[rCrZ)rZr[rCrI)rZrIrCr[)rCr[rZrI)rCrIrZr[)r[rZrCrI)rIrCr[rZ)rIrZr[rC)rZrCrIr[)r[rIrZrCryrC)rr%rrW)rRrrrdrrr?r?r@ test_shape_4ds   zTestHistogramdd.test_shape_4dcCstdd}t|\}}t|dd\}}t|tdd\}}t||t|tdddd\}}t||t|tdtdd\}}t|d|dS)NrrDT)r)r)rr)rr%r9rPr r)rRr"rrZn_histZw_histr?r?r@rs    zTestHistogramdd.test_weightscCs:tdt}t|dd\}}t|dtdddgdS)N)ryrDrD)rrggg?)r9rNrr%r rg)rRrrrr?r?r@test_identical_sampless z&TestHistogramdd.test_identical_samplescCs`tgggddgddgfd\}}t|tdggtjggggdd\}}t|tddS)NrrE)rgrD)rDrDrD)r%rr9rgrN)rRrSrdr?r?r@rs zTestHistogramdd.test_emptyc Cstddd}tttj|ddddgdtttj|ddddgdtttj|ddddddd ggdtttj|dddddd d ggdttj|dddddd dggddS) NrYrDrCrMrI)rrEgGz?rHrJ)r9r:r\r rOr%r)rRrr?r?r@test_bins_errorss  z TestHistogramdd.test_bins_errorsc Cstjddtddd}tddgddgddgg}tj|dtj ddggd \}}t||tj|dtd dtjggd \}}t||tj|dtj dtjggd \}}t||WdQRXdS) Nignore)ZinvalidrZrHrDrErry)rrM)r9errstater:r\rgr%rr )rRrZexpectedrrvr?r?r@test_inf_edgess  $ "zTestHistogramdd.test_inf_edgescCs dg}dddgg}t||d\}}t|ddkt|ddkdg}dddgg}t||d\}}t|ddkt|ddkdg}dddgg}t||d\}}t|ddkt|ddkd g}dddgg}t||d\}}t|ddkt|ddkdS) NgG?gg?g?)rrrEg8?gqh?)r%r)rRrrrrr?r?r@test_rightmost_binedges(    z&TestHistogramdd.test_rightmost_binedgecCsvtjd}t|ddgddgddggdttt|ddgddgdtjggdttt|ddgtjdgddggddS)N)rrHgg?g?g?g?)rQ)r9r4r%r rOrr)rRrr?r?r@rs  z!TestHistogramdd.test_finite_rangeN) r^r_r`rSrrrrrrrrrr?r?r?r@rs%    rc@seZdZddZdS) TestUniquec Cstdddddddddg }ttt|dddddgktttdddddgtdgkdddd ddg}ttt|d dddgktd d d d d g}ttt|d d d d gkdS)NrCrHrDrErZwidgetZhamrry@@y??y?$@ry)r9rgrrwr6)rRrr?r?r@rSs (zTestUnique.test_simpleN)r^r_r`rSr?r?r?r@rsrc@seZdZddZddZdS)TestCheckFinitecCsRdddg}ddtjg}ddtjg}tj|tttjj|tttjj|dS)NrErDrH)r9rrlibasarray_chkfiniter rO)rRrSrdrr?r?r@rSs     zTestCheckFinite.test_simplecCs2dddg}tjj|dtjd}t|jtjkdS)NrErDrHr|)r}r)r9rrrrr)rRrSr?r?r@test_dtype_order&s z TestCheckFinite.test_dtype_orderN)r^r_r`rSrr?r?r?r@rsrc @seZdZedddgdddgddd ggZed d d gd ddgdddggZedddgdddgdddggZeddddddgddddddgddddddgddddd d!gdddd dd"gdddd!d"dggZd#d$Z d%d&Z d'd(Z d)d*Z d+d,Z d-d.Zd/d0Zd1d2Zd3S)4 TestCorrCoefg^?g.{<?g$,?g4?gp)?gJG?gY?g?gވ0v?gة?gBFU?gG)t?g3TB?gL\?gA?g> ?gqFE`?g5?g?gޛ?gr@gp]4?g?'L?g(8?g4V}?gw{g,H5?gjS, ?gg)h?g5#A?gtogB C,g@02v?cCs.ttdddgdddgddgddggdS)NrrEg?g)r r9r)rRr?r?r@test_non_arrayBszTestCorrCoef.test_non_arraycCsdt|j}t||jttt|dkt|j|j}t||j ttt|dkdS)Ng?) rrr r8rr9rwr3Br9)rRZtgt1Ztgt2r?r?r@rSFs    zTestCorrCoef.test_simplec Cst}tdttt|jdd|ttt|jdd|j tt|j|j dd|j tt|jdd|j tt|j|j dd|j WdQRXdS)NrrM)ddofrH) rrrrrrrfilterr r8rr9)rRsupr?r?r@ test_ddofOs  zTestCorrCoef.test_ddofc CshtX}tdttt|j|jddttt|jdd|tt t|jdd|j WdQRXdS)NrrEr)Zbias) rrrrrrrrrr r8)rRrr?r?r@ test_bias[s   zTestCorrCoef.test_biascCs^tdddgdddgg}t|}tddgddgg}t||ttt|dkdS) NrErDrHy?y@y@g?y)r9rgrr rrwr3)rRrrFrr?r?r@ test_complexes  zTestCorrCoef.test_complexcCsLtdddgg}tdddgg}tt||tddgddggdS) NrErDrHy?y@y@g?y)r9rgr r)rRrrr?r?r@test_xylszTestCorrCoef.test_xyc Cstjddtdttttgtjtttg ddtg ddtttg ddttjtjgtjtjggWdQRXdS)NT)rrrrD) rrrRuntimeWarningr rr9rgrr\)rRr?r?r@rqs zTestCorrCoef.test_emptyc Cshddgddgg}tjddt|}WdQRXt|tddgddggttt|dkdS)Ng0.++g}Ô%ITraise)rwg?g)r9rrr rgrrwr3)rRrrr?r?r@ test_extremezs zTestCorrCoef.test_extremeN)r^r_r`r9rgrrr8r9rrSrrrrrrr?r?r?r@r-s6    rc@sBeZdZeddgddgddggjZeddgddggZejdddgddZedd dgZ edgdgdgdgdgdggjZ ed d gd d ggZ ej d ej d ZedddgZeddgddggZe d ZedddddgZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*S)+TestCovrrDrEg?ggg@)ndminrCg?gٿrH)rg@gUUUUUU?gUUUUUUg&S:?go_?g#~j?gZӼ?gQ|?cCstt|j|jdS)N)r rrr8)rRr?r?r@rTszTestCov.test_basiccCs>tdddgdddgg}tt|tddgddggdS) NrErDrHy?y@y@g?y)r9rgr r)rRrr?r?r@rszTestCov.test_complexcCsJtdddgg}tdddgg}tt||tddgddggdS) NrErDrHy?y@y@g?y)r9rgr r)rRrrr?r?r@rszTestCov.test_xyc Cstjddtdttttgtjtttg ddtg ddtttg ddttjtjgtjtjggWdQRXdS)NT)rrrrD) rrrrr rr9rgrr\)rRr?r?r@rs zTestCov.test_emptyc CsZtjddDtdttt|jddttj tj gtj tj ggWdQRXdS)NT)rrrI)r) rrrrr rrr9rgr)rRr?r?r@test_wrong_ddofs  zTestCov.test_wrong_ddofcCsPtt|jt|jddtdddddg}tt|j|t|j|dddS)Nr)Zrowvarg+?g4@?g&S?go_?gJ4?)r rrr9rg)rRrr?r?r@test_1D_rowvarszTestCov.test_1D_rowvarcCs$tt|jddtj|jdddS)NrE)r)r rrr9var)rRr?r?r@test_1D_varianceszTestCov.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)fweightsg?)rDrH)rrDrMrH)r rr0 frequencies x2_repeatsrr9unit_frequenciesr8r r(r9rPr RuntimeErrorrO)rRZnonintr7r?r?r@ test_fweightss  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)N)aweightsg@)rDrHrDgrH) r rrrr: unit_weightsr8r9rPr rrO)rRrr?r?r@ test_aweightss  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)rr g@)r ) r rr0rr rrr9rr8rr:)rRr?r?r@test_unit_fweights_and_aweightss$        z'TestCov.test_unit_fweights_and_aweightsN)r^r_r`r9rgrrr8r0rrr9rPrrrr:r rrTrrrrrrr r r r?r?r?r@rs*$   rc@seZdZddZdS)Test_I0c Csttdtdtddddg}tt|tddd d gtd d gd dgddgddgddgg}tt|tddgddgddgddgddggdS)Ng?gǒ#?gC7?gmM?g3a,?g$WV?ۏ?gֿN^?gE ?g閡1?g%m??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?)r r&r9rg)rRrrr?r?r@rSs&    zTest_I0.test_simpleN)r^r_r`rSr?r?r?r@rsrc@seZdZddZddZdS) TestKaiserc Cstttddttddtgttddtddgttddtdddddgttddtd d dd d gdS) NrEg?rrDg oF?rIgvT=?gg?g?gYJ?)rr9Zisfiniter)r rg)rRr?r?r@rS s        zTestKaiser.test_simplecCstdddS)NrHrC)r))rRr?r?r@ test_int_beta szTestKaiser.test_int_betaN)r^r_r`rSrr?r?r?r@rs rc@seZdZddZdS) TestMsortc CsRtdddgdddgddd gg}tt|tddd gdddgdddggdS) Ng\?gbCQ?gהs?gw?g kl?g*dta?gӯ?g6H?gܘC?)r9rgr r+)rRrr?r?r@rS s  zTestMsort.test_simpleN)r^r_r`rSr?r?r?r@r src@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) TestMeshgridc Cstdddgddddg\}}t|tdddgdddgdddgdddggt|tdddgdddgdddgdddggdS)NrErDrHrCrIrZr[)r*r r9rg)rRXYr?r?r@rS szTestMeshgrid.test_simplecCs.tddddg\}t|tddddgdS)NrErDrHrC)r*r r9rg)rRrr?r?r@test_single_input+ szTestMeshgrid.test_single_inputcCs*g}tgt|tgt|ddidS)NrzF)r r*)rRrWr?r?r@ test_no_input/ szTestMeshgrid.test_no_inputc Csdddg}ddddg}t||dd \}}t|tddddgddddgddddggt|tddddgddddgddddggd d g}tt||d jd ktt||dd d jdktt|||d jdktt|||dd d jdkttt||dd dS)NrErDrHrCrIrZr[ij)ZindexingrYrr)rCrH)rHrC)rCrHrD)rHrCrDZnotvalid)r*r r9rgrrWr rO)rRrrrrrDr?r?r@ test_indexing4 s    zTestMeshgrid.test_indexingcCs\tdddgddddgdd \}}t|tdddggt|tdgdgdgdggdS) NrErDrHrCrIrZr[T)sparse)r*r r9rg)rRrrr?r?r@ test_sparseH s zTestMeshgrid.test_sparsecCs$tttdddgddddgdd dS) NrErDrHrCrIrZr[r)r)r r(r*)rRr?r?r@test_invalid_argumentsM sz#TestMeshgrid.test_invalid_argumentscCstjddtjd}tjddtjd}t||\}}t|j|jkt|j|jktj||dd\}}t|j|jkt|j|jktj||dd\}}t|j|jkt|j|jkdS)Nrry)rrT)rz)r)r9r:rrr*rr)rRrrrrr?r?r@rT szTestMeshgrid.test_return_typecCsrtddg}tddg}tj||ddd\}}d|dddf<t|dddfdt|d ddf|dS) Ng?g@gffffff @g@FT)rrzrrE)r9rgr*r)rRrrrrr?r?r@test_writebackl s zTestMeshgrid.test_writebackN) r^r_r`rSrrrrrrrr?r?r?r@r s rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestPiecewisecCstddgddgdg}t|ddgtddgddggdg}t|ddgtddgtddgdg}t|ddgtddgtddgdg}t|ddgtddgtddggdg}t|ddgtddgddggddg}t|ddgdS)NrTFrEcSsdS)NrMr?)rr?r?r@rK rLz+TestPiecewise.test_simple..rM)r,r r9rg)rRrr?r?r@rSy szTestPiecewise.test_simplecCs2tddgddgddggddg}t|ddgdS)NrErDTFrHrC)r,r )rRrr?r?r@test_two_conditions s z!TestPiecewise.test_two_conditionscCs&tddddgdddg}t|ddS)NrHTFrCrDr)r,r)rRrr?r?r@$test_scalar_domains_three_conditions sz2TestPiecewise.test_scalar_domains_three_conditionscCsNtddgddgdg}t|ddgtddgddgddg}t|ddgdS)NrErDTFrrH)r,r )rRrr?r?r@ test_default szTestPiecewise.test_defaultcCstd}t||dkddg}t|jdkt|dkd}t|dgdggddg}t|jdkt|dkt|dddgdddg}t|ddS) NrHrCrrITFrErD)r9rgr,rrlr )rRrrr?r?r@r s   zTestPiecewise.test_0dcCshd}t||dk|dkgddg}t|dd}t||dk|dk|dk|dkgdddg}t|ddS)NrHrCrrIrErD)r,rr )rRrrr?r?r@test_0d_comparison s  ,z TestPiecewise.test_0d_comparisoncCs\tdddgdddgg}t||dk|dkgd d d g}t|td d d gd d dggdS)Ngggg?g?g@rrDrMrErHgg@g?)r9rgr,r )rRrrr?r?r@test_multidimensional_extrafunc s  z-TestPiecewise.test_multidimensional_extrafuncN) r^r_r`rSrrr rr!r"r?r?r?r@rw s  rc@sreZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ e e dddZdS) TestBincountcCs$ttd}t|tddS)NrC)r9bincountr:r rP)rRrr?r?r@rS szTestBincount.test_simplec Cs:ttdddddg}t|tddddddgdS)NrErIrDrCr)r9r$rgr )rRrr?r?r@ test_simple2 szTestBincount.test_simple2cCs6td}tddddg}t||}t||dS)NrCg?g333333?g?g?)r9r:rgr$r )rRrrrr?r?r@test_simple_weight s  zTestBincount.test_simple_weightc CsTtdddddg}tdddddg}t||}t|td ddd ddgdS) NrErDrCrIg?g333333?g?g?r)r9rgr$r )rRrrrr?r?r@test_simple_weight2 s z TestBincount.test_simple_weight2cCs^tdddddg}tj|dd}t|tdddgg}tj|dd}t|tgdS)NrrErH) minlengthrD)r9rgr$r )rRrrr?r?r@test_with_minlength s z TestBincount.test_with_minlengthc Cshtdddddddg}tj|dd}t|tddddgtj|dd}t|tddddgdS)NrrErDrH)r()r9rgr$r )rRrrr?r?r@)test_with_minlength_smaller_than_maxvalue s z6TestBincount.test_with_minlength_smaller_than_maxvaluec CsZtdddddg}tdddddg}t||d }t|td ddd ddd d gdS) NrErDrCrIg?g333333?g?g?rYr)r9rgr$r )rRrrrr?r?r@test_with_minlength_and_weights sz,TestBincount.test_with_minlength_and_weightscCs&tjgtd}t|}t||dS)N)r)r9rgrr$r )rRrrr?r?r@r s zTestBincount.test_emptycCs4tjgtd}tj|dd}t|tjdtddS)N)rrI)r()r9rgrr$r rN)rRrrr?r?r@test_empty_with_minlength sz&TestBincount.test_empty_with_minlengthcsltjgtdttdfddttdfddtdttdfddttd fd ddS) N)rz"'str' object cannot be interpretedcstjddS)Nfoobar)r()r9r$r?)rr?r@rK rLz.zmust be non-negativecstjddS)NrM)r()r9r$r?)rr?r@rK rLrIcstjddS)Nr-)r()r9r$r?)rr?r@rK rLzminlength must be non-negativecstjddS)NrM)r()r9r$r?)rr?r@rK rL)r9rgrrr(rOr:)rRr?)rr@test_with_incorrect_minlength s z*TestBincount.test_with_incorrect_minlengthzpython has no sys.getrefcountcCstttj}tttj}x tdD]}tdddgq.Wttttj|ttttj|x(tdD]}tdddgdddgqWttttj|ttttj|dS)NryrErDrHrCrIrZ) sys getrefcountr9rrdoublerQr$r)rRZ intp_refcountZdouble_refcountjr?r?r@test_dtype_reference_leaks sz'TestBincount.test_dtype_reference_leaksN)r^r_r`rSr%r&r'r)r*r+rr,r.rskipifrr3r?r?r?r@r# sr#c@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) TestInterpcCsttttdggtttddgddgtttdddgddgddtttdggddtttddgddgdddS)NrrErD)periodih)r rOr()rRr?r?r@test_exceptions s zTestInterp.test_exceptionscCsBtddd}tddd}tddd}tt||||dS)NrrErIrU)r9r2r r()rRrrx0r?r?r@rT# szTestInterp.test_basicc CsxtddD]}tj|tjd}tj|tjd}tjdd|d|gtjd}|ddd}t|||}t|||}tjddddgtjd}|ddd} t||t|| t|||dd}t|||dd}tjddddgtjd}|ddd} t||t|| t|||dd}t|||dd}tjddddgtjd}|ddd} t||t|| t|||ddd }t|||ddd }tjddddgtjd}|ddd} t||t|| qWdS) NrEry)rrMr)rrD)r)rr) rQr9r:r1rPrgr(rr) rRsizexpZypZincptsZdecptsZincresZdecresZinctgtZdectgtr?r?r@test_right_left_behavior) s:         z#TestInterp.test_right_left_behaviorcCstddd}tddd}d}tt||||d}tt||||td}tt||||td}tt||||tj}tt||||dS)NrrErIg333333?)r9r2r r(rrr)rRrrr8r?r?r@test_scalar_interpolation_pointO s  z*TestInterp.test_scalar_interpolation_pointc Cstddd}tddddtdddd}d}|d|d}tt||||d}d}ttj||||d|d }d}ttj||||d |d d d dddddg}ddddg}ddddg}ddddddddg}ttj|||d d!|dS)"NrrErIy?g333333?rMy@@)rg@)riLiViGirimiBi^iy@?y$@@y@@y@@y@?y!@?y@?y @ @y @ @y@@ih)r6)r9r2r r() rRrrr8Zy0rrr:fpr?r?r@test_complex_interp] s"$   zTestInterp.test_complex_interpcCs`tddd}tddd}td}tt||||tjdtd}tt|||ddS)NrrErIg333333?)r)r9r2rgr r(object)rRrrr8r?r?r@)test_zero_dimensional_interpolation_points s  z4TestInterp.test_zero_dimensional_interpolation_pointcCs2tddd}t|}tttj||ddS)Nrryg-C6?g)r9r:Zsinr r(rC)rRr:r?r?r?r@test_if_len_x_is_small{ s z!TestInterp.test_if_len_x_is_smallcCsddddddddg}d d d d g}d dddg}ddddddddg}ttj|||dd|tj|dddd}tj|dddd}ttj|||dd|dS) NiLiViGr=irrimr>iBi^irIryrHrCg@g@g!@g@g@g @g @g@ih)r6r|)r}rDrMr)r r9r(rgr\)rRrr:r?rr?r?r@ test_period s  zTestInterp.test_periodN) r^r_r`r7rTr;r<r@rBrCrDr?r?r?r@r5 s&r5cCs,x&tt|D]}t||||qWdS)N)rQrr )rFrrnr?r?r@compare_results srEc@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/S)0TestPercentilec Cstdd}tt|ddtt|ddtt|ddtj|d <tjd d R}td d ttt|dtjttj|dddtjt |dj tkWdQRXdS)NrYg?rgrg @rUg?rET)rrrnearest) interpolation) r9r:r percentilerrrrrrr)rRrrr?r?r@rT s zTestPercentile.test_basiccCsRtd}t|ddddt|dddddtd}t|dd|dddS)NrIFlinear)rE)r9rPrI)rRror?r?r@test_api s   zTestPercentile.test_apic CsRtdddgdddgdddgdddgdddgg}ttj|ddddddgdS)NrErCrHrUr)rb)r9rgr rI)rRrr?r?r@test_2D s  zTestPercentile.test_2DcCs4tttdddttjtddddddS)NryrUg@rJ)rH)rr9rIrQ)rRr?r?r@ test_linear szTestPercentile.test_linearcCs8ttjtdddddttjtddddddS)NryrUlower)rHrChigherrI)rr9rIrQ)rRr?r?r@test_lower_higher s z TestPercentile.test_lower_highercCsRttjtdddddttjtdddddttjtddddd dS) Nry3midpoint)rHg@rg@rUrI)rr9rIrQ)rRr?r?r@ test_midpoint s   zTestPercentile.test_midpointcCs8ttjtdddddttjtddddddS)NryrRrG)rHrI1rC)rr9rIrQ)rRr?r?r@ test_nearest s zTestPercentile.test_nearestcCs0tdd}tt|dddgdddgdS)NrYg?rrrUg @g?)r9r:rrI)rRrr?r?r@ test_sequence szTestPercentile.test_sequencecCstddd}tt|ddddgdddd gdd d d gd d ddgg}ttj|ddd|dddgddd gdddgg}ttj|dddt|jtdddd d }tt|djdtt|djdttj|dddjdttj|dddjdttj|dddjdttj|dddjd ttj|dddjd!ttj|dd"d#jdttj|dd"d#jdttj|ddd"d$jdttj|ddd"d$jdttj|ddd"d$jdttj|ddd"d$jd ttj|ddd"d$jd!dS)%NrrHrC)r$rUrg@g@g&@rDrIrZr[rYrryrr)rbg?g?g@g!@g#@rEih)r$rU)rD)r$rUK)rH)rDrCrIrZ)rDrHrIrZ)rDrHrCrZ)rDrHrCrI)rHrHrIrZrP)rH)rbrH)r9r:r\rrIrgrrW)rRrr0rXr?r?r@ test_axis s:"       zTestPercentile.test_axiscCstddd}tt|dd|tt|dtdddd g}ttj|dd d |ttj|dd d j|jtd dd g}t tj|ddd |ttj|ddd j|jt d}ttj|d|ddt|dt d}ttj|dd |d|t||t d}ttj|dd|d|t||tddd}ttj|dddd|tt|dtdddd g}tj|ddd d}t||t|j|jtdddg}tj|dddd}t ||t|j|jtj d|j d}tj|dd|d}t|dt|dtj d|j d}tj|ddd |d}t||t||tj d|j d}tj|ddd|d}t||t||dS)NrrHrCrUg@g@g@g@g@r)rbg?g#@rE)r)rbrrO)rH)rHrbg?g"@r?)r)rHrrI)rHrbr) r9r:r\rrI assertTrueZisscalarrgrWr emptyr)rRrrYrXrZc0Zc1rr?r?r@ test_scalar_q sR             zTestPercentile.test_scalar_qcCstttjddgdddtttjdgdtttjdgdtttjdgttddgtttjdgttdd gdS) NrErD8r-)rHerMrUg)r rOr9rIr_rQ)rRr?r?r@test_exception$ s  zTestPercentile.test_exceptioncCsttdddgdddS)NrErDrHr)rr9rI)rRr?r?r@test_percentile_list, sz#TestPercentile.test_percentile_listcCs tdddg}td}d}tj|||dt|t||tdddgddd gg}td }tj||d |d t|tj||d d td}tj||d|d t|tj||dd tddd}tddddgddddgg}td}ttj|dd |d |t||tdddgdddgg}td}ttj|dd|d |t||td dddgddd dgg}tjd|jd }tj|dd!d |d"}t||t||td dd#gddd$gg}tjd|jd }tj|dd!d|d"}t||t||dS)%NrErDrH)rH)rErDrH)rrCrIrZ)rHrHr)rbr)rb)rHrDrg@g@g@g@g@g@)rDrC)r$rUg?g@g!@g?g@g#@)rDrHr[)rrO)rHrbrrYr) r9rgrNrIrr:r\r\r)rRrrrarYrrXrr?r?r@test_percentile_out/ s@           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)NrrrErDrUr)rb)rErDrE)rrDrE)rrErErH)rrErDrMrGrJrrS)rbrHry)rDrErDrE)rDrrDrE)rDrrErE)rDrrErD)r9r:r\r rIrWrg)rRrr?r?r@test_percentile_empty_dimX s.  z(TestPercentile.test_percentile_empty_dimcCsxtddddg}tj|dgddt|tddddgtddddg}t|dgt|tddddgdS)NrDrHrCrErUF)overwrite_input)r9rgrIr)rRrSr?r?r@test_percentile_no_overwritet s z+TestPercentile.test_percentile_no_overwritecCstjdddd}tjtd|ddt|tjddddtjdddd}tjtd|ddt|tjdddddS)NggY@rI)rrS)rH)r9r2rIr:r tolist)rRrar?r?r@test_no_p_overwrite} s z"TestPercentile.test_no_p_overwritecCsftddddg}tj|dgdd}t|tdgtjddddgdgdd}t|tdgdS) NrDrHrCrErUT)rdg@)r9rgrIr)rRrSrdr?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)N)rr)r9ryr)rrE)rbrMr)rGrMrE)rrMr$r)rrErD)ri)rHrIr[rZ)rrErH)rHrErrD)rHrErD)rHrD)rDrE)rErG)rErH)rDrD)r9r4normaldstackrrIrollaxisrmrzr:r\shuffleravelflatten)rRrKrrr?r?r@test_extended_axis s8* .**&&z!TestPercentile.test_extended_axiscCstd}ttjtj|dddttjtj|dddttjtj|dddttjtj|dddtttj|dddtttj|d ddtttj|d dddS) N)rHrIr[rrr$)rbr)rrrC)rrC)rErE)rMrM)rHrM)r9rPr rrIrO)rRrr?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)N)rHrIr[rr[T)rbkeepdims)rErErErE)rrE)rErEr[r)rrH)rErIr[rE)rE)rHrEr[r)rrErDrH)rr)rrErH)rErEr[rErE)rDrErEr[rE)rDrErIr[rE)r9rPrrIrW)rRrr?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) N)rC)rHrCr)rrG)rHr)rHrEr?rD)r9rNrPrrI)rRrKrr?r?r@test_out s    zTestPercentile.test_outc Cstjddtddttd}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 |WdQRXdS)NT)rrr)rC)rHrC)rDrEr)rrG)rHr)rHrEr?) rrrrr9rNrPrrrI)rRrKrr?r?r@ test_out_nan s      zTestPercentile.test_out_nanc Cstjdtd}tj|d<tjdd}tddttt |dtjttj |dd d tjttj |dd gd d t tjgdt |d j tkt |d j tkt |dj tkWdQRXtjdtd dd d}tj|d<tj|d<tjddN}tddttt |dtjtt |djd t |d j tkWdQRXt tjdtd dd ddd }tj|d<tj|d<tjdd(}tddttt |dd |WdQRXt tjdtd dd ddd gd }tj|dddd f<tj|ddd df<tjdd,}tddttt |dd gd |WdQRXt tjdtd dd ddd }tj|d<tj|d<tjdd(}tddttt |dd |WdQRXt tjdtd dd ddd gd }tj|ddd d f<tj|ddd df<tjdd,}tddttt |dd gd |WdQRXt tjdtd dd ddd}tj|d <tj|d<tjdd(}tddttt |dd|WdQRXt tjdtd dd ddd gd}tj|ddd f<tj|dddf<tjdd,}tddttt |dd gd|WdQRXtj tjdtd dd ddd gddd}tj|ddd f<tj|dddf<tjdd0}tddtttj |dd gddd|WdQRXdS)Nr)rrDT)rrrg333333?r)rbg333333?rErHrC)rErDrH)rErErD)rDrH)rErD)rErH)rrDrG)rH)r9r:rrrrrrrrIrgrrr\rl)rRrSrrdr?r?r@test_nan_behavior s   "   ""  ""   "z TestPercentile.test_nan_behaviorN)r^r_r`rTrLrMrNrQrTrVrWrZr]r`rarbrcrergrhrprqrsrtrurvr?r?r?r@rF s.  $0)    rFc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS) TestMedianc Cstd}td}tddd}tt|dtt|dtt|dttj|ddd dd gttj|dddd gttj|dddtd d ddg}t|d|ddt|td d dg}t|dt|td dd g}t|dt|tt|jdtj |d<t j dd8}t ddt tt|jdt|djt kWdQRXdS)NrErDrZrHg?g@r)rbg?g @rCg6-¦?g 0?g}r?g4 ?g@rMT)rrr)r9rgr:r\rmedianr r rlrrrrrrr)rRa0rrrSrr?r?r@rTA s*    zTestMedian.test_basiccCstddgddgddgddgg}x`|tjjdd d d gD]F}|}tj|dd x t|jD]}tj||d q`Wt||q:Wt tj|dd ddgt tj|j dd ddgt t|d t tj|dd d t t|j d dS)NrDrHrrErZr[rCrIr)rDrHrC)r9)rbg @) r9rgr4ZrandintrzrxrQrlr r r)rRa3rSZorigZaxr?r?r@test_axis_keywordZ s  zTestMedian.test_axis_keywordcCstddgddgddgddgg}td}td}tddd}ttj|d d dttj|d d d ttj|d d d ttj|d dd dd dgttj|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)NrDrHrrErZr[rCrIT)rdg?g@)rdrbg?g @r)r)rHrCrI)rb)rbrd) r9rgr:r\r rxrzrrr4rmrn)rRrzryrrZa4r?r?r@test_overwrite_keywordl s<      z!TestMedian.test_overwrite_keywordcCsHdddg}tt|d|g}tt|dttj|dd|dS)NrErDrHr)rb)r r9rxr )rRrr0r?r?r@r s  zTestMedian.test_array_likecCs4Gdddtj}|dddg}tt|ddS)Nc@s eZdZdddZdddZdS)z,TestMedian.test_subclass..MySubClassNcSst||}||_|S)N)r9rrinfo)clsZ input_arrayr}rr?r?r@__new__ sz4TestMedian.test_subclass..MySubClass.__new__cSsdS)Nir?)rRrbrrr?r?r@r sz1TestMedian.test_subclass..MySubClass.mean)N)NNN)r^r_r`rrr?r?r?r@ MySubClass s rrErDrHi)r9rrrx)rRrrSr?r?r@r s zTestMedian.test_subclasscCsltd}td}ttj|d|d|td}ttj|d|d|td}ttj||d|dS)N)rC)rHrCr)r)rHrEr?)r9rNrPrrx)rRrKrr?r?r@rt s    zTestMedian.test_outc Cstjddtddttd}td}tj|d<ttj |d|d |td }ttj |d |d |td }ttj ||d |WdQRXdS) NT)rrr)rC)rHrC)rDrEr)r)rHrEr?) rrrrr9rNrPrrrx)rRrKrr?r?r@ru s     zTestMedian.test_out_nanc Cstjdtd}tj|d<tjdd`}tddttt |tjttj |dd tjt |dj tkt |d j tkWdQRXtjdtd dd d }tj|d <tj|d<tjddJ}tddttt |tjtt |j dt |dj tkWdQRXt tjdtd dd d d}tj|d<tj|d<tjdd4}tddttt |d|tt|d WdQRXt tjdtd dd d d }tj|d<tj|d<tjdd4}tddttt |d |tt|d WdQRXt tjdtd dd d d}tj|d <tj|d<tjdd4}tddttt |d|tt|d WdQRXdS)Nr)rrDT)rrrr)rbrErHrC)rErDrH)rErErD)rDrH)rErD)rErH)rrD)r9r:rrrrrrrrxrrr\rlr)rRrSrrdr?r?r@rv sJ            zTestMedian.test_nan_behaviorc CsLtjgtd}tjdd8}tddttt|tj t |dj tkWdQRXtjgtdd}tjdd8}tddttt|tj t |dj tkWdQRXtjgtd d}ttj|dd |ttj|d d |tjtj td d}tjdd:}tddtttj|d d |t |dj tkWdQRXdS) N)rT)rrrrrH)rrrD)rbrE) r9rgrrrrrrrxrrr)rRrSrrdr?r?r@r s$zTestMedian.test_emptycCsLtd}ttt|tttj|d<ttt|ttdS)Ng@rD) r9r:rrrxrrArr)rRrKr?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)N)rr)r9ry)rrE)rbrMr)rGrMrE)rrM)rrErD)r)rMi)rHrIr[r)rrErH)rHrErrD)rHrErD)rHrD)rDrE)rErG)rErH)rDrD)r9r4rjrkrrxrlrmrzr:r\rmrnro)rRrKrrr?r?r@rp s4(((($$zTestMedian.test_extended_axiscCsptd}ttjtj|ddttjtj|ddttjtj|ddttjtj|ddtttj|dddS)N)rHrIr[rr)rb)rrrC)rrC)rErE)r9rPr rrxrO)rRrr?r?r@rq( s  z%TestMedian.test_extended_axis_invalidcCstd}ttj|dddjdttj|dddjdttj|dddjdttj|d ddjd ttj|d ddjdttj|d ddjd dS)N)rHrIr[rT)rbrr)rErErErE)rrE)rErEr[r)rrH)rErIr[rE)rE)rHrEr[r)rrErDrH)rrErH)rErEr[rE)r9rPrrxrW)rRrr?r?r@rs0 s zTestMedian.test_keepdimsN)r^r_r`rTr{r|rrrtrurvrrrprqrsr?r?r?r@rw? s!  0rwc@seZdZddZddZdS)TestAdd_newdoc_ufunccCs"tttddttttjddS)NrDZblah)r r(rrOr9r;)rRr?r?r@test_ufunc_argB sz#TestAdd_newdoc_ufunc.test_ufunc_argcCsttttjddS)NrH)r r(rr9r;)rRr?r?r@test_string_argF sz$TestAdd_newdoc_ufunc.test_string_argN)r^r_r`rrr?r?r?r@r@ src@s&eZdZeejjdkddZdS)TestAdd_newdocrDcCs\d}|tjjjjdt|||ttjjj jdk|ttj j j jdkdS)Nz"Current flat index into the array.i,) rr9ZcoreZflatiterindexrIrr[ZufuncZidentityrZ index_tricksZmgrid)rRrr?r?r@ test_add_docL s zTestAdd_newdoc.test_add_docN) r^r_r`rr4r/r~optimizerr?r?r?r@rJ sr__main__)vZ __future__rrrrrr/rZnumpyr9Z numpy.testingrrrrr r r r r rrrrrZnumpy.testing.utilsrZnumpy.lib.function_baserZ function_baserwZ numpy.randomrZ numpy.librrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7Z numpy.compatr8rArBrarprvrxrrrrrrrrrrr r!rArErJrQrrrrrrrrrrrrrrrrrr#r5rErFrwrrr^r?r?r?r@s@   DIpHe   KU'NI He  Ub YLWq2