o 6aH@sddlZddlZddlZddlZddlZddlZddlmZddlZ ddl m Z ddl m Z mZmZddlmZmZmZmZmZmZmZmZmZmZddlmZddlmZmZm Z!ddl"mZ#Gd d d Z$Gd d d Z%Gd ddZ&GdddZ'GdddZ(GdddZ)GdddZ*GdddZ+GdddZ,Gddde-Z.GdddZ/Gdd d Z0Gd!d"d"Z1Gd#d$d$Z2Gd%d&d&Z3Gd'd(d(Z4d)d*Z5Gd+d,d,Z6Gd-d.d.Z7Gd/d0d0Z8Gd1d2d2Z9Gd3d4d4Z:Gd5d6d6Z;Gd7d8d8ZGd=d>d>Z?Gd?d@d@Z@GdAdBdBZAGdCdDdDZBGdEdFdFZCGdGdHdHZDdIdJZEGdKdLdLZFGdMdNdNZGGdOdPdPZHGdQdRdRZIGdSdTdTZJdS)UN)Decimal)umath)randrandintrandn) assert_ assert_equal assert_raisesassert_raises_regexassert_array_equalassert_almost_equalassert_array_almost_equal assert_warnsassert_array_max_ulp HAS_REFCOUNT)rational)assumegiven strategies)numpyc@<eZdZddZddZddZddZd d Zd d Zd S) TestResizecCstddgddgg}tgdgdg}tt|d|tddgddgddgddgg}tt|d|tgdgd gd gd g}tt|d |dS) Nrrrrrrrrrrr)rrr)rrrrrrrrnparrayrresizeselfAAr1Ar2Ar3r,?/usr/lib/python3/dist-packages/numpy/core/tests/test_numeric.py test_copiess""zTestResize.test_copiescCstgd}tgdgdg}tt|d|tddgddgddgddgg}tt|d|tgdgdgdgdg}tt|d |dS) Nr)rrrr)rrrrrrrrrr!r"r&r,r,r- test_repeats#s""zTestResize.test_repeatscCsttddgddgg}t|d}t|tgt|j|jt|d}t|jdt|d}t|jddS)Nrrrrrrrrr)r#r$r%r rdtypeshaper'r(Arr,r,r-test_zeroresize.s    zTestResize.test_zeroresizecCsHtjddtjfgd}t|d}t|td|jt|j|jdS)Nrar3rr)r#zerosfloat32r%r r3rr5r,r,r-test_reshape_from_zero:s z!TestResize.test_reshape_from_zerocCsXtjddtjd}d}tjtddtj||dWddS1s%wYdS)Nr r9)negative)match) new_shape)r#aranger<pytestraises ValueErrorr%)r'r(rCr,r,r-test_negative_resizeAs "zTestResize.test_negative_resizecCsGdddtj}tdg|}tt|d|usJtt|d|us*Jtg|}tt|d|us>JdS)Nc@seZdZdZdS)z)TestResize.test_subclass..MyArray?N)__name__ __module__ __qualname____array_priority__r,r,r,r-MyArrayHsrNrr)r#ndarrayr$viewtyper%)r'rNmy_arrr,r,r- test_subclassGs zTestResize.test_subclassN) rJrKrLr.r/r7r=rHrTr,r,r,r-rs    rc@s~eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZejdejejejejejejejejejejejg ddZejdej dd ejj!d!d"d#dd$e"#e"$dfde"#e"$d fgd%d&Z%d'd(Z&ejj!e'd)d*d+d,Z(d-d.Z)d/d0Z*d1d2Z+d3d4Z,d5d6Z-d7d8Z.d9d:Z/d;d<Z0d=d>Z1d?d@Z2dAS)BTestNonarrayArgscCs@gdgdgdg}gd}gd}t||}t||dS)NrrrrrrOrO)rOrrO)rrr)r#chooser)r'choicestgtr8outr,r,r- test_chooseUs zTestNonarrayArgs.test_choosecCs,gd}t|dd}gd}t||dS)N)r@rOrrr>irrZ)rrOrrrZrrr#clipr)r'arrr^r]r,r,r- test_clip_szTestNonarrayArgs.test_clipcCs<gdgdg}gdg}tjddg|dd}t||dS)NrrrrrrOrYrZ rraxis)r#compressrr'rcr]r^r,r,r- test_compresses  zTestNonarrayArgs.test_compresscCs:gdgdg}tddg}tj|dd}t||dS)NrrrZrrrrrrrrrri)r#r$ count_nonzerorrlr,r,r-test_count_nonzerols z#TestNonarrayArgs.test_count_nonzerocCs6gdgdg}ttt|tgdkdS)NrrrOrY)rrrYxi)rr#all cumproductr$r'r(r,r,r-test_cumproductss&z TestNonarrayArgs.test_cumproductcCs6gdgdgdg}t|}gd}t||dS)Nrrrr)rrOrYrZ)rgrhr> )rrOr>)r#diagonalr)r'r8r^r]r,r,r- test_diagonalws zTestNonarrayArgs.test_diagonalcCsgdgdg}tt|dkttt|dtgdkttt|dtddgktjd d #}td d ttt tgt|dj tuWddS1sawYdS) Nrrs @r)g@r~g@r@@Trecordalways) rr#meanrvr$warningscatch_warningsfilterwarningsRuntimeWarningisnancategoryr'r(wr,r,r- test_means$$"zTestNonarrayArgs.test_meancCs gd}ttj|ddddS)N)rrrOr>g@rrig.@)rr#ptpr'r8r,r,r-test_ptpszTestNonarrayArgs.test_ptpcCs6gdgdgdg}gd}ttj|dd|dS)Nr)rOrYrZrh)r>rrrO)rtibiXr@ri)rr#prodr'rcr]r,r,r- test_prods zTestNonarrayArgs.test_prodcCs8gdgdgdgdg}gd}tt||dS)NrrsrZrgrhr>r{ ) rrrrrOrYrZrgrhr>r{r)rr#ravel)r'r8r]r,r,r- test_ravelszTestNonarrayArgs.test_ravelcCs*gd}gd}t|d}t||dS)Nr)rrrrrrr)r#repeatr)r'r8r]r^r,r,r- test_repeats zTestNonarrayArgs.test_repeatcCsBgdgdgdgdg}gdgdg}tt|d|dS)Nrrsrr)rrrrrOrY)rZrgrhr>r{r)rrY)rr#reshaperr,r,r- test_reshapeszTestNonarrayArgs.test_reshapecCsTgd}gd}ttj|dd|td}tt|tjt|ddS)N)g(\?g(\"R@gffffff@g @)g?g R@g@g @r)decimalsrI)rr#aroundfloat64r isinstanceround)r'rcr]sr,r,r- test_rounds  zTestNonarrayArgs.test_roundr3cCsx|d}ttt|tttt|dtttt|ddttt|dtt|ddtt|ddddS)Nrndigits)rrrintr)r'r3rr,r,r-test_dunder_roundsz"TestNonarrayArgs.test_dunder_roundz val, ndigitsir@zOut of range of int32reason)marksrcCs tt||tt||dSN)rrr#int32)r'valrr,r,r-test_dunder_round_edgecasess z,TestNonarrayArgs.test_dunder_round_edgecasescCstddd}ttt|dtjtt|ddddttt|ddtjtt|dddddtd}ttt|dtjtt|dd ttt|ddtjtt|ddd dS) Nffffff@r>Irrii)r#rrrrrint64)r'fir,r,r-test_dunder_round_accuracys z+TestNonarrayArgs.test_dunder_round_accuracyzgh-15896)rFrcCs,ddd}ttt|dt|ddS)Nrr>rr)rrr#r)r'rr,r,r-test_round_py_consistencys  z*TestNonarrayArgs.test_round_py_consistencycCs"gd}t|d}t|ddS)N)irr@rrYr>rr)r# searchsortedr)r'rcr^r,r,r-test_searchsorteds z"TestNonarrayArgs.test_searchsortedcCsNgdgdg}tt|dktt|ddktt|ddkdS)NrrsrYrrrr)rr#sizerxr,r,r- test_sizeszTestNonarrayArgs.test_sizecCsgdgdgdgg}tt|jdtttdjdttjtdddjd ttjtdd djd ttjtdd djd tttd gjdttjtd gddjd ttjtd gd djd ttjtd gd djd dS) Nrrrrrrrrrrr)rrr)rrrirrr@rrr)rr#squeezer4r;rxr,r,r- test_squeezes"zTestNonarrayArgs.test_squeezecCsgdgdg}tt|dtt|dtgdtt|dtddgtjdd #}td d ttt tgt|dj tuWddS1sXwYdS) Nrrsg bp@S?r)?rrrgɪo ?Trrr) r r#stdr$rrrrrrrrr,r,r-test_stds"zTestNonarrayArgs.test_stdcCs\ddgddggddgddggg}ddgddggddgddggg}t|dd}t||dS) NrrrrYrrOrrZ)r#swapaxesr)r'r]r8r^r,r,r- test_swapaxess  zTestNonarrayArgs.test_swapaxescCsDgdgdgdg}dgdgdgg}tj|ddd }t||dS) NrrsrrYrtrTrjkeepdims)r#sumr)r'mr]r^r,r,r-test_sumszTestNonarrayArgs.test_sumcCs2gd}gd}gd}t||}t||dS)N)rrrO)rrrrrrrrO)r#taker)r'r]indicesr8r^r,r,r- test_take s  zTestNonarrayArgs.test_takecCs*ddgddgddgg}tt|ddS)NrrrrrOrY)rr#trace)r'cr,r,r- test_traceszTestNonarrayArgs.test_tracecCs<ddgddgddgg}gdgdg}tt|d |dS) NrrrrrOrY)rrrO)rrrYrr)rr# transposerr,r,r-test_transposeszTestNonarrayArgs.test_transposecCsgdgdg}tt|dtt|dtgdtt|dtddgtjdd "}td d ttt tgt|dj tuWdn1sWwYtddg}d |d<tt|d dS)NrrsgUUUUUU@r)@rrrgvWUU?Trrr?g?) r r#varr$rrrrrrr)r'r(rBr,r,r-test_varszTestNonarrayArgs.test_varN)3rJrKrLr_rdrmrrryr}rrrrrrrrEmark parametrizer#int8int16rruint8uint16uint32uint64float16r<rrparamxfailmathceillog10rrAssertionErrorrrrrrrrrrrrr,r,r,r-rUSsR             rUc@eZdZddZdS) TestIsscalarcCsttdtttdttdttdttdg ttd ddlm}tt|dddd lm}tt|dS) Ng@i90Frr)FractionrO)Number)rr#isscalarr fractionsrnumbersr)r'rrr,r,r- test_isscalar-s  zTestIsscalar.test_isscalarN)rJrKrLrr,r,r,r-r, rc@,eZdZddZddZddZddZd S) TestBoolScalarcCs4tj}tj}d}t|o ||ut|o||udS)Nxyzr#False_True_r)r'rtrr,r,r- test_logical=s zTestBoolScalar.test_logicalcCsPtj}tj}t||B|ut||B|ut||B|ut||B|udSrrr'rrr,r,r-test_bitwise_orD zTestBoolScalar.test_bitwise_orcCsPtj}tj}t||@|ut||@|ut||@|ut||@|udSrrrr,r,r-test_bitwise_andLrzTestBoolScalar.test_bitwise_andcCsPtj}tj}t||A|ut||A|ut||A|ut||A|udSrrrr,r,r-test_bitwise_xorTrzTestBoolScalar.test_bitwise_xorN)rJrKrLrrrrr,r,r,r-r<s  rc@r) TestBoolArraycCstjdgdtddd|_tjdgdtddd|_tjdgdtddd|_|j|_|j|_d|jd<d|jd <d|jd<d|jd <dS) NT)r9rF*rrr) r#r$boolrrocopynmimr'r,r,r-setup^s     zTestBoolArray.setupcCst|jt|jt|j t|j t|jt|jt|j t|j tdD];}tj dgdt ddd}d||<tt|tj dgdt ddd}d||<tt| t ||q@t tddd gd D]5}tj dgd t d}d||<tt|d |d tj dgd t d}d||<tt| d |d qdS)NFr9rZTrhipi)iTi_r?iˆz%rmsg) rrrvanyrr rranger#r$r r list)r'rder,r,r- test_all_anyjs0 zTestBoolArray.test_all_anycCst|j|jtt|j|jtt|j|jtt|j|jtt|j|jtt|j|jtt|j|jtj|j|jdt|j|jtj|j|jdt|j|jdS)Nr^) r rrr#absr r logical_notr rr,r,r-test_logical_not_abssz"TestBoolArray.test_logical_not_abscCsBt|j|jB|jt|j|jB|jt|j|jB|jt|j|jB|jtj|j|j|jdt|j|jt|j|j@|jt|j|j@|jt|j|j@|jt|j|j@|jtj|j|j|jdt|j|jt|j|jA|jt|j|jA|jt|j|jA|jt|j|jA|jtj|j|j|jdt|j|jt|j|j@|jt|j |j@dt|jd@|jt|j d@|jt|j|jB|jt|j |jB|j t|jdB|jt|j dB|j t|j|jA|j t|j |jA|j t|jdA|j t|j dA|j dS)NrFT) r rrr# logical_orr  logical_and logical_xorr rrr,r,r-test_logical_and_or_xors<z%TestBoolArray.test_logical_and_or_xorN)rJrKrLrrrr"r,r,r,r-r]s   rc@$eZdZddZddZddZdS) TestBoolCmpcsxtjdtjd|_tj|jjtd|_tjdtjd|_tj|jjtd|_ d}t dD]*fddt dD|j||d<fd dt dD|j||d<|d7}q,d}t d D]*fd dt d D|j||d <fd dt d D|j ||d <|d 7}q]|j |_ |j |_ tj|j |j<tj|j |j <|j |_|j |_tj|jddd|jddd<tj|jddd|j ddd<tj |jddd|jddd<tj |jddd|j ddd<tj|jddd|jddd<tj|jddd|j ddd<|j |_d|jddd<|j |_d|jddd<|j |_|j |_|j|jd9<|j|j d9<tj |jddd|jddd<tj |jddd|j ddd<tj |jddd|jddd<tj |jddd|j ddd<d|jd dd|jd dd<d|jd dd|j d dd<dS)Nrr9r cg|]}d|@qSrr,.0xrr,r- z%TestBoolCmp.setup..rgcg|] }d|@dkqSr2r,r)r,r,r-r-cr'r(r,r)r,r,r-r-r.rcr/r2r,r)r,r,r-r-r0rrrFrYg)r#onesr<rrr efrredrr nfndnaninffinfdinfefnonanednonansignfsignd)r'rr,r,r-rsP $$  $$     ""$$""    $$$$ $zTestBoolCmp.setupcC@tdD]}t|j|ddk|j|dt|j|dddk|j|dt|j|ddk|j|dt|j|d dk|j|dt|j|d ddk|j|d|j|ddk}t||j|d|j|dt|j|dk}d|j|dk}t||t||t|tj|tjt|tj|tjt|tj|tjtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt |j |d|j|dtt|j|d|j|dqdS)Nrrr)rr rr4r# zeros_likerQrastyperr6isfiniter9isinfr<signbitr>r'rrr2r3r,r,r- test_float*"&$$("  $&&$&zTestBoolCmp.test_floatcCr@)Nrrr)rr rr5r#rArQrrBrr7rCr:rDr=rEr?rFr,r,r- test_doublerKzTestBoolCmp.test_doubleN)rJrKrLrrJrLr,r,r,r-r$s. r$c@sLeZdZddZddZejje dkdddd Z d d Z d d Z dS) TestSeterrcCs"t}t|tddddddS)Nwarnignore)divideinvalidoverunder)r#geterrrdict)r'errr,r,r- test_defaultszTestSeterr.test_defaultcCstMt}tjdd}t||kt}t|ddktjddttddkt|ddktjdi|tt|kWddS1sTwYdS)NprintrPrPraise)rRrRr,)r#errstateseterrrrT)r'rVoldnewr,r,r-test_set"s    "zTestSeterr.test_setarmv5telz See gh-413.rc Cstjdd;tttdgtdgWdn1s"wYtjddtdgtdgWddS1sDwYdS)NrZrYrIrO)r#r[r FloatingPointErrorr$r\rr,r,r-test_divide_err/s  "zTestSeterr.test_divide_errc st}d_ztjdd=}tdtjdd"tgdtdgtd gt t |d Wdn1s?wYWdn1sNwYfd d }tjd dtdd|gtdgtd gWdn1s~wYt jd t|tjd dtj dd dd|gdWdn1swYt jdWt|`dSt|`w)NrTrrrNrY) NrNrIrarcs6jd7_|}tt|dktd|dvdS)NrrrPr)calledrlen)args extobj_errrr,r-log_errCsz'TestSeterr.test_errobj..log_errrOrdr)extobjr) r# geterrobjrerr simplefilterr[ seterrobjr$rrfrP)r' olderrobjrrir,rr- test_errobj8s6      zTestSeterr.test_errobjc Cst}z7ttjtjddgttdgtdD] }ttjtjdgqttdgWt|dSt|w)NrrYi') r#rkrmrUFUNC_BUFSIZE_DEFAULT ERR_DEFAULTrr$r)r'rnrr,r,r-test_errobj_noerrmaskVs   z TestSeterr.test_errobj_noerrmaskN) rJrKrLrWr_rErskipifplatformmachinercrorrr,r,r,r-rMs   rMc@r) TestFloatExceptionsc Csrt|}z|||tdd||fWdSty8}ztt||dkd||fWYd}~dSd}~ww)NFz%Type %s did not raise fpe error '%s'.rz$Type %s raised wrong fpe error '%s'.)rRrrbstrfind)r'fpeerrflopr+yftypeexcr,r,r-assert_raises_fpejs    z%TestFloatExceptions.assert_raises_fpecCsT|||||||||d||||||d||||d|ddSNr,)r~)r'ryrzsc1sc2r,r,r-assert_op_raises_fpetsz(TestFloatExceptions.assert_op_raises_fpec Cs.tjddtjdD]}t|}t|jdkr/t|}|j}|j}|j }d}d}nt |dj } t| }||j}||j}||j }d}d}d } d } | |d d ||| |d d ||| | dd ||d| | dd ||d| | dd |||| | dd | ||| | tj |d|d|j| |dd |d|d| | dd |tj|tj| | dd |d|d| | dd |tj|tj| | dd |tj|tj | | dd |d|tjq WddS1swYdS)NrZrvAllFloatr underflowdivide by zerorroverflowrQcS||Srr,r8br,r,r-z>TestFloatExceptions.test_floating_exceptions..cS||Srr,rr,r,r-rrcSrrr,rr,r,r-rrrcSrrr,rr,r,r-rr?cS||Srr,rr,r,r-rrcS||Srr,rr,r,r-rrcSrrr,rr,r,r-rrrcSrrr,rr,r,r-rrcSrrr,rr,r,r-rrcSrrr,rr,r,r-rrcSrrr,rr,r,r-rrcSrrr,rr,r,r-rr)r#r[ typecodes obj2sctyper3kindfinfotinymaxepsrRrealr~powernexpr;) r'typecoder|fift_tinyft_maxft_epsr divbyzerortyperrQr,r,r-test_floating_exceptionssx        $z,TestFloatExceptions.test_floating_exceptionsc CsTtjdd}tdtjddvtddtt|dtdt |d j vt d t d tt|d td t |d j vt tj t tj tt|dtdt |d j vt dt dtt|dtdt |d j vWdn1swYWddSWddS1swYdS)NTrrrNrrrarrgu<7~rrr@rz invalid valuegYnrr) rrrlr#r[rPrrfrrwmessager$r;)r'rr,r,r- test_warningss&  "z!TestFloatExceptions.test_warningsN)rJrKrLr~rrrr,r,r,r-rvis   6rvc @sReZdZddZddZddZddZd d Zej d d d gej d ddgddZ ej ddge de dge dge dgge de dggddZej ddge de dge dge dgge de dggdd Zej d!ee jd"d#d$d%d&d'egd(d)Zej jej d*ej ddgejee jd"d#d$d%d&d'egd+d,d-d.Zej ddge de dge dge dgge de dggd/dZej ddge de dge dge dgge de dggd0d Zd1d2Zd3d4Zd5d6Zd7d8Zd9S): TestTypescCs~td}tdtdtdtdf\}}}}tdtdtdt df\}}} } t dt dt d} } } t dtdtd}}}t|||ttjt|||ttjt|||ttjt||| ttjt|| | ttj t|| | ttj t|| | ttj t|||ttjt|||ttjt||| ttjt|||ttjt|||ttjt|||ttjt|||ttjt||| ttjt|| |ttj t||| ttj t||| ttj t|| |ttj t|| | ttj t|| |ttj t||| ttjt||| ttjt|t|g|ttjt|t|g|ttjt|t|g|ttjt|t|g| ttjt|t|g|ttjt|| t|gttjt||t| gttjt|tdt| gttj t|| t| gttj t|| t| gttj t|t| g| ttj t|| t|gttj t||t| gttjt|t dt| gttjt|t|g| ttj t|t|g|ttjt|t|g| ttj t|t|g| ttj t|t|g| ttj t|t|g|ttjt|t| g|ttj dS)Nrr@y@)r#bool_rrrrrrrrr<r longdouble complex64 complex128 clongdoublerr3r$)r' promote_funcri8i16i32i64u8u16u32u64f32f64fldc64c128cldr,r,r-check_promotion_casessv ,,""                     zTestTypes.check_promotion_casescCsdd}||tddgtjddgtjdfD]}d|}t|jtd d |jtd|}t|jttjd |jtd|}t|jtd d |jtd|}t|jtd d |jt d|}t|jtd d |jd |}t|jtdd |jt d |}t|jttj d |jt d |}t|jtdd |jt d |}t|jtdd |jqdS)NcSst||jSr)r#addr3rr,r,r-res_typesz)TestTypes.test_coercion..res_typeTFrrr9gX9v?f8z array type %sf4f2yX9v?c16c8) rr#r$rrr3rrr<rrrr)r'rr8rr,r,r- test_coercions4 &zTestTypes.test_coercioncCs(|tjttdtdkdSr)rr# result_typerr3rr,r,r-test_result_typeJs zTestTypes.test_result_typecCsttddtdttddtdttddtdttddtdttddtdttddtdttddtd ttd d td ttddtd ttd d td ttd dtd ttd d td ttddtdttddtdttddtdttddtddS)Ni8z>U16U21zS5z>U8zU5zM8zm8)rr# promote_typesr3rr,r,r-test_promote_types_endianNs z#TestTypes.test_promote_types_endianc Csgd}d}tt}|D]}t|}t||sJt|||us&Jq |D]*}t|}t||r8Jttt||Wdn1sNwYq)td}t||saJt|||uskJdS)N)rrrrr  BHILQPFDGmMfVdouble)r#r3rcan_castrrErF TypeError)r' valid_types invalid_types rational_dt numpy_dtype double_dtr,r,r-#test_can_cast_and_promote_usertypesds"     z-TestTypes.test_can_cast_and_promote_usertypesswapr string_dtypeUScCs|dkr dd}ntj}|}t|d|t|dt|d|t|dt|d|t|d t|d |t|dt|d |t|d t|d |t|dt|d|t|dt|d|t|dt|d|t|dt|d|t|dt|d|dt|dt|d|dt|dt|d|dt|dt|d|dt|dt|d|dt|d t|d|dt|dt|d |dt|dt|d |dt|dt|d |dt|d t|d |dt|dt|d |dt|dt|d |dt|dt|d|dtddS)NrcSs t||Srr#rrr,r,r-rs z6TestTypes.test_promote_types_strings..r 5r4u13u2u410r20i1i26i411r21130O)r#rrr3)r'rrrrr,r,r-test_promote_types_strings|s6 z$TestTypes.test_promote_types_stringsdtype1dtype2V6V10)name1r)name2rzi8,i8i4,i4cC<ttt||WddS1swYdSrrErFrr#rr'rrr,r,r-test_invalid_void_promotion "z%TestTypes.test_invalid_void_promotion)rr)rrzi8,>i8cCt|||us JdSrrrr,r,r-test_valid_void_promotionz#TestTypes.test_valid_void_promotionr3Allzi,iS3S100U3U100cCsddi}tj||d}t||}|j|jksJ|}|jr"dSt||}|jdvs2|jtur:|jdus9Jn|j|ksAJ|j dkrK|jsMJdSdS)Nrmetadata?bhilqpBHILQPefdgFDGOmMV) r#r3rr newbyteorderisnativecharrRrr)r'r3rresr,r,r-%test_promote_identical_types_metadatas    z/TestTypes.test_promote_identical_types_metadataz)ignore:Promotion of numbers:FutureWarningr)rcCs*ddi}ddi}tj||d}tj||d}zt||}Wn ty(YdSw|jdvs3|jtur;|jdus:Jn+||krF||usEJn ||kr_t||j|krY|jdun |j|kn|jdusfJ| }|j|ksqJt||}|j dur| |ksJn||ksJ|j|jksJdS)aMetadata handling in promotion does not appear formalized right now in NumPy. This test should thus be considered to document behaviour, rather than test the correct definition of it. This test is very ugly, it was useful for rewriting part of the promotion, but probably should eventually be replaced/deleted (i.e. when metadata handling in promotion is better defined). rrrNr) r#r3rrrrRrrrrnames)r'rr metadata1 metadata2r res_bsr,r,r-test_promote_types_metadatas2      z%TestTypes.test_promote_types_metadatacCrrrrr,r,r-rrcCrrrrr,r,r-rrcCstttjtjtttjttttt ttddttdd ttddttdddttddd ttddd ttd dd  ttd dd ttdd d  ttdd d ttddd  ttdddttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttddttdd ttdd ttdd ttddttdd ttdd!ttdd ttddttdd ttdd"ttdd# ttdd#ttdd$ ttdd%ttdd" ttdd&ttdd' ttdd(ttdd) ttdd"ttdd# ttdd*ttdd% ttdd+ttdd& ttdd,ttdd( tt tjddtt tjddttjtjtjd-dS).NrrrrS11norrequivzi4 same_kindz>u4unsafer S5S4rrrS2rrS10S9rS20S19rrS6S21U4rU2U5U10U9U20U19U6U11r)from_to) rr#rrrrcomplexfloatr rrr,r,r- test_can_caststzTestTypes.test_can_castcCsttdd ttdd ttjddddttjddddttddg ttjddgdd ttjddgddttdd g ttjdd gddttdd g ttjdd gdddS) Nrrzi4,i2rcastingrf1rr)r0r)r0z(2,3)i4rr#rrr,r,r-"test_can_cast_simple_to_structuredgsz,TestTypes.test_can_cast_simple_to_structuredcCsttdgd ttjdgdddttjdgdddttjdddd ttddgfgd ttjddgfgdddttd gd ttjd gdddttjd gddd dS) Nr/rrr-rrr0)r+r)f0z(3,)i4)r3rr(r1rr,r,r-"test_can_cast_structured_to_simplews z,TestTypes.test_can_cast_structured_to_simplecCstjdtjdD]1}t|}tt|j|tt|j|tt|jd| tt|jd| q tjdD]}t|}tt|j|tt|j|qAdS)Nruintrr+)r#sctypesiinforrminrr)r'dtiirr,r,r-test_can_cast_valuess  zTestTypes.test_can_cast_valuesN)rJrKrLrrrrrrErrrr#r3rrrrrr slowr itertoolsproductrr,r2r4r;r,r,r,r-rstJ6  #         0   M rc@ eZdZdS) NIterErrorNrJrKrLr,r,r,r-r@r@c@DeZdZddZddZddZddZd d Zd d Zd dZ dS) TestFromitercCsddtdDS)Ncss|]}|dVqdS)rNr,r)r,r,r- sz'TestFromiter.makegen..rt)rrr,r,r-makegenzTestFromiter.makegencCsxt|tj}t|tj}t|t}t|jttjkt|jttjkt|jttkdSr)r#fromiterrFrrr+rr3)r'ai32ai64afr,r,r- test_typess zTestFromiter.test_typescCsztt|}t|t}t|td}tt|t|ktt|dktt tj|tt|ddS)Nr>) r#r$rrFrHrrrfr rGr'expectedr8a20r,r,r- test_lengthsszTestFromiter.test_lengthscCsltt|}t|t}t|td}ttj||kddttj||ddkdddS)NrMrri)r#r$rrFrHrralltruerNr,r,r- test_valuess "zTestFromiter.test_valuesccs.t|D]}||krtd||VqdS)Nzerror at index %s)rr@)r'neindexrr,r,r- load_datas   zTestFromiter.load_datacCs(d\}}tttj|||t|ddS)N)r>rOr3countr r@r#rHrVrr'rXrUr,r,r- test_2592s zTestFromiter.test_2592cCs,d}|d}tttj|||t|ddS)Nr>rrWrYrZr,r,r-test_2592_edges  zTestFromiter.test_2592_edgeN) rJrKrLrFrLrQrSrVr[r\r,r,r,r-rDs  rDc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestNonzerocCstttgdtttjgdddtttggftttdgdtttjdgdddtttdggftttdgdtttjdgdddtttdgdgfdSNr?r9r)rr#rqr$nonzerorr,r,r-test_nonzero_trivials z TestNonzero.test_nonzero_trivialcCstttddtttjddddtttttdgfWdn1s3wYtttddtttjddddtttttddgfWddS1smwYdSr^)rr#rqr$rDeprecationWarningr`rr,r,r-test_nonzero_zerods  "zTestNonzero.test_nonzero_zerodcCstgd}tt|dtt|dtt|gdftjgdgdd}tt|ddtt|d dtt|d dtt|d dtt|dgd ftt|d gd fdS)N)rrrr@rrrgr)rrrrY))rrrr)rrrrZ)rrrr)r@rrr)rrZrr))r8r)rr)rr)rrr9r8rrrr)rrr)rrrr)r#r$rrqr`r'r+r,r,r-test_nonzero_onedims zTestNonzero.test_nonzero_onedimcCstgdgdg}tt|ddtt|ddtt|ddtt|ddtt|gdgd ftd}tt|ddtt|ddtt|ddtt|ddtt|gd gd ftjgd gd gd gddgd}tt|ddtt|ddtt|dgdgdftt|dgdgdft|djj j tt|djdtt|djdtt|djgdgdftt|djgdgdfdS)N)rrr)rrrrrrrrrrr)rrrrV)rrrr)rr{)rrrrh)rh)rrOrg)r8r)rrr9r8rrrO)rrrr)rrrr)rrrrr)rrrrr)rrrr)rrrrr) r#r$rrqrBr`eyerTflagsalignedrdr,r,r-test_nonzero_twodims6    "&zTestNonzero.test_nonzero_twodimc CstdD]V}tjdtd}d||dd<tt|dt|d|dtjdtd}d|d|d|<d|d|d<tt|dttd|d|d|dgfqdS) NrMr9Trir>r)rr#r;r rr`rD concatenate)r'rrr,r,r- test_sparses "&zTestNonzero.test_sparsecCsGdddtj}|tjfD]A}tddD]9}ttdd|}tt|||}t||fD]}|D]}t t |tjut |j j q;q7qqdS)Nc@r?)z'TestNonzero.test_return_type..CNrAr,r,r,r-C%rBrrrrr) r#rPrtuplerDrrrQr`rrRrl writeable)r'rrrQr7r4r+nzxnzx_ir,r,r-test_return_type$szTestNonzero.test_return_typecCstgdgdg}tgd}ttj|dd|tddg}ttj|dd|tttj|d dtttj|d dttjtj|ddtttj|tdgdggddS) Nrnro)rrrrrrrirrrrifoo)r#r$rrqr rGr AxisError)r'rrOr,r,r-test_count_nonzero_axis1s z#TestNonzero.test_count_nonzero_axiscCs d}dd}tjdD]}|t|jf}|dkr|dkr:tjd|d}tjd |d}|d |d <|d |d <ntd gd}|d}d|d <d|d <||}tjgdtj d}|tj |d d||dtjgdtj d}|tj |d d||dtd}t tj |dd||dt tj |dd||dt t |||d|dkr tt d gdd}tjgdtj d}|tj |d d||dtjd d gtj d}|tj |d d||dtd }t tj |dd||dt tj |dd||dt t |||dq dS)NzMismatch for dtype: %scSs$t|j|j|dt|||ddS)Nerr_msg)rr3)r8rr|r,r,r-assert_equal_w_dtGszITestNonzero.test_count_nonzero_axis_all_dtypes..assert_equal_w_dtrrMrr9rrrhrz 1970-01-01rhz 1970-01-12)rrrrir{)rrrrrgrYrrrrr) r#rr3namer;r3r$rrBintprqrvoid)r'rr}r9r|rrTrOr,r,r-"test_count_nonzero_axis_all_dtypesAsn        z.TestNonzero.test_count_nonzero_axis_all_dtypesc Csddlm}m}d}d}d}tjd}|jdd|d }|t}t t |D]%} ||| D]} || D]} t tj || d tj || d || fd q4q.q'dS) Nr) combinations permutationsrz)rOrOrOrOzMismatch for axis: %siidrrir{) r=rrr#random RandomStaterrBobjectrrfrrq) r'rrrjrrrngrrTlengthcombopermr,r,r-"test_count_nonzero_axis_consistents$     z.TestNonzero.test_count_nonzero_axis_consistentcCs4tgdgdg}ttj|dd|tdS)N)rrr)rrrr,ri)r#r$rrqrBr rr,r,r-test_countnonzero_axis_emptysz(TestNonzero.test_countnonzero_axis_emptycCsvtgdgdgdg}ttj|dddgdgttj|ddddgd gd ggttj|dd d ggdS) N)rrrr)rrrOr)rZrhrrrTr)rrrrrrrrrY)r#r$rrqrr,r,r-test_countnonzero_keepdimss z&TestNonzero.test_countnonzero_keepdimscCs8tgdgdg}gdgdg}t||dS)N)rrr)rrrYrf)rrr)r#r$rr`)r'rr]r,r,r-test_array_methodszTestNonzero.test_array_methodcCsTtjtddgdgtd}tttj|Gddd}tttjt|gdS)Nrrrr9c@r)z;TestNonzero.test_nonzero_invalid_object..BoolErrorscSstd)Nz Not allowed)rGrr,r,r-__bool__szDTestNonzero.test_nonzero_invalid_object..BoolErrors.__bool__N)rJrKrLrr,r,r,r- BoolErrorsrr)r#r$rr rGr`)r'r8rr,r,r-test_nonzero_invalid_objectsz'TestNonzero.test_nonzero_invalid_objectcCsGddd}Gddd}td|g}tttj|tdg|gg}tttj|td|g}tttj|tdg|gg}tttj|dS)Nc@eZdZdZddZdS)zATestNonzero.test_nonzero_sideeffect_safety..FalseThenTrueFcSz|jWd|_Sd|_w)NT_valrr,r,r-rzJTestNonzero.test_nonzero_sideeffect_safety..FalseThenTrue.__bool__NrJrKrLrrr,r,r,r- FalseThenTrue rc@r)zATestNonzero.test_nonzero_sideeffect_safety..TrueThenFalseTcSr)NFrrr,r,r-rrzJTestNonzero.test_nonzero_sideeffect_safety..TrueThenFalse.__bool__Nrr,r,r,r- TrueThenFalserrTF)r#r$r RuntimeErrorr`)r'rrr8r,r,r-test_nonzero_sideeffect_safetys z*TestNonzero.test_nonzero_sideeffect_safetycCsZtjddd}|jjs J|djjrJt||jjs Jt||jjs+JdS)NrOzi1,i8,i8r9r)r#r;rlrmr`rqr'rcr,r,r-'test_nonzero_sideffects_structured_voids    z3TestNonzero.test_nonzero_sideffects_structured_voidcCs|Gddd} t|dgd}tttj|t|dgd}tttj|t|dggd}tttj|dS)Nc@eZdZddZddZdS)z.ThrowsAftercSs ||_dSr) iters_left)r'itersr,r,r-__init__ zETestNonzero.test_nonzero_exception_safe..ThrowsAfter.__init__cSs$|jdkr td|jd8_dS)Nrzcalled `iters` timesrT)rrGrr,r,r-rs zETestNonzero.test_nonzero_exception_safe..ThrowsAfter.__bool__N)rJrKrLrrr,r,r,r- ThrowsAfters rrOr>r)r#r$r rGr`)r'rr8r,r,r-test_nonzero_exception_safes z'TestNonzero.test_nonzero_exception_safecsddlm}tdg}td|fg}td|fgd}tjjdd|dddfdd |d d fd d tdD}|D]}|qFj|usTJdS)Nr)ThreadPoolExecutor)rrrr)irrcSs |dSr)r`)rcr,r,r-funcs z6TestNonzero.test_structured_threadsafety..funcrg) max_workerscsg|]}qSr,)submit)r*_rcrtper,r-r-r.z.r>) concurrent.futuresrr#r3runiformrQrresult)r'rr9futuresrr,rr-test_structured_threadsafety s     z(TestNonzero.test_structured_threadsafetyN)rJrKrLrarcrernrqrwrzrrrrrrrrrrr,r,r,r-r]s$    B    !r]c@r) TestIndexcCstddd}tdd}tdddd}tdddd}|||f |||f<tt|d|dk|d|dk|d|dkg|dd|dkfkdS) NrrOrgrrrrr)rrrr#r$rv)r'r8rg1g2r,r,r- test_boolean s  TzTestIndex.test_booleancCsDtjgdd}tjgdd}||}t|gt|jtddS)Nrr9r )r#r$rr3)r'r8rrr,r,r-test_boolean_edgecase(s  zTestIndex.test_boolean_edgecaseN)rJrKrLrrr,r,r,r-rs rc@r)TestBinaryReprcCsttdddS)Nr0rr# binary_reprrr,r,r- test_zero1szTestBinaryRepr.test_zerocCs4ttddttddttdddS)Nr>1010i011000011101010iԣ101000111101010011010000rrr,r,r- test_positive4s  zTestBinaryRepr.test_positivecCsDttddttddttddttdddS) Nr@z-1r?z-1010iz-11000011101010i0+\z-101000111101010011010000rrr,r,r- test_negative;s  zTestBinaryRepr.test_negativecCs@ttjddddttjddddttjdddd dS) NrrOwidth00000r>rZ0001010r1111011rrr,r,r-test_sufficient_widthCsz$TestBinaryRepr.test_sufficient_widthcCsZttjddddtddD]}d|d }d|dd }ttj||d|qdS) Nirgr10000000rr{rrr)rr#rr)r'rnumexpr,r,r-test_neg_width_boundariesHs z(TestBinaryRepr.test_neg_width_boundariescCsttjtdddddS)Nl@r@1100000000000000000000000000000000000000000000000000000000000000)rr#rrrr,r,r-test_large_neg_int64Tsz#TestBinaryRepr.test_large_neg_int64N) rJrKrLrrrrrrr,r,r,r-r0s rc@r) TestBaseReprcCsttddddS)Nr100000rr# base_reprrr,r,r- test_base3[zTestBaseRepr.test_base3cCsNttdddttddddttdddttddd dS) Nrr>12r000012rl5j$ 10QR0ROFCEWrrr,r,r-r^szTestBaseRepr.test_positivecCs<ttdddttddddttddddS)Nr>z-12rz-000012z-30rrr,r,r-rdszTestBaseRepr.test_negativecCsntttddWdn1swYtttddWddS1s0wYdS)Nr%)r rGr#rrr,r,r-test_base_rangeis  "zTestBaseRepr.test_base_rangeN)rJrKrLrrrrr,r,r,r-rZs  rc@sFeZdZddZddZddZddZej d gd d d Z d S)TestArrayComparisonscCsbttddgtddg}t|tt|tuttddgtgd}t| tt|tuttddgtddg}t| tt|tuttddgtddg}t| tt|tuttjdgddtjdgdd}t|tt|tuttjd gd dtjd gd d}t|tt|tudS) Nrrrrrr8S1r9)r8rzS1,u4)r# array_equalr$rrRr r'r r,r,r-test_array_equalqs(       $z%TestArrayComparisons.test_array_equalcCstddtjg}tdtjdg}tddtjg}tt|| ttj||ddttj||dd ttj||dd ttj}tt|| ttj||ddtjgdtd}tt||ttj||ddtddgtjdgg}tt|| ttj||ddtdggd\}}tjtj|_|_ttj||d d ttj||dddS) NrrT equal_nanrr9ry??F) r#r$r8r;rrrrimag)r'a1a2a3r8rr,r,r-test_array_equal_equal_nans( z/TestArrayComparisons.test_array_equal_equal_nancCshtjgdtd}t|dkgdt|dkgdtd}t|dkgdt|dkgddS)N)NrNr9)TFT)FTFrFFF)TTT)r#r$rrr3rr,r,r-test_none_compares_elementwises  z3TestArrayComparisons.test_none_compares_elementwisec Csttddgtddg}t|tt|tuttddgtgd}t| tt|tuttddgtddg}t| tt|tuttddgtddg}t| tt|tuttddgtdg}t|tt|tuttddgtdgdgg}t|tt|tuttddgtdg}t| tt|tuttddgtdgdgg}t| tt|tuttddgtgdgdgdg}t| tt|tudS)Nrrrrrrsr)r# array_equivr$rrRr rr,r,r-test_array_equivs6       $ $ . z%TestArrayComparisons.test_array_equivr3)V0V3rcCsjtjd|d}t||||krJ|dkrdStjgd|d}||kr+J||ks3JdS)Nrr9r)123)r#r;r rr$rv)r'r3r;nonzerosr,r,r-test_compare_unstructured_voidss z4TestArrayComparisons.test_compare_unstructured_voidsN) rJrKrLrrrrrErrrr,r,r,r-rps rcCst|||jjdkstjjdkr!tjdkr!t|j |j kn2t|j j |j j kt|j j |j j kt|j j |j j kt|j j |j j kt|j j|j jkt|jj|jjkdS)Nrgrwin32)r r3 alignmentr#ritemsizesysrtrrlowndatart c_contiguous f_contiguouswritebackifcopyr)r+r{r,r,r-assert_array_strict_equals   rc @s2eZdZddZdddZdddZdd Zd d Zd d ZddZ ddZ ddZ ddZ e jddddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Ze jd*dd+gd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dLdMZ)dNdOZ*dPdQZ+dRdSZ,dTdUZ-dVdWZ.dXdYZ/dZd[Z0d\d]Z1d^d_Z2d`daZ3dbdcZ4dddeZ5dfdgZ6dhdiZ7djdkZ8dldmZ9e jdndodpe:;dqfe:dudvdwe:j?dqdwe@dufe:j;dqdxdudpdvdve:j;dqdxdufgdydzZAe jjBd{eCd|d}e jd~e:j;dqe:j>due:De:jEe:j;dqe:jFdufge jGdddZHe jjBdde jd~e:jDdpgdqdxdue:Ide:j;dqe:jFdufge jGdddZJeKeLMeNOdddZPdS)TestClipcCsd|_d|_dS)NrOr)nrncrr,r,r-rs zTestClip.setupNcCsT|dur|dur|||S|j|||dS|dur!||||S|j||||dS)Nr-)rb)r'r8rr~r^r.r,r,r-fastclips zTestClip.fastclipcCs0t||dt||}|j|||f|dS)Nrr)r#lessgreaterr[)r'r8rr~r^selectorr,r,r-rbsz TestClip.clipcCs t||Sr)rr'rTrr,r,r-_generate_datarzTestClip._generate_datacCst||dt||S)Nr)rrr r,r,r-_generate_data_complexszTestClip._generate_data_complexcCst||tjSr)rrBr#r<r r,r,r-_generate_flt_data rGzTestClip._generate_flt_datacCs@t|}tjdkr||jd}|S||jd}|S)Nlittle><)r#asarrayr byteorderrBr3rrr,r,r-_neg_byteorder s  zTestClip._neg_byteordercCs&t||}||}t|jj |Sr)rrrr3r)r'rTrdatar,r,r-_generate_non_native_datas  z"TestClip._generate_non_native_datacCdt||tjSNr>)rrBr#rr r,r,r-_generate_int_datarzTestClip._generate_int_datacCrr)rrBr#rr r,r,r-_generate_int32_datarzTestClip._generate_int32_datar3z?bhilqpBHILQPefdgFDGOcCsXtjd|d}tjd|d}t|dd}|dkr%||ks#JdSt||dS)Nr>r9rrr)r#r3r;rbtolistr)r'r3rcrOactualr,r,r-test_ones_pathological#s zTestClip.test_ones_pathologicalcCB||j|j}d}d}||||}||||}t||dS)Ng?333333?r rrrrbrr'r8rr~acactr,r,r-test_simple_double0 zTestClip.test_simple_doublecCsL||j|j}|t}d}d}||||}||||}t||dSNrr)rrrrBrrrbrrr,r,r-test_simple_int9s zTestClip.test_simple_intcCsN||j|j}t|j}|d}||||}||||}t||dS)Nr r rrr#r;r4rrbrrr,r,r-test_array_doubleCs  zTestClip.test_array_doublecCs||j|j}d}d}||||}||||}t||||j|j}d}|d}t|j j ||||}||||}t||dSNr) rrrrrbr r rrr3rrr,r,r-test_simple_nonnativeLs  zTestClip.test_simple_nonnativecCsd||j|j}d}d}||||}||||}t||d||j|j}d}d}||||}||||}t||dS)Nrr)rIy?y?@)r rrrrbrr rr,r,r-test_simple_complex_s zTestClip.test_simple_complexcCsRtjdtd}|}|}|||d}||d|}t||t||dSNr>r9)r#r3r*r8rrr)r'r8rr~amaMr,r,r-test_clip_complexqs zTestClip.test_clip_complexcCsz||jd|jd}|ddddddf}t|jd t|jd ||dd}||dd}t||dS)Nrr F_CONTIGUOUS C_CONTIGUOUSgg333333?)r rrrrlrrbr)r'r8r r!r,r,r-test_clip_non_contig}szTestClip.test_clip_non_contigcC^||j|j}d}d}t|j}t|j}||||||||||t||dSr(r&rr,r,r-test_simple_out  zTestClip.test_simple_outr.rcCs||j|j}td}td}tj|jtjd}|}|durBt t |j |||||dWdn1sr?rr,r,r-test_clip_with_out_array_int32rAz'TestClip.test_clip_with_out_array_int32cCrBrCrDrr,r,r-!test_clip_with_out_array_outint32rFz*TestClip.test_clip_with_out_array_outint32cCsJtddd}t|j}|jdd|d||dd}t||dS)Nr1rr>r)r#rDr empty_likerkrbr )r'r8r^rOr,r,r-test_clip_with_out_transposeds  z&TestClip.test_clip_with_out_transposedcCsftddd}|}|ddjdd|ddd||dddd}t|dd|dS)Nr1rr@r>rr)r#rDrr rbr )r'r8r rOr,r,r-!test_clip_with_out_memory_overlaps  z*TestClip.test_clip_with_out_memory_overlapcCrGrHrIrJr,r,r-test_clip_inplace_arrayrLz TestClip.test_clip_inplace_arraycCsN||j|j}|}d}d}||||||||||t||dSr(rMrJr,r,r-test_clip_inplace_simplerOz!TestClip.test_clip_inplace_simplecCs\||j|j}|}d}d}tj||||d}|||||t||t||udS)Nr)rr)r rrr r#rbrr)r'r8r rr~rr,r,r-test_clip_func_takes_outs z!TestClip.test_clip_func_takes_outcCsDtd}ttt|jtjd|Wdn1swYttt|jtjd|Wdn1s)r#rDrrbrrbr8)r'rr,r,r- test_clip_nans      "zTestClip.test_clip_nancCsBtjdtd}t|dd}tgd}||ksJdS)Nr>r9rrO) rrrrrrOrOrOrOrO)r#rDrrbr$r)r'r8rrOr,r,r-test_object_clipszTestClip.test_object_clipcCsLtjdtd}ttdt|ddWddS1swYdS)Nr>r9z max or min)r#rDrr rGrbrr,r,r-test_clip_all_nones "zTestClip.test_clip_all_nonecCsPtjdtd}ttd|j|ddddWddS1s!wYdS)Nr>r9zcasting must be one ofrrggarbager-)r#rDrr rGrrr,r,r-test_clip_invalid_castings "z"TestClip.test_clip_invalid_castingz amin, amaxrrr>cCs@tjdtjd}tt|||}t|||}t||dSr,)r#rDrminimummaximumrbr)r'aminamaxr8rOrr,r,r-test_clip_value_min_max_flips z%TestClip.test_clip_value_min_max_flipzarr, amin, amax, expr9rlrcCst|||}t||dSrra)r'rcrvrwrrr,r,r-test_clip_problem_casessz TestClip.test_clip_problem_caseszno scalar nan propagation yetT)rrFstrictzarr, amin, amaxzignore::DeprecationWarningcC0tt|||}t|||}t||dSrr#rtrurbrr'rcrvrwrOrr,r,r- test_clip_scalar_nan_propagation s z)TestClip.test_clip_scalar_nan_propagationzpropagation doesn't match specrNaTcCr{rr|r}r,r,r-test_NaT_propagation s zTestClip.test_NaT_propagation)rr4c CsttB}t||}|tj||d}|tjd|dd\}}||tj tj||ddB}||tj tj||ddB}t t | pWt | t t | pet | t |||} t |t ||} t| | dS)aA property-based test using Hypothesis. This aims for maximum generality: it could in principle generate *any* valid inputs to np.clip, and in practice generates much more varied inputs than human testers come up with. Because many of the inputs have tricky dependencies - compatible dtypes and mutually-broadcastable shapes - we use `st.data()` strategy draw values *inside* the test function, from strategies we construct based on previous values. An alternative would be to define a custom strategy with `@st.composite`, but until we have duplicated code inline is fine. That accounts for most of the function; the actual test is just three lines to calculate and compare actual vs expected results! )r3r4rr) num_shapes base_shapemin_dimsrN)hynpinteger_dtypesfloating_dtypesstjustdrawarraysmutually_broadcastable_shapesflatmap from_dtyperr#rrrbrtrur ) r'rr4dtype_strategyrc in_shapes result_shapervrwrrOr,r,r-test_clip_property- s2  zTestClip.test_clip_property)NNr)QrJrKrLrrrbr r r rrrrrErrrr"r%r'r*r+r/r2r4r7r;r@rErKrNrPrQrRrSrUrWrYr[r\r]r_rbrcrdrerfrgrhrjrkrlrmrnrorprqrsr#r;r3rxrfullrryrrr$r8rrr~ timedelta64rrrrr array_shapesrr,r,r,r-rs                                              rc@sdeZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZdS) TestAllcloseh㈵>:0yE>cCstjdd|_dS)NrO)rQr#r\olderrrr,r,r-rp rGzTestAllclose.setupcCstjdi|jdSrrrr,r,r-teardowns rzTestAllclose.teardowncCstt||d||fdSNz%s and %s not closerr#allcloser'r+r{r,r,r- tst_allclosev szTestAllclose.tst_allclosecCs tt|| d||fdSNz%s and %s shouldn't be closerrr,r,r-tst_not_allclosey s zTestAllclose.tst_not_allclosec Cstddg}tdd}|j}|j}ddgddgf|gdgfdgd||gf||||f|||||df||||ftjtjftjtjgfg}|D] \}}|||qRdS)Nr}rOrOrOrrr)r#r$rDratolrtolr;r)r'rcaranrrrr+r{r,r,r-test_ip_allclose| s     zTestAllclose.test_ip_allclosecCstdd}|j}|j}tjdgdtjgftjdgddgftjtjgdtjgftjtjgddgftj dgtjdgftjdgtjdgf|dgdgfdgd||dgf|||||dfttjdgtdtjgfg }|D] \}}|||qudS)Nrrrrr) r#rDrrrr;r8r$r)r'rrrrr+r{r,r,r-test_ip_not_allclose s" z!TestAllclose.test_ip_not_allclosecC\ttjdg}tdtjg}t||t|ttjdgt|tdtjgdSNrr)r#r$r;rr rr,r,r-test_no_parameter_modification  z+TestAllclose.test_no_parameter_modificationcCs4ttjj}tj|gtjd}tt||dS)Nr9)r#r7int_r8r$rr)r'min_intr8r,r,r- test_min_int szTestAllclose.test_min_intcCs(tdtjg}ttj||dddS)NrITr)r#r$r8rrrdr,r,r- test_equalnan szTestAllclose.test_equalnancCs8Gdddtj}|dg}ttt||tudS)Nc@r)z6TestAllclose.test_return_class_is_ndarray..Fooc_stj|i||Sr)r#r$rQ)clsrgkwargsr,r,r-__new__ rz>TestAllclose.test_return_class_is_ndarray..Foo.__new__N)rJrKrLrr,r,r,r-Foo rrr)r#rPrrRrr )r'rr8r,r,r-test_return_class_is_ndarray s z)TestAllclose.test_return_class_is_ndarrayN)rJrKrLrrrrrrrrrrrrr,r,r,r-rl s rc@seZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdS) TestIscloserrc Cs>|j}|j}tddg}tdd}ddgddgf|gdgfdgd||gf||||f|||||f||||ftjtjftjtjgftjtj gtjtj gfg |_tjdgdtjgftjtj gddgftjtjgdtj gftjtjgddgftjdgtjtj gf|dgdgfdgd||dgf|||d||dfttjdgtdtjgfg |_ tjdgtj|dgf|dd dd||gdtjd gftd gd ftjtjtjtjgfdg|tjtj tjgfd|tjtj tjgfg|_ d d ggdgdgdgdgdg|_ dS)Nrrrrrrrg?g.Ar)rrg@TF)TFFTTFr)TFFF) rrr#r$rDrr;all_close_testsr8none_close_testssome_close_testssome_close_results)r'rrrcrr,r,r-r sL     $  zTestIsclose.setupcCsB||j}|j}t||D]\\}}}tt|||qdSr)rrrzipr r#isclose)r'testsresultsr+r{rr,r,r-test_ip_isclose s zTestIsclose.test_ip_isclosecCs$ttt||d||fdSr)rr#rvrrr,r,r-tst_all_isclose s$zTestIsclose.tst_all_isclosecCs*d}ttt|| |||fdSr)rr#rr)r'r+r{rr,r,r-tst_none_isclose s&zTestIsclose.tst_none_isclosecCstd}d}t|r$t|r$tt||t||k|||fddStt||t|||||fdS)Nz4isclose.all() and allclose aren't same for %s and %sz.isclose and allclose aren't same for %s and %sr)r#rrrrr rv)r'r+r{rmsg2r,r,r-tst_isclose_allclose s ,,z TestIsclose.tst_isclose_allclosecC(||jD] \}}|||qdSr)rrrrr,r,r-test_ip_all_isclose zTestIsclose.test_ip_all_isclosecCrr)rrrrr,r,r-test_ip_none_isclose rz TestIsclose.test_ip_none_isclosecCs8||j|j|j}|D] \}}|||qdSr)rrrrr)r'rr+r{r,r,r-test_ip_isclose_allclose s  z$TestIsclose.test_ip_isclose_allclosecCsJttjtjtjdddgtdtjg}ttj||ddddgdS)NTrrI)r r#rr8r$rr,r,r-test_equal_nan szTestIsclose.test_equal_nancCstjgdtd}tt|ttd|utt|tt|dutjgdtjtjtjg}tt|tttj|utt|tt|tjutjgdtjtjtjg}tjtj|dd}tt|t|ut gd|j tj|tjdd}tt|t|ut gd|j tjgdtjtjtjg}tj||dd}tt|t|ut gd|j dS)NrrrTr) r#ma masked_whererDrrRrr8r;r maskrr,r,r-test_masked_arrays s"zTestIsclose.test_masked_arrayscCstttdddSNr)rr#rrrr,r,r-test_scalar_return9 szTestIsclose.test_scalar_returncCrr)r#r$r;rr rr,r,r-r< rz*TestIsclose.test_no_parameter_modificationcCsTtttjtj tjuttdtjtjutttdtjtjudSNr)rr#rr;rrRrrr,r,r-test_non_finite_scalarC s z"TestIsclose.test_non_finite_scalarcCstjgdgdd}tj||dddsJtj||tdddds(Jtj||ddds3Jtj||tddddsBJdS) N)rrrrzm8[ns]r9rT)rrrns)r#r$rrvrrrr,r,r-test_timedeltaJ s ""zTestIsclose.test_timedeltaN)rJrKrLrrrrrrrrrrrrrrrrr,r,r,r-r s"- rc@r) TestStdVarcCstgd|_d|_dS)N)rr@rr@r)r#r$r(real_varrr,r,r-rU s zTestStdVar.setupcCs0tt|j|jtt|jd|jdS)Nr)r r#rr(rrrr,r,r- test_basicY szTestStdVar.test_basiccC$ttddttdddSrrr#rrrr,r,r- test_scalars] zTestStdVar.test_scalarscCspttj|jdd|jt|jtt|jdttj|jddd|jt|jtt|jddS)Nrddofrr r#rr(rrfr+rrr,r,r- test_ddof1a   zTestStdVar.test_ddof1cCspttj|jdd|jt|jtt|jdttj|jddd|jt|jtt|jddS)Nrrrrr,r,r- test_ddof2g rzTestStdVar.test_ddof2cCstd}td}tj||d}t||ut||tj||d}t||ut||tj||d}t||ut||dS)Nr>rar)r#rDr$rrr rr)r'rr^rGr,r,r-test_out_scalarm s       zTestStdVar.test_out_scalarN) rJrKrLrrrrrrr,r,r,r-rT s rc@r)TestStdVarComplexcCs:tgd}d}tt||tt|d|dS)N)rrr@yrr)r#r$r rr)r'r(rr,r,r-r| szTestStdVarComplex.test_basiccCr)Nrrrrr,r,r-r rzTestStdVarComplex.test_scalarsN)rJrKrLrrr,r,r,r-r{ s rc@sXeZdZddZdddZddZdd Zd d Zd d Ze j j e ddddZ dS)TestCreationFuncscCsbddtjtjD}dd|D}t||dd|DBddd|_dd d |_d |_dS) NcSsh|]}t|qSr,)r#r3r*tpr,r,r- sz*TestCreationFuncs.setup..cSsh|] }|jdr|qS)r)rwendswithrr,r,r-r r0c Ss4h|]}tddD]}t|jdt|q qS)rr>r)rr#r3rwreplace)r*rrr,r,r-r s  cSs|jSr)rwr9r,r,r-r sz)TestCreationFuncs.setup..)keyrr)rrFr>) r=chainr#r6valuessorteddtypesordersndims)r'rvariable_sizedr,r,r-r s  zTestCreationFuncs.setupNc Csdt|j|j|jf}i}|durd|i}tj|D]I\}}}}||g} |r.|jdr.q|| f||d|} t| j |t t | j |j||durc|jdrYt|} n|} t| | | qdS)NrV fill_valuez|Vorderr3z|S)rrrrr=r>rw startswithrr3rgetattrrlrR) r'rrpar fill_kwargrrrr3r4rcrr,r,r-check_function s0    z TestCreationFuncs.check_functioncC|tjdSr)rr#r;rr,r,r- test_zeros zTestCreationFuncs.test_zeroscCrr)rr#r3rr,r,r- test_ones rzTestCreationFuncs.test_onescCrr)rr#emptyrr,r,r- test_empty rzTestCreationFuncs.test_emptycCs |tjd|tjddS)Nrr)rr#rrr,r,r- test_full szTestCreationFuncs.test_fullzPython lacks refcountsrcCsd}t|}t|gdtt||kt|gdtt||kt|gdtt||kt|gddtt||kdS)Nrr>r)r getrefcountr#r;rr3rr)r'dimbegr,r,r-test_for_reference_leak s z)TestCreationFuncs.test_for_reference_leakr)rJrKrLrrrrrrrErrsrrr,r,r,r-r s rc@sJeZdZdZddZddZdddZd d Zd d Zd dZ ddZ dS) TestLikeFuncsz4Test ones_like, zeros_like, empty_like and full_likecCs0tddftddftjddddftddftddddftdddd ftdjd d d dftdjd d d d ftdddddftdddddftdjdd d dftdjdd d dftdddddddftdddddddfg|_gd|_dS)Ng@rrrYrr9rrrrr)rrrrtrr )rrrrrr_)r,rO)rOrYrX)r#r$rDrrrshapesrr,r,r-r s   zTestLikeFuncs.setupcCsb|dur/|r$z|j|}Wn tyYdSwtt||kdStt||kdSdSr)r3rR OverflowErrorrr#rv)r'dzvaluerzr,r,r-compare_array_value s z!TestLikeFuncs.compare_array_valueFc Cs|rd|i}ni}|jD]\}}||fd|i|}t|j|jtt|j|jjt|j|jjt|jj |jj t|jj |jj |durUt|j|jn t|jt|| |||||fd|d|}t|j|jt |jj |durt|j|jn t|jt|| |||||fd|d|}t|j|jt |jj |durt|j|jn t|jt|| |||||fd|d|}t|j|j|jj rt |jj nt |jj |durt|j|jn t|jt|| ||||j D]}dD]]} ||f||| d|} t| j||dur4t| j|jn t| jt|| dksL| dkrS|jj rSt | jj n| dksb| dkrh|jj rht | jj | | ||q|jt|krtt||f||d d|jttj||dd jqtt||f||d d|jt|jqq Gd d d tj} td dgddgg| } || fi|} t t| | u|| fddi|} t t| | udS)Nrr3rrrrr(CFA)r3r4rK)r3rc@r?)z4TestLikeFuncs.check_like_function..MyNDArrayNrAr,r,r,r- MyNDArrayH rBrrrrrsubokF)rrr4r#r$stridesr3rrlrrrrr ndimrfargsortrrPrQrR)r' like_functionr rrrr3r rr szrr8rr,r,r-check_like_function s          z!TestLikeFuncs.check_like_functioncC|tjddSr)rr# ones_likerr,r,r-test_ones_likeS rGzTestLikeFuncs.test_ones_likecCrr)rr#rArr,r,r-test_zeros_likeV rGzTestLikeFuncs.test_zeros_likecCs|tjddSr)rr#rirr,r,r-test_empty_likeY rGzTestLikeFuncs.test_empty_likecCsV|tjdd|tjdd|tjdd|tjdd|tjtjddS)NrTrrgw/^@)rr# full_liker;rr,r,r-test_filled_like\ s zTestLikeFuncs.test_filled_likeN)F) rJrKrL__doc__rrrrrrr r,r,r,r-r s \ rc@rC) TestCorrelatecCstjgd|d|_tddddd|_tjgd|d|_tjgd|d|_tjgd|d|_tjgd |d|_tjgd |d|_ tjgd |d|_ tjgd |d|_ dS) Nrr9rrMr)r@rr) ,4:r%)gr(r$g&r%r().6r*0$r2)r(r%r'r&r%r$r#)r2r-r,r+r*r*r)) r#r%g>gHgPgUgYgKg3) r#r$r+rDxsr{z1z1_4z1rz2z2rzs)r'r9r,r,r-_setupe s  zTestCorrelate._setupcCs|tt|j|jd}t||jt|j|jddd}t||jt|j|jd}t||j t|jddd|jd}t||j t|j|jdddd}t||j t|j |jd}t||j dS)Nrr@)r5r+r# correlater+r{r r/r0r2r1r3r.r4r'rr,r,r-rJq s      zTestCorrelate.test_floatcCsJ|tt|j|jd}t||jt|j|jd}t||jdS)Nr) r5rr#r6r+r{r r/r2r7r,r,r- test_object s  zTestCorrelate.test_objectcCDtd}td}t||t|tdt|tddSNrr)r#r3r6r r'rkr,r,r-test_no_overwrite   zTestCorrelate.test_no_overwritecCsftjgdtd}tjgdtd}tjgdtd}|ddd}tj||dd}t||dS)N)rrry@?r9)r@yy@?)y@rYy @?y&@@y @yr@rmode)r#r$r* conjugater6r )r'r+r{r_zrr,r,r- test_complex s zTestCorrelate.test_complexcCstttjtgtdddWdn1swYtttjtdtgddWddS1sBwYdS)Nrrr?)rErFrGr#r6r$r3rr,r,r-test_zero_size s  "zTestCorrelate.test_zero_sizecCtd}td}tj||dd}tttj||dd}Wdn1s)wYt||tttj||ddWdn1sJwYttj||dd|tttj||ddWddS1srwYdS)Nrrvalidr?vr@r) r#r3r6rrbr r rGr)r'rr< default_mode valid_moder,r,r- test_mode       "zTestCorrelate.test_modeN) rJrKrLr5rJr8r=rCrDrJr,r,r,r-r"d s  r"c@r#) TestConvolvecCs:dgd}dgd}tt||ddtdddS)NrIrrrrb)r r#convolverr;r,r,r-r8 s  &zTestConvolve.test_objectcCr9r:)r#r3rNr r;r,r,r-r= r>zTestConvolve.test_no_overwritecCrE)Nrrrr?rr@r) r#r3rNrrbr r rGr)r'rr<rH full_moder,r,r-rJ rKzTestConvolve.test_modeN)rJrKrLr8r=rJr,r,r,r-rL s rLc@s6eZdZejdgdddZddZddZd S) TestArgwherer7rVcCstd|t}d|d<tt|jd|fd|d<d|jd<tt|jd|fd|d<d|jd<tt|j|jd|fd|d<tt|j|j|fdS)Nr(F.rTr)r#rr rargwherer4flatr)r'r7r+r,r,r-test_nd s  zTestArgwhere.test_ndcCs@tdd}tt|dkddgddgddgddggdS)NrYrrrr)r#rDrr rQrdr,r,r-test_2D szTestArgwhere.test_2DcCs(ttgddgdgdgdggdS)N)rrrrrrrrr)rr#rQrr,r,r- test_list s(zTestArgwhere.test_listN) rJrKrLrErrrSrTrUr,r,r,r-rP s   rPc@r)TestStringFunctioncCstdg}tjddddtt|dtjdddtt|dtjddd dtt|dtjdd dtt|d dS) NrcSdSNFOOr,r+r,r,r-r z=TestStringFunction.test_set_string_function..T)reprrYz array([1])cSrWrXr,rZr,r,r-r r[Fz[1])r#r$set_string_functionrr\rwrr,r,r-test_set_string_function s z+TestStringFunction.test_set_string_functionN)rJrKrLr^r,r,r,r-rV s rVc@r#)TestRollcCs.td}t|d}t|tgddS)Nr>r) rgrhrrrrrrOrYrZ)r#rDrollrr$)r'r+xrr,r,r- test_roll1d s  zTestRoll.test_roll1dcCszttdd}t|d}t|tgdgdgtj|ddd}t|tgdgd gtj|ddd}t|tgd gd gtj|dd d}t|tgd gd gtj|d d d}t|tgdgd gtj|dd d}t|tgdgd gtj|d d d}t|tgd gd gtj|dd d}t|tgdgdgtj|dd d}t|tgd gd gtj|dd d}t|tgdgdgtj|ddd}t|tgd gdgtj|ddd}t|tgdgdgtj|ddd}t|tgd gd gtj|ddd}t|tgd gd gdS)Nr>rrOr)rhrrrr)rrOrYrZrgrrirfre)rrrrr)rhrOrYrZrgrgr)r@r)rr@)rrrrr)rYrZrgrhrOri)r@r@rh)rrrrr)rgrhrOrYrZrYr`)r#rrDr`rr$)r'x2x2rr,r,r- test_roll2d s:  zTestRoll.test_roll2dcCs&tg}tt|dtgdSr)r#r$rr`rdr,r,r-test_roll_empty2 s zTestRoll.test_roll_emptyN)rJrKrLrbrfrgr,r,r,r-r_ s /r_c@seZdZidddddddddd d dd dd dd dddddddddddddddddddddZddZdd Zd!S)" TestRollaxisrhrrgr1rrrr)rr)rrrrrr)rrrrrri)rrrrrrr)rrrrrrr2)rrrrr:rrrr)rrrrrr)rrrrr)rrrr)rrrrcCsjtddddd}ttjtj|ddttjtj|ddttjtj|ddttjtj|dddS) NrtrrrrrrrO)r#rDrr ryrollaxisrr,r,r-test_exceptionsH s zTestRollaxis.test_exceptionsc Csltddddd}t|j}t|jd|jD]\}}tj |||d}|t |jd\}}}} tt ||||| f|kt|j|j||fkt ||ft|jd |d} tj || |d}|t |jd\}}}} tt ||||| f|kt|j|jd| |fkt|jd |dkr|dn|} tj ||| d}|t |jd\}}}} tt ||||| f|kt|j|j|d| fkt|jd |d} |dkr|dn|} tj || | d}|t |jd\}}}} tt ||||| f|kt|j|jd| d| fkt|jd qdS)NrtrrrrOWNDATA)rjstart) r#rDrr rr4rrltgtshaperpr$rvrw) r'r8aindrjr i0rri3ipjpr,r,r- test_resultsO s: " zTestRollaxis.test_resultsN)rJrKrLrtrqr{r,r,r,r-rh7 sJ    rhc@r) TestMoveaxiscCs<tjddd}dD]\}}t||dj}t||q dS)NrOrYrZ))r)rYrZrO)r)rOrZrY)rrX)r@rXr@r#rrmoveaxisr4r)r'r+sourcerOrr,r,r-test_move_to_endv s   zTestMoveaxis.test_move_to_endcCs@tjdddd}dD]\}}}t|||j}t||q dS)Nrrrr))rrri)rrrk)rr@rlr}r'r+r destinationrOrr,r,r-test_move_new_position s  z#TestMoveaxis.test_move_new_positioncCsftd}dddddgddgfddgddgftdtdffD]\}}t|||j}t|dqdS) Nrrh)rr@)r@rrr@rr)r#r;rr~r4r)r'r+rrrr,r,r-test_preserve_order s   z TestMoveaxis.test_preserve_ordercCstd}ddgddgdfddgddgdfgdgddfddgddgd fddgddgd ffD]\}}}t|||j}t||q/dS) Nrzrrrr)rrrrrV)rrr)rrrr)r#r;r~r4rrr,r,r-test_move_multiples s  z TestMoveaxis.test_move_multiplescCstjddd}ttjdtj|ddttjdtj|ddttjdtj|ddttd tj|ddgddgttd tj|ddgddgttd tj|dddgttd tj|ddgdgdS) Nrrrzsource.*out of boundsrr`zdestination.*out of boundsrOzrepeated axis in `source`zrepeated axis in `destination`zmust have the same number)r#rrr ryr~rGrdr,r,r- test_errors s,   zTestMoveaxis.test_errorscCsrtjd}t|dd}t|j|jtt|tjjgd}t|dd}t|t|tt|tj dS)Nrr) r#rr;r~rr4r MaskedArrayrrP)r'r+rr,r,r-test_array_likes s zTestMoveaxis.test_array_likesN) rJrKrLrrrrrrr,r,r,r-r|u s    r|c@s4eZdZddZddZddZddZd d Zd S) TestCrosscCsFddg}ddg}d}t||}t||t||}t|| dS)Nrrrrr)r#crossrr'urGrcpr,r,r-test_2x2 s   zTestCross.test_2x2cCsPddg}gd}tgd}t||}t||t||}t|| dS)NrrrWr>rrr#r$rrrr,r,r-test_2x3    zTestCross.test_2x3cCsPgd}gd}tgd}t||}t||t||}t|| dS)NrrsrrYrrrr,r,r-test_3x3 rzTestCross.test_3x3cCstddgd}tddgd}d}tt|||tt||| tt||dtddgdj}tgdd}tgd d}ttj||dd |tt||j| tt||dtgd dj}tddgdj}tgd d}ttj||ddd |tt|j|j| tt|j|jdtgd d}tgddj}tgdd}ttj||dd|tt|j|| tt||ddS)Nrr)r{rrrrrrWr)axisar)rrhrraxisb)rOrrsr)r)r#tilerrrk)r'rrGrr,r,r-test_broadcasting s0zTestCross.test_broadcastingcCstd}td}tt||jdtd}td}ttj||dddjd ttjtj||dd dttjtj||d ddtd }td }ttj||dd djdttjtj||dd dttjtj||dddtd}tdd D]}ttj|||djdq|dS)N)rrr)rOr)rrOr)r>rrOrcrrr)r>rOrrr)r>rrOrZ)rOrZr)raxisc)r>rOrrZrr`)rrrr)rro)r#r3rrr4r ryr)r'rrGrr,r,r-test_broadcasting_shapes s"       z"TestCross.test_broadcasting_shapesN)rJrKrLrrrrrr,r,r,r-r s    rcCsjtd}td}tddd}tjdd}tjdd}t|||}t||tt||||dS) Nr r(rrrO)rOrO)r4rc)r#r3linspacerPouterr)arr1arr2arr3out1out2res1r,r,r-test_outer_out_param s     rc@sdeZdZddZddZddZddZej d e j e j e j e jgej d gd d d ZdS) TestIndicesc Csbtd\}}t|tgdgdgdgdgt|tgdgdgdgdgdS)Nr!rrrrrVr#rr r$rr,r,r- test_simple s zTestIndices.test_simplecCsHtd\}t|tgdtjddd\}t|tgddS)N)rrzTsparserrdr,r,r-test_single_input% s zTestIndices.test_single_inputcCsPtgtdtgtjdddtggtdtggtjddddS)Nr,Trr0)r r#rrr,r,r-test_scalar_input, szTestIndices.test_scalar_inputcCsLtjddd\}}t|tdgdgdgdggt|tgdgdS) Nr!TrrrrrrVrrr,r,r-rq2 s zTestIndices.test_sparser3dims)r,r0r!cCsDtj||d}t|j|ktj||ddD] }t|j|kqdS)Nr9T)r3r)r#rrr3)r'r3rindsrcr,r,r-rw7 s zTestIndices.test_return_typeN)rJrKrLrrrrqrErrr#rrr<rrwr,r,r,r-r s rc@sTeZdZgdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS) TestRequire) rrr1 CONTIGUOUSrr0FORTRANr(ALIGNEDW WRITEABLErrrcCs|tddd|fg}|jdd|d}t|jd t|jd t|jd t|jd  t|jd  |S) Nrm)junkrr8F)writerrrrrr()r#r;setflagsrrl)r'r3rcr8r,r,r-generate_all_falseH s zTestRequire.generate_all_falsecCsx|dur|j}t|||g}t|j|t|j|kt|d|g}|ddkr3t||udSt|j|dS)Nrr)r3r#requirerrl)r'flagr3rcrrr,r,r-set_and_check_flagS s zTestRequire.set_and_check_flagcCsHddg}gd}t|||jD]\}}}||}||||qdS)Nrr)Nrr)r=r> flag_namesrr)r'idfdidtypefdtyperr8r,r,r-test_require_eachb s  zTestRequire.test_require_eachcCs |d}tttj|dddS)NrQ)rr KeyErrorr#rrr,r,r-test_unknown_requirementj s z$TestRequire.test_unknown_requirementcCs`tgddgd}t|jdt|jdt|jdt|jdkt|gddS)Nrr)rrr(rrrrr()r#rrrlr3rrr,r,r-test_non_array_inputn s z TestRequire.test_non_array_inputcCs$|d}tttj|dddgdS)Nrrrr)rr rGr#rrr,r,r-test_C_and_F_simulv s zTestRequire.test_C_and_F_simulcCs@Gdddtj}|d}t|ddg}tt|tjudS)Nc@r?)z4TestRequire.test_ensure_array..ArraySubclassNrAr,r,r,r- ArraySubclass{ rBrrmE)r#rPrrrR)r'rr8rr,r,r-test_ensure_arrayz szTestRequire.test_ensure_arraycCs8Gdddtj}|jD] }|d}||d|q dS)Nc@r?)z8TestRequire.test_preserve_subtype..ArraySubclassNrAr,r,r,r-r rBrrm)r#rPrr)r'rrr8r,r,r-test_preserve_subtype s  z!TestRequire.test_preserve_subtypeN) rJrKrLrrrrrrrrrr,r,r,r-rA s  rc@r) TestBroadcastc Cs&tdtdtdtdg}tj|ttj|ddtj|ddttj|ddtj|ddttj|ddtj|ddt|dtj|dd|dg}|D],}t|jd t|jd t|jd t|jd t||j D] \}}t ||j uqqddS) N)rYrZ)rOrYr)rZ)rOrrZrrrr@rXrr) r#r broadcastrr4rr7numiterrrrbase)r'arrsmitsmitr8iar,r,r-test_broadcast_in_args s$&&&"    z$TestBroadcast.test_broadcast_in_argscCsbtdg}tj|}t|jdt|jdt|jdt|jdt|d|j dj udS)NrXrrr) r#rrrr4rr7rrrr)r'rrr,r,r-test_broadcast_single_arg s      z'TestBroadcast.test_broadcast_single_argcCsZtd}tdD]!}|g|}|dkrtttjg|Rq tj|}t|j|q dS)Nr #r&)r#rrr rGrrr)r'rcrvrrr,r,r-test_number_of_arguments s    z&TestBroadcast.test_number_of_argumentscCstdg}tj|}tj|ii}t|j|jt|j|jt|j|jt|j|jt|j dj |j dj ut t tjdfiddidS)NrXrrr+) r#rrrr4rr7rrrrr rG)r'rrmit2r,r,r-test_broadcast_error_kwargs s  z)TestBroadcast.test_broadcast_error_kwargsN)rJrKrLrrrrr,r,r,r-r s  rc@s&eZdZGdddejZddZdS) TestKeepdimsc@seZdZdddZdS)zTestKeepdims.sub_arrayNcCstjj||||ddS)NTr)r#rPr)r'rjr3r^r,r,r-r rzTestKeepdims.sub_array.sum)NNN)rJrKrLrr,r,r,r- sub_array srcCs,|j}td|}tttj|dddS)NTr)rr#rDrQr rr)r' sub_classr+r,r,r- test_raise szTestKeepdims.test_raiseN)rJrKrLr#rPrrr,r,r,r-r s rc@r) TestTensordotcCsLtd}td}t||d}t|t||t|td||dS)Nrnrjrzij,jk)r#rP tensordotr doteinsum)r'r8rtdr,r,r-test_zero_dimension s  z!TestTensordot.test_zero_dimensioncCs*td}t||ggf}t||dSr)r#r$rr )r'arr_0dretr,r,r-test_zero_dimensional s z#TestTensordot.test_zero_dimensionalN)rJrKrLrrr,r,r,r-r s r)Krrr=rtrErdecimalrrr# numpy.corer numpy.randomrrr numpy.testingrrr r r r r rrrnumpy.core._rational_testsr hypothesisrrrrhypothesis.extrarrrUrrrr$rMrvr Exceptionr@rDr]rrrrrrrrrrrrr"rLrPrVr_rhr|rrrrrrrr,r,r,r-s  0  <Z!WdQ`T2Q*lU' GH%:>JN )J3