`L iddlZddlZddlmZddlmZmZmZddl m Z m Z m Z ddl mZdZdZej"j%dej"j'd ed d Zej"j%dej"j'd ej*ddgej"j'd ed dZej"j%dej"j'd ej*dgej"j'd ed ej"j'dedZej"j%dej"j'd ed ej"j'dddgdZej"j'd ed ej"j'dddgdZej"j'dddgej"j'd ed dZej"j'd ed ej"j'dej*d gd!Zy)"N)enable_iterative_imputerIterativeImputer KNNImputer SimpleImputer)assert_allcloseassert_allclose_dense_sparseassert_array_equal)CSR_CONTAINERSc@tdttgS)Ng?)tolrf/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/impute/tests/test_common.pyimputersrs  %z|]_ EErctgSN)rrrrsparse_imputersrs O rz-ignore::sklearn.exceptions.ConvergenceWarningimputerc.|jjSr __class____name__xs rrakk>R>Rr)idscdgdgg}dgtjgg}|jd|j|j |y)NT add_indicator)npnan set_paramsfit transform)rtraintests r+test_imputation_missing_value_in_test_arrayr,sJ S1#JE C"&&?D T* KK  &rmarkerc.|jjSrrrs rrr%rrc tj|dd|dgd|d|dgdd||dgddd|dgg}tjgdgd gd gd g}|j|d |j|}t |ddddf|t |j jtjgd|jd|j|}t |ddddf|yNr r!r" )?r7r6)r7r6r7r6)r7r7r6r6)r7r7r7r6T)missing_valuesr$)rr r!r"Fr#)r%arrayr' fit_transformrr indicator_ features_)r-rXX_true_indicatorX_transX_trans_no_indicators rtest_imputers_add_indicatorrB#s  Q61 % 61 % 661 % 1fa   Axx   fDA##A&GGArsFO%56w))33RXXl5KL U+"003GAssFO%9:rc.|jjSrrrs rrrFs 0D0Dr csr_containerc ||dd|dgd|d|dgdd||dgddd|dgg}|gdgd gd gd g}|j|d |j|}t|ddddf|t|jj t jgd|jd|j|}t|ddddf|yr1)r'r;r r r<r=r%r:)rr-rDr>r?r@rAs r"test_imputers_add_indicator_sparserFCs  Q61 % 61 % 661 % 1fa   A%   fDA##A&G BC2BCw))33RXXl5KL U+"003 CRC2FGrc.|jjSrrrs rrrgrrr$TFc Vtjd}tj}|j ||}tj |dd|dgd|d|dgdd||dgddd|d gg}|j |}|j|d gd  }|j |}t||y) Npandasr$r8r r2r!r3r"r4r5Int16)abcde)dtypecolumns) pytest importorskipr%r&r'r:r; DataFramer)rr$pdr-r>X_trans_expectedX_dfr@s r-test_imputers_pandas_na_integer_array_supportrYfs   X &B VVF  }V TG  Q61 % 61 % 661 % 1fa   A,,Q/ <<2K< LD##D)G$g.rc.|jjSrrrs rrrrrc tjd}tj}|j ||}tj |ddd|dgd|dd|dgddd ||dgddd d |dgg}|j |gd  }|j||j}|rgd}t||ygd}t||y)z%Check feature names out for imputers.rIrJr r2r"r!r5r3r4)rLrMrNrOrPf)rR) rLrMrNrOr^missingindicator_amissingindicator_bmissingindicator_dmissingindicator_e)rLrMrNrOr^N) rSrTr%r&r'r:rUr(get_feature_names_outr )rr$rVr-r>rXnamesexpected_namess r&test_imputers_feature_names_out_pandasrfs   X &B VVF  }V TG  Q1fa ( 1fa ( 1ffa ( 1a #   A <<#A< BD KK  ) ) +E   >512>51rkeep_empty_featuresc.|jjSrrrs rrrrrctjtjdgtjdgtjdgg}|jd|}dD]b}t |||}|r|j |j k(r1J|j |j d|j ddz fk(rbJy) z?Check that the imputer keeps features with only missing values.r r!r"F)r$rg)r;r)rN)r%r:r&r'getattrshape)rrgr>method X_imputeds rtest_keep_empty_featuresrns 2661+{RVVQK89A  1D!G1C,GGV,Q/ ??agg- --??qwwqz1771:>&BB BB Crc.|jjSrrrs rrrrrmissing_value_testr c,tjdtjgddgg}tjd|gddgg}|jd|j ||j |}|j dk(sJ|jd|j ||j |}|j dk(sJt|d d d d f|tj|rddg}nddg}t|d d d f|y ) zoCheck that missing indicator always exists when add_indicator=True. Non-regression test for gh-26590. rr r!Tr#)r!r"F)r!r!Nr.) r%r:r&r'r(r)rkrisnan)rrpX_trainX_testX_test_imputed_with_indicator X_test_imputed_without_indicatorexpected_missing_indicators r?test_imputation_adds_missing_indicator_if_add_indicator_is_truerxshhBFF aV,-GXX-.A7 8F T* KK$+$5$5f$=! ( . .& 88 8 U+ KK'.'8'8'@$ + 1 1V ;; ;%a"f-/O xx"#&'V"&'V"1!R%8:TUr)numpyr%rSsklearn.experimentalrsklearn.imputerrrsklearn.utils._testingrr r sklearn.utils.fixesr rrmarkfilterwarnings parametrizer,r&rBrFrYrfrnrxrrrrs 9FF /F KLHJ4RS'TM'KLBFFB?3HJ4RS;T4M;:KLBFFB<0  &D.9H:1M H:KLHJ4RS4-8/9TM/4HJ4RS4-8"29T"2J.u >HJ4RS CT? CHJ4RS-{;V<TVr