
    Ki                        S SK rS SKrS SKJr  S SKJr  S SKJrJ	r	J
r
  S SKJrJrJr  S SKJr  S rS r\R&                  R)                  S	5      \R&                  R+                  S
\" 5       S S9S 5       5       r\R&                  R)                  S	5      \R&                  R+                  S\R.                  SS /5      \R&                  R+                  S
\" 5       S S9S 5       5       5       r\R&                  R)                  S	5      \R&                  R+                  S\R.                  S/5      \R&                  R+                  S
\" 5       S S9\R&                  R+                  S\5      S 5       5       5       5       r\R&                  R)                  S	5      \R&                  R+                  S
\" 5       S S9\R&                  R+                  SSS/5      S 5       5       5       r\R&                  R+                  S
\" 5       S S9\R&                  R+                  SSS/5      S 5       5       r\R&                  R+                  SSS/5      \R&                  R+                  S
\" 5       S S9S 5       5       r\R&                  R+                  S
\" 5       S S9\R&                  R+                  S \R.                  S!/5      S" 5       5       rg)#    N)clone)enable_iterative_imputerIterativeImputer
KNNImputerSimpleImputer)assert_allcloseassert_allclose_dense_sparseassert_array_equal)CSR_CONTAINERSc                  :    [        SS9[        5       [        5       /$ )Ng?)tolr        b/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/impute/tests/test_common.pyimputersr      s    %z|]_EEr   c                      [        5       /$ N)r   r   r   r   sparse_imputersr      s    Or   z-ignore::sklearn.exceptions.ConvergenceWarningimputerc                 .    U R                   R                  $ r   	__class____name__xs    r   <lambda>r          akk>R>Rr   )idsc                     S/S//nS/[         R                  //n[        U 5      n U R                  SS9  U R	                  U5      R                  U5        g )N         Tadd_indicator)npnanr   
set_paramsfit	transform)r   traintests      r   +test_imputation_missing_value_in_test_arrayr-      sS    
 S1#JEC"&&?DGnGT*KK  &r   markerc                 .    U R                   R                  $ r   r   r   s    r   r   r   '   r   r   c           
         [         R                  " U SSU S/SU SU S/SSX S/SSSU S//5      n[         R                  " / SQ/ S	Q/ S
Q/ SQ/5      n[        U5      nUR                  U SS9  UR	                  U5      n[        US S 2SS 24   U5        [        UR                  R                  [         R                  " / SQ5      5        UR                  SS9  UR	                  U5      n[        US S 2S S24   U5        g Nr!      r"      r#   	      )      ?        r8   r7   )r8   r7   r8   r7   )r8   r8   r7   r7   )r8   r8   r8   r7   T)missing_valuesr%   )r   r!   r"   r#   Fr$   )	r&   arrayr   r(   fit_transformr	   r   
indicator_	features_)r.   r   XX_true_indicatorX_transX_trans_no_indicators         r   test_imputers_add_indicatorrC   %   s
    	Q61%61%61%1fa 		
	A xx    		
 GnGfDA##A&GGArsFO%56w))33RXXl5KLU+"003GAssFO%9:r   c                 .    U R                   R                  $ r   r   r   s    r   r   r   I   s    0D0Dr   csr_containerc           
         [        U 5      n U" USSUS/SUSUS/SSXS/SSSUS//5      nU" / SQ/ S	Q/ S
Q/ SQ/5      nU R                  USS9  U R                  U5      n[        US S 2SS 24   U5        [	        U R
                  R                  [        R                  " / SQ5      5        U R                  SS9  U R                  U5      n[        US S 2S S24   U5        g r2   )	r   r(   r<   r
   r   r=   r>   r&   r;   )r   r.   rE   r?   r@   rA   rB   s          r   "test_imputers_add_indicator_sparserG   F   s    GnGQ61%61%61%1fa 		
	A %    		
 fDA##A&G BC2BCw))33RXXl5KLU+"003 CRC2FGr   c                 .    U R                   R                  $ r   r   r   s    r   r   r   k   r   r   r%   TFc           
      H   [         R                  " S5      n[        R                  nU R	                  XS9n [        R
                  " USSUS/SUSUS/SSX3S/SSSUS	//5      nU R                  U5      nUR                  US
/ SQS9nU R                  U5      n[        XW5        g )Npandasr%   r9   r!   r3   r"   r4   r#   r5   r6   Int16)abcde)dtypecolumns)	pytestimportorskipr&   r'   r(   r;   r<   	DataFramer	   )r   r%   pdr.   r?   X_trans_expectedX_dfrA   s           r   -test_imputers_pandas_na_integer_array_supportrZ   j   s    
 
		X	&BVVF  } TG
Q61%61%61%1fa 		
	A ,,Q/ <<2K<LD ##D)G$.r   c                 .    U R                   R                  $ r   r   r   s    r   r   r      r   r   c                    [         R                  " S5      n[        R                  nU R	                  XS9n [        R
                  " USSSUS/SUSSUS/SSS	X3S/SSS
SUS//5      nUR                  U/ SQS9nU R                  U5        U R                  5       nU(       a  / SQn[        Xv5        g/ SQn[        Xv5        g)z%Check feature names out for imputers.rJ   rK   r!   r3   r#   r"   r6   r4      r5      )rM   rN   rO   rP   rQ   f)rS   )	rM   rN   rO   rP   r_   missingindicator_amissingindicator_bmissingindicator_dmissingindicator_e)rM   rN   rO   rP   r_   N)
rT   rU   r&   r'   r(   r;   rV   r)   get_feature_names_outr   )r   r%   rW   r.   r?   rY   namesexpected_namess           r   &test_imputers_feature_names_out_pandasrg      s     
		X	&BVVF  } TG
Q1fa(1fa(1fa(1a#		
	A <<#A<BDKK))+E

 	>12>1r   keep_empty_featuresc                 .    U R                   R                  $ r   r   r   s    r   r   r      r   r   c                    [         R                  " [         R                  S/[         R                  S/[         R                  S//5      n[        U 5      n U R	                  SUS9n S Hj  n[        X5      " U5      nU(       a  UR                  UR                  :X  d   eM9  UR                  UR                  S   UR                  S   S-
  4:X  a  Mj   e   g)	z?Check that the imputer keeps features with only missing values.r!   r"   r#   F)r%   rh   )r<   r*   r   N)r&   r;   r'   r   r(   getattrshape)r   rh   r?   method	X_imputeds        r   test_keep_empty_featuresro      s     	2661+{RVVQK89AGnG  1D ! G 1G,Q/	??agg---??qwwqz1771:>&BBBB 1r   c                 .    U R                   R                  $ r   r   r   s    r   r   r      r   r   missing_value_testr!   c                 J   [         R                  " S[         R                  /SS//5      n[         R                  " SU/SS//5      n[        U 5      n U R	                  SS9  U R                  U5        U R                  U5      nUR                  S:X  d   eU R	                  SS9  U R                  U5        U R                  U5      nUR                  S:X  d   e[        US	S	2S	S
24   U5        [         R                  " U5      (       a  SS/nOSS/n[        US	S	2S
4   U5        g	)zgCheck that missing indicator always exists when add_indicator=True.

Non-regression test for gh-26590.
r   r!   r"   Tr$   )r"   r#   F)r"   r"   Nr/   )
r&   r;   r'   r   r(   r)   r*   rl   r	   isnan)r   rq   X_trainX_testX_test_imputed_with_indicator X_test_imputed_without_indicatorexpected_missing_indicators          r   ?test_imputation_adds_missing_indicator_if_add_indicator_is_truery      s%    hhBFFaV,-G XX-.A78FGnGT*KK$+$5$5f$=!(..&888U+KK'.'8'8'@$+11V;;;%a"f-/O 
xx"##&'V"&'V"1!R%8:TUr   )numpyr&   rT   sklearn.baser   sklearn.experimentalr   sklearn.imputer   r   r   sklearn.utils._testingr	   r
   r   sklearn.utils.fixesr   r   r   markfilterwarningsparametrizer-   r'   rC   rG   rZ   rg   ro   ry   r   r   r   <module>r      s      9 F F 
 /F
 KLHJ4RS' T M' KLBFFB?3HJ4RS; T 4 M;< KLBFFB<0 &D   .9H : 1 MH< KLHJ4RS4-8/ 9 T M/4 HJ4RS4-8"2 9 T"2J .u>HJ4RSC T ?C  HJ4RS-{; V < T Vr   