a :jg@sddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z ddlmZddlZGdddZGdddZGdd d ZGd d d ZGd d d ZGdddZGdddZejje ddGdddZGdddZdS)N) assert_ assert_raises assert_equal assert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)randomc@s4eZdZddZddZddZddZd d Zd S) TestSeedcCs<tjd}t|ddtjd}t|dddS)Nrii)npr RandomStaterrandintselfsrH/usr/local/lib/python3.9/site-packages/numpy/random/tests/test_random.py test_scalars  zTestSeed.test_scalarcCstjtd}t|ddtjtd}t|ddtjdg}t|ddtjdg}t|dddS)N r iriri )rr rrangerrarangerrrr test_arrayszTestSeed.test_arraycCs$tttjjdtttjjddS)Nr TypeErrorrr r ValueErrorrrrrtest_invalid_scalar szTestSeed.test_invalid_scalarcCsbtttjjdgtttjjdgtttjjdgtttjjgdtttjjgddS)Nrr)r#)r$r#rr!rrrtest_invalid_array%s zTestSeed.test_invalid_arraycCsRtttjjtjgtjdtttjjgdgtttjjgdgdgdS)Ndtyper$r%))rr rr rarrayint64r!rrrtest_invalid_array_shape-s z!TestSeed.test_invalid_array_shapeN)__name__ __module__ __qualname__rrr"r'r1rrrrr s  r c@seZdZddZddZdS) TestBinomialcCsBtjddd}dD]*}ttd|dktt|||qdS)Nr%intr()r?r$r)rzerosrr binomialr)rr8prrr test_n_zero7szTestBinomial.test_n_zerocCstttjdtjdS)Nr$)rr r r9rnanr!rrr test_p_is_nan@szTestBinomial.test_p_is_nanN)r2r3r4r;r=rrrrr56s r5c@s4eZdZddZddZddZddZd d Zd S) TestMultinomialcCstdddgdS)Nd皙?皙?r multinomialr!rrr test_basicFszTestMultinomial.test_basiccCstdgddS)Nr?)r@rArErErBr!rrrtest_zero_probabilityIsz%TestMultinomial.test_zero_probabilitycCsZtdtddkodkntddd}ttd|ktt|dkdS)Nrr-)rr rrall)rxrrrtest_int_negative_intervalLs$z*TestMultinomial.test_int_negative_intervalcCsddg}ttjd|tdjdttjd|tdjdttjd|tdjdttjd|ddgjdttjd|djdttjd|tdjdtttjjd|t ddS)Nr7r$r$r%r%r%r%r%r%r%) rrr rCuint32shaper/rrfloatrr:rrr test_sizeRszTestMultinomial.test_sizec CstttjjdddggtttjjddgdggtttjjddgdggdgdgggtttjjdtddgddggdS)Nrrr$)rr rr rCr/r!rrrtest_multidimensional_pvals`s&z+TestMultinomial.test_multidimensional_pvalsN)r2r3r4rDrFrJrRrSrrrrr>Es r>c@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestSetStatecCs$d|_t|j|_|j|_dSNiI)seedr rprng get_statestater!rrr setup_methodhszTestSetState.setup_methodcCs<|jd}|j|j|jd}tt||kdS)N)rWZtomaxint set_staterYrrrHroldnewrrrrDms  zTestSetState.test_basiccCs@|jjdd}|j|j|jjdd}tt||kdSNr+size)rWstandard_normalr\rYrrrHr]rrrtest_gaussian_resetssz TestSetState.test_gaussian_resetcCsR|j|j}|jjdd}|j||jjdd}tt||kdSr`)rWrcrXr\rrrH)rrYr^r_rrr test_gaussian_reset_in_media_reszs    z-TestSetState.test_gaussian_reset_in_media_rescCsz|jdd}|jjdd}|j||jjdd}|j|j|jjdd}tt||ktt||kdS)Nr&r[ra)rYrWrcr\rrrH)r old_statex1Zx2Zx3rrrtest_backwards_compatibilitys z)TestSetState.test_backwards_compatibilitycCs|jdddSNr7)rWnegative_binomialr!rrrtest_negative_binomialsz#TestSetState.test_negative_binomialcCs:tt|jdWdn1s,0YdS)Nr)pytestraises IndexErrorrWr\r!rrrtest_set_invalid_states z#TestSetState.test_set_invalid_stateN) r2r3r4rZrDrdrerhrkrorrrrrTgs  rTc @s|eZdZejjZejejej ej ej ej ej ejejg ZddZddZddZddZd d Zd d Zd dZddZdS) TestRandintcCstt|jdtddSNr$r()rrrfuncrPr!rrrtest_unsupported_typesz!TestRandint.test_unsupported_typecCs|jD]}|tjurdn t|j}|tjur2dnt|jd}tt|j|d||dtt|j||d|dtt|j|||dtt|jdd|dqdS)Nrr%r$r() ityperbooliinfominmaxrr rr)rdtlbndubndrrrtest_bounds_checkings z TestRandint.test_bounds_checkingcCs|jD]}|tjurdn t|j}|tjur2dnt|jd}|d}t|j||dd|d||}t|j||dd|d|||d}t|j||dd|d|qdS)Nrr%r$r rbr))rtrrurvrwrxrrr)rryrzr{tgtrrrtest_rng_zero_and_extremess  z&TestRandint.test_rng_zero_and_extremesc Cs|jD]}|tjurdn t|j}|tjur2dnt|jd}z|j|||dWqty}ztdt |WYd}~qd}~00qdS)Nrr%r$r(zMNo error should have been raised, but one was with the following message: %s) rtrrurvrwrxrr ExceptionAssertionErrorstr)rryrzr{errrtest_full_ranges zTestRandint.test_full_rangecCstj|jddD]@}dD]6}|jd|d|d}t||kt|dkq q|jdddtjd}t|dkt|dkdS)Nr$)r,r[r%ir}r) rr rVrtrrrrxrwru)rryr{valsrrrtest_in_bounds_fuzzs zTestRandint.test_in_bounds_fuzzc Csddl}dddddddddd }|jddD]r}tjd tjd kr\|jdd d |d }n|jdd d |d }| | tj  }t |t|j|kq.tjd |jddd td  tj }| | }t |ttj|kdS)NrZ@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71Z@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4Z@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92fZ@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9eZ@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404) ruint16int32r0int8uint16rNuint64uint8r$ilittler.r r}r%)hashlibrtrr rVsys byteorderrrbyteswapsha256viewr hexdigestrr)nameru)rrr~ryvalresrrrtest_repeatabilitys,    zTestRandint.test_repeatabilitycCs`tj}ttjj}tttjj}tttjjd}tjj|||d}t||dSrq)rr0rvrxrr rr)rryr~rzr{actualrrrtest_int64_uint64_corner_cases z)TestRandint.test_int64_uint64_corner_casecCs|jD]^}|tjurdn t|j}|tjur2dnt|jd}|j|||d}t|jt|qtt fD]f}|tur~dn tdj}|turdntdjd}|j|||d}t t |d tt ||qndS)Nrr%r$r(longr)) rtrrurvrwrxrrrr)r6rhasattrtype)rryrzr{samplerrrtest_respect_dtype_singletons  z(TestRandint.test_respect_dtype_singletonN)r2r3r4rr rrrrurrrrrrNr0rrtrsr|rrrrrrrrrrrps !rpc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zejd'ejejejgd(d)Zejd'ejejejgejd*d+d,gd-d.Zd/d0Zd1d2Z d3d4Z!d5d6Z"d7d8Z#d9d:Z$d;d<Z%d=d>Z&d?d@Z'dAdBZ(dCdDZ)dEdFZ*dGdHZ+dIdJZ,dKdLZ-dMdNZ.dOdPZ/dQdRZ0dSdTZ1dUdVZ2dWdXZ3dYdZZ4d[d\Z5d]d^Z6d_d`Z7dadbZ8dcddZ9dedfZ:dgdhZ;didjZdodpZ?dqdrZ@dsdtZAdudvZBdwdxZCdydzZDd{d|ZEd}d~ZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRdS)TestRandomDistcCs d|_dSrUrVr!rrrrZ+szTestRandomDist.setup_methodcCsJtj|jtjdd}tddgddgddgg}t||d d dS) Nr+r%_\*?琛?<p?,o?H?Z?decimal)rr rVZrandr/rrrdesiredrrr test_rand.s zTestRandomDist.test_randcCsJtj|jtjdd}tddgddgddgg}t||d d dS) Nr+r%!s zTestRandomDist.test_randintcCstj|jt<}|t}tjjdddd}tt|dkWdn1sV0Yt ddgdd gd d gg}t ||dS) Nrrrrar$rr+rrrr) rr rVr recordDeprecationWarningrandom_integersrlenr/rrsupwrrrrrtest_random_integersFs . z#TestRandomDist.test_random_integerscCsxtH}|t}tjtdjtdj}tt |dkWdn1sT0Ytdj}t ||dS)Nlr$) r rrrr rrvrxrrrrrrrtest_random_integers_max_intQs  . z+TestRandomDist.test_random_integers_max_intcCsrtVtdttttjjtdj tttjjtdj tdj Wdn1sd0YdS)Nerrorr) warningscatch_warnings simplefilterrrrr rrvrxr!rrrtest_random_integers_deprecated`s   z.TestRandomDist.test_random_integers_deprecatedcCsHtj|jtjd}tddgddgddgg}t||dd dS) Nrrrrrrrrr)rr rVr/rrrrr test_randomns  zTestRandomDist.test_randomcCs8tj|jtjdd}tgd}t||dS)Nr,)r%r+r%r+rr rVchoicer/rrrrrtest_choice_uniform_replacevsz*TestRandomDist.test_choice_uniform_replacecCs@tj|jtjjddgdd}tgd}t||dS)Nr,)皙?r皙?rr:)r$r$r%r%rrrrrtest_choice_nonuniform_replace|sz-TestRandomDist.test_choice_nonuniform_replacecCs<tj|jtjjdddd}tgd}t||dS)Nr,r+Freplace)rr$r+rrrrrtest_choice_uniform_noreplacesz,TestRandomDist.test_choice_uniform_noreplacecCsBtj|jtjjdddgdd}tgd}t||dS)Nr,r+F)rg333333?r7rrr:)r%r+r$rrrrr test_choice_nonuniform_noreplaces  z/TestRandomDist.test_choice_nonuniform_noreplacecCs<tj|jtjgdd}tgd}t||dS)N)abcdr,)rrrrrrrrrtest_choice_nonintegersz%TestRandomDist.test_choice_nonintegercCs4tjj}tt|ddtt|ddtt|ddgddggdtt|gdtt|gddddgddggd tt|ddgdgd d tt|ddgdd d gd tt|ddgdd d gd tt|gddddtt|gddddtt|gddddtt|gddddtt|gdddgdddS)Nrr+g@r$r%r,)r$r%r+r,g?r)rrr@g?grr*Frr&)r)rr$)r$rrr)rr rrr )rrrrrtest_choice_exceptionss$z%TestRandomDist.test_choice_exceptionsc Cs4ddg}tttjjdddtttjjdddtttjjdd|dtttjjdd|dtttjjddgddttjjdgdddutddg}tjdtd }||d <ttjj|dd|ut}tttjjd|dd tttjjd|dd tttjjd|d|d tttjjd|d|d tttjjddg|dd ttjjdg|ddj d ktddg}tjdtd }||d <ttjj||dd |ud }gd }t tjjd |ddj |t tjjd |ddj |t tjjd |d|dj |t tjjd |d|dj |t tjjt d |ddj |t tjjd d ddj dt tjjd dd dj dt tjjddd dj dt tjjd d dj dt tjjgddj dt tjjddgddj dtttjjgddS)Nr?r%TrFrr$r(r)r%r+)rrrrrr@r.)r+rr,rai)rrrr)rrZisscalarr rr/emptyobjecttuplendimitemrrOrrrr )rr:rarrrrrrtest_choice_return_shapesL  " z'TestRandomDist.test_choice_return_shapecCs.tgd}gd}tttjj||ddS)N)*r$r%)NNNr)rr/rr r r)rrr:rrrtest_choice_nan_probabilitiessz,TestRandomDist.test_choice_nan_probabilitiescCs,tj|jtjd}d}t||dS)Nrs Ui+Wf)rr rVbytesrrrrr test_bytess zTestRandomDist.test_bytesc Csddddddddddddddd dd dd dd df D]D}tj|j|gd }tj||}|gd}t||qFdS)NcSs tgSN)rr/rIrrrz-TestRandomDist.test_shuffle..cSs|SrrrrrrrrcSst|tjSr)rasarrayastyperrrrrrrcSst|tjSr)rrrfloat32rrrrrrcSst|tjSr)rrrZ complex64rrrrrrcSst|tSr)rrrrrrrrrrcSsdd|DS)NcSsg|] }||fqSrr.0irrr rATestRandomDist.test_shuffle....rrrrrrrcSstdd|DS)NcSsg|] }||gqSrrrrrrrrr)rrrrrrrrcSst||gjSr)rZvstackTrrrrrrcSs*tdd|DdtfdtfgtjS)NcSsg|] }||fqSrrrrrrrrrrr)rrr6rZrecarrayrrrrrscSs$tdd|DdtfdtjfgS)NcSsg|] }||fqSrrrrrrrrrrr)rrrrrrrrrs) r$r%r+r,r-r.r r) rr$rr.r%r,r-rrr+)rr rVshuffler)rconvalistrrrrr test_shuffles$   zTestRandomDist.test_shufflecCstjttddddd}tjtdddd}|}|}tdD]h}tj|t t |j |j t |j |j tj|t t |j |j t |j |j qVdS)N)r-r,r+r$r2) rmaZ masked_valuesZreshaperrcopyr rrsorteddatamask)rrrZa_origZb_origrrrrtest_shuffle_maskeds"     z"TestRandomDist.test_shuffle_maskedr cCsbdddddddd}tjtd d }||Wdn1sB0Yd |djvs^JdS) Nrr$r%r+r,r-r.)rr$r%r+r,r-r.z!you are shuffling a 'dict' objectmatchr)rlwarns UserWarningrfilename)rr valuesZrecrrrtest_shuffle_untyped_warning s(z+TestRandomDist.test_shuffle_untyped_warninguse_array_likeTFcsGdddtj}dtdgtdtdtdg}tj|td}dd|D|rd||}tfd d |Ds~J|rt|tjj st j t d d | |Wdq1s0Yn$| |tfd d |DsJdS)Nc@s eZdZdS)z>TestRandomDist.test_shuffle_no_object_unpacking..MyArrN)r2r3r4rrrrMyArrsrr+rrr(cSsh|] }t|qSridrrrr rzBTestRandomDist.test_shuffle_no_object_unpacking..c3s|]}t|vVqdSrrrZitem_idsrr #rzBTestRandomDist.test_shuffle_no_object_unpacking..z#Shuffling a one dimensional array.*rc3s|]}t|vVqdSrrrrrrr,r)rndarrayr/Zfloat64rrrH isinstancer Generatorrlr r r)rr rritemsrrrr test_shuffle_no_object_unpackings$ * z/TestRandomDist.test_shuffle_no_object_unpackingcCstj|jtdj}tj|tt|gdtj|j}||tt|gdtj |j}||tt|gddS)Nr-)rr$r,r+r%)rr$r%r+r,)r,r$rr+r%) rr rVrrrrrr default_rng)rrrngrrrtest_shuffle_memoryview.s    z&TestRandomDist.test_shuffle_memoryviewcCsPtd}d|j_tjtddtj|Wdn1sB0YdS)Nr+Fz read-onlyr) rr8flagsZ writeablerlrmr r r)rrrrrtest_shuffle_not_writeable=s z)TestRandomDist.test_shuffle_not_writeablecCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrrrragAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rr)rr rVbetar/rrrrr test_betaCszTestRandomDist.test_betacCsJtj|jtjjdddd}tddgddgd d gg}t||dS) Nr?gv/?rra%+r0.-)rr rVr9r/rrrrr test_binomialLs zTestRandomDist.test_binomialcCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) Nrrrag+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@ r)rr rV chisquarer/rrrrrtest_chisquareTs zTestRandomDist.test_chisquarecCsttj|jtddg}tjjj|dd}tddgddggd d gd d ggd dgddggg}t||dddS)NI?gc>+Y?g_}S?rr)rr rVfr/rrrrrtest_fs zTestRandomDist.test_fcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) Nr-r+rragԏGM8@gȌ<@g ":@gv#)@gZQ?@gr[@@r)rr rVgammar/rrrrr test_gammas zTestRandomDist.test_gammacCs.ttjjddddtttjjddddS)Nr)rOr7r8)rrr r?rr r!rrr test_gamma_0szTestRandomDist.test_gamma_0cCsHtj|jtjjddd}tddgddgddgg}t||dS) N_c97ݚ?rrarrr-r:)rr rV geometricr/rrrrrtest_geometrics zTestRandomDist.test_geometriccCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrB@rlocr7rbgؕ?gs0?g#0g(xg-KD?gůp`@rr)rr rVgumbelr/rrrrr test_gumbels zTestRandomDist.test_gumbelcCs*ttjjdddtttjjdddSr5)rrr rIrr r!rrr test_gumbel_0szTestRandomDist.test_gumbel_0cCstj|jtjjddddd}tddgddgddgg}t||tjjdddd d}tgd }t||tjjd dd d d}tgd }t||tjjdddd d}tgd}t||tjjdd d d d}tgd}t||dS)Nrr-r>rrarrr+r,)r+r+r+r+rr:)r:r:r:r:)rrrr)rr rVhypergeometricr/rrrrrtest_hypergeometrics&     z"TestRandomDist.test_hypergeometriccCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrBrFrrGg bO?g¸?gpJm @g{K*t @g:^w-gY~o?rr)rr rVlaplacer/rrrrr test_laplaces zTestRandomDist.test_laplacecCs*ttjjdddtttjjdddSr5)rrr rNrr r!rrrtest_laplace_0szTestRandomDist.test_laplace_0cCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrBrFrrGg#K-z?gJ?g92@gر[@g#+^˿g-@rr)rr rVlogisticr/rrrrr test_logistics zTestRandomDist.test_logisticcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrBrFr)meansigmarbgɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r(r)rr rV lognormalr/rrrrrtest_lognormals zTestRandomDist.test_lognormalcCs*ttjjdddtttjjdddS)Nr)rTr$r8)rrr rUrr r!rrrtest_lognormal_0szTestRandomDist.test_lognormal_0cCsHtj|jtjjddd}tddgddgddgg}t||dS)Ngƀ@?r)r:rbr%r.rCr+)rr rV logseriesr/rrrrrtest_logseriess zTestRandomDist.test_logseriescCshtj|jtjjddgddd}tgdgdggdgd ggd gd gg}t||dS) NrUUUUUU?r.rra)r,r+r-r,r%r%)r-r%rr%r%r$)r+r,r+r.rr,)r%r$r,r+r.r,)r,r,r%r-r%r+)r,r+r,r%r+r,)rr rVrCr/rrrrrtest_multinomials zTestRandomDist.test_multinomialcCshtj|jd}ddgddgg}d}tj|||}tddgddggd d gd d ggd dgddggg}t||ddtj||}tddg}t||ddddg}ddgddgg}tttjj||ttjj||ddt t tjj||ddtjddgddggtj d}t :}tj||| t}t|dksDJWdn1sZ0YdS)N)rBrr$rrg4Vj?gy'@gI1?gSB#@g e<@g4W(@g6R¿?g9r v"@gс?g{#@g4xg"f"@rrgN}O6?gYMW"@r%ignore)Z check_validraiserr()rr rVZmultivariate_normalr/rrRuntimeWarningrrr rr rr)rrSZcovrbrrrrrrrtest_multivariate_normalsB   z'TestRandomDist.test_multivariate_normalcCsJtj|jtjjdddd}tddgddgd d gg}t||dS) Nr?g|Pk?r)nr:rbiPiIi|ici i)rr rVrjr/rrrrrrk(s z%TestRandomDist.test_negative_binomialcCstj|jtjjdddd}tddgddgdd gg}t||d d tjjd d dd}tddgddgddgg}t||d d tj|jtjjdddd}tddgddgddgg}t||d d dS)Nr-r)dfnoncrbgG7@g!ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r>rr7r@g?gTD?g?T?g+qnl?g~|D?g밬?rg{01#@gprs'@g~;$@g"dI @g*@g }',@)rr rVnoncentral_chisquarer/rrrrrtest_noncentral_chisquare0s(   z(TestRandomDist.test_noncentral_chisquarecCsPtj|jtjjddddd}tddgdd gd d gg}t||d d dS)Nr-r%r$r)dfnumdfdenrbrbg^~?g/+c?g". @g@g7?gE?r>r)rr rV noncentral_fr/rrrrrtest_noncentral_fEs  z TestRandomDist.test_noncentral_fcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NrBrFrrGg&&n@gOG_ @g~w@gtw]տgm&5@g$>@rr)rr rVnormalr/rrrrr test_normalNs zTestRandomDist.test_normalcCs*ttjjdddtttjjdddSr5)rrr rirr r!rrr test_normal_0VszTestRandomDist.test_normal_0cCsPtj|jtjjddd}tddgddgdd gg}tjj||d d dS) NrBrrrbgW I@g Ԩy@gy]0Ag1~\Aga@gY 7A)Znulp)rr rVparetor/testingZassert_array_almost_equal_nulprrrr test_paretoZs zTestRandomDist.test_paretocCsHtj|jtjjddd}tddgddgddgg}t||dS)NrBr)lamrbrr$)rr rVpoissonr/rrrrr test_poissonis zTestRandomDist.test_poissoncCs`tdj}d}tttjj|tttjj|gdtttjj|tttjj|gddS)Nrrr)rrvrxrr r rr)rZlambigZlamnegrrrtest_poisson_exceptionsqs  z&TestRandomDist.test_poisson_exceptionscCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) NrBrrlg;'?gܴw*?g5?gFG?gD]?g$`?rr)rr rVpowerr/rrrrr test_powerys zTestRandomDist.test_powercCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) Nrr)r7rbg"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r>r)rr rVrayleighr/rrrrr test_rayleighs zTestRandomDist.test_rayleighcCs*ttjjdddtttjjdddSr5)rrr rwrr r!rrrtest_rayleigh_0szTestRandomDist.test_rayleigh_0cCsJtj|jtjjdd}tddgddgddgg}t||d d dS) NrragMoDL?g6([9grF=?gM' -gVgVA:Qy?rr)rr rVZstandard_cauchyr/rrrrrtest_standard_cauchys z#TestRandomDist.test_standard_cauchycCsJtj|jtjjdd}tddgddgddgg}t||d d dS) Nrrag܁?gc!z?g&N"@gNI@gF>?g~ME?rr)rr rVZstandard_exponentialr/rrrrrtest_standard_exponentials z(TestRandomDist.test_standard_exponentialcCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) Nr+r)rOrbg)@gľ@gd],q@gPk{@g9B #1@gv @r>r)rr rVstandard_gammar/rrrrrtest_standard_gammas z"TestRandomDist.test_standard_gammacCs*ttjjdddtttjjdddS)Nr)rOr8)rrr r|rr r!rrrtest_standard_gamma_0sz$TestRandomDist.test_standard_gamma_0cCsJtj|jtjjdd}tddgddgddgg}t||d d dS) Nrrarrrrrrrr)rr rVrcr/rrrrrtest_standard_normals z#TestRandomDist.test_standard_normalcCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) Nrr)rarbg\VH?ghU%gH$M?gLgVqdzǿg㖀?rr)rr rV standard_tr/rrrrrtest_standard_ts zTestRandomDist.test_standard_tcCsPtj|jtjjddddd}tddgdd gd d gg}t||d d dS)Ng{Gz@g(\u$@gףp= W4@r)leftmoderightrbg:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r>r)rr rV triangularr/rrrrrtest_triangulars  zTestRandomDist.test_triangularcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) NGz?gGz%@r)lowhighrbg>#H@gu@g#@g}d]#@gN@gw )* @rr)rr rVuniformr/rrrrr test_uniforms zTestRandomDist.test_uniformcCstdj}tdj}tjj}tt|tj dtt|dtjtt|||tt|tj gdgtt|dgtjgtjjt |d|dddS)NrPrr$g؅W4vC)rr) rZfinforwrxr rr OverflowErrorinf nextafter)rZfminZfmaxfuncrrrtest_uniform_range_boundss  z(TestRandomDist.test_uniform_range_boundscCsnGdddtj}td|}tttjj||Gdddtj}td|}tttjj|dddS)Nc@seZdZddZdS)zGTestRandomDist.test_scalar_exception_propagation..ThrowingFloatcSstdSrrr!rrr __float__szQTestRandomDist.test_scalar_exception_propagation..ThrowingFloat.__float__N)r2r3r4rrrrr ThrowingFloatsrg?c@seZdZddZeZdS)zITestRandomDist.test_scalar_exception_propagation..ThrowingIntegercSstdSrrr!rrr__int__szQTestRandomDist.test_scalar_exception_propagation..ThrowingInteger.__int__N)r2r3r4r __index__rrrrThrowingIntegersrr$) rrr/rrrr rrL)rrZthrowing_floatrZ throwing_intrrr!test_scalar_exception_propagations z0TestRandomDist.test_scalar_exception_propagationcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) Nrp= ף?rmukapparbgLZI@g'N"@gkr?gk=m@gډ?g^=\?rr)rr rVvonmisesr/rrrrr test_vonmisess zTestRandomDist.test_vonmisescCs:tj|jtjjdddd}tjt|dS)NrEg g5_PG>i@Br)rr rVrrorisfiniterH)rrrrrtest_vonmises_smallsz"TestRandomDist.test_vonmises_smallcCsNtj|jtjjdddd}tddgddgd d gg}t||d d dS) Nrrr)rSr7rbgZ@g- g@g8 m?gVP"?g`V?gx^&3?r>r)rr rVwaldr/rrrrr test_walds zTestRandomDist.test_waldcCsLtj|jtjjddd}tddgddgdd gg}t||d d dS) Nrrrlg@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rr)rr rVweibullr/rrrrr test_weibulls zTestRandomDist.test_weibullcCs@tj|jttjjdddtdtttjjdddS)Nrr:rlr8)r)rr rVrrr8rr r!rrrtest_weibull_0szTestRandomDist.test_weibull_0cCsHtj|jtjjddd}tddgddgddgg}t||dS) NrrrlBr$r+r()rr rVzipfr/rrrrr test_zipfs zTestRandomDist.test_zipfN)Sr2r3r4rZrrrrrrrrrrrrrrrrrrrlmarkZ parametrizerr rrrrrrr!r'r*r0r1r2r4r9r=r@rArErJrKrMrOrPrRrVrWrYr[r_rkrdrhrjrkrprsrtrvrxryrzr{r}r~rrrrrrrrrrrrrrrrr's .       (  rc@s eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAS)B TestBroadcastcCs d|_dS)Ni[rr!rrrrZ!szTestBroadcast.setup_methodcCstj|jdSr)rr rVr!rrrsetSeed$szTestBroadcast.setSeedcCsndg}dg}tjj}tgd}|||d|}t||dd||||d}t||dddS)Nrr$gl ?g_x ?g =*BN?r+r>r)rr rr/rr)rrrrrrrrrr*szTestBroadcast.test_uniformcCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nrr$r)g-r@gYl@g-`w?r+r>r)rr rir/rrrr )rrHr7 bad_scalerirrrrrrj:szTestBroadcast.test_normalcCsdg}dg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|tt||d|||||d}t||ddtt|||dtt|||ddS) Nr$r%rr&)gnQVf?gVKB?g v`k?r+r>r)rr r r/rrrr )rrrbad_aZbad_br rrrrrr!Ms zTestBroadcast.test_betacCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddSNr$r)g.UgZ?giPrq?gE K?r+r>r)rr r3r/rrrr )rr7rr3rrrrrr4cs zTestBroadcast.test_exponentialcCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddSr)rr r|r/rrrr )rrO bad_shapeZ std_gammarrrrrr}ps z!TestBroadcast.test_standard_gammacCsdg}dg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|tt||d|||||d}t||ddtt|||dtt|||ddS) Nr$r%rr&)g.UgZ?giPrq?gE K?r+r>r)rr r?r/rrrr )rrOr7rrr?rrrrrr@}s zTestBroadcast.test_gammacCsdg}dg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|tt||d|||||d}t||ddtt|||dtt|||ddS) Nr$r%rr&)gbyʜ?go?gT7@r+r>r)rr r<r/rrrr )rrerf bad_dfnum bad_dfdenr<rrrrrr=s zTestBroadcast.test_fc Csddg}dg}dg}dg}dg}dg}tjj}tgd}|||d||} t| |dd tt||d||tt||d||tt||d||||||d|} t| |dd tt|||d|tt|||d|tt|||d||||||d} t| |dd tt||||dtt||||dtt||||ddS) Nr%r+r,rrr&)gr^G"@g/ *@gц!@r>r)rr rgr/rrrr ) rrerfrbrrbad_noncZnonc_frrrrrrhs4zTestBroadcast.test_noncentral_fcCs<|tddg}tjjddddd}t||dddS)Ngaz@gn4M;%?rr%rar>r)rrr/r rgr)rrrrrrtest_noncentral_f_small_dfsz(TestBroadcast.test_noncentral_f_small_dfcCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddS)Nr$r)g~}N??g$F?g'rS?r+r>r)rr r)r/rrrr )rrabad_dfr)rrrrrr*s zTestBroadcast.test_chisquarecCsdg}dg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|tt||d|||||d}t||ddtt|||dtt|||ddS) Nr$r%rr&)g w"@g2 WR@gRY@r+r>r)rr rcr/rrrr )rrarbrrZnonc_chirrrrrrds z'TestBroadcast.test_noncentral_chisquarecCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddS)Nr$r)gT @g~Fl@gƚtp?r+r>r)rr rr/rrrr )rrartrrrrrrs zTestBroadcast.test_standard_tcCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nr%r$r)gW!@gOBg}?r+r>r)rr rr/rrrr )rrrZ bad_kapparrrrrrrszTestBroadcast.test_vonmisescCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddS)Nr$r)g&8??geFX?gՋː?r+r>r)rr rnr/rrrr )rrrrnrrrrrrps zTestBroadcast.test_paretocCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddSr)rr rr/rrrr )rrrrrrrrrr s zTestBroadcast.test_weibullcCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddS)Nr$rrr+r>r)rr rur/rrrr )rrrrurrrrrrv-s zTestBroadcast.test_powercCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nrr$r)g:BKc?g3k?g~q?r+r>r)rr rNr/rrrr )rrHr7rrNrrrrrrO:szTestBroadcast.test_laplacecCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nrr$r)g'Zy?gdSO=?g3L1?r+r>r)rr rIr/rrrr )rrHr7rrIrrrrrrJMszTestBroadcast.test_gumbelcCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nrr$r)g“y?gJR?g ~&?r+r>r)rr rQr/rrrr )rrHr7rrQrrrrrrR`szTestBroadcast.test_logisticcCsdg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|||||d}t||ddtt|||ddS)Nrr$r)gH"@gܮ @gvv :@r+r>r)rr rUr/rrrr )rrSrTZ bad_sigmarUrrrrrrVsszTestBroadcast.test_lognormalcCsXdg}dg}tjj}tgd}|||d}t||ddtt||ddS)Nr$r)gݱlo?g/ӂ?gz~R?r+r>r)rr rwr/rrrr )rr7rrwrrrrrrxs zTestBroadcast.test_rayleighcCsdg}dg}dg}dg}tjj}tgd}|||d|}t||ddtt||d|tt||d|||||d}t||ddtt|||dtt|||dtt|d dtt|dd dS) Nr7r$rr&)g@m e?g`I߿?g|2?r+r>rrE)rr rr/rrrr )rrSr7Zbad_meanrrrrrrrrs$zTestBroadcast.test_waldc Csjdg}dg}dg}dg}dg}|d\}}tjj}tgd} |||d||} t| | ddtt||d||tt||d||tt||d||||||d|} t| | ddtt|||d|tt|||d|tt|||d||||||d} t| | ddtt||||dtt||||dtt||||ddS)Nr$r+r%r,)g,P;bD@g%G@g,~S@r>r)rr rr/rrrr ) rrrrZ bad_left_oneZ bad_mode_oneZ bad_left_twoZ bad_mode_tworrrrrrrs@  zTestBroadcast.test_triangularc Csdg}dg}dg}dg}dg}tjj}tgd}|||d|}t||tt||d|tt||d|tt||d|||||d}t||tt|||dtt|||dtt|||ddS)Nr$r7r?r$r$r$r+)rr r9r/rrrr ) rr`r:bad_n bad_p_one bad_p_twoZbinomrrrrrr's&  zTestBroadcast.test_binomialc Csdg}dg}dg}dg}dg}tjj}tgd}|||d|}t||tt||d|tt||d|tt||d|||||d}t||tt|||dtt|||dtt|||ddS)Nr$r7rr)r$rr$r+)rr rjr/rrrr ) rr`r:rrrZ neg_binomrrrrrrks&  z$TestBroadcast.test_negative_binomialcCsztjj}dg}dg}|dg}tjj}tgd}|||d}t||tt ||dtt ||ddS)Nr$rr%)r$r$rr+) rr rZ_poisson_lam_maxrrr/rrrr )rZmax_lamrqZ bad_lam_oneZ bad_lam_tworrrrrrrrss    zTestBroadcast.test_poissoncCsdg}dg}tjj}tgd}|||d}t||tt||dtjdd2tt|tj tt|ddtj gWdn1s0YdS)Nr%r)r%r%r$r+r\)invalid) rr rr/rrrr Zerrstater<)rrrrrrrrrr s  zTestBroadcast.test_zipfcCsjdg}dg}dg}tjj}tgd}|||d}t||tt||dtt||ddS)Nr7rrrLr+)rr rDr/rrrr )rr:rrZgeomrrrrrrEs  zTestBroadcast.test_geometricc Csdg}dg}dg}dg}dg}dg}dg}tjj}tgd} |||d||} t| | tt||d||tt||d||tt||d||tt||d||||||d|} t| | tt|||d|tt|||d|tt|||d|tt|||d||||||d} t| | tt||||dtt||||dtt||||dtt||||ddS) Nr$r%rr&rr,rr+)rr rLr/rrrr ) rZngoodZnbadZnsampleZ bad_ngoodZbad_nbadZbad_nsample_oneZbad_nsample_twoZ hypergeomrrrrrrM's<   z!TestBroadcast.test_hypergeometriccCsjdg}dg}dg}tjj}tgd}|||d}t||tt||dtt||ddS)Nr7r%rrr+)rr rXr/rrrr )rr:rrrXrrrrrrYJs  zTestBroadcast.test_logseriesN)#r2r3r4rZrrrjr!r4r}r@r=rhrr*rdrrrprrvrOrJrRrVrxrrr'rkrsrrErMrYrrrrrs@  !      $ #rzcan't start thread)reasonc@s4eZdZddZddZddZddZd d Zd S) TestThreadcCstd|_dS)Nr,)rseedsr!rrrrZ[szTestThread.setup_methodcsddlmtt|jf|}tt|jf|}fddt|j|D}dd|Ddd|Dt|j|D]\}}tj||q|t j j dkrt j dkrt||n t||dS) Nr)Threadcs(g|] \}}tj||fdqS))targetargs)rr r)rrorfunctionrrresz-TestThread.check_function..cSsg|] }|qSr)startrrIrrrrgrcSsg|] }|qSr)joinrrrrrhrr,win32) threadingrrrrrzipr rZintpr)itemsizerplatformrr)rrszZout1Zout2rrrrrrcheck_function^s    zTestThread.check_functioncCsdd}|j|dddS)NcSs|jdd|d<dS)N'ra.)rirYoutrrr gen_randomusz*TestThread.test_normal..gen_random)rrrrrrrrrjtszTestThread.test_normalcCsdd}|j|dddS)NcSs|jtdd|d<dS)Nr?r r6.)r3rZonesrrrrrzsz'TestThread.test_exp..gen_randomrrrrrrrtest_expyszTestThread.test_expcCsdd}|j|dddS)NcSs|jddgddd|d<dS)NrrZr.rra.)rCrrrrrsz/TestThread.test_multinomial..gen_random)rr.rrrrrrr[~szTestThread.test_multinomialN)r2r3r4rZrrjrr[rrrrrXs rc@s4eZdZddZddZddZddZd d Zd S) TestSingleEltArrayInputcCs4tdg|_tdg|_tdg|_d|_dS)Nr%r+r,)r$)rr/argOneargTwoargThreetgtShaper!rrrrZsz$TestSingleEltArrayInput.setup_methodc Cstjjtjjtjjtjjtjjtjjtjjtjj tjj tjj tjj tjj f }tjj tjj f}|D]6}||vr~|tdg}n ||j}t|j|jq`dSri)rr r3r|r)rrnrrurwrrrrDrXr/rrrOr)rfuncs probfuncsrrrrrtest_one_arg_funcss       z*TestSingleEltArrayInput.test_one_arg_funcscCstjjtjjtjjtjjtjjtjjtjjtjj tjj tjj tjj tjj tjjtjjf}tjjtjjf}|D]v}||vrtdg}n|j}||j|}t|j|j||jd|}t|j|j||j|d}t|j|jqldS)Nr7r)rr rrir r?r<rcrrNrIrQrUrr9rjr/rrrrOr)rrrrrrrrrtest_two_arg_funcss&        z*TestSingleEltArrayInput.test_two_arg_funcsc Csttjtjtjtjtjtjtjtj g }tj j }t dg}t dg}|D]`}||||d}t |j|j||d||d}t |j|j|||d|d}t |j|jqJdS)Nr$rr()rurrrrrrrNr0rr rr/rrOr)rrtrrrryrrrrrs  z$TestSingleEltArrayInput.test_randintcCstjjtjjtjjg}|D]l}||j|j|j}t|j |j ||jd|j|j}t|j |j ||j|jd|j}t|j |j qdS)Nr) rr rgrrLrrrrrOr)rrrrrrrtest_three_arg_funcss z,TestSingleEltArrayInput.test_three_arg_funcsN)r2r3r4rZrrrrrrrrrs r)rrlnumpyrZ numpy.testingrrrrrrrr r r rr r5r>rTrprrrZskipifrrrrrrs2, '"5 |>,