`L i\ ddlZddlmZddlmZddlZddlZddlmZddl Z ddl m Z ddl mZmZmZddlmZmZddlmZmZmZdd lmZdd lmZmZmZmZmZdd l m!Z!m"Z"ejFd jId Z%dZ&ejNjQddddejRddfgddfgddfdde*dddfe*dddfejVgdejXdfejVgdejZdfejVgdej\dfddgdfdejVddgdfdgd dfd!e*d"d#dfejVgd dfejVgd e/dfgd$Z0d%Z1d&Z2eejNjQd'ee(d)Z3ejNjQd*gd+ejNjQd,gd-d.Z4ejNjQd*gd/ejNjQd,gd-d0Z5ejNjQd*gd1ejNjQd,gd-ejNjQd2d3dgd4d5ggd6Z6ejNjQd7ddgejNjQd8ddgejNjQd*gd1ejNjQd,d9d:gejNjQd;dgd<gd=gfd3dd>gd?d@gdAd ggfgdBZ7ejNjQd*gd/ejNjQd,gdCdDZ8ejNjQd*gd1ejNjQd,gdCejNjQdEdgd<gd=gfd3dd>gd?d@gdAd ggfgdFZ9ejNjQdGgdHdIZ:ejNjQd*gd/dJZ;ejNjQdGgdKejNjQd2dd5gdLZejNjQdPdd>gdQZ?ejNjQdRgdSdTZ@dUZAdVZBejNjQd2ddd3ge*ddejVdd3ggdWZCejNjQd*gdXdYZDejNjQdZd[d\e/d]fgd^ZEejNjQd_d`gdagd`dagd`dbgdadbggdcZFddZGdeZHdfZIdgZJdhZKdiZLdjZMejNjQdke"dlZNdmZOejNjQdne!doZPy)pN)copy)SkipTest)kstest)parse)_safe_indexingresampleshuffle)_get_namespace_device_dtype_ids)yield_namespace_device_dtype_combinations)_determine_key_type_get_column_indices _safe_assign) MockDataFrame)_array_api_for_tests_convert_containerassert_allclose_dense_sparseassert_array_equal'skip_if_array_api_compat_not_configured)CSC_CONTAINERSCSR_CONTAINERS )rctjdd}|jgdgdgddd }d d lm}d gd d ggddgd gg}|D]}t ||d}||||gdd dgfgddgfg}|D]#\}}t ||d}||dd|f|%d dgd d gfdgdgfg} | D]#\} }t || d}||dd|f|%d dgddgddgg} | D]}t ||d }||||y)z,Check _safe_indexing for polars as expected.polarsz0.18.2) minversion)r)r)rrr abcrow)orientr)assert_frame_equalr%r$)r%r$r&r&raxisTFT)FFTNrr)pytest importorskip DataFramepolars.testingr)r) pldfr)str_keyskeyout bool_keysbool_keystr_keyint_keysint_key axis_0_keyss g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_indexing.pytest_polars_indexingr=#sh   X( ;B MB5  B2Sz?SEC5AH)R1-2c7C()&Sz25IC54QRI&0'R22aj>3/0Q#s$sSEl3H$0Rq12aj>3/0q6Aq6Aq6*K)R1-2c7C()z key, dtype)rint)0str)TboolTrBrrrr?r@12rA)rCr?)rDrArdtypeF))TFrB)col_0rArIcol_1col_2)rJrAbeginendc$t||k(sJyN)r )r4rHs r<test_determine_key_typerQDs8 s #u ,, ,r>cztjtd5tddddy#1swYyxYw)NNo valid specification of thematch?)r-raises ValueErrorr r>r<test_determine_key_type_errorrZcs. z)H I!C !!!s 1:ctjtd5tt dddddddy#1swYyxYw)NzOnly array-like or scalar arerTrrrF) accept_slice)r-rW TypeErrorr slicerYr>r<#test_determine_key_type_slice_errorr_hs< y(G H@E!QN?@@@s >Az#array_namespace, device, dtype_name)idsct||}tjd5|jgd}t |dk(sJ|jgd}t |dk(sJ |jgd}|/t jtd 5t |ddddddy#t $rd}YGwxYw#1swY#xYw#1swYyxYw) NT)array_api_dispatchrrrr?r,rB)y??y@@y@@rSrT) rsklearnconfig_contextasarrayr r]r-rWrX)array_namespacedevice dtype_namexp int_array_keybool_array_keycomplex_array_keys r<!test_determine_key_type_array_apirnms ov 6B   4 87 9- "=1U:::$78">2f<<< % " +C D   (z1PQ 7#$56 777 % $  %  7 777sHAC+B8>C C 'C8 CCCC C CC array_type)listarraysparse dataframerpyarrow indices_type)rptuplerqseriesr^cddg}|dk(r t|dtr |dxxdz cc<tgdgdgdg|}t||}t||d}t |tgdgdg|y) Nrrr^rcrrr r!rrr* isinstancer?rrrroruindicesrqsubsets r<&test_safe_indexing_2d_container_axis_0rsv !fGw:gaj##> a  9i@* ME ,7G E7 3F "Iy#9:Fr>)rprqrw polars_series pyarrow_arraycddg}|dk(r t|dtr |dxxdz cc<tgd|}t||}t||d}t |tddg|y)Nrrr^ rrrrrr r{r!rrr*rr|r~s r<test_safe_indexing_1d_containerrsl !fGw:gaj##> a :J GE ,7G E7 3F );QFJ)OPr>)rqrrrsrrtrrrKrLc t|}|dk(r t|dtr |dxxdz cc<gd}tgdgdgdg||}t||}t|dtr9|dvr5d }t j t| 5t||d dddyt||d }t|td d gddgddgg|y#1swYyxYw)Nr^rrJrcryrzrrqrrESpecifying the columns using strings is only supported for dataframesrTr*rrrr r!r) rr}r?rrAr-rWrXrr)rorurindices_converted columns_namerqerr_msgrs r<&test_safe_indexing_2d_container_axis_1rsW w:gaj##>!!.L  Iy):| E++)rprvrqrwcdgdgdzzdgdzz}tgd|}t||}t||d}t|tddg|y) NFTrr rrr*rrrrr~s r<$test_safe_indexing_1d_container_maskrs^ g "eWq[0G :J GE ,7G E7 3F );QFJ)OPr>zaxis, expected_subsetcgd}tgdgdgdg||}gd}t||}t|||}t|t||y)NrJrcryrz)FTTr*r)rorur+expected_subsetrrqrrs r<test_safe_indexing_2d_maskrsW/L  Iy):| E"G ,7G E7 6F "?J?r>z array_type, expected_output_type))rprprqrqrrrrrsrwrrrtrctgdgdgdg|}d}t||d}tgd|}t||y)Nrcryrzrrr*r)roexpected_output_typerqrrrs r<#test_safe_indexing_2d_scalar_axis_0rsA  9i@* MEG E7 3F' 3GHN 8r>cNtgd|}d}t||d}|dk(sJy)Nrrrr*r)rr)rorqrrs r<test_safe_indexing_1d_scalarrs0 :J GEG E7 3F Q;;r>)rrrrrcPgd}tgdgdgdg||}t|tr9|dvr5d}tjt |5t ||d dddyt ||d }gd }|d k(rd gd gdgg}t||}t||y#1swYyxYw)NrJrcryrzrrrTrr*)rr rrrrr r)rr}rAr-rWrXrr) rorrrrqrrexpected_outputrs r<#test_safe_indexing_2d_scalar_axis_1rs/L  Iy):| E'3J2E$E S ]]:W 5 3 5' 2 3 3 wQ7# 8 + !sQC!oO+O=QR$V^< 3 3s BB%)rprqrrcbtgdgdgdg|}t|dd}t||y)Nrcryrzrr*r)roXX_subsets r<test_safe_indexing_None_axis_0r=s-Iy)ctjd}d}|jt}tjt |5t |dgddddy#1swYyxYw)Npandasz&No valid specification of the columns.rTrVrr*)r-r.r/X_toyrWrXr)pdrrs r<0test_safe_indexing_pandas_no_matching_cols_errorrDsV   X &B6G UA z 1)q3%a()))s A!!A*r+ctjtd5ttddg|dddy#1swYyxYw)Nz'axis' should be either 0rTrrr*)r-rWrXrrr*s r<test_safe_indexing_error_axisrLs6 z)D E1uq!f40111s :A X_constructor)rqrwrrcttd}|dk(rtj|}n|dk(r't j d}|j |}nX|dk(r(t j d}|j |}n+|dk(r&t j d }|j|}d }t jt| 5t|d d gd dddy#1swYyxYw)Nrrqrwrrr)valuesrrtz='X' should be a 2D NumPy array, 2D sparse matrix or dataframerTrrr*) rprangerrfr-r.SeriesrqrWrXr)rrrr1pars r<!test_safe_indexing_1d_array_errorrRs U1XA 1 ( "   * ! / )   *  + / )   + MG z 16}q!f15666s C++C4cddg}gdgdgdg}d}tjt|5t||d dddy#1swYyxYw) NrKrLrcryrzz.String indexing is not supported with 'axis=0'rTrr*r-rWrXr)rrqrs r<4test_safe_indexing_container_axis_0_unsupported_typerjsL G  9 -E>G z 1/ugA.///s AAcbtjd}t|j}t|j}|tdk\r t d|j gdgdd}t|ddgd }t|jd r|jj}n |jjj}tj5tjd |d |j d <ddd|j d dk(sJy#1swYxYw)Nr3z;SettingWithCopyWarning has been removed in pandas 3.0.0.devrc)rrr)r$r%rrr*SettingWithCopyWarningerrorr")rr)r-r. parse_version __version__ base_versionrr/rhasattrerrorsrcorecommonwarningscatch_warnings simplefilteriloc)r pd_versionpd_base_versionrrrs r<4test_safe_indexing_pandas_no_settingwithcopy_warningrrs   X &Br~~.J#J$;$; D 66$<1   s "&D%%D.cddgddgddgg}d}tjt|5t||d d d d y #1swYy xYw) z@Check that we raise a ValueError when axis=1 with input as list.rrrrr{r!z!axis=1 is not supported for listsrTr*Nr)rrrs r<*test_safe_indexing_list_axis_1_unsupportedrsP Q!Q!Q A1G z 1+q'*+++s AA )rqrrrsctjjd}|jdd}ddg}|jt ||j d}t ||}t|||t||d}t|t ||ddg}|j|j dt |}t ||}t|||t||d}t|t ||d \}}|j|j }t ||}t|||t|t ||y ) z,Check that `_safe_assign` works as expected.rr"rrr) row_indexerr*)column_indexer)NNN) rrandom RandomStaterandnlenshaperrrr)rorngX_arrayrrrassigned_portionrs r<test_safe_assignrs: ))   "CiiAGa&K YYs;'q)9 :F7J/AF 4%a1= ,VZ@VN YYw}}Q'^)< =F7J/AF>:%aa@ ,VZ@#-K SYY F7J/AF>: $6vz$JKr>z key, err_msg)r"z all features must be in \[0, 2\])whatever/A given column is not a column of the dataframez%No valid specification of the columnsctjd}|jtgd}tjt |5t ||dddy#1swYyxYw)NrrJcolumnsrT)r-r.r/rrWrXr )r4rrX_dfs r<test_get_column_indices_errorrsT   X &B <<'B< CD z 1'D#&'''s A  A)r4col1col2col3c\tjd}tjdt}gd}|j ||}dj |}tjt5}t||dddtj|k(sJy#1swY$xYw)Nr)rrrG)rrrrrrz1Selected columns, {}, are not unique in dataframe) r-r.rzerosr?r/formatrWrXr rAvalue)r4rtoyrrrexc_infos r<6test_get_column_indices_pandas_nonunique_columns_errorrs   X &B ((6 %C6G S' *AAHHMG z "$hAs#$ x~~ ' )) )$$s 2 B""B+c tjd}|jgdgdggd}tddddgftddd dgftdddgfd d gddgftd d d dgftd dgd ftdd d gfd d gdd gfggfg }|D]\}}t |||k(rJd}tj t |5t |dgdddd}tj t|5t |td dddddy#1swYGxYw#1swYyxYw)z=Check _get_column_indices for edge cases with the interchangerrcryr#)schemarNrrr%r&r$rCrrT not_a_columnzkey.step must be 1 or None)r-r.r/r^r rWrXNotImplementedError)r1r2 key_resultsr4resultmsgs r<#test_get_column_indices_interchangerse   X &B y),_ EB q$!Q tQ!Q q!qc saV sC1a&! sD 9% tS A3 saV R K#6 V"2s+v5556 r< test_resamplers :   z "!q!f z "=!Q!Q!<= xA!, - 22 2 ==sBBBB&c Ntjgd}tjgd}g}g}tdD]}|j t |j |d||jdj|j t ||d||jdjtj|}tj|}t||}tj|dk\sJ|jdkDsJy) N)rr)rdrrTr)r random_stater) sample_weightrrrg?) rrqrfrappendrrepeatrmeanrallpvalue)datar mean_repeatedmean_reweightedseed test_results r<test_resample_weightedr s 88J DJJ{+MMOc    M*!**Q-   df    +!**Q-   df  &JJ}-Mjj1O8K 66/Q& '' '    $$ $r>ctjjd}d}d}|j|df}|j d||}t ||ddd\}}tj |dk(sJt ||dd|\}}tj |dk(rJtj|dk(sJy) Nrrg?rsizer"rrstratifyr)rrrnormalbinomialrrsum)rrpry_y_not_stratified y_stratifieds r<test_resample_stratifiedr)s ))   "CI A A 'A Q *A"1a2APTUA 66"a' (( (q!rANOA|vvla'(( ( 66, 1 $$ $r>c tjjd}d}|j|df}|j dd|}t ||dd||\}}t ||d d||\}}tj |jddksJtj |jddk(sJt ||dd ||\}}|jdd k(sJtj |jddk(sJy) Nrrrr rT2)rrrrFi)rrrrrandintruniquer)rrrr X_replacer X_no_replaces r< test_resample_stratified_replacer9s ))   "CI A 'A Aqy )A 1dbsQLIq 1eraOL! 99Y  % %a (2 -- - 99\ " ( ( +r 11 1 1ddqLIq ??1  %% % 99Y  % %a (C // /r>ctjjd}d}|j|df}|j dd|df}t ||d||\}}|j dk(sJy)Nrrrr rrr)rrrrrrndim)rrrrs r<test_resample_stratify_2dyr"Rsm ))   "CI A 'A Aq 1~ .A AqBS1 EDAq 66Q;;r>ctjtd5tddgddgddgddddtjtd5tddgddgddgddgdddy#1swYExYw#1swYyxYw) NzCResampling with sample_weight is only implemented for replace=True.rTrrF)rrzCResampling with sample_weight is only implemented for stratify=None)rr)r-rWrrrYr>r<test_notimplementederrorr$\s S F !Q!Q1vuE F S H !Q!Q1vAG HH FF HHsA6B6A?B  csr_containercLtjjd}d}|j|df}|j dd|}||j dd}t jtd5t||d || \}}dddy#1swYyxYw) Nrrrr rrzSparse data was passedrTrr) rrrrrreshaper-rWr]r)r%rrrrrs r<#test_resample_stratify_sparse_errorr(js ))   "CI A 'A Aqy )AQYYr1-.H y(@ AQ1xP1QQQs =BB#cd}tjddgddggddgdd ggg}t||}t|t|||k(sJy) Nc&td|DS)Nc3@K|]}td|Dyw)c32K|]}t|ywrPrv).0Cs r< zPtest_shuffle_on_ndim_equals_three..to_tuple...xs/58/sNr-)r.Bs r<r0zFtest_shuffle_on_ndim_equals_three..to_tuple..xs;AU/Q//;sr-)As r<to_tuplez3test_shuffle_on_ndim_equals_three..to_tuplews;;;;r>rrrrrr r{r!)rrqsetr )r3r2Ss r<!test_shuffle_on_ndim_equals_threer6vsb< Aq6Aq6"aVaV$456A HQKA AJ x{ q  r> csc_containerc gd}tjgdt}gd}ttjddgddgdd ggt}|tjd j d d }t |||||d \}}}} } |gd k(sJt|tk(sJt|gd |jtk(sJ|gdk(sJt|tk(sJt| tjdd gddgddggtt| tk(sJt| jtjddgd d gddggy)Nr#rGrcr$rr%rr&rr r)r)r&r%r$)rrrrr) rrqobjectraranger'r typerprrHtoarray) r7r$r%r&dea_sb_sc_sd_se_ss r<"test_shuffle_dont_convert_to_arrayrDsF A /AAbhha3(S!H=VLMAbiil**1a01A%aAq!!DCc3 / !! ! 9  sO, 99   )   9  sBHHsAha3(%C6RS 9 %% %s{{}bhhAAA/G&HIr>)Qrrunittestrnumpyrr- scipy.statsrrd$sklearn.externals._packaging.versionrr sklearn.utilsrrr sklearn.utils._array_apir r sklearn.utils._indexingr r rsklearn.utils._mockingrsklearn.utils._testingrrrrrsklearn.utils.fixesrrr:r'rr=mark parametrizebool_r^rqint32int64uint8r9rQrZr_rnrrrrrrrrrrrrrrrrrrrrrr rrr"r$r(r6rDrYr>r<rUs  G;; 1?  ! V$)B $ E %  tT D! q!e )288 ,e4 )288 ,e4 )288 ,e4  4- &) $e,, w & - .6 -V V:WX Y>=; YO)MNQOQG)MN)Y  11v1v1v&>"?@  O & 9 9O& QL1=2 =,'BC.D. )$+1,1 J66*/2QAa XRXXq!f=M$NO+P+'GHLILB1G :;'' VHvh 0662BVVDT U * *5< 3%%P % 02 H.9Q:Q!.9J:Jr>