L ih1ddlZddlmZmZddlZddlmZddlm Z ddl m Z m Z ddl mZmZGddZeejGd d Zy) N) assert_equalassert_array_equal)stats)skip_xp_invalid_arg)rankdata tiecorrect)xp_assert_equalmake_xp_test_casec*eZdZdZdZdZdZdZy)TestTieCorrectc|tjgtj}t|}t |dy)z9An empty array requires no correction, should return 1.0.dtype?Nnparrayfloat64rrselfrankscs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_rank.py test_emptyzTestTieCorrect.test_empty s*2::. u Qc~tjdgtj}t|}t |dy)z;A single element requires no correction, should return 1.0.rrNrrs rtest_onezTestTieCorrect.test_ones,#bjj1 u Qrctjd}t|}t|dtjd}t|}t|dy)z*Arrays with no ties require no correction.@r@N)rarangerrrs rtest_no_correctionz!TestTieCorrect.test_no_correctionsD # u Q # u Qrctjgd}t|}d}|j}d|dz|z |dz|z z z }t ||tjgd}t|}d}|j}d|dz|z |dz|z z z }t ||tjgd}t|}d}|j}d|dz|z |dz|z z z }t ||tjgd}t|}d}d}|j}d|dz|z |dz|z z|dz|z z z }t ||y ) z8Check a few basic examples of the tie correction factor.)r@r$rr)?r&r )rr r r r )r&r&@r'r'N)rrrsizer)rrrTNexpectedT1T2s r test_basiczTestTieCorrect.test_basic!sZ) u   JJ!Q$(q!tax00Q!) u   JJ!Q$(q!tax00Q!-. u   JJ!Q$(q!tax00Q!23 u    JJ2q52:"a%"*5!Q$(CCQ!rc d\}}tjtj||}|j}t t |}t |d||dz|z zt|dz|z z z y)N)irr%)rrepeatr!r(rrrfloat)rntiekanouts r test_overflowzTestTieCorrect.test_overflowDsga IIbiilD ) FF!%S#T1Wt^ 4uQTAX FFGrN)__name__ __module__ __qualname__rrr"r.r8rrr r s  !"FHrr ceZdZd:dZdZdZejjddgejjddge d d Z d Z d Z e d ZdZejjdgddZdZgdZejjdddgejjdedZejjde d ejjdedZdZdZdZggdgfgdgfgdgfgdgfgdgfd gdd!gfd gdd!gfd gdd!gfd gdd!gfd gdd!gfgd"dgd#fgd"dgd$fgd"dgd%fgd"dgd$fgd"dgd&fgd'dgd(fgd'dgd(fgd'dgd(fgd'dgd(fgd'dgd(fgd)dgd*fgd)dgd+fgd)dgd,fgd)dgd-fgd)dgd.fgd/dgd0fgd/dgd1fgd/dgd2fgd/dgd3fgd/dgd4fd5gd6zdej2d!d7fZejjd8ed9Zy); TestRankDataaveragec|r|jdjS|dk(r|jdjS|jdjS)Nrr?)asarrayr)rmethodhas_nansxps r desired_dtypezTestRankData.desired_dtypeOsG ::b>'' ''-y'8rzz"~##Qbjjm>Q>QQrc |jg|j}t|}t||jg|j |y)z;stats.rankdata of empty array should return an empty array.rrENrBint64rr rF)rrEr5rs rrzTestRankData.test_emptyTsF JJrJ * QK2::b0B0Bb0B0I:JKrctg}t|tjgtgd}t |gdy)N( rO2r'r&r r&@)rrrrr)rrKs r test_listzTestRankData.test_listZs3 RL1bhhrl+ ) *Q12rshape)rrAaxisNr%c |j||j}t||}|dn|}t||j||j |y)NrrW)rrH)emptyrJrr rF)rrUrWrEr5rKexpected_shapes rtest_empty_multidimz TestRankData.test_empty_multidimbsW HHU"((H + QT "!%5288N$:L:LPR:L:S8TUrc dg}|j||j}t|}t||jdg|j |y)z/Check stats.rankdata with an array of length 1.drrrHNrI)rrEdatar5rKs rrzTestRankData.test_onejsOu JJt288J , QK2::se43E3E3E3L:MNrcH|j|}gd}|jgd|}|j||j}t|}t ||gd}|jgd|}|j||j}t|}t ||gd}|jgd|}|j||j}t|}t |||j |d }t|}t ||y ) zBasic tests of stats.rankdata.rH)r^rOrQ)r rrrrMrR)rararOrOrO)rSrSrSrrr)rVr%N)rFrBrJrr reshape)rrErFr_r+r5rKa2ds rr.zTestRankData.test_basicqs**b*1 ::o]:C JJt288J , QK8$#::7}:M JJt288J , QK8$'::zMTestRankData.test_rankdata_object_string..min_rank..-aAE-sumr5rks `rmin_rankz:TestRankData.test_rankdata_object_string..min_ranks'789!A-1---9 99s(cT|Dcgc]tfd|Dc}Scc}w)Nc3(K|] }|k ywrgr<rhs rrlzMTestRankData.test_rankdata_object_string..max_rank..s*1Q*rnrorqs `rmax_rankz:TestRankData.test_rankdata_object_string..max_ranks"456qC***6 66s%c\t|Dcgc] \}}||f c}}Scc}}wrg) enumerate)r5rjxrrs r ordinal_rankz>TestRankData.test_rankdata_object_string..ordinal_ranks( ! =1aV=> >=s( crt||Dcgc] \}}||zdz c}}Scc}}w)Nr)zip)r5rjrkrurrs r average_rankz>TestRankData.test_rankdata_object_string..average_ranks2.1(1+x{.KLdaQUcML LLs3ctj|}|Dcgc]dtfd|Dzc}Scc}w)NrAc3(K|] }|k ywrgr<rhs rrlzOTestRankData.test_rankdata_object_string..dense_rank..rmrn)runiquerp)r5brks `r dense_rankz.dense_ranks4 ! A789!A-1---9 99s=)minmaxordinalr?densecXdD]$}t||}t|||&y)N)rrrrr?rC)rr)r5rCr7rankfs r check_ranksz=TestRankData.test_rankdata_object_string..check_rankss3E :q0"3 f a(89 :r) foobarquxxyzabcefgaceqweqazobject)rrArVgX9v@r%gT㥛 @r)dictrrandomchoiceastyper) rryr|rrvalrurrrs @@@rtest_rankdata_object_stringz(TestRankData.test_rankdata_object_strings : 7 ? M :x)= : NBII$$S#./BII$$S#.55h?@hh1BBII$$S#.55h?@rc 2t|drY|jddg|j}t|}t ||jddg|j ||jddg|j }t|}t ||jddg|j ||jddg|j }t|}t ||jddg|j |y) Nuint64llrrrrHl)hasattrrBrrr rFrJ)rrEr_rKs rtest_large_intzTestRankData.test_large_ints 2x ::ug.bii:@DA Arzz3*D d #I&JJ n=> d #I&r)r?rrrrrrArCcd}|j||}|j|}t|||}t|j|t|j |t ||j||y)N)r%rrH)rCrWr)rFzerosrrrUrr rZ)rrWrCrErUrFr_rKs rtest_size_0_axiszTestRankData.test_size_0_axissl**6b*9 xx T&t 4QWWe$QWWm,288E8?@rc d}tjjd}|j|}|j|dk}|j|dk}|j|dk}tj||<tj ||<||tjz d fd} t |||d } | ||| } t | | y) N)raim)r(g?g?ctj|}tj|}||}t||}|||<tj||<|Srg)r zeros_likeisnanrnan)r5rCr7rj a_compressedress r rank_1d_omitz:TestRankData.test_nan_policy_omit_3d..rank_1d_omitsQ--"C AaR5L<0CCGVVCFJrc<tjfd||S)Nc|Srgr<)r5rCrs rzITestRankData.test_nan_policy_omit_3d..rank_omit..sa1Hr)rapply_along_axis)r5rCrWrs ` r rank_omitz7TestRankData.test_nan_policy_omit_3d..rank_omits&&'H'+Q0 0romitrW nan_policyrY)rr RandomStaterinfrr) rrWrCrUrngr5rjrkr4rrres0rs @rtest_nan_policy_omit_3dz$TestRankData.test_nan_policy_omit_3dsii##H- JJEJ " JJEJ "S ( JJEJ "S ( JJEJ "S (vv!w! !rvv   0q&t?F.3%rc dtjdgddtjggdg}tt|dddtjd d d tjd d d g tt|dd tjtjtjtjtjtjtjtjtjg y)Nrr%rrVrArVrVrrrg@g@r'r propagaterrrrrr_s rtest_nan_policy_2d_axis_nonez)TestRankData.test_nan_policy_2d_axis_nonesBFFAArvv 8DtGBBFFBBG I8Dt LFFBFFBFFBFFBFFBFFFFBFFBFF4 5rc.ddddtjtjg}tjtd5t |dddddtjdgd dtjgtjddgg}tjtd5t |dd dddtjtd5t |d d dddy#1swYxYw#1swYHxYw#1swYyxYw) NrrVr%zThe input contains nan)matchraiserrrrA)rrpytestraises ValueErrorrrs rtest_nan_policy_raisez"TestRankData.test_nan_policy_raises1aRVVRVV, ]]:-E F / Tg . /BFFAArvvA ]]:-E F 7 Tg 6 7]]:-E F 7 Tg 6 7 7 / / 7 7 7 7s$C3)C?D 3C<?D Dc ^ddddtjtjg}tt|dtjtjtjtjtjtjgdtjdgddtjggdg}tt|dd d tjtjgdtjtjgdtjtjggtt|d d tjtjtjgtjtjtjggd gy) NrrVr%rrrrrrrA)rAr$r$rrs rtest_nan_policy_propagatez&TestRankData.test_nan_policy_propagates1aRVVRVV,8D[AFFBFFBFFBFFBFFBFFK MBFFAArvv 8Dq[I///1 2 8Dq[IVVRVVRVV4VVRVVRVV4)+ ,rrrrrr^r)r^r^r^)rrr)rrr)r r r )rrr )r^,rr)r^rrr)rr$r'r$)rrr'r)rr r'r )rrr r)rrr'r )r^rrrr^)r& @rSrr&)rr rSr r)rr'rSr'r)rrr rr)rr rSr'rrOrPg?@casec|\}}}t|j||}|j||j||}t||y)NrrHr)rrBrFr )rrrEvaluesrCr+rKrs r test_caseszTestRankData.test_casesTsO#'  RZZ' 7jj););Fr);)JjK3r)r?F)r9r:r;rFrrTrmark parametrizeranger\rr.rrrrrmethodsrrrrrrr!_rankdata_casesrr<rrr>r>LsR L 3 [[Wyk2 [[Vd%6U1X%67V83V O%6AAB T [[S":; <  ';G [[VaV, [[Xw/A0-A [[VU1X. [[Xw/&0/&< 57",&' Y' UB' UB ' Wb ' Y '  C5!' u' u' #'  C5!' )_5' %1' %1!'" '?3#'$ )_5%'( )_5)'* %1+', %1-'. '?3/'0 )_51'4 y*>?5'6 u&:;7'8 u&:;9': w(<=;'< y*>?='@ #I/HIA'B #E+DEC'D #E+DEE'F #G-FGG'H #I/HII'L Iyryyd34M'OR [[V_5 6 rr>)numpyr numpy.testingrrrscipyrscipy.conftestr scipy.statsrrscipy._lib._array_apir r r r>r<rrrsL: .,D?H?HD5>>"L L #L r