L i2,ddlZddlZddlmZddlZddlmZddlm Z m Z ddl m Z m Z mZejj Zejj!ddGd d Zejj!ddGd d Zy) N)raises)stats)normexpon)xp_assert_closexp_assert_equalxp_assert_lessz dask.arrayzboolean index assignmentreasoncfeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZy) TestEntropyc|jgd}|jgd}tj||}tj||}t||jdt | |jdy)N)?皙?333333?)皙?g?g?)asarrayrentropyrr )selfxppkqkeselfedoubles d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_entropy.pytest_entropy_positivez!TestEntropy.test_entropy_positivese ZZ ( ZZ) * b"%--B'rzz"~.xB0c|jd}tj|d}t|j |dz |j d|jd}|j |jddkd|}tj||}tj||d}t|j ||z tjdz |j dy)N@baseg@gh㈵>) onesrrr absrwherearangemathlog)rrrSrS2s rtest_entropy_basezTestEntropy.test_entropy_bases WWR[ MM"2 &rvva"f~rzz%'89 WWR[ XXbiima'R 0 MM"b ! ]]2r +rvvadTXXb\12BJJu4EFrc|jgd}ttj||jdy)N)r?r!g R^?rrrr)rrxs rtest_entropy_zerozTestEntropy.test_entropy_zero$s0 JJ| $ a( #67 9rc|jddgddgddgg}|jddgddgddgg}ttj|||jddgy)Nrr333333?rrgN!0?2?r0rrrrs rtest_entropy_2dzTestEntropy.test_entropy_2d*sj ZZ#sc3Z#s< = ZZ#sc3Z#s< = b"- Iz#:; =rcx|jddgddgddgg}|jddgddgddgg}ttj|||j|jdg|jddgddgddgg}ttj|||jddgy) Nrrr4rrrr5g^fTF?)rrrrinfr6s rtest_entropy_2d_zeroz TestEntropy.test_entropy_2d_zero0s ZZ#sc3Z#s< = ZZ#sc3Z#s< = b"- BFFJ#78 :ZZ#sc3Z#s< = b"- J #;< >rc|jddgddgddgg}ttj|d|jgdy) Nrrr4rraxis)R^?r?gD%+?r0rrrs r$test_entropy_base_2d_nondefault_axisz0TestEntropy.test_entropy_base_2d_nondefault_axis:sF ZZ#sc3Z#s< = bq1 #GH Jrc|jddgddgddgg}|jddgddgddgg}ttj||d|jgdy) Nrrr4rrr<r=){[<?rCgC8X?r0r6s rtest_entropy_2d_nondefault_axisz+TestEntropy.test_entropy_2d_nondefault_axis?si ZZ#sc3Z#s< = ZZ#sc3Z#s< = b"15 #GH Jrc|jddgddgddgg}|jddgddgg}d}tjt|5t j ||dddy#1swYyxYw)Nrrr4rr/Array shapes are incompatible for broadcasting.match)rpytestr ValueErrorrr)rrrrmessages rtest_entropy_raises_value_errorz+TestEntropy.test_entropy_raises_value_errorEst ZZ#sc3Z#s< = ZZ#sc3Z0 1C ]]:W 5 " MM"b ! " " "s A//A8c|jddgddgddgg}ttj|dtj|yNrrr4rrrr=r0r@s r1test_base_entropy_with_axis_0_is_equal_to_defaultz=TestEntropy.test_base_entropy_with_axis_0_is_equal_to_defaultLsD ZZ#sc3Z#s< = bq1 b) +rc|jddgddgddgg}|jddgddgddgg}ttj||dtj||yrNr0r6s r,test_entropy_with_axis_0_is_equal_to_defaultz8TestEntropy.test_entropy_with_axis_0_is_equal_to_defaultQsi ZZ#sc3Z#s< = ZZ#sc3Z#s< = b"15 b"- /rc|jddgddgddgg}ttj|jtj|dyNrrr4rrr<r=rrrrTr@s rtest_base_entropy_transposedz(TestEntropy.test_base_entropy_transposedWsH ZZ#sc3Z#s< = bdd+ bq1 3rc|jddgddgddgg}|jddgddgddgg}ttj|j|jtj||dyrSrTr6s rtest_entropy_transposedz#TestEntropy.test_entropy_transposed\sq ZZ#sc3Z#s< = ZZ#sc3Z#s< = bddBDD1 b"15 7rctjjd}|j|jd}|j|jd}t j ||d}t |dt j ||dt |dt j ||d y) Nl@UC<)r<r=r)r.r<)r<.)nprandom default_rngrrrr)rrrngr1yress rtest_entropy_broadcastingz%TestEntropy.test_entropy_broadcastingbsii##$56 JJszz!} % JJszz&) *mmAqr*A a6 ;<A a6 ;J J "+ / 3 7 = &rr c eZdZdZdZdZdZdZdZdZ e jjdd d d e jd ed dgdZdddddZdddddZeeeeiZe jjdd d d e jd ed dge jjdeegdZe jjdgddZe jjdd d e jd ed dd ge jjd gd!d"Zy#)$TestDifferentialEntropyz Vasicek results are compared with the R package vsgoftest. # library(vsgoftest) # # samp <- c() # entropy.estimate(x = samp, window = ) ctjjd}|jd}|j |j }t j|d}t||j dt j|dd}t||j dt j|d d}t||j d y) Nrdvasicekmethod-{?r<) window_lengthrx?r$=&? r]r^ RandomStatestandard_normalrtolistrdifferential_entropyr)rr random_statevaluesrs r!test_differential_entropy_vasicekz9TestDifferentialEntropy.test_differential_entropy_vasiceksyy,,Q/ --c2FMMO,,,VIF,=!>?,,V14=?,=!>?,,V14=?,=!>?rctjjd}|jd}|j |j }t j|dd}|j gd}t||t j|ddd}|j gd}t||t j|dd d}|j gd }t||y) NrrZrur<rv)r>rx)rygUZdpx?gE7L?)r>rzrx)r{gzG?gt?r$)r|gl+ɍj?go4d?r})rrrrrrefs r4test_differential_entropy_vasicek_2d_nondefault_axiszLTestDifferentialEntropy.test_differential_entropy_vasicek_2d_nondefault_axissyy,,Q/ --h7FMMO,,,V!INjjRS%,,V!14=?jjQR%,,V!14=?jjRS%rctjjd}|jd}|j |j }d}|j d}dd|dz|hD]G}|j||}tt|5tj||d dddIy#1swYTxYw) NrrzhWindow length \({window_length}\) must be positive and less than half the sample size \({sample_size}\).r<r\r[)rz sample_sizerG)rzr>) r]r^r~rrrshapeformat assert_raisesrJrr)rrrr error_strrrzformatted_error_strs r,test_differential_entropy_raises_value_errorzDTestDifferentialEntropy.test_differential_entropy_raises_value_errorsyy,,Q/ --h7FMMO, <  ll1o  ![!^[A M"+"2"2+'#3#  z1DE **"/     s B55B> ctjjd}|jd}|j |j }t j|d}t j|}t||y)Nr)rurZr=r})rrrrrdefault_entropys r>test_base_differential_entropy_with_axis_0_is_equal_to_defaultzVTestDifferentialEntropy.test_base_differential_entropy_with_axis_0_is_equal_to_defaultsfyy,,Q/ --h7FMMO,,,V!<44V<1rctjjd}|jd}|j |j }t tj|jtj|dy)Nrrr<r=) r]r^r~rrrrrrrU)rrrrs r)test_base_differential_entropy_transposedzATestDifferentialEntropy.test_base_differential_entropy_transposedsdyy,,Q/ --h7FMMO,  & &vxx 0  & &vA 6 rctjjd}|j|j }d}t j t|5tj|ddddd}t j t|5tj|ddddy#1swYGxYw#1swYyxYw) Nrez+`base` must be a positive number or `None`.rGrkr"z`method` must be one of...z ekki-ekkirw) r]r^randrrrIrrJrrrls rrmz-TestDifferentialEntropy.test_input_validations IINN2  JJqxxz "? ]]:W 5 3  & &qr 2 3/ ]]:W 5 >  & &q = > >  3 3 > >sB:C:CCrxrvvan esebrahimicorreaarray_api_strictzNeeds fancy indexing.r )markscL|dk(rdnd}tjj|d}|j|j }|jt tjj }tj||}t||dy) Nr'i@Brsizerrw{Gzt?)rtol) rrrvsrrfloatrrr)rrxrnrexpectedrbs rtest_consistencyz(TestDifferentialEntropy.test_consistencyszx'EWjjnn!!n4jj&::eEJJ$6$6$89:((V<XE2r)gMbX?灕Cl?)gA`"?g)\(?)gHzG?gy&1?)gMb?r)rvrrr)gE?l?)gx?gOn?)gףp= ?g~jt?)gS?rdistcd\}}}|j||}|j|d|j|d} }|j||fd} |j| j} |jt |j } t j| ||d} t|j|j| | z dz|d t|j| d | d y) N)r2rr<rr\)rzrxr>r[r)atol) correctiongMb`?) rmse_std_casesrrrrrrrrsqrtmeanstd) rrxrrrepsrmr rmse_expected std_expectedr true_entropyrbs r test_rmse_stdz%TestDifferentialEntropy.test_rmse_stds" a&&t,V4&(jj!&=rzz(ST+?V| hhT1IAh6jj&zz% "78 ((A06RA|);a(? @A%E 3sq1 [[X "#5*AC ( 3 3'5%3%3'5 (6&4&4(6 /13N [[X "#5*AC (  [[VdE]3M4 M  [[[+ $  $ [[X "#5>UV  ( [[W&BC CD Crrs)r)rIrrnumpyr]scipyr scipy.statsrrscipy._lib._array_api_no_0drrr rrr rsrqrrrs *#99;;//l3MNf&f&Of&Rl3MNICICOICr