gL i ?ddlZddlZddlmZddlmZmZmZm Z m Z ddl m Z ddlmZej eddgddgddgd dggddg eddgddgddgd dggddg eddgddgddgd dggd d g eddgddgddgd dggd dg eddgddgddgd dggd dg eddgddgddgd dggd dg eddgd dgddgdd ggdd g eddgddgddgd d ggdd g eddgddgddgd d ggd dg g dZej dZej dZdZdZdZej.j1dddgdZej.j1dddgdZej.j1d ed!d"Zd#Zd$Zd%Zej.j1d&d'd(gd)Z ej.j1d&d*d+gd,Z!Gd-d.Z"y)/N)IS64) DataFrameIndex MultiIndexSeries date_range) safe_sortcolumnsC?g@g@g@g @X)paramsc|jS)zPairwise frames test_pairwise)param)requests g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/window/test_pairwise.pypairwise_framesrs ==c8tddgddgddgddggddgS)z'Pairwise target frame for test_pairwiser r r r rrrrrrpairwise_target_framer#s. q!fq!fq!fq!f51v FFrc8tgdgdgdgdggdS)z&Pairwise other frame for test_pairwise)Nr r )Nr r )Nr )Nrr )YZrrrrrrpairwise_other_framer$)s   |\<@ rc @|}|tjjdjt |z}|j ddj |}tj|jdtj |dd|dddyNr 2window min_periodsi)rr ) nprandom default_rngstandard_normallenrollingcovtmassert_almost_equalilocseriesABresults rtest_rolling_covr<2sA BII ! !! $ 4 4SV <r4r5r6)abr;s r!test_rolling_corr_bias_correctionrPBs "BJJ'z,PR/S A A FFAbqE VVAcrF YYc!f!Y 4 9 9! cBt|jdd|}|jtddfdf}|jj d|_t|djdd||d}t j||dy)NrIr r)r F check_names)getattrr2locslicerH droplevelr4assert_series_equal)rQframer;expecteds rtest_rolling_pairwise_cov_corrr\Os CWU]]"!]z(test_flex_binary_frame..^s! Jb(A6 J1 Mrr rHr)rUr2applyr4assert_frame_equalrLrr-r.r/r0shaperHr) r]rZresres2expframe2res3kr8s ` @rtest_flex_binary_framermXs5 1XF 4'&...+V 4U ;C 475===+V 4V llF 575===+V 4V isnaall)r*srps r$test_rolling_corr_with_zero_varianceruqs\ rxx|A 299R= !E 99F9 # ( (u ( 5 : : < @ @ BB Brc ttjddgddgddgddgd d gd d gg}|d jddj |d}t d|DsJttj jdj d}|d jddj |d}t d|DsJy)NgF$?g)?gT5?g?'N?gFr1?g+ C-?gR `?g1:b%?g9T!X4!?gXS_?gS=?g\+Lt?rr T)centerr c3rK|]/}tjtj|dk1ywr Nr-abs nan_to_num.0ras r z#test_corr_sanity..':rvvbmmA&'1,:57r )r c3rK|]/}tjtj|dk1ywryrzr}s rrz#test_corr_sanity..rr)rr-arrayr2r>rsr.r/)dfrgs rtest_corr_sanityrzs  Z(Y'Z(Z(Z(Z(    B Q%--$- ' , ,RU 3C :c: :: : 299((+227; r4rYrs rtest_rolling_corr_diff_lengthrs   +B Aq!f %B ZZqaZ 0 5 5b 9F'(H68, Y /C ZZqaZ 0 5 5c :F68,rfcJ|jddj|dSNrIr r)Tpairwiser2r3ras rrbrb#199BA96::1t:LrcJ|jddj|dSrr2r>rs rrbrb#199BA96;;A;Mrc Ftddgddgddgddggtdd gd ttd d }ttdd gd tj|j |j gd d gd}||}tj||y)Nr r r!r r,rr9r:foonamer barrrHnamesrK)rrHrD) rrranger from_productrHrr4re)rr df_expected df_results r2test_rolling_functions_window_non_shrinkage_binaryrs  Q!Q!Q"a)sCju-E!H5) B sCju-%%rxx&uenUse%(L 3J*l33J*l3rceZdZejj dddgdZejj dddddd d gd Zejj dd d ddddgdZejj ddddejdejje ddddgdZ ejjdejj ddd d!d"d#d$gd%Zejj dd&d'd(d)d*d+gd,Zd-Zd.Zd/Zy0)1 TestPairwiserc"|jSN)r3rs rrbzTestPairwise.s QUUWrc"|jSr)r>rs rrbzTestPairwise.s rcd||}tj|j|jtj|j|j||}|j j }|j j }tj ||dyNF check_dtyper4assert_index_equalrHrdropnavaluesassert_numpy_array_equalselfrrrr;r[s r test_no_flexzTestPairwise.test_no_flexs?# fllO,C,CD fnno.E.EF*+''??$++ ##FH%HrcB|jjdSNTr expandingr3rs rrbzTestPairwise.sakkm'''6rcB|jjdSrrr>rs rrbzTestPairwise.sakkm(($(7rcF|jdjdSNr!r_Trrrs rrbzTestPairwise.saiiqi)--t-<rcF|jdjdSrrrs rrbzTestPairwise.saiiqi)...=rcF|jdjdSNr!comTrewmr3rs rrbzTestPairwise.saeeel&&&5rcF|jdjdSrrr>rs rrbzTestPairwise.saeeel'''6rc0||}tj|jjd|jdtjt |jjdt |j j tj|j |j ||}|jj}|jj}tj||dyNrFrSr r r4rrHlevelsr runiquerrrrs rtest_pairwise_with_selfz$TestPairwise.test_pairwise_with_selfs?#  LL   "O$9$9u   fll))!, - o--446 7  fnno.E.EF*+''??$++ ##FH%HrcB|jjdSNFrrrs rrbzTestPairwise.sakkm'''7rcB|jjdSrrrs rrbzTestPairwise.sakkm((%(8rcF|jdjdSNr!r_Frrrs rrbzTestPairwise.saiiqi)--u-=rcF|jdjdSrrrs rrbzTestPairwise.saiiqi)...>rcF|jdjdSNr!rFrrrs rrbzTestPairwise.saeeel&&&6rcF|jdjdSrrrs rrbzTestPairwise.saeeel'''7rcd||}tj|j|jtj|j|j||}|j j }|j j }tj ||dyrrrs rtest_no_pairwise_with_selfz'TestPairwise.test_no_pairwise_with_self s?# fllO,A,AB fnno.E.EF*+''??$++ ##FH%HrcD|jj|dSrrrays rrbzTestPairwise.(s**1t*<rcD|jj|dSrrrs rrbzTestPairwise.)s++A+=rcH|jdj|dSrrrs rrbzTestPairwise.*s!!,00T0BrcH|jdj|dSrrrs rrbzTestPairwise.-s!QYYaY055a$5GrzPrecision issues on 32 bitF)reasonstrict)markscH|jdj|dSrrrs rrbzTestPairwise.2s 1))!d);rcH|jdj|dSrrrs rrbzTestPairwise.3s 1**1t*<rc|||}tj|jjd|jdtjt |jjdt |j j |||}|jj}|jj}tj||dyrr)rrrr$rr;r[s rtest_pairwise_with_otherz%TestPairwise.test_pairwise_with_other%s*?$89  LL   "O$9$9u   fll))!, - *2299; < *,@A''??$++ ##FH%Hrzignore:RuntimeWarningcD|jj|dSrrrs rrbzTestPairwise.Ns**1u*=rcD|jj|dSrrrs rrbzTestPairwise.Os++A+>rcH|jdj|dSrrrs rrbzTestPairwise.Ps!!,00U0CrcH|jdj|dSrrrs rrbzTestPairwise.Qs!!,11!e1DrcH|jdj|dSrrrs rrbzTestPairwise.Rs 1))!e)<rcH|jdj|dSrrrs rrbzTestPairwise.Ss 1**1u*=rcD|jjr |||nd}||jj|j}|jj|j}t j |j|t j |j|yt jtd5|||dddt jtd5|||dddy#1swY7xYw#1swYyxYw)Nz'arg1' columns are not unique)matchz'arg2' columns are not unique) r is_uniquerHunionr4rpytestraises ValueError)rrr$rr;expected_indexexpected_columnss rtest_no_pairwise_with_otherz(TestPairwise.test_no_pairwise_with_otherJs &&00 o3 4   ,22889M9S9STN.66<<$,,    ! !&,, ?  ! !&..2B Cz1PQ 9/#78 9z1PQ 9&8 9 9 9 9 9 9s D 7 D DDc@|jj|Srrrs rrbzTestPairwise.ns**1-rc@|jj|Srrrs rrbzTestPairwise.os++A.rcD|jdj|SNr!r_rrs rrbzTestPairwise.ps!,003rcD|jdj|Sr rrs rrbzTestPairwise.qs!,11!4rcD|jdj|SNr!rrrs rrbzTestPairwise.rs1))!,rcD|jdj|Sr rrs rrbzTestPairwise.ss1**1-rc$||tgd}tj|j|jtj|j|j||tgd}|j j }|j j }tj||d|tgd|}tj|j|jtj|j|j|tgd|}|j j }|j j }tj||dy)N)r r r!rFr)rr4rrHrrrrrs rtest_pairwise_with_seriesz&TestPairwise.test_pairwise_with_seriesks ?F<$89 fllO,A,AB fnno.E.EF*F<,@A''??$++ ##FH%H6,'9 fllO,A,AB fnno.E.EFVL)+@A''??$++ ##FH%Hrcttdtdd}|jdj |}tt j gdztdd}tj||y)Nr 2020rErG12h) rrrr2r>r-rMr4rY)rrtr;r[s rtest_corr_freq_memory_errorz(TestPairwise.test_corr_freq_memory_errors_ 58:fa#@ A5!&&q)266(Q,j.KL vx0rc  tjtdtdtdg}td}t t j djdd||}|jd j}tjtdtdtdtdg}tjtdtdtdg}t t jt jd t jt jd d t jd d f||}tj||y) NabxyABr!rrcg?)alpha)rrg@@gK\ǸO@)rrlistrrr-rJreshaperr3vstackfullrMr4re)rrrHrr;r[s rtest_cov_mulittindexz!TestPairwise.test_cov_mulittindexs))4:tDz4:*NOa ryy},,Q2% Qc"&&(''q4:tDz4PT:(VW))4:tDz4:*NO IIGGFBFF+GGFI.GGFI.    fh/rc tjddgddggddg}ttjd| }|j d j }ttjtjtjtjd tj d ddgd zddgd zggd|}tj||y)NMNPQrNrOr)r r rr!r rCr )NrNrOrc) r from_arraysrr-onesr2r>rMrepeatrJint64r4re)rrrr;r[s r$test_multindex_columns_pairwise_funcz1TestPairwise.test_multindex_columns_pairwise_funcs((3*sCj)A#sT rwwv 8A##% FF((IIbii:A>#JN#JN '    fh/rN)__name__ __module__ __qualname__rmark parametrizerrrrxfailrrfilterwarningsrrrrr(rrrrrs [[S#46H"IJ IK I [[ 6 7 < = 5 6   I I* [[ 7 8 = > 6 7    I  I [[ < = B FLLGkk''H%A%(  < < "I#"I( [[ 78 [[ = > C D < =   9 99* [[ - . 3 4 , -   I I,1020rr)#numpyr-r pandas.compatrpandasrrrrrpandas._testing_testingr4pandas.core.algorithmsr fixturerrr$r<r@rPr,r-r\rmrrurrrrrrrrrr7s ,Aq6Aq6Aq6Aq62QFCAq6Aq6Aq6Aq62QFCAq6Aq6Aq6Aq62S#JGAq6Aq6Aq6Aq62S!HEAq6Aq6Aq6Aq62S!HEAq6Aq6Aq6Aq62S!HEC:SzC:SzBQPSHUAs8aX3x!S:QHMAq6Aq6Aq6As84sCjI    GG LQ 7%1@2@FE?3%4%058,C-C;. - -MN 2 2 MN44&a0a0r