§
    qŠtj  ã                   óø  — d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZ d dlmZ d dlmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d„ Z5d„ Z6d„ Z7ej8         9                    dg d¢¦  «        ej8         9                    de2¦  «        d„ ¦   «         ¦   «         Z:ej8         9                    dg d¢¦  «        d„ ¦   «         Z;ej8         9                    dg d¢¦  «        d„ ¦   «         Z<ej8         9                    dg d¢¦  «        ej8         9                    de1¦  «        d„ ¦   «         ¦   «         Z=d„ Z>d„ Z?ej8         9                    de1¦  «        d „ ¦   «         Z@ej8         9                    de1¦  «        d!„ ¦   «         ZAej8         9                    dd"d#g¦  «        ej8         9                    d$deBeCg¦  «        d%„ ¦   «         ¦   «         ZDej8         9                    dd"d#g¦  «        ej8         9                    d&d'd(g¦  «        d)„ ¦   «         ¦   «         ZEej8         9                    dd*d+g¦  «        ej8         9                    d$eC ejF        d,¦  «         ejF        d-¦  «        g¦  «        d.„ ¦   «         ¦   «         ZGej8         9                    de1¦  «        d/„ ¦   «         ZHej8         9                    d0dejI        d1d2d g¦  «        d3„ ¦   «         ZJej8         9                    d$eBd4g¦  «        d5„ ¦   «         ZKej8         9                    d6d7d8ejI        fg¦  «        d9„ ¦   «         ZLej8         9                    d:d;d<g¦  «        d=„ ¦   «         ZMej8         9                    d>e2ejN        gz   ¦  «        ej8         9                    d:d;d<g¦  «        d?„ ¦   «         ¦   «         ZOej8         9                    d0dejI        d1d2d g¦  «        ej8         9                    d:d;d<g¦  «        d@„ ¦   «         ¦   «         ZPej8         9                    d$eBd4g¦  «        ej8         9                    d:d;d<g¦  «        dA„ ¦   «         ¦   «         ZQej8         9                    dBdCgdDggdCgejI        ggg¦  «        dE„ ¦   «         ZRdF„ ZSdG„ ZTdH„ ZUdI„ ZVdJ„ ZWej8         9                    dKg dL¢¦  «        dM„ ¦   «         ZXej8         9                    dNd e¦   «          e¦   «          e¦   «          e ¦   «         g¦  «        dO„ ¦   «         ZYdP„ ZZdQ„ Z[dR„ Z\ej8         9                    dg d¢¦  «        dS„ ¦   «         Z]dT„ Z^dU„ Z_dV„ Z`ej8         9                    dWdXdYg¦  «        dZ„ ¦   «         Zad[„ Zbd\„ Zcd]„ Zdej8         9                    d^d d_ eje        d gdXz  d_gdXz  g¦  «        fdd eje        ejf         gdXz  ejf        gdXz  g¦  «        fejf         ejf         eje        ejf         gdXz  ejf        gdXz  g¦  «        fg d`¢g da¢ eje        g d`¢g da¢g¦  «        fdbejf         dcgd_ddejf        g eje        dbejf         dcgd_ddejf        gg¦  «        fgg de¢¬f¦  «        dg„ ¦   «         Zgej8         9                    dhdiejf        ejf         djfdbdYgg dk¢dlfg dm¢d_ddgdlfg¦  «        dn„ ¦   «         Zhej8         9                    doddgejf         ejf        gfdpdcgdpgdqz  dcgdqz  gfgdrdsg¬f¦  «        dt„ ¦   «         Ziej8         9                    dud;d<g¦  «        dv„ ¦   «         Zjej8         9                    dwddCejk         l                    dC¬x¦  «        g¦  «        ej8         9                    dyddCejk         l                    dC¬x¦  «        g¦  «        dz„ ¦   «         ¦   «         Zmej8         9                    d{ eje        d|dCgdCdDgg¦  «         eje        d|dCgdCd|gg¦  «        d}d~dœd€f eje        d�d‚gdƒd�ggeC¬„¦  «         eje        d�d‚gdƒd�ggeC¬„¦  «        i d…fg¦  «        d†„ ¦   «         Znd‡„ Zoej8         9                    dˆ eo¦   «         ¦  «        ej8         9                    d‰d}dX eje        g dŠ¢¦  «        fd‹dX eje        g dŠ¢¦  «        fg¦  «        dŒ„ ¦   «         ¦   «         Zpej8         9                    d�e1e2z   e0z   e3z   e/z   ¦  «        dŽ„ ¦   «         Zqej8         9                    d�g d�¢¦  «        ej8         9                    d‘eje        d fg er ee1e2z   e0z   e3z   e/z   ejI        g¦  «        ¦  «        z   ¦  «        d’„ ¦   «         ¦   «         Zsd“„ Ztej8         9                    d” eje        d�d‚gd‚d�ggeB¬„¦  «        d� eje        g d•¢g d–¢geB¬„¦  «        f eje        ejI        d8gd8ejI        gg¦  «        ejI         eje        g d—¢g d˜¢g¦  «        f eje        ejI        d‚gd‚ejI        ggeB¬„¦  «        ejI         eje        g d•¢g d–¢geB¬„¦  «        f eje        dd‚gd‚dggeB¬„¦  «        d eje        g d•¢g d–¢geB¬„¦  «        fg¦  «        d™„ ¦   «         Zuej8         9                    dšeeg¦  «        ej8         9                    d›dœejI        d�fdžg¦  «        dŸ„ ¦   «         ¦   «         Zvd „ Zwej8         9                    de2¦  «        d¡„ ¦   «         Zxej8         9                    dšeeg¦  «        d¢„ ¦   «         Zyej8         9                    d�e1e2z   e0z   e3z   e/z   ¦  «        d£„ ¦   «         Zzej8         9                    d¤d¥d¦g¦  «        d§„ ¦   «         Z{ej8         9                    d¨d©g dª¢fd«g d¬¢fg¦  «        d­„ ¦   «         Z|ej8         9                    d®d|ejI        g¦  «        d¯„ ¦   «         Z}ej8         9                    d®d|ejI        g¦  «        d°„ ¦   «         Z~ej8         9                    d±d²g d³¢eBd²dDfd´g dµ¢eBd²dCfd�d¶d·geBd�dDfd¶g d¸¢eBd¹dDfdcg dº¢edcdDfdCg d»¢edcdCfdcg d¼¢edcdDfdCg d½¢edcdDfg¦  «        d¾„ ¦   «         Z€ej8         9                    d¿d�d�d‚gfdCdCdDgfddd�gfdddCgfdg dÀ¢fdCdCdÁgfdCdÁdCgfg¦  «        dÂ„ ¦   «         Z�ej8         9                    dÃg d¢¦  «        dÄ„ ¦   «         Z‚ej8         9                    d:d;d<g¦  «        dÅ„ ¦   «         ZƒdÆ„ Z„ej8         9                    d:d;d<g¦  «        dÇ„ ¦   «         Z…dÈ„ Z†dÉ„ Z‡dÊ„ Zˆej8         9                    dËej‰        ejŠ        g¦  «        dÌ„ ¦   «         Z‹ej8         9                    dÍdÎdÏg¦  «        ej8         9                    dg d¢¦  «        ej8         9                    d:d;d<g¦  «        dÐ„ ¦   «         ¦   «         ¦   «         ZŒej8         9                    de1¦  «        dÑ„ ¦   «         Z�dÒ„ ZŽej8         9                    dg d¢¦  «        dÓ„ ¦   «         Z�ej8         9                    dg d¢¦  «        ej8         9                    dÔ eje        g dÕ¢g dÖ¢g¦  «         eje        ejI        dDdXdqgejI        d×dØdÙgg¦  «         eje        dCdDdXejI        gdYd×dØejI        gg¦  «        g¦  «        dÚ„ ¦   «         ¦   «         Z�dS )Ûé    N)Úproduct©Úsparse)Úkstest)Útree)Úload_diabetes)ÚDummyRegressor)ÚConvergenceWarning)Úenable_iterative_imputer)ÚIterativeImputerÚ
KNNImputerÚMissingIndicatorÚSimpleImputer)Ú_most_frequent)ÚARDRegressionÚBayesianRidgeÚRidgeCV)ÚGridSearchCV)ÚPipelineÚ
make_union)Ú_sparse_random_matrix)Ú_convert_containerÚassert_allcloseÚassert_allclose_dense_sparseÚassert_array_almost_equalÚassert_array_equal)ÚBSR_CONTAINERSÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚLIL_CONTAINERSÚSCIPY_VERSION_BELOW_1_12c                 óJ   — t          | |¦  «         | j        |j        k    sJ ‚d S ©N)r   Údtype©ÚxÚys     ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/impute/tests/test_impute.pyÚ"_assert_array_equal_and_same_dtyper*   )   s-   € Ý�q˜!ÑÔÐØŒ7�a”gÒÐÐÐÐÐó    c                 óJ   — t          | |¦  «         | j        |j        k    sJ ‚d S r$   )r   r%   r&   s     r)   Ú_assert_allclose_and_same_dtyper-   .   s-   € Ý�A�qÑÔÐØŒ7�a”gÒÐÐÐÐÐr+   c                 ó4  — d|›d|›d�}t           }| j        j        dk    s|j        j        dk    rt          }t	          ||¬¦  «        }|                     | ¦  «                             |                      ¦   «         ¦  «        }	 ||j        || 	                    d¦  «        ¬¦  «          ||	|| 	                    d¦  «        ¬¦  «         t	          ||¬¦  «        }|                      || ¦  «        ¦  «         |                      ||                      ¦   «         ¦  «        ¦  «        }	t          j        |	¦  «        r|	                     ¦   «         }	 ||j        || 	                    d¦  «        ¬¦  «          ||	|| 	                    d¦  «        ¬¦  «         d	S )
zâUtility function for testing imputation for a given strategy.

    Test with dense and sparse arrays

    Check that:
        - the statistics (mean, median, mode) are correct
        - the missing values are imputed correctlyzParameters: strategy = z, missing_values = z, sparse = {0}Úf©Úmissing_valuesÚstrategyF)Úerr_msgTN)r   r%   Úkindr   r   ÚfitÚ	transformÚcopyÚstatistics_Úformatr   ÚissparseÚtoarray)
ÚXÚX_truer2   Ú
statisticsr1   Úsparse_containerr3   Ú	assert_aeÚimputerÚX_transs
             r)   Ú_check_statisticsrC   3   s�  € € ð 	ˆˆØˆˆð€Gõ
 #€Ià„w„|�sÒÐ˜fœlÔ/°3Ò6Ð6Ý-ˆ	õ ¨>ÀHÐMÑMÔM€GØ�kŠk˜!‰nŒn×&Ò& q§v¢v¡x¤xÑ0Ô0€GØ€IˆgÔ! :°w·~²~ÀeÑ7LÔ7LÐMÑMÔMÐMØ€Iˆg�v w§~¢~°eÑ'<Ô'<Ð=Ñ=Ô=Ð=õ ¨>ÀHÐMÑMÔM€GØ‡K‚KÐ Ð  Ñ#Ô#Ñ$Ô$Ð$Ø×ÒÐ 0Ð 0°·²±´Ñ :Ô :Ñ;Ô;€Gå„�wÑÔð $Ø—/’/Ñ#Ô#ˆà€IˆgÔ! :°w·~²~ÀdÑ7KÔ7KÐLÑLÔLÐLØ€Iˆg�v w§~¢~°dÑ';Ô';Ð<Ñ<Ô<Ð<Ð<Ð<r+   r2   )ÚmeanÚmedianÚmost_frequentÚconstantÚcsr_containerc                 óˆ  — t           j                             dd¦  «        }t           j        |d d d…<   t	          | ¬¦  «        }|                      ||¦  «        ¦  «        }|j        dk    sJ ‚|                     |¦  «        }|j        dk    sJ ‚t          | ¬¦  «        }|                     |¦  «        }|j        dk    sJ ‚d S )Né
   é   ©r2   )rJ   rK   )Úinitial_strategy)ÚnpÚrandomÚrandnÚnanr   Úfit_transformÚshaper   )r2   rH   r<   rA   Ú	X_imputedÚiterative_imputers         r)   Útest_imputation_shaperV   Z   sÍ   € õ 	Œ	�Š˜˜AÑÔ€AÝŒV€A€c€cˆ€c�Få XÐ.Ñ.Ô.€GØ×%Ò% m m°AÑ&6Ô&6Ñ7Ô7€IØŒ?˜gÒ%Ð%Ð%Ð%Ø×%Ò% aÑ(Ô(€IØŒ?˜gÒ%Ð%Ð%Ð%å(¸(ÐCÑCÔCÐØ!×/Ò/°Ñ2Ô2€IØŒ?˜gÒ%Ð%Ð%Ð%Ð%Ð%r+   ©rD   rE   rF   c                 ó,  — t          j        d¦  «        }t           j        |d d …df<   t          | ¬¦  «                             |¦  «        }t          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©é   é   r   rL   ÚSkipping©Úmatch)	rN   ÚonesrQ   r   r5   ÚpytestÚwarnsÚUserWarningr6   )r2   r<   rA   s      r)   Ú test_imputation_deletion_warningrc   l   sÍ   € å
Œ�‰Œ€AÝŒf€A€a€a€aˆ€d�GÝ XÐ.Ñ.Ô.×2Ò2°1Ñ5Ô5€Gå	Œ•k¨Ð	4Ñ	4Ô	4ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á&B	Â	BÂBc                 óÄ  — t          j        d¦  «        }t          j        }t          j        g d¢t
          ¬¦  «        }|                     ||d|gd|ddgg|¬¦  «        }t          | ¬	¦  «                             |¦  «        }t          |j
        |¦  «         t          j        t          d
¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚpandas©ÚaÚbÚcÚd©r%   é   é   rK   rJ   ©ÚcolumnsrL   z6Skipping features without any observed values: \['b'\]r]   )r`   ÚimportorskiprN   rQ   ÚarrayÚobjectÚ	DataFramer   r5   r   Úfeature_names_in_ra   rb   r6   )r2   Úpdr1   Úfeature_namesr<   rA   s         r)   Ú.test_imputation_deletion_warning_feature_namesrw   v   s<  € å	Ô	˜XÑ	&Ô	&€Bå”V€NÝ”HÐ1Ð1Ð1½Ð@Ñ@Ô@€MØ
�Šà˜^¨Q°Ð?Ø�  2Ð&ð	
ð ð 	ñ 	ô 	€Aõ  XÐ.Ñ.Ô.×2Ò2°1Ñ5Ô5€Gõ �wÔ0°-Ñ@Ô@Ð@õ 
ŒÝÐTð
ñ 
ô 
ð ð ð 	×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Â2CÃCÃCÚcsc_containerc                 óà  — t          j        d¦  «        }d|d<    ||¦  «        }t          | d¬¦  «        }t          j        t
          d¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |                     ¦   «         ¦  «         t          j        t
          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrY   r   )r2   r1   zProvide a dense arrayr]   )	rN   r_   r   r`   ÚraisesÚ
ValueErrorr5   r;   r6   )r2   rx   r<   rA   s       r)   Útest_imputation_error_sparse_0r|   �   s_  € õ 	Œ�‰Œ€AØ€A€a�DØˆ�aÑÔ€Aå X¸aÐ@Ñ@Ô@€GÝ	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ø�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡K‚K�—	’	‘”ÑÔÐÝ	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA3Á3A7Á:A7Ã C#Ã#C'Ã*C'c                 óœ   — t          | d¦  «        r| j        nt          | ¦  «        }|dk    rt          j        nt          j        | g|¢R i |¤ŽS ©NÚsizer   )Úhasattrr   ÚlenrN   rQ   rE   ©ÚarrÚargsÚkwargsÚlengths       r)   Úsafe_medianr‡   ¡   sP   € å   fÑ-Ô-Ð;ˆSŒXˆXµ3°s±8´8€FØ˜q’[�[�2Œ6ˆ6¥b¤i°Ð&E°dÐ&EÐ&EÐ&E¸fÐ&EÐ&EÐEr+   c                 óœ   — t          | d¦  «        r| j        nt          | ¦  «        }|dk    rt          j        nt          j        | g|¢R i |¤ŽS r~   )r€   r   r�   rN   rQ   rD   r‚   s       r)   Ú	safe_meanr‰   §   sP   € å   fÑ-Ô-Ð;ˆSŒXˆXµ3°s±8´8€FØ˜q’[�[�2Œ6ˆ6¥b¤g¨cÐ&C°DÐ&CÐ&CÐ&C¸FÐ&CÐ&CÐCr+   c           
      ót  — t           j                             d¦  «        }d}d}||z  ||z   f}t          j        |d         ¦  «        }t          j        d|d         dz   ¦  «        }|dd d…          |dd d…<   dt           j        d„ fdt           j        d	„ fg}|D �]œ\  }}	}
t          j        |¦  «        }t          j        |¦  «        }t          j        |d         ¦  «        }t          |d         ¦  «        D �]Ã}||z
  dz   dk    ||z
  dz   z  ||z
  dz   z  }t          |d         ||z  z   ||z   ||z   z  z
  d¦  «        }|d         |z
  |z
  }|d |…         }t          j	        |	|¦  «        }|| 
                    t          |¦  «        ¦  «        d |…                  } |
|||¦  «        ||<   t          j        |||f¦  «        |d d …|f<   d|	k    r:t          j        |t          j	        ||         ||z   ¦  «        f¦  «        |d d …|f<   n7t          j        ||t          j	        ||         |¦  «        f¦  «        |d d …|f<   t           j                             |¦  «                             |d d …|f         ¦  «         t           j                             |¦  «                             |d d …|f         ¦  «         �ŒÅ|dk    r*t          j        |¦  «                             d¬
¦  «         }n)t          j        |¦  «                             d¬
¦  «         }|d d …|f         }t#          |||||	| ¦  «         �Œžd S )Nr   rJ   rl   rm   rK   rD   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r$   )r‰   rN   Úhstack©ÚzÚvÚps      r)   ú<lambda>z-test_imputation_mean_median.<locals>.<lambda>¼   s   € ­µ2´9¸aÀ¸VÑ3DÔ3DÑ)EÔ)E€ r+   rE   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r$   )r‡   rN   rŒ   r�   s      r)   r‘   z-test_imputation_mean_median.<locals>.<lambda>½   s   € ­;µr´yÀ!ÀQÀÑ7HÔ7HÑ+IÔ+I€ r+   ©Úaxis)rN   rO   ÚRandomStateÚzerosÚarangerQ   ÚemptyÚrangeÚmaxÚrepeatÚpermutationr�   rŒ   ÚshuffleÚisnanÚanyÚallrC   )rx   ÚrngÚdimÚdecrS   r–   ÚvaluesÚtestsr2   Útest_missing_valuesÚtrue_value_funr<   r=   Útrue_statisticsÚjÚnb_zerosÚnb_missing_valuesÚ	nb_valuesrŽ   r�   r�   Úcols_to_keeps                         r)   Útest_imputation_mean_medianr®   ­   sw  € õ Œ)×
Ò
 Ñ
"Ô
"€Cà
€CØ
€CØ�3‰Y˜˜c™	Ð"€EåŒH�U˜1”XÑÔ€EÝŒY�q˜% œ( Q™,Ñ'Ô'€FØ˜1˜4˜a˜4”L�=€Fˆ1ˆ4ˆaˆ4�Lð 
•”ÐEÐEÐFØ	•2”6ÐIÐIÐJð€Eð
 :?ð 0
ñ 0
Ñ5ˆÐ% ~ÝŒH�U‰OŒOˆÝ”˜%‘”ˆÝœ( 5¨¤8Ñ,Ô,ˆõ �u˜Q”x‘”ð 	;ñ 	;ˆAØ˜C™ !™ aš¨A°©G°a©KÑ8¸AÀ¹GÀa¹KÑHˆHÝ # E¨!¤H¨s°S©yÑ$8¸AÀ¹GÈÈCÉÑ;PÑ$PÐRSÑ TÔ TÐØ˜aœ 8Ñ+Ð.?Ñ?ˆIà�i�x�iÔ ˆAÝ”	Ð-Ð/@ÑAÔAˆAØ�s—’¥s¨6¡{¤{Ñ3Ô3°J°Y°JÔ?Ô@ˆAà!/ °°1°aÑ!8Ô!8ˆO˜AÑõ ”i  A q 	Ñ*Ô*ˆAˆaˆaˆa�ˆd‰GàÐ'Ò'Ð'å!œyØ�œ	 /°!Ô"4Ð6GÈ(Ñ6RÑSÔSÐTñ ô  ��q�q�q˜!�t‘�õ  "œyØ˜�2œ9 _°QÔ%7Ð9JÑKÔKÐLñ ô  ��q�q�q˜!�t‘õ
 ŒI×!Ò! !Ñ$Ô$×,Ò,¨Q¨q¨q¨q°!¨t¬WÑ5Ô5Ð5ÝŒI×!Ò! !Ñ$Ô$×,Ò,¨V°A°A°A°q°D¬\Ñ:Ô:Ð:Ñ:ð �xÒÐÝœH VÑ,Ô,×0Ò0°aÐ0Ñ8Ô8Ð8ˆLˆLåœH VÑ,Ô,×0Ò0°aÐ0Ñ8Ô8Ð8ˆLà˜˜˜˜<˜Ô(ˆåØˆv�x Ð2EÀ}ñ	
ô 	
ð 	
ñ 	
ð]0
ð 0
r+   c                 ó  — t          j        dt           j        t           j        gdt           j        t           j        gddt           j        gddt           j        gddt           j        gddt           j        gddt           j        gddt           j        gg¦  «                             ¦   «         }t          j        g d¢g d	¢g d¢g d
¢g d¢g d¢g d¢g d¢g¦  «                             ¦   «         }g d¢}t	          ||d|t           j        | ¦  «         d S )Nr   r[   éûÿÿÿrm   éüÿÿÿéÿÿÿÿrK   ©r   r   r   )r[   r[   r[   )r°   r   ç      À)r   r[   ç      @)rm   r[   ç      @)r±   r°   ç      À)r²   rK   ç      à?)r   r[   r   r´   rµ   r¶   r·   r¸   rE   )rN   rq   rQ   Ú	transposerC   )rx   r<   ÚX_imputed_medianÚstatistics_medians       r)   Ú$test_imputation_median_special_casesr¼   ó   s   € õ 	Œà•”�œÐØ•”�œÐØ�•2”6ˆNØ�•B”FˆOØ�•2”6ˆNØ�•2”6ˆNØ�•R”VÐØ�•B”FˆOð		
ñ	ô 	÷ ‚i�k„kð õ ”xàˆIˆIØˆIˆIØˆIˆIØˆMˆMØˆKˆKØˆKˆKØˆNˆNØˆLˆLð		
ñô ÷ ‚i�k„kð ð =Ð<Ð<ÐåØ	Ð˜XÐ'8½"¼&À-ñô ð ð ð r+   rD   rE   r%   c                 óú   — t          j        g d¢g d¢g d¢g|¬¦  «        }d}t          j        t          |¬¦  «        5  t          | ¬¦  «        }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rg   rh   rZ   ©rm   Úeé   ©ÚgÚhé	   rk   ú4non-numeric data:
could not convert string to float:r]   rL   )rN   rq   r`   rz   r{   r   rR   )r2   r%   r<   ÚmsgrA   s        r)   Ú.test_imputation_mean_median_error_invalid_typerÈ     sÍ   € õ 	Œ�-�-�-   ¨m¨m¨mÐ<ÀEÐJÑJÔJ€AØ
A€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð !ð !Ý¨Ð2Ñ2Ô2ˆØ×Ò˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   ½&A0Á0A4Á7A4Úconstructor_nameÚlistre   c                 óò   — g d¢g d¢g d¢g}t          ||¦  «        }d}t          j        t          |¬¦  «        5  t	          | ¬¦  «        }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¾   r¿   rÂ   rÆ   r]   rL   )r   r`   rz   r{   r   rR   )r2   rÉ   r<   rÇ   rA   s        r)   Ú:test_imputation_mean_median_error_invalid_type_list_pandasrÌ      sÎ   € ð
 
ˆˆ˜˜˜ ] ] ]Ð3€AÝ˜1Ð.Ñ/Ô/€AØ
A€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð !ð !Ý¨Ð2Ñ2Ô2ˆØ×Ò˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   ¹&A,Á,A0Á3A0rG   rF   ÚUÚSc           	      óÂ  — t          j        t           j        t           j        ddgt           j        dt           j        dgt           j        ddt           j        gt           j        dddgg|¬¦  «        }d}t          j        t
          |¬	¦  «        5  t          | ¬
¦  «        }|                     |¦  «                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrg   r/   ri   rj   rh   rÄ   rk   z#SimpleImputer does not support datar]   rL   )	rN   rq   rQ   r`   rz   r{   r   r5   r6   )r2   r%   r<   r3   rA   s        r)   Ú/test_imputation_const_mostf_error_invalid_typesrÐ   -  s  € õ
 	ŒåŒV•R”V˜S #Ð&ÝŒV�S�"œ& #Ð&ÝŒV�S˜#�rœvÐ&ÝŒV�S˜#˜sÐ#ð		
ð ð	ñ 	ô 	€Að 4€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð $ð $Ý¨Ð2Ñ2Ô2ˆØ�Š�A‰Œ× Ò  Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   Â9CÃCÃCc           	      óÊ   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          ||d	t           j        d
ddgd| ¦  «         d S )N)r²   r²   r   r[   )r²   rK   r²   rZ   )r²   rl   rZ   r²   )r²   rK   rZ   é   )rK   r   r[   )rK   rZ   rZ   )rl   rZ   rZ   )rK   rZ   rÒ   rF   rK   rZ   r²   )rN   rq   rC   rQ   )rx   r<   r=   s      r)   Útest_imputation_most_frequentrÓ   B  s•   € õ 	ŒàˆNˆNØˆNˆNØˆNˆNØˆMˆMð		
ñ	ô 	€Aõ ŒXàˆIˆIØˆIˆIØˆIˆIØˆIˆIð		
ñô €Fõ �a˜ µ2´6¸1¸aÀÐ2CÀRÈÑWÔWÐWÐWÐWr+   ÚmarkerÚNANÚ c           	      óD  — t          j        | | ddg| d| dg| dd| g| dddggt          ¬¦  «        }t          j        g d¢g d	¢g d
¢g d¢gt          ¬¦  «        }t          | d¬¦  «        }|                     |¦  «                             |¦  «        }t          ||¦  «         d S )Nrg   r/   ri   rj   rh   rÄ   rk   )ri   rg   r/   )ri   rj   rj   )rh   rj   rj   )ri   rj   rÄ   rF   r0   )rN   rq   rr   r   r5   r6   r   )rÔ   r<   r=   rA   rB   s        r)   Ú%test_imputation_most_frequent_objectsrØ   ^  sÙ   € õ 	Œà�V˜S #Ð&Ø�S˜& #Ð&Ø�S˜#˜vÐ&Ø�S˜#˜sÐ#ð		
õ ð	ñ 	ô 	€Aõ ŒXàˆOˆOØˆOˆOØˆOˆOØˆOˆOð		
õ ðñ ô €Fõ ¨6¸OÐLÑLÔL€GØ�kŠk˜!‰nŒn×&Ò& qÑ)Ô)€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   Úcategoryc                 ó<  — t          j        d¦  «        }t          j        d¦  «        }|                     || ¬¦  «        }t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        }t          d¬	¦  «        }| 	                    |¦  «        }t          ||¦  «         d S )
Nre   ú,Cat1,Cat2,Cat3,Cat4
,i,x,
a,,y,
a,j,,
b,j,x,rk   )rg   Úir'   )rg   r©   r(   )rg   r©   r'   )rh   r©   r'   rF   rL   ©r`   rp   ÚioÚStringIOÚread_csvrN   rq   rr   r   rR   r   )r%   ru   r/   Údfr=   rA   rB   s          r)   Ú$test_imputation_most_frequent_pandasrâ   {  s©   € õ 
Ô	˜XÑ	&Ô	&€Bå
ŒÐFÑGÔG€Aà	�Š�Q˜eˆÑ	$Ô	$€BåŒXØ	ˆˆ˜/˜/˜/¨?¨?¨?¸O¸O¸OÐLÝðñ ô €Fõ
  _Ð5Ñ5Ô5€GØ×#Ò# BÑ'Ô'€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   zX_data, missing_value)rl   r   ç      ð?c                 óR  — t          j        d| t          ¬¦  «        }||d<   d}d|›dt          |¦  «        ›d�}t	          j        t          t          j        |¦  «        ¬¦  «        5  t          |d	|¬
¦  «        }| 
                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrY   rk   ©r   r   r'   úfill_value=ú
 (of type ú) cannot be castr]   rG   ©r1   r2   Ú
fill_value)rN   ÚfullÚfloatÚtyper`   rz   r{   ÚreÚescaper   rR   )ÚX_dataÚmissing_valuer<   rê   r3   rA   s         r)   Ú+test_imputation_constant_error_invalid_typerò   �  sü   € õ 	Œ�˜¥eÐ,Ñ,Ô,€AØ€A€d�Gà€JØX˜JÐXÐXµD¸Ñ4DÔ4DÐXÐXÐX€GÝ	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð !ð !ÝØ(°:È*ð
ñ 
ô 
ˆð 	×Ò˜aÑ Ô Ð ð	!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Á'(BÂB Â#B Úkeep_empty_featuresTFc                 ó  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }| s|d d …d d	…f         }t          d	d
d| ¬¦  «        }|                     |¦  «        }t	          ||¦  «         d S )N©r²   rK   rZ   r²   ©rm   r²   r[   r²   ©rÁ   rÒ   r²   r²   ©é   rÅ   r   r²   )r   rK   rZ   r   )rm   r   r[   r   )rÁ   rÒ   r   r   )rù   rÅ   r   r   r²   rG   r   ©r1   r2   rê   ró   )rN   rq   r   rR   r   )ró   r<   r=   rA   rB   s        r)   Ú test_imputation_constant_integerrû   ž  s¼   € õ 	Œ�.�.�. . . .°.°.°.À-À-À-ÐPÑQÔQ€AåŒX�|�|�| \ \ \°<°<°<ÀÀÀÐNÑOÔO€FØð  Ø˜˜˜˜3˜B˜3˜”ˆåØØØØ/ð	ñ ô €Gð ×#Ò# AÑ&Ô&€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   Úarray_constructorc           	      óÜ  — t          j        t           j        ddt           j        gdt           j        dt           j        gddt           j        t           j        gdddt           j        gg¦  «        }t          j        g d¢g d¢g d	¢g d
¢g¦  «        }|s|d d …d d…f         } | |¦  «        } | |¦  «        }t          dd|¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nçš™™™™™ñ?r   ç333333ó?çÍÌÌÌÌÌô?çffffffö?ç      ø?)r²   rþ   r   r²   )rÿ   r²   r   r²   )r   r   r²   r²   )r  r  r   r²   r²   rG   )r2   rê   ró   )rN   rq   rQ   r   rR   r   )rü   ró   r<   r=   rA   rB   s         r)   Útest_imputation_constant_floatr  ²  s  € õ 	ŒåŒV�S˜!�RœVÐ$Ø•"”&˜#�rœvÐ&Ø�•2”6�2œ6Ð"Ø�#�q�"œ&Ð!ð		
ñ	ô 	€Aõ ŒXØ	Ð	Ð	Ð-Ð-Ð-¨~¨~¨~Ð?PÐ?PÐ?PÐQñô €Fð ð  Ø˜˜˜˜3˜B˜3˜”ˆàÐ˜!ÑÔ€AàÐ˜vÑ&Ô&€FåØ¨Ð@Sðñ ô €Gð ×#Ò# AÑ&Ô&€Gå  ¨&Ñ1Ô1Ð1Ð1Ð1r+   c           	      óB  — t          j        | dd| gd| d| gdd| | gddd	| ggt          ¬
¦  «        }t          j        g d¢g d¢g d¢g d¢gt          ¬
¦  «        }|s|d d …d d…f         }t          | dd|¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nrg   rh   ri   rj   rÀ   r/   rÃ   rÄ   rÜ   rk   )Úmissingrg   rh   r  )ri   r  rj   r  )rÀ   r/   r  r  )rÃ   rÄ   rÜ   r  r²   rG   r  rú   )rN   rq   rr   r   rR   r   )rÔ   ró   r<   r=   rA   rB   s         r)   Útest_imputation_constant_objectr  Ñ  s  € õ 	Œà�S˜#˜vÐ&Ø�&˜#˜vÐ&Ø�#�v˜vÐ&Ø�#�s˜FÐ#ð		
õ ð	ñ 	ô 	€Aõ ŒXà,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø&Ð&Ð&ð		
õ ðñ ô €Fð ð  Ø˜˜˜˜3˜B˜3˜”ˆåØØØØ/ð	ñ ô €Gð ×#Ò# AÑ&Ô&€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   c                 ó^  — t          j        d¦  «        }t          j        d¦  «        }|                     || ¬¦  «        }t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        }|s|d d …d d…f         }t          d	|¬
¦  «        }| 	                    |¦  «        }t          ||¦  «         d S )Nre   rÛ   rk   )rñ   rÜ   r'   rñ   )rg   rñ   r(   rñ   )rg   r©   rñ   rñ   )rh   r©   r'   rñ   r²   rG   ©r2   ró   rÝ   )r%   ró   ru   r/   rá   r=   rA   rB   s           r)   Útest_imputation_constant_pandasr	  ö  sá   € õ 
Ô	˜XÑ	&Ô	&€Bå
ŒÐFÑGÔG€Aà	�Š�Q˜eˆÑ	$Ô	$€BåŒXà8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø,Ð,Ð,ð		
õ ðñ ô €Fð ð  Ø˜˜˜˜3˜B˜3˜”ˆåØÐ1Dðñ ô €Gð ×#Ò# BÑ'Ô'€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   r<   rl   rK   c                 ó*  — t          ¦   «                              | ¦  «        }|j        dk    sJ ‚t          ¦   «         }|                     dgdgg¦  «         |j        dk    sJ ‚|                     dgt          j        gg¦  «         |j        dk    sJ ‚d S )Nr   rl   rK   )r   r5   Ún_iter_rN   rQ   )r<   rA   s     r)   Ú"test_iterative_imputer_one_featurer    s�   € õ Ñ Ô ×$Ò$ QÑ'Ô'€GØŒ?˜aÒÐÐÐÝÑ Ô €GØ‡K‚K�!��q�c�
ÑÔÐØŒ?˜aÒÐÐÐØ‡K‚K�!�•r”v�h�Ñ Ô Ð ØŒ?˜aÒÐÐÐÐÐr+   c                  óP  — t          ddd¬¦  «        } | j        d         }t          dt          |¬¦  «        fdt	          j        d¬¦  «        fg¦  «        }d	g d
¢i}t          ddd¬¦  «                             ¦   «         }t          ||¦  «        }|                     | |¦  «         d S )Néd   çš™™™™™¹?)Údensityr   rA   ©r1   r   ©Úrandom_stateÚimputer__strategyrW   rl   )	r   Údatar   r   r   ÚDecisionTreeRegressorr;   r   r5   )r<   r1   ÚpipelineÚ
parametersÚYÚgss         r)   Ú$test_imputation_pipeline_grid_searchr     sµ   € å˜c 3°Ð5Ñ5Ô5€AØ”V˜A”Y€Nåà�°^ÐDÑDÔDÐEØ•TÔ/¸QÐ?Ñ?Ô?Ð@ð	
ñô €Hð &Ð'JÐ'JÐ'JÐK€Jå˜c 1¨dÐ3Ñ3Ô3×;Ò;Ñ=Ô=€AÝ	�h 
Ñ	+Ô	+€BØ‡F‚Fˆ1ˆa�L„L€L€L€Lr+   c                  óN  — t          dddd¬¦  «        } |                      ¦   «                              ¦   «         }t          ddd¬¦  «        }|                     |¦  «                             |¦  «        }d|d	<   t          j        ||k    ¦  «        rJ ‚|                      ¦   «         }t          |j        d         dd¬¦  «        }|                     |¦  «                             |¦  «        }d|j        d<   t          j        |j        |j        k    ¦  «        rJ ‚|                      ¦   «                              ¦   «         }t          ddd
¬¦  «        }|                     |¦  «                             |¦  «        }d|d	<   t          ||¦  «         |                      ¦   «          
                    ¦   «         }t          |j        d         dd
¬¦  «        }|                     |¦  «                             |¦  «        }d|j        d<   t          |j        |j        ¦  «         |                      ¦   «         }t          |j        d         dd
¬¦  «        }|                     |¦  «                             |¦  «        }d|j        d<   t          j        |j        |j        k    ¦  «        rJ ‚d S )Nr[   g      è?r   ©r  r  rD   T)r1   r2   r7   r²   rå   F)r   r7   r;   r   r5   r6   rN   r    r  r   Útocsc)ÚX_origr<   rA   ÚXts       r)   Útest_imputation_copyr!  3  sA  € å" 1 a°ÀAÐFÑFÔF€Fð 	�Š‰Œ×ÒÑÔ€AÝ¨1°vÀDÐIÑIÔI€GØ	�Š�Q‰Œ×	!Ò	! !Ñ	$Ô	$€BØ€B€t�HÝŒv�a˜2’g‰ŒÐÐÐð 	�Š‰Œ€AÝ¨1¬6°!¬9¸vÈDÐQÑQÔQ€GØ	�Š�Q‰Œ×	!Ò	! !Ñ	$Ô	$€BØ€B„GˆA�JÝŒv�a”f ¤Ò'Ñ(Ô(Ð(Ð(Ð(ð 	�Š‰Œ×ÒÑÔ€AÝ¨1°vÀEÐJÑJÔJ€GØ	�Š�Q‰Œ×	!Ò	! !Ñ	$Ô	$€BØ€B€t�HÝ˜a Ñ$Ô$Ð$ð 	�Š‰Œ×ÒÑÔ€AÝ¨1¬6°!¬9¸vÈEÐRÑRÔR€GØ	�Š�Q‰Œ×	!Ò	! !Ñ	$Ô	$€BØ€B„GˆA�JÝ˜aœf b¤gÑ.Ô.Ð.ð 	�Š‰Œ€AÝ¨1¬6°!¬9¸vÈEÐRÑRÔR€GØ	�Š�Q‰Œ×	!Ò	! !Ñ	$Ô	$€BØ€B„GˆA�JÝŒv�a”f ¤Ò'Ñ(Ô(Ð(Ð(Ð(Ð(Ð(r+   c                  ó®  — t           j                             d¦  «        } d}d}t          ||d| ¬¦  «                             ¦   «         }|dk    }t           j        ||<   t          d¬¦  «        }|                     |¦  «        }t          ||j	         
                    |¦  «        ¦  «         t          d¬¦  «                             |¦  «        }t          j        | 
                    |¦  «        |j	         
                    |¦  «        k    ¦  «        rJ ‚d|_        t          | 
                    |¦  «        |j	         
                    |¦  «        ¦  «         d S )Nr   r  rJ   r  r  )Úmax_iterr[   )rN   rO   r•   r   r;   rQ   r   rR   r   Úinitial_imputer_r6   r5   r    r  )r¡   Únrj   r<   Úmissing_flagrA   rT   s          r)   Ú!test_iterative_imputer_zero_itersr'  ^  s2  € Ý
Œ)×
Ò
 Ñ
"Ô
"€Cà€AØ
€AÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AØ˜’6€LÝ”f€A€l�Oå¨Ð*Ñ*Ô*€GØ×%Ò% aÑ(Ô(€Iå�I˜wÔ7×AÒAÀ!ÑDÔDÑEÔEÐEõ ¨Ð*Ñ*Ô*×.Ò.¨qÑ1Ô1€GåŒv�g×'Ò'¨Ñ*Ô*¨gÔ.F×.PÒ.PÐQRÑ.SÔ.SÒSÑTÔTÐTÐTÐTà€G„Oå�G×%Ò% aÑ(Ô(¨'Ô*B×*LÒ*LÈQÑ*OÔ*OÑPÔPÐPÐPÐPr+   c                  ó†  — t           j                             d¦  «        } d}d}t          ||d| ¬¦  «                             ¦   «         }t          ddd¬¦  «        }|                     |¦  «         |                     |¦  «         t          ddd¬¦  «        }|                     |¦  «         |                     |¦  «         d S )	Nr   r  rZ   r  r  rl   )r1   r#  ÚverboserK   )rN   rO   r•   r   r;   r   r5   r6   )r¡   r%  rj   r<   rA   s        r)   Útest_iterative_imputer_verboser*  v  s·   € Ý
Œ)×
Ò
 Ñ
"Ô
"€Cà€AØ	€AÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AÝ¨a¸!ÀQÐGÑGÔG€GØ‡K‚K��N„N€NØ×Ò�aÑÔÐÝ¨a¸!ÀQÐGÑGÔG€GØ‡K‚K��N„N€NØ×Ò�aÑÔÐÐÐr+   c                  óÖ   — d} d}t          j        | |f¦  «        }t          dd¬¦  «        }|                     |¦  «        }t	          ||j                             |¦  «        ¦  «         d S )Nr  rZ   r   rl   )r1   r#  )rN   r–   r   rR   r   r$  r6   )r%  rj   r<   rA   rT   s        r)   Ú"test_iterative_imputer_all_missingr,  „  sk   € Ø€AØ	€AÝ
Œ�!�Q�ÑÔ€AÝ¨a¸!Ð<Ñ<Ô<€GØ×%Ò% aÑ(Ô(€IÝ�I˜wÔ7×AÒAÀ!ÑDÔDÑEÔEÐEÐEÐEr+   Úimputation_order)rO   ÚromanÚ	ascendingÚ
descendingÚarabicc                 ó  — t           j                             d¦  «        }d}d}d}t          ||d|¬¦  «                             ¦   «         }d|d d …df<   t          d|dd	d
ddd| |¬¦
  «
        }|                     |¦  «         d„ |j        D ¦   «         }t          |¦  «        |j	        z  |j
        k    sJ ‚| dk    r:t          j        |d |dz
  …         t          j        d|¦  «        k    ¦  «        sJ ‚d S | dk    r>t          j        |d |dz
  …         t          j        |dz
  dd¦  «        k    ¦  «        sJ ‚d S | dk    r$|d |dz
  …         }||dz
  d …         }	||	k    sJ ‚d S d| v rt          |¦  «        ||dz
  z  k    sJ ‚d S d S )Nr   r  rJ   rK   r  r  rl   r[   FT)
r1   r#  Ún_nearest_featuresÚsample_posteriorÚskip_completeÚ	min_valueÚ	max_valuer)  r-  r  c                 ó   — g | ]	}|j         ‘Œ
S © ©Úfeat_idx)Ú.0rÜ   s     r)   ú
<listcomp>z;test_iterative_imputer_imputation_order.<locals>.<listcomp>¥  s   € ÐDÐDÐD !�1”:ÐDÐDÐDr+   r.  r1  r²   rO   Úending)rN   rO   r•   r   r;   r   rR   Úimputation_sequence_r�   r  Ún_features_with_missing_r    r—   )
r-  r¡   r%  rj   r#  r<   rA   Úordered_idxÚordered_idx_round_1Úordered_idx_round_2s
             r)   Ú'test_iterative_imputer_imputation_orderrD  �  sï  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€AØ
€AØ€HÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AØ€A€a€a€aˆ€d�GåØØØØØØØØØ)Øðñ ô €Gð ×Ò˜!ÑÔÐØDÐD wÔ'CÐDÑDÔD€Kåˆ{ÑÔ˜wœÑ.°'Ô2RÒRÐRÐRÐRà˜7Ò"Ð"ÝŒv�k ' A¨¡E 'Ô*­b¬i¸¸1©o¬oÒ=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ø	˜XÒ	%Ð	%ÝŒv�k ' A¨¡E 'Ô*­b¬i¸¸A¹¸qÀ"Ñ.EÔ.EÒEÑFÔFÐFÐFÐFÐFÐFØ	˜XÒ	%Ð	%Ø)¨'¨A°©E¨'Ô2ÐØ)¨!¨a©%¨'¨'Ô2ÐØ"Ð&9Ò9Ð9Ð9Ð9Ð9Ð9Ø	Ð%Ð	%Ð	%Ý�;ÑÔ 8¨q°1©uÑ#5Ò5Ð5Ð5Ð5ð 
&Ð	%Ø5Ð5r+   Ú	estimatorc                 ó0  — t           j                             d¦  «        }d}d}t          ||d|¬¦  «                             ¦   «         }t          dd| |¬¦  «        }|                     |¦  «         g }|j        D ]l}| �t          | ¦  «        nt          t          ¦   «         ¦  «        }t          |j        |¦  «        sJ ‚|                     t          |j        ¦  «        ¦  «         Œmt          t          |¦  «        ¦  «        t          |¦  «        k    sJ ‚d S )Nr   r  rJ   r  r  rl   )r1   r#  rE  r  )rN   rO   r•   r   r;   r   rR   r?  rí   r   Ú
isinstancerE  ÚappendÚidr�   Úset)	rE  r¡   r%  rj   r<   rA   ÚhashesÚtripletÚexpected_types	            r)   Ú!test_iterative_imputer_estimatorsrN  µ  s  € õ Œ)×
Ò
 Ñ
"Ô
"€Cà€AØ
€AÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AåØ 1°	Èðñ ô €Gð ×Ò˜!ÑÔÐð €FØÔ/ð -ð -ˆà(Ð4�D�‰OŒOˆO½$½}¹¼Ñ:OÔ:Oð 	õ ˜'Ô+¨]Ñ;Ô;Ð;Ð;Ð;Ø�Š•b˜Ô*Ñ+Ô+Ñ,Ô,Ð,Ð,õ �s�6‰{Œ{ÑÔ�s 6™{œ{Ò*Ð*Ð*Ð*Ð*Ð*r+   c                  óà  — t           j                             d¦  «        } d}d}t          ||d| ¬¦  «                             ¦   «         }t          dddd| ¬¦  «        }|                     |¦  «        }t          t          j        ||dk             ¦  «        d¦  «         t          t          j	        ||dk             ¦  «        d¦  «         t          ||dk             ||dk             ¦  «         d S )	Nr   r  rJ   r  r  rl   çš™™™™™É?)r1   r#  r6  r7  r  ©
rN   rO   r•   r   r;   r   rR   r   Úminrš   ©r¡   r%  rj   r<   rA   r   s         r)   Útest_iterative_imputer_cliprT  Ñ  sâ   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ€AØ
€AÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AåØ 1°¸sÐQTðñ ô €Gð 
×	Ò	˜qÑ	!Ô	!€BÝ•B”F˜2˜a 1šfœ:Ñ&Ô&¨Ñ,Ô,Ð,Ý•B”F˜2˜a 1šfœ:Ñ&Ô&¨Ñ,Ô,Ð,Ý�B�q˜A’v”J  ! q¢&¤	Ñ*Ô*Ð*Ð*Ð*r+   c                  óú  — t           j                             d¦  «        } d}d}t          ||d| ¬¦  «                             ¦   «         }d|d d …df<   t          dddd	dd
dd| ¬¦	  «	        }|                     |¦  «        }t          t          j        ||dk             ¦  «        d¦  «         t          t          j	        ||dk             ¦  «        d
¦  «         t          ||dk             ||dk             ¦  «         d S )Nr   r  rJ   r  r  rl   rK   r[   TrP  rO   )	r1   r#  r3  r4  r6  r7  r)  r-  r  rQ  rS  s         r)   Ú%test_iterative_imputer_clip_truncnormrV  á  s  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ€AØ
€AÝ˜a ¨D¸sÐCÑCÔC×KÒKÑMÔM€AØ€A€a€a€aˆ€d�GåØØØØØØØØ!Øð
ñ 
ô 
€Gð 
×	Ò	˜qÑ	!Ô	!€BÝ•B”F˜2˜a 1šfœ:Ñ&Ô&¨Ñ,Ô,Ð,Ý•B”F˜2˜a 1šfœ:Ñ&Ô&¨Ñ,Ô,Ð,Ý�B�q˜A’v”J  ! q¢&¤	Ñ*Ô*Ð*Ð*Ð*r+   c                  ó˜  ‡‡— t           j                             d¦  «        } |                      d¬¦  «        Št           j        ‰d         d<   t          ddd| ¬¦  «        Š‰                     ‰¦  «         t          j        ˆˆfd„t          d	¦  «        D ¦   «         ¦  «        }t          |dk    ¦  «        sJ ‚t          |dk    ¦  «        sJ ‚| 
                    ¦   «         |                     ¦   «         }}t          ||z
  |z  d
¦  «        \  }}|dk    r|dz  }t          ||z
  |z  d
¦  «        \  }}|dk     s|dk    sJ d¦   «         ‚d S d S )Né*   )r[   r[   )r   r   r¸   T)r6  r7  r4  r  c                 óR   •— g | ]#}‰                      ‰¦  «        d          d          ‘Œ$S ©r   )r6   )r<  Ú_r<   rA   s     €€r)   r=  zEtest_iterative_imputer_truncated_normal_posterior.<locals>.<listcomp>  s1   ø€ ÐKÐKÐK¸1˜G×-Ò-¨aÑ0Ô0°Ô3°AÔ6ÐKÐKÐKr+   r  Únormgê-�™—q=rP  r  z&The posterior does appear to be normal)rN   rO   r•   ÚnormalrQ   r   rR   rq   r™   r    rD   Ústdr   )r¡   ÚimputationsÚmuÚsigmaÚks_statisticÚp_valuer<   rA   s         @@r)   Ú1test_iterative_imputer_truncated_normal_posteriorrd  ù  sg  øø€ õ Œ)×
Ò
 Ñ
#Ô
#€Cà�
Š
˜ˆ
ÑÔ€AÝŒf€A€a„Dˆ�GåØ˜s°TÈðñ ô €Gð ×Ò˜!ÑÔÐå”(ÐKÐKÐKÐKÐKÅÀcÁ
Ä
ÐKÑKÔKÑLÔL€Kåˆ{˜aÒÑ Ô Ð Ð Ð Ýˆ{˜cÒ!Ñ"Ô"Ð"Ð"Ð"à× Ò Ñ"Ô" K§O¢OÑ$5Ô$5ˆ€BÝ" K°"Ñ$4¸Ñ#=¸vÑFÔFÑ€L�'Ø�‚z€zØ�‰ˆÝ" K°"Ñ$4¸Ñ#=¸vÑFÔFÑ€L�'ð ˜#ÒÐ ¨3¢  Ð0X¡¤Ð.ÐÐ  r+   c                 óø  — t           j                             d¦  «        }d}d}|                     dd||f¬¦  «        }|                     dd||f¬¦  «        }d|d d …df<   d|d<   t	          dd| |¬¦  «                             |¦  «        }t          d| ¬	¦  «                             |¦  «        }t          |                     |¦  «        d d …df         |                     |¦  «        d d …df         ¦  «         d S )
Nr   r  rJ   rZ   )ÚlowÚhighr   rl   rå   )r1   r#  rM   r  r0   )	rN   rO   r•   Úrandintr   r5   r   r   r6   )r2   r¡   r%  rj   ÚX_trainÚX_testrA   Úinitial_imputers           r)   Ú+test_iterative_imputer_missing_at_transformrl    s  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ€AØ
€AØ�kŠk˜a a¨q°!¨fˆkÑ5Ô5€GØ�[Š[˜Q Q¨a°¨Vˆ[Ñ4Ô4€Fà€GˆAˆAˆAˆqˆD�MØ€Fˆ4�LåØ 1°xÈcðñ ô ç	‚cˆ'�l„lð õ $°1¸xÐHÑHÔH×LÒLÈWÑUÔU€Oõ Ø×Ò˜&Ñ!Ô! ! ! ! Q $Ô'¨×)BÒ)BÀ6Ñ)JÔ)JÈ1È1È1ÈaÈ4Ô)Pñô ð ð ð r+   c                  óZ  — t           j                             d¦  «        } t           j                             d¦  «        }d}d}t          ||d| ¬¦  «                             ¦   «         }t          ddd| ¬¦  «        }|                     |¦  «         |                     |¦  «        }|                     |¦  «        }t          j        |¦  «        t          j
        t          j        |¦  «        ¦  «        k    sJ ‚t          ddd	d d
| ¬¦  «        }t          ddd	d d
|¬¦  «        }	|                     |¦  «         |	                     |¦  «         |                     |¦  «        }
|                     |¦  «        }|	                     |¦  «        }t          |
|¦  «         t          |
|¦  «         d S )Nr   rl   r  rJ   r  r  T)r1   r#  r4  r  Fr/  )r1   r#  r4  r3  r-  r  )rN   rO   r•   r   r;   r   r5   r6   rD   r`   Úapproxr   )Úrng1Úrng2r%  rj   r<   rA   Ú
X_fitted_1Ú
X_fitted_2Úimputer1Úimputer2ÚX_fitted_1aÚX_fitted_1bs               r)   Ú.test_iterative_imputer_transform_stochasticityrw  1  s®  € ÝŒ9× Ò  Ñ#Ô#€DÝŒ9× Ò  Ñ#Ô#€DØ€AØ
€AÝ˜a ¨D¸tÐDÑDÔD×LÒLÑNÔN€Aõ Ø 1°tÈ$ðñ ô €Gð ‡K‚K��N„N€Nà×"Ò" 1Ñ%Ô%€JØ×"Ò" 1Ñ%Ô%€Jõ Œ7�:ÑÔ¥&¤-µ´¸
Ñ0CÔ0CÑ"DÔ"DÒDÐDÐDÐDõ
  ØØØØØ$Øðñ ô €Hõ  ØØØØØ$Øðñ ô €Hð ‡L‚L��O„O€OØ‡L‚L��O„O€Oà×$Ò$ QÑ'Ô'€KØ×$Ò$ QÑ'Ô'€KØ×#Ò# AÑ&Ô&€Jå�K Ñ-Ô-Ð-Ý�K Ñ,Ô,Ð,Ð,Ð,r+   c                  ó¬  — t           j                             d¦  «        } |                      dd¦  «        }t           j        |d d …df<   t          d| ¬¦  «        }t          d| ¬¦  «        }|                     |¦  «                             |¦  «        }|                     |¦  «        }t          |d d …dd …f         |¦  «         t          ||¦  «         d S )Nr   r  rJ   )r#  r  rl   )
rN   rO   r•   ÚrandrQ   r   r5   r6   rR   r   )r¡   r<   Úm1Úm2Úpred1Úpred2s         r)   Ú!test_iterative_imputer_no_missingr~  c  sÇ   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��cÑÔ€AÝŒf€A€a€a€aˆ€d�GÝ	 2°CÐ	8Ñ	8Ô	8€BÝ	 2°CÐ	8Ñ	8Ô	8€BØ�FŠF�1‰IŒI×Ò Ñ"Ô"€EØ×Ò˜QÑÔ€Eå�A�a�a�a˜˜˜�e”H˜eÑ$Ô$Ð$å�E˜5Ñ!Ô!Ð!Ð!Ð!r+   c                  ó¶  — t           j                             d¦  «        } d}|                      |d¦  «        }|                      d|¦  «        }t          j        ||¦  «        }|                      ||¦  «        dk     }|                     ¦   «         }t           j        ||<   t          dd| ¬¦  «        }|                     |¦  «        }t          ||d¬¦  «         d S )	Nr   é2   rl   r¸   r[   ©r#  r)  r  g{®Gáz”?©Úatol)
rN   rO   r•   ry  Údotr7   rQ   r   rR   r   )	r¡   rj   ÚAÚBr<   Únan_maskÚ	X_missingrA   ÚX_filleds	            r)   Útest_iterative_imputer_rank_onerŠ  q  s¾   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ
€AØ�Š��A‰Œ€AØ�Š��A‰Œ€AÝ
Œˆq�!‰Œ€AØ�xŠx˜˜1‰~Œ~ Ò#€HØ—’‘”€IÝœ&€IˆhÑå¨°1À3ÐGÑGÔG€GØ×$Ò$ YÑ/Ô/€HÝ�H˜a dÐ+Ñ+Ô+Ð+Ð+Ð+r+   ÚrankrZ   r[   c                 ó(  — t           j                             d¦  «        }d}d}|                     || ¦  «        }|                     | |¦  «        }t          j        ||¦  «        }|                     ||¦  «        dk     }|                     ¦   «         }t           j        ||<   |dz  }|d |…         }	||d …         }
||d …         }t          ddd|¬¦  «                             |	¦  «        }| 	                    |¦  «        }t          |
|d	¬
¦  «         d S )Nr   éF   r¸   rK   r[   r0  rl   )r#  r-  r)  r  r  r‚  )rN   rO   r•   ry  r„  r7   rQ   r   r5   r6   r   )r‹  r¡   r%  rj   r…  r†  r‰  r‡  rˆ  ri  ÚX_test_filledrj  rA   Ú
X_test_ests                 r)   Ú)test_iterative_imputer_transform_recoveryr�  €  s  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ
€AØ
€AØ�Š��DÑÔ€AØ�Š��qÑÔ€AÝŒv�a˜‰|Œ|€HØ�xŠx˜˜1‰~Œ~ Ò#€HØ—’‘”€IÝœ&€IˆhÑð 	
ˆQ‰€AØ˜˜˜Œm€GØ˜Q˜R˜R”L€MØ�q�r�rŒ]€FåØ \¸1È3ðñ ô ç	‚cˆ'�l„lð ð ×"Ò" 6Ñ*Ô*€JÝ�M :°CÐ8Ñ8Ô8Ð8Ð8Ð8r+   c            	      óà  — t           j                             d¦  «        } d}d}|                      ||¦  «        }|                      ||¦  «        }t          j        |j        ¦  «        }t          |¦  «        D ]H}t          |¦  «        D ]6}|d d …||z   |z  fxx         |d d …|f         |d d …|f         z   dz  z  cc<   Œ7ŒI|                      ||¦  «        dk     }|                     ¦   «         }	t           j	        |	|<   |dz  }|	d |…         }
||d …         }|	|d …         }t          dd| ¬¦  «                             |
¦  «        }|                     |¦  «        }t          ||dd	¬
¦  «         d S )Nr   r  rJ   rK   g      Ð?rl   r�  gü©ñÒMbP?ç{®Gáz„?)Úrtolrƒ  )rN   rO   r•   rP   r–   rS   r™   ry  r7   rQ   r   r5   r6   r   )r¡   r%  rj   r…  r†  r‰  rÜ   r©   r‡  rˆ  ri  rŽ  rj  rA   r�  s                  r)   Ú&test_iterative_imputer_additive_matrixr”  ™  sŽ  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ€AØ
€AØ�	Š	�!�Q‰Œ€AØ�	Š	�!�Q‰Œ€AÝŒx˜œÑ Ô €HÝ�1‰XŒXð @ð @ˆÝ�q‘”ð 	@ð 	@ˆAØ�Q�Q�Q˜˜Q™ !™�^Ð$Ð$Ô$¨¨1¨1¨1¨a¨4¬°1°Q°Q°Q¸°T´7Ñ):¸aÑ(?Ñ?Ð$Ð$Ñ$Ð$ð	@ð �xŠx˜˜1‰~Œ~ Ò$€HØ—’‘”€IÝœ&€IˆhÑð 	
ˆQ‰€AØ˜˜˜Œm€GØ˜Q˜R˜R”L€MØ�q�r�rŒ]€Få¨°AÀCÐHÑHÔH×LÒLÈWÑUÔU€GØ×"Ò" 6Ñ*Ô*€JÝ�M :°D¸tÐDÑDÔDÐDÐDÐDr+   c                  óÒ  — t           j                             d¦  «        } d}d}|                      |d¦  «        }|                      d|¦  «        }t          j        ||¦  «        }|                      ||¦  «        dk     }|                     ¦   «         }t           j        ||<   t          dddd| ¬	¦  «        }|                     |¦  «        }	t          |j
        ¦  «        ||j        z  k    sJ ‚t          |j        dd| ¬
¦  «        }|                     |¦  «        }
t          |	|
d¬¦  «         t          dddd| ¬	¦  «        }|                     |¦  «         |j        |j        k    sJ ‚d S )Nr   r€  r[   rl   r¸   r  r’  F)r#  Útolr4  r)  r  )r#  r4  r)  r  gH¯¼šò×z>r‚  )rN   rO   r•   ry  r„  r7   rQ   r   rR   r�   r?  r  r   r5   r#  )r¡   r%  rj   r…  r†  r<   r‡  rˆ  rA   ÚX_filled_100ÚX_filled_earlys              r)   Ú%test_iterative_imputer_early_stoppingr™  ³  sr  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ
€AØ	€AØ�Š��A‰Œ€AØ�Š��A‰Œ€AÝ
Œˆq�!‰Œ€AØ�xŠx˜˜1‰~Œ~ Ò#€HØ—’‘”€IÝœ&€IˆhÑåØ˜$°ÀÐPSðñ ô €Gð ×(Ò(¨Ñ3Ô3€LÝˆwÔ+Ñ,Ô,°°G´OÑ0CÒCÐCÐCÐCåØ”°5À!ÐRUðñ ô €Gð ×*Ò*¨9Ñ5Ô5€NÝ�L .°tÐ<Ñ<Ô<Ð<åØ˜!¨e¸QÈSðñ ô €Gð ‡K‚K�	ÑÔÐØŒ?˜gÔ.Ò.Ð.Ð.Ð.Ð.Ð.r+   c                  óv  — t          d¬¦  «        \  } }| j        \  }}d| d d …df<   t          j                             d¦  «        }d}t          |¦  «        D ]M}|                     t          j        |¦  «        t          ||z  ¦  «        d¬¦  «        }t          j	        | ||f<   ŒNt          d	d¬
¦  «        }t          j        ¦   «         5  t          j        dt          ¦  «         |                     | |¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          j        t          j        |	¦  «        ¦  «        rJ ‚d S )NT)Ú
return_X_yrl   rZ   r   g333333Ã?F)r   Úreplacer[   )r3  r4  Úerror)r   rS   rN   rO   r•   r™   Úchoicer—   ÚintrQ   r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningrR   rŸ   rž   )
r<   r(   Ú	n_samplesÚ
n_featuresr¡   Úmissing_rateÚfeatÚ
sample_idxrA   ÚX_fills
             r)   Ú$test_iterative_imputer_catch_warningrª  Ñ  s|  € õ  DÐ)Ñ)Ô)�D€A€qØœGÑ€Iˆzð €A€a€a€aˆ€d�Gõ Œ)×
Ò
 Ñ
"Ô
"€CØ€LÝ�jÑ!Ô!ð %ð %ˆØ—Z’ZÝŒI�iÑ Ô ¥s¨9°|Ñ+CÑ'DÔ'DÈeð  ñ 
ô 
ˆ
õ !œfˆˆ*�dÐ
ÑÐå°!ÀdÐKÑKÔK€GÝ	Ô	 Ñ	"Ô	"ð -ð -ÝÔ˜g¥~Ñ6Ô6Ð6Ø×&Ò& q¨!Ñ,Ô,ˆð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ Œv•b”h˜vÑ&Ô&Ñ'Ô'Ð'Ð'Ð'Ð'Ð's   Ã	1DÄD
ÄD
z$min_value, max_value, correct_outputr  )r°   r[   rJ   )r  éÈ   i,  r°   rJ   r«  )ÚscalarszNone-defaultÚinfÚlistszlists-with-inf)Úidsc                 ó<  — t           j                             d¦  «                             dd¦  «        }t	          | |¬¦  «        }|                     |¦  «         t          |j        t           j        ¦  «        rt          |j	        t           j        ¦  «        sJ ‚|j        j
        d         |j
        d         k    r!|j	        j
        d         |j
        d         k    sJ ‚t          |dd d …f         |j        ¦  «         t          |dd d …f         |j	        ¦  «         d S )Nr   rJ   rZ   ©r6  r7  rl   )rN   rO   r•   rP   r   r5   rG  Ú
_min_valueÚndarrayÚ
_max_valuerS   r   )r6  r7  Úcorrect_outputr<   rA   s        r)   Ú)test_iterative_imputer_min_max_array_liker¶  ê  s  € õ$ 	Œ	×Ò˜aÑ Ô ×&Ò& r¨1Ñ-Ô-€AÝ¨¸iÐHÑHÔH€GØ‡K‚K��N„N€Nå�gÔ(­"¬*Ñ5Ô5ð ½*ØÔ�BœJñ;ô ;ð ð ð ð ÔÔ$ QÔ'¨1¬7°1¬:Ò5Ð5ØÔÔ  Ô# q¤w¨q¤zÒ1Ð1Ð1ðõ �N 1 a a a 4Ô(¨'Ô*<Ñ=Ô=Ð=Ý�N 1 a a a 4Ô(¨'Ô*<Ñ=Ô=Ð=Ð=Ð=r+   zmin_value, max_value, err_msg)r  r   úmin_value >= max_value.r·  )r  r«  r   z_value' should be of shape)r°   r[   r[   c                 óø   — t           j                             d¦  «        }t          | |¬¦  «        }t          j        t
          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rJ   rZ   r±  r]   )rN   rO   r   r`   rz   r{   r5   )r6  r7  r3   r<   rA   s        r)   Ú*test_iterative_imputer_catch_min_max_errorrº    s³   € õ 	Œ	×Ò˜Ñ!Ô!€AÝ¨¸iÐHÑHÔH€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA/Á/A3Á6A3zmin_max_1, min_max_2iöÿÿÿrm   zNone-vs-infzScalar-vs-vectorc           	      óØ  — t          j        t           j        dddgdt           j        t           j        dgddt           j        dgt           j        ddt           j        gg¦  «        }t          j        t           j        dt           j        dgddt           j        t           j        gt           j        dddgg¦  «        }t          | d         | d         d¬	¦  «        }t          |d         |d         d¬	¦  «        }|                     |¦  «                             |¦  «        }|                     |¦  «                             |¦  «        }t          |d d …df         |d d …df         ¦  «         d S )
NrK   rl   rJ   rÒ   rZ   rm   r[   r   )r6  r7  r  )rN   rq   rQ   r   r5   r6   r   )Ú	min_max_1Ú	min_max_2ri  rj  rs  rt  ÚX_test_imputed1ÚX_test_imputed2s           r)   Ú4test_iterative_imputer_min_max_array_like_imputationrÀ    sR  € õ ŒhåŒV�Q˜˜1ÐØ•”�œ Ð#Ø�•2”6˜1ÐÝŒV�Q˜�2œ6Ð"ð		
ñô €Gõ ŒXÝ
Œ&�!•R”V˜QÐ	 ! Q­¬µ´Ð!7½"¼&À!ÀRÈÐ9KÐLñô €Fõ  Ø˜A”,¨)°A¬,ÀQðñ ô €Hõ  Ø˜A”,¨)°A¬,ÀQðñ ô €Hð —l’l 7Ñ+Ô+×5Ò5°fÑ=Ô=€OØ—l’l 7Ñ+Ô+×5Ò5°fÑ=Ô=€OÝ�O A A A q DÔ)¨?¸1¸1¸1¸a¸4Ô+@ÑAÔAÐAÐAÐAr+   r5  c                 ó*  — t           j                             d¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t           j        dddgt           j        dd	dgt           j        d	d
d	gg¦  «        }t          d| |¬¦  «        }|                     |¦  «                             |¦  «        }| r8t          |d d …df         t          j	        |d d …df         ¦  «        ¦  «         d S t          |d d …df         g d¢d¬¦  «         d S )Nr   )r[   rK   rK   rl   )rJ   rl   rK   rÒ   )rZ   rl   rl   rl   )rù   rm   rK   rK   rK   rm   r[   rl   rJ   rD   )rM   r5  r  )é   rÒ   é   g-Cëâ6?)r“  )
rN   rO   r•   rq   rQ   r   r5   r6   r   rD   )r5  r¡   ri  rj  rA   r�  s         r)   Ú'test_iterative_imputer_skip_non_missingrÄ  :  s"  € õ
 Œ)×
Ò
 Ñ
"Ô
"€CÝŒh˜˜˜ m m m°\°\°\À<À<À<ÐPÑQÔQ€GÝŒX�œ  1 aÐ(­2¬6°1°a¸Ð*;½b¼fÀaÈÈQÐ=OÐPÑQÔQ€FÝØ¨}È3ðñ ô €Gð —’˜WÑ%Ô%×/Ò/°Ñ7Ô7€JØð Bå˜
 1 1 1 a 4Ô(­"¬'°'¸!¸!¸!¸Q¸$´-Ñ*@Ô*@ÑAÔAÐAÐAÐAå˜
 1 1 1 a 4Ô(¨+¨+¨+¸DÐAÑAÔAÐAÐAÐAr+   Ú
rs_imputer)ÚseedÚrs_estimatorc                 óÄ   —  G d„ d¦  «        } ||¬¦  «        }t          | ¬¦  «        }t          j        d¦  «        }|                     |¦  «         |j        |k    sJ ‚d S )Nc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )úCtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimatorc                 ó   — || _         d S r$   r  )Úselfr  s     r)   Ú__init__zLtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.__init__Q  s   € Ø ,ˆDÔÐÐr+   c                 ó   — | S r$   r9  )rÌ  r„   Úkgardss      r)   r5   zGtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.fitT  s   € ØˆKr+   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )rN   r–   rS   )rÌ  r<   s     r)   ÚpredictzKtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.predictW  s   € Ý”8˜AœG AœJÑ'Ô'Ð'r+   N)Ú__name__Ú
__module__Ú__qualname__rÍ  r5   rÑ  r9  r+   r)   ÚZeroEstimatorrÊ  P  sA   € € € € € ð	-ð 	-ð 	-ð	ð 	ð 	ð	(ð 	(ð 	(ð 	(ð 	(r+   rÕ  r  r¹  )r   rN   r–   r5   r  )rÅ  rÇ  rÕ  rE  rA   ri  s         r)   Ú,test_iterative_imputer_dont_set_random_staterÖ  M  s‰   € ð(ð (ð (ð (ð (ñ (ô (ð (ð �¨<Ð8Ñ8Ô8€IÝ¨JÐ7Ñ7Ô7€GÝŒh�wÑÔ€GØ‡K‚K�ÑÔÐØÔ! \Ò1Ð1Ð1Ð1Ð1Ð1r+   zX_fit, X_trans, params, msg_errr²   úmissing-onlyÚauto)Úfeaturesr   zBhave missing values in transform but have no missing values in fitrg   rh   ri   rk   z1MissingIndicator does not support data with dtypec                 óø   — t          d¬¦  «        } |j        di |¤Ž t          j        t          |¬¦  «        5  |                     | ¦  «                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr²   r  r]   r9  )r   Ú
set_paramsr`   rz   r{   r5   r6   )ÚX_fitrB   ÚparamsÚmsg_errÚ	indicators        r)   Útest_missing_indicator_errorrà  a  sÆ   € õ$ !°Ð3Ñ3Ô3€IØ€IÔÐ"Ð"˜6Ð"Ð"Ð"Ý	Œ•z¨Ð	1Ñ	1Ô	1ð 0ð 0Ø�Š�eÑÔ×&Ò& wÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ¹)A/Á/A3Á6A3c                  ó  — dt           j        ft           j        t           j        fdt           j        fg} t           j        gt
          z   t          z   t          z   t          z   t          z   }d„ t          || ¦  «        D ¦   «         S )Nr   r²   c                 óL   — g | ]!\  }\  }}|d k    r|t           j        u°|||f‘Œ"S rZ  )rN   rq   )r<  Úarr_typer1   r%   s       r)   r=  z5_generate_missing_indicator_cases.<locals>.<listcomp>ƒ  sN   € ð ð ð á-ˆHÑ-�~ uð  !Ò#Ð#¨½¼Ð(@Ð(@ð	 
�> 5Ð)ð )AÐ(@Ð(@r+   )rN   Úint32rQ   Úfloat64rq   r   r    r   r!   r   r   )Úmissing_values_dtypesÚ	arr_typess     r)   Ú!_generate_missing_indicator_casesrè  y  s�   € Ø¥¤˜]­R¬VµR´ZÐ,@À2ÅrÄxÀ.ÐQÐå	Œˆ
Ý
ñ	å
ñ	õ ñ	õ ñ		õ
 ñ	ð ðð å18ØÐ,ñ2
ô 2
ðñ ô ð r+   zarr_type, missing_values, dtypez,param_features, n_features, features_indices©r   rl   rK   r    c                 ó:  — t          j        | | dgdd| gg¦  «        }t          j        | | dgg d¢g¦  «        }t          j        g d¢g d¢g¦  «        }t          j        g d¢g d¢g¦  «        }	 ||¦  «                             |¦  «        } ||¦  «                             |¦  «        }|                     |¦  «        }|	                     |¦  «        }	t          | |d¬	¦  «        }
|
                     |¦  «        }|
                     |¦  «        }|j        d         |k    sJ ‚|j        d         |k    sJ ‚t          |
j        |¦  «         t          ||d d …|f         ¦  «         t          ||	d d …|f         ¦  «         |j
        t          k    sJ ‚|j
        t          k    sJ ‚t          |t           j        ¦  «        sJ ‚t          |t           j        ¦  «        sJ ‚|
                     d
¬¦  «         |
                     |¦  «        }|
                     |¦  «        }|j
        t          k    sJ ‚|j
        t          k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚t          |                     ¦   «         |¦  «         t          |                     ¦   «         |¦  «         d S )Nrl   rm   rK   ©rm   rÃ  rJ   )rl   rl   r   )r   r   rl   r³   F)r1   rÙ  r   Tr   Úcsc)rN   rq   Úastyper   rR   r6   rS   r   Ú	features_r   r%   ÚboolrG  r³  rÛ  r9   r;   )r1   rã  r%   Úparam_featuresr¥  Úfeatures_indicesrÜ  rB   ÚX_fit_expectedÚX_trans_expectedrß  Ú
X_fit_maskÚX_trans_maskÚX_fit_mask_sparseÚX_trans_mask_sparses                  r)   Útest_missing_indicator_newrø  Œ  sÎ  € õ ŒH�~ ~°qÐ9¸A¸qÀ.Ð;QÐRÑSÔS€EÝŒh˜¨¸Ð;¸[¸[¸[ÐIÑJÔJ€GÝ”X˜y˜y˜y¨)¨)¨)Ð4Ñ5Ô5€NÝ”x   ¨I¨I¨IÐ 6Ñ7Ô7Ðð ˆH�U‰OŒO×"Ò" 5Ñ)Ô)€EØˆh�wÑÔ×&Ò& uÑ-Ô-€GØ#×*Ò*¨5Ñ1Ô1€NØ'×.Ò.¨uÑ5Ô5Ðå Ø%°Àuðñ ô €Ið ×(Ò(¨Ñ/Ô/€JØ×&Ò& wÑ/Ô/€LàÔ˜AÔ *Ò,Ð,Ð,Ð,ØÔ˜aÔ  JÒ.Ð.Ð.Ð.å�yÔ*Ð,<Ñ=Ô=Ð=Ý�J ¨q¨q¨qÐ2BÐ/BÔ CÑDÔDÐDÝ�LÐ"2°1°1°1Ð6FÐ3FÔ"GÑHÔHÐHàÔ�tÒ#Ð#Ð#Ð#ØÔ¥Ò%Ð%Ð%Ð%Ý�j¥"¤*Ñ-Ô-Ð-Ð-Ð-Ý�l¥B¤JÑ/Ô/Ð/Ð/Ð/à×Ò ÐÑ%Ô%Ð%Ø!×/Ò/°Ñ6Ô6ÐØ#×-Ò-¨gÑ6Ô6ÐàÔ"¥dÒ*Ð*Ð*Ð*ØÔ$­Ò,Ð,Ð,Ð,ØÔ# uÒ,Ð,Ð,Ð,ØÔ%¨Ò.Ð.Ð.Ð.ÝÐ%×-Ò-Ñ/Ô/°Ñ<Ô<Ð<ÝÐ'×/Ò/Ñ1Ô1°<Ñ@Ô@Ð@Ð@Ð@r+   rã  c                 ó  — d}t          j        ||dgd|dgg¦  «        }t          j        ||dgg d¢g¦  «        } | |¦  «        } | |¦  «        }t          |¬¦  «        }t          j        t
          d¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         t          j        t
          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   rl   rm   rK   rë  r  z"Sparse input with missing_values=0r]   )rN   rq   r   r`   rz   r{   rR   r6   )rã  r1   rÜ  rB   ÚX_fit_sparseÚX_trans_sparserß  s          r)   Ú5test_missing_indicator_raise_on_sparse_with_missing_0rü  ¿  s›  € ð €NÝŒH�~ ~°qÐ9¸A¸~ÈqÐ;QÐRÑSÔS€EÝŒh˜¨¸Ð;¸[¸[¸[ÐIÑJÔJ€Gð �8˜E‘?”?€LØ�X˜gÑ&Ô&€Nå °Ð?Ñ?Ô?€Iå	Œ•zÐ)MÐ	NÑ	NÔ	Nð .ð .Ø×Ò Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð ×Ò˜EÑ"Ô"Ð"Ý	Œ•zÐ)MÐ	NÑ	NÔ	Nð ,ð ,Ø×Ò˜NÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s$   Á;BÂB!Â$B!ÃC;Ã;C?ÄC?Úparam_sparse)TFrØ  zarr_type, missing_valuesc                 ó¢  — t          j        ||dgd|dgg¦  «        }t          j        ||dgg d¢g¦  «        } | |¦  «                             t           j        ¦  «        } | |¦  «                             t           j        ¦  «        }t	          ||¬¦  «        }|                     |¦  «        }|                     |¦  «        }|du r|j        dk    sJ ‚|j        dk    sJ ‚d S |dk    r@|d	k    r:t          |t           j	        ¦  «        sJ ‚t          |t           j	        ¦  «        sJ ‚d S |d
u r:t          |t           j	        ¦  «        sJ ‚t          |t           j	        ¦  «        sJ ‚d S t          j        |¦  «        r|j        dk    sJ ‚|j        dk    sJ ‚d S t          |t           j	        ¦  «        sJ ‚t          |t           j	        ¦  «        sJ ‚d S )Nrl   rm   rK   rë  )r1   r   Trì  rØ  r   F)rN   rq   rí  rå  r   rR   r6   r9   rG  r³  r   r:   )rã  r1   rý  rÜ  rB   rß  rô  rõ  s           r)   Ú#test_missing_indicator_sparse_paramrÿ  Ø  sô  € õ" ŒH�~ ~°qÐ9¸A¸~ÈqÐ;QÐRÑSÔS€EÝŒh˜¨¸Ð;¸[¸[¸[ÐIÑJÔJ€GØˆH�U‰OŒO×"Ò"¥2¤:Ñ.Ô.€EØˆh�wÑÔ×&Ò&¥r¤zÑ2Ô2€Gå °À|ÐTÑTÔT€IØ×(Ò(¨Ñ/Ô/€JØ×&Ò& wÑ/Ô/€Là�tÐÐØÔ  EÒ)Ð)Ð)Ð)ØÔ" eÒ+Ð+Ð+Ð+Ð+Ð+Ø	˜Ò	Ð	 N°aÒ$7Ð$7Ý˜*¥b¤jÑ1Ô1Ð1Ð1Ð1Ý˜,­¬
Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ø	˜Ð	Ð	Ý˜*¥b¤jÑ1Ô1Ð1Ð1Ð1Ý˜,­¬
Ñ3Ô3Ð3Ð3Ð3Ð3Ð3åŒ?˜5Ñ!Ô!ð 	8ØÔ$¨Ò-Ð-Ð-Ð-ØÔ&¨%Ò/Ð/Ð/Ð/Ð/Ð/å˜j­"¬*Ñ5Ô5Ð5Ð5Ð5Ý˜l­B¬JÑ7Ô7Ð7Ð7Ð7Ð7Ð7r+   c                  óä   — t          j        g d¢g d¢gt          ¬¦  «        } t          dd¬¦  «        }|                     | ¦  «        }t          |t          j        g d¢g d¢g¦  «        ¦  «         d S )	N©rg   rh   ri   )rh   ri   rg   rk   rg   r    )r1   rÙ  )TFF)FFT)rN   rq   rr   r   rR   r   )r<   rß  rB   s      r)   Útest_missing_indicator_stringr    s{   € Ý
Œ�/�/�/ ? ? ?Ð3½6ÐBÑBÔB€AÝ °¸eÐDÑDÔD€IØ×%Ò% aÑ(Ô(€GÝ�w¥¤Ð*>Ð*>Ð*>Ð@TÐ@TÐ@TÐ)UÑ VÔ VÑWÔWÐWÐWÐWr+   zX, missing_values, X_trans_exp)rh   rh   TF)rh   rh   FT)rã   rã   TF)rã   rã   FTc                 óª   — t          t          |d¬¦  «        t          |¬¦  «        ¦  «        }|                     | ¦  «        }t	          ||¦  «         d S )NrF   r0   r  )r   r   r   rR   r   )r<   r1   ÚX_trans_expÚtransrB   s        r)   Ú#test_missing_indicator_with_imputerr    s\   € õ4 Ý ^¸oÐNÑNÔNÝ¨Ð7Ñ7Ô7ñô €Eð ×!Ò! !Ñ$Ô$€GÝ�w Ñ,Ô,Ð,Ð,Ð,r+   Úimputer_constructorz.imputer_missing_values, missing_value, err_msgÚNaNzInput X contains NaN)z-1r²   z(types are expected to be both numerical.c                 ó$  — t           j                             d¦  «        }|                     dd¦  «        }||d<    | |¬¦  «        }t	          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrX  rJ   rå   r  r]   )rN   rO   r•   rP   r`   rz   r{   rR   )r  Úimputer_missing_valuesrñ   r3   r¡   r<   rA   s          r)   Ú(test_inconsistent_dtype_X_missing_valuesr  -  sÖ   € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�	Š	�"�bÑÔ€AØ€A€d�Gà!Ð!Ð1GÐHÑHÔH€Gå	Œ•z¨Ð	1Ñ	1Ô	1ð !ð !Ø×Ò˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Á"BÂB	ÂB	c                  ó¬   — t          j        ddgddgg¦  «        } t          dd¬¦  «        }|                     | ¦  «        }|j        d         dk    sJ ‚d S )Nrl   r×  r²   ©rÙ  r1   r   )rN   rq   r   rR   rS   )r<   Úmir   s      r)   Ú!test_missing_indicator_no_missingr  D  sb   € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€Aå	 >À"Ð	EÑ	EÔ	E€BØ	×	Ò	˜!Ñ	Ô	€BàŒ8�AŒ;˜!ÒÐÐÐÐÐr+   c                 ó¸   —  | g d¢g d¢g d¢g¦  «        }t          dd¬¦  «        }|                     |¦  «        }|j        |                     ¦   «         k    sJ ‚d S )Nré  )rl   rK   r   )rK   r   rl   r    rl   r  )r   rR   ÚnnzÚsum)rH   r<   r  r   s       r)   Ú/test_missing_indicator_sparse_no_explicit_zerosr  O  sl   € ð 	ˆ�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€Aå	 5¸Ð	;Ñ	;Ô	;€BØ	×	Ò	˜!Ñ	Ô	€BàŒ6�R—V’V‘X”XÒÐÐÐÐÐr+   c                 óŠ   — t          j        ddgddgg¦  «        } | ¦   «         }|                     |¦  «         |j        �J ‚d S )Nrl   )rN   rq   r5   Ú
indicator_)r  r<   rA   s      r)   Útest_imputer_without_indicatorr  [  sP   € å
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AØ!Ð!Ñ#Ô#€GØ‡K‚K��N„N€NàÔÐ%Ð%Ð%Ð%Ð%r+   c                 óª  —  | t           j        ddgdt           j        dgddt           j        gg d¢g¦  «        }t          j        g d¢g d¢g d	¢g d
¢g¦  «        }t          t           j        d¬¦  «        }|                     |¦  «        }t          j        |¦  «        sJ ‚|j        |j        k    sJ ‚t          | 	                    ¦   «         |¦  «         d S )Nrl   r[   rK   rÁ   rZ   )rl   rK   rÅ   )ç      @rã   ç      @rã   ç        r  )ç       @r  rã   r  rã   r  )g      @r  r  r  r  rã   )rã   r  g      "@r  r  r  T)r1   Úadd_indicator)
rN   rQ   rq   r   rR   r   r:   rS   r   r;   )rã  ÚX_sparser=   rA   rB   s        r)   Ú2test_simple_imputation_add_indicator_sparse_matrixr  d  sæ   € ð
 ˆx�"œ& ! Q˜¨!­R¬V°Q¨¸!¸QÅÄ¸ÈÈÈÐSÑTÔT€HÝŒXà*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*ð		
ñô €Fõ ­2¬6ÀÐFÑFÔF€GØ×#Ò# HÑ-Ô-€GåŒ?˜7Ñ#Ô#Ð#Ð#Ð#ØŒ=˜FœLÒ(Ð(Ð(Ð(Ý�G—O’OÑ%Ô% vÑ.Ô.Ð.Ð.Ð.r+   zstrategy, expected)rF   rh   )rG   rñ   c                 óÖ   — ddgdt           j        gg}t          j        ddgd|ggt          ¬¦  «        }t	          | ¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nrg   rh   ri   rk   rL   )rN   rQ   rq   rr   r   rR   r   )r2   Úexpectedr<   r=   rA   rB   s         r)   Ú"test_simple_imputation_string_listr!  {  sr   € ð ˆsˆ�c�2œ6�]Ð#€AåŒX˜˜S�z C¨ ?Ð3½6ÐBÑBÔB€Få XÐ.Ñ.Ô.€GØ×#Ò# AÑ&Ô&€Gå�w Ñ'Ô'Ð'Ð'Ð'r+   zorder, idx_orderr/  )rZ   rm   rK   r   rl   r0  )rl   r   rK   rm   rZ   c                 óê  — t           j                             d¦  «        }|                     dd¦  «        }t           j        |d d…df<   t           j        |d d…df<   t           j        |d d…d	f<   t           j        |d d
…df<   t          j        t          ¦  «        5  t          d| d¬¦  «         	                    |¦  «        }d„ |j
        D ¦   «         }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NrX  r  r[   r€  rl   é   r   é   rK   rJ   rm   )r#  r-  r  c                 ó   — g | ]	}|j         ‘Œ
S r9  r:  )r<  r'   s     r)   r=  z)test_imputation_order.<locals>.<listcomp>š  s   € Ð<Ð<Ð<˜aˆqŒzÐ<Ð<Ð<r+   )rN   rO   r•   ry  rQ   r`   ra   r
   r   r5   r?  )ÚorderÚ	idx_orderr¡   r<   ÚtrsÚidxs         r)   Útest_imputation_orderr*  ‰  sA  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�Š��aÑÔ€AÝ”€A€c€r€cˆ1€f�IÝ”€A€c€r€cˆ1€f�IÝ”€A€c€r€cˆ1€f�IÝ”€A€c€r€cˆ1€f�Iå	ŒÕ(Ñ	)Ô	)ð  ð  Ý¨¸EÐPQÐRÑRÔR×VÒVØñ
ô 
ˆð =Ð< 3Ô#;Ð<Ñ<Ô<ˆØ�iÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   Â?C(Ã(C,Ã/C,rñ   c           	      óÄ  — t          j        d| ddgg d¢dd| dgddd| gg¦  «        }t          j        g d	¢d
d| dgd| ddgddd
| gg¦  «        }t          j        d| ddg| d| | gd
| d| g| d| dgg¦  «        }t          j        g d¢| d
| dgg d¢| d| d
gg¦  «        }t          | dd¬¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }	t          ||¦  «         t          |	|¦  «         ||fD ]<}
|                     |
¦  «        }|                     |¦  «        }t          ||
¦  «         Œ=d S )NrÅ   rZ   r²   ©rm   r²   r[   rm   rÁ   rÒ   rù   r   )r[   rm   rK   rl   rK   rl   rm   r[   )rl   rl   rl   rZ   )rK   rZ   rZ   rm   rD   T)r1   r2   r  )rN   rq   r   rR   Úinverse_transformr6   r   )rñ   ÚX_1ÚX_2ÚX_3ÚX_4rA   Ú	X_1_transÚX_1_inv_transÚ	X_2_transÚX_2_inv_transr<   rB   ÚX_inv_transs                r)   Ú(test_simple_imputation_inverse_transformr7  ž  sï  € õ Œ(à�˜q "Ð%ØˆMˆMØ��= "Ð%Ø��1�mÐ$ð		
ñô €Cõ Œ(àˆLˆLØ��= !Ð$Ø�˜q !Ð$Ø��1�mÐ$ð		
ñô €Cõ Œ(à�˜q !Ð$Ø˜A˜}¨mÐ<Ø�˜q -Ð0Ø˜A˜}¨aÐ0ð		
ñô €Cõ Œ(àˆLˆLØ˜A˜}¨aÐ0ØˆLˆLØ˜A˜}¨aÐ0ð		
ñô €Cõ Ø$¨vÀTðñ ô €Gð ×%Ò% cÑ*Ô*€IØ×-Ò-¨iÑ8Ô8€Mà×!Ò! #Ñ&Ô&€IØ×-Ò-¨iÑ8Ô8€Må�} cÑ*Ô*Ð*Ý�} cÑ*Ô*Ð*à�3ˆZð +ð +ˆØ×'Ò'¨Ñ*Ô*ˆØ×/Ò/°Ñ8Ô8ˆÝ˜;¨Ñ*Ô*Ð*Ð*ð+ð +r+   c           	      óB  — t          j        d| ddgg d¢dd| dgddd| gg¦  «        }t          | d	¬
¦  «        }|                     |¦  «        }t	          j        t          d|j        › d�¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÅ   rZ   r²   r,  rÁ   rÒ   rù   r   rD   r0   zGot 'add_indicator=ú'r]   )	rN   rq   r   rR   r`   rz   r{   r  r-  )rñ   r.  rA   r2  s       r)   Ú3test_simple_imputation_inverse_transform_exceptionsr:  Ø  s  € å
Œ(à�˜q "Ð%ØˆMˆMØ��= "Ð%Ø��1�mÐ$ð		
ñô €Cõ ¨=À6ÐJÑJÔJ€GØ×%Ò% cÑ*Ô*€IÝ	ŒÝÐH°Ô0EÐHÐHÐHð
ñ 
ô 
ð -ð -ð 	×!Ò! )Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   Á1BÂBÂBz)expected,array,dtype,extra_value,n_repeatÚextra_valuer  Úmost_frequent_value)r<  r<  Úvaluer6  Úmin_valuevalue)r6  r6  r=  rŽ   ©rl   rK   rZ   )rl   rl   rK   )r$  r$  rl   )rl   rl   r$  c                 ó\   — | t          t          j        ||¬¦  «        ||¦  «        k    sJ ‚d S )Nrk   )r   rN   rq   )r   rq   r%   r;  Ún_repeats        r)   Útest_most_frequentrB  ë  sG   € ð, •~Ý
Œ�˜eÐ$Ñ$Ô$ k°8ñô ò ð ð ð ð ð r+   zexpected,array)Nrg   rl   Ú1c                 óf   — | t          t          j        |t          ¬¦  «        dd¦  «        k    sJ ‚dS )znCheck the tie breaking behavior of the most frequent strategy.

    Non-regression test for issue #31717.
    rk   Nr   )r   rN   rq   rr   )r   rq   s     r)   Útest_most_frequent_tie_objectrE    s6   € ð" •~¥b¤h¨u½FÐ&CÑ&CÔ&CÀTÈ1ÑMÔMÒMÐMÐMÐMÐMÐMr+   rM   c                 óX  — t          j        dt           j        dgdt           j        t           j        gg¦  «        }t          | d¬¦  «        }|                     |¦  «        }t          |dd…df         d¦  «         |                     |¦  «        }t          |dd…df         d¦  «         dS )z Check the behaviour of the iterative imputer with different initial strategy
    and keeping empty features (i.e. features containing only missing values).
    rl   rK   rZ   T)rM   ró   Nr   )rN   rq   rQ   r   rR   r   r6   )rM   r<   rA   rT   s       r)   Ú*test_iterative_imputer_keep_empty_featuresrG    sª   € õ 	Œ�1•b”f˜a�. 1¥b¤f­b¬fÐ"5Ð6Ñ7Ô7€AåØ)¸tðñ ô €Gð ×%Ò% aÑ(Ô(€IÝ�I˜a˜a˜a ˜d”O QÑ'Ô'Ð'Ø×!Ò! !Ñ$Ô$€IÝ�I˜a˜a˜a ˜d”O QÑ'Ô'Ð'Ð'Ð'r+   c                 óh  — t          j        g d¢g d¢g d¢g d¢g¦  «        }d}t          dd|d| ¬	¦  «        }|                     |¦  «         | rt	          |j        j        |¦  «         d
S t	          |j        j        d
d…         |¦  «         t          j        |j        j        d         ¦  «        sJ ‚d
S )z<Check that we propagate properly the parameter `fill_value`.rõ   rö   r÷   rø   r  r²   rG   r   )r1   rM   rê   r#  ró   N)rN   rq   r   rR   r   r$  r8   rž   )ró   r<   rê   rA   s       r)   Ú*test_iterative_imputer_constant_fill_valuerI  ,  sÕ   € õ 	Œ�.�.�. . . .°.°.°.À-À-À-ÐPÑQÔQ€Aà€JÝØØ#ØØØ/ðñ ô €Gð ×Ò˜!ÑÔÐàð BÝ˜7Ô3Ô?ÀÑLÔLÐLÐLÐLå˜7Ô3Ô?ÀÀÀÔDÀjÑQÔQÐQÝŒx˜Ô0Ô<¸RÔ@ÑAÔAÐAÐAÐAÐAÐAr+   c            	      ó  — t          j        ddt           j        t           j        gddt           j        dgddt           j        t           j        gdd	t           j        d
gg¦  «        } t           j         t           j         t           j         dg}t           j        t           j        t           j        dg}t	          ||d¬¦  «                             | ¦  «        }t          j        | dd¬¦  «        }|j        |j        k    sJ ‚t          j        |t          j	        |¦  «                 ¦  «        t          j        d¦  «        k    sJ ‚t          j        |t          j	        |¦  «                 ¦  «        t          j        d¦  «        k    sJ ‚t          j        ddt           j        t           j        gdddt           j        gddt           j        t           j        gdd	d
t           j        gg¦  «        } t           j         t           j         dt           j         g}t           j        t           j        dt           j        g}t	          ||d¬¦  «                             | ¦  «        }| dd…dd…f         }|j        |j        k    sJ ‚t          j        |t          j	        |¦  «                 ¦  «        t          j        d¦  «        k    sJ ‚t          j        |t          j	        |¦  «                 ¦  «        t          j        d¦  «        k    sJ ‚dS )z³Check that we properly apply the empty feature mask to `min_value` and
    `max_value`.

    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/29355
    rl   rK   rm   r[   rÁ   rÒ   rù   rJ   rÂ  rÃ  F)r6  r7  ró   r“   g      @NrZ   )rN   rq   rQ   r­  r   rR   ÚdeleterS   rR  rž   r`   rn  rš   )r<   r6  r7  rT   ÚX_without_missing_columns        r)   Ú1test_iterative_imputer_min_max_value_remove_emptyrM  B  s¥  € õ 	Œà�•2”6�2œ6Ð"Ø�•2”6˜1ÐØ�•2”6�2œ6Ð"Ø�•R”V˜RÐ ð		
ñ	ô 	€Aõ ”&��2œ6˜'¥B¤F 7¨AÐ.€IÝ”�œ¥¤¨Ð+€Iå ØØØ!ðñ ô ÷ ‚m�AÑÔð	 õ  "œy¨¨A°AÐ6Ñ6Ô6ÐØŒ?Ð6Ô<Ò<Ð<Ð<Ð<ÝŒ6�)�BœHÐ%=Ñ>Ô>Ô?Ñ@Ô@ÅFÄMÐRSÑDTÔDTÒTÐTÐTÐTÝŒ6�)�BœHÐ%=Ñ>Ô>Ô?Ñ@Ô@ÅFÄMÐRSÑDTÔDTÒTÐTÐTÐTõ 	Œà�•2”6�2œ6Ð"Ø��1•b”fÐØ�•2”6�2œ6Ð"Ø��R�œÐ ð		
ñ	ô 	€Aõ ”&��2œ6˜' 3­¬¨Ð0€IÝ”�œ ¥B¤FÐ+€Iå ØØØ!ðñ ô ÷ ‚m�AÑÔð	 ð  !    B Q B œxÐØŒ?Ð6Ô<Ò<Ð<Ð<Ð<ÝŒ6�)�BœHÐ%=Ñ>Ô>Ô?Ñ@Ô@ÅFÄMÐRUÑDVÔDVÒVÐVÐVÐVÝŒ6�)�BœHÐ%=Ñ>Ô>Ô?Ñ@Ô@ÅFÄMÐRSÑDTÔDTÒTÐTÐTÐTÐTÐTr+   c                 ó„  — t          j        dt           j        dgdt           j        t           j        gg¦  «        }t          | ¬¦  «        }dD ]r} t	          ||¦  «        |¦  «        }| r-|j        |j        k    sJ ‚t          |dd…df         d¦  «         ŒJ|j        |j        d         |j        d         dz
  fk    sJ ‚ŒsdS )z>Check the behaviour of `keep_empty_features` for `KNNImputer`.rl   rK   rZ   )ró   ©rR   r6   Nr   )rN   rq   rQ   r   ÚgetattrrS   r   )ró   r<   rA   ÚmethodrT   s        r)   Ú$test_knn_imputer_keep_empty_featuresrR  y  sÚ   € õ 	Œ�1•b”f˜a�. 1¥b¤f­b¬fÐ"5Ð6Ñ7Ô7€AåÐ-@ÐAÑAÔA€Gà0ð Cð CˆØ,•G˜G VÑ,Ô,¨QÑ/Ô/ˆ	Øð 	CØ”? a¤gÒ-Ð-Ð-Ð-Ý˜y¨¨¨¨A¨œ°Ñ2Ô2Ð2Ð2à”? q¤w¨q¤z°1´7¸1´:À±>Ð&BÒBÐBÐBÐBÐBðCð Cr+   c            	      ó  — t          j        d¦  «        } |                      d|                      g d¢d¬¦  «        i¦  «        }t	          | j        dd¬¦  «        }t          |                     |¦  «        t          j	        d	gdgd
ggt          ¬¦  «        ¦  «         |                      d|                      g d¢d¬¦  «        i¦  «        }t	          dd¬¦  «        }t          |                     |¦  «        t          j	        d	gd
gdggt          ¬¦  «        ¦  «         |                      d|                      g d¢d¬¦  «        i¦  «        }t	          | j        dd¬¦  «        }t          |                     |¦  «        t          j	        dgdgdggd¬¦  «        ¦  «         t	          t          j        dd¬¦  «        }t          |                     |¦  «        t          j	        dgdgdggd¬¦  «        ¦  «         |                      d|                      g d¢d¬¦  «        i¦  «        }t	          | j        d¬¦  «        }t          |                     |¦  «        t          j	        dgdgdgdggd¬¦  «        ¦  «         |                      d|                      g d¢d¬¦  «        i¦  «        }t	          | j        d¬¦  «        }t          |                     |¦  «        t          j	        dgdgdggd¬¦  «        ¦  «         |                      d|                      g d¢d¬¦  «        i¦  «        }t	          | j        dd¬¦  «        }t          |                     |¦  «        t          j	        dgdgdggd¬¦  «        ¦  «         |                      d|                      g d ¢d¬¦  «        i¦  «        }t	          | j        d¬¦  «        }t          |                     |¦  «        t          j	        dgd!gd!gdggd¬¦  «        ¦  «         d S )"Nre   Úfeature)ÚabcNÚdeÚstringrk   rG   Únaré   rU  rV  )rU  rV  ÚfghÚok)rê   r2   rY  )rl   NrZ   ÚInt64r²   rl   rZ   rå  )rl   NrK   rZ   rE   r0   rK   )rl   NrK   rD   r  )rã   Nr  g       Àrã   r  )rã   Nr  r  r  )r`   rp   rs   ÚSeriesr   ÚNAr*   rR   rN   rq   rr   r-   rQ   )ru   rá   rA   s      r)   Útest_simple_impute_pd_nar^  ‰  s  € Ý	Ô	˜XÑ	&Ô	&€Bð 
�Š�y "§)¢)Ð,?Ð,?Ð,?Àx )Ñ"PÔ"PÐQÑ	RÔ	R€BÝ¨2¬5¸:ÐRVÐWÑWÔW€GÝ&Ø×Ò˜bÑ!Ô!¥2¤8¨e¨W°t°f¸t¸fÐ,EÍVÐ#TÑ#TÔ#Tñô ð ð
 
�Š�y "§)¢)Ð,@Ð,@Ð,@È )Ñ"QÔ"QÐRÑ	SÔ	S€BÝ t°jÐAÑAÔA€GÝ&Ø×Ò˜bÑ!Ô!¥2¤8¨e¨W°t°f¸u¸gÐ,FÍfÐ#UÑ#UÔ#Uñô ð ð
 
�Š�y "§)¢)¨L¨L¨LÀ )Ñ"HÔ"HÐIÑ	JÔ	J€BÝ¨2¬5¸:ÐRTÐUÑUÔU€GÝ#Ø×Ò˜bÑ!Ô!¥2¤8¨a¨S°2°$¸¸Ð,<ÀIÐ#NÑ#NÔ#Nñô ð õ
 ­2¬6¸JÐSUÐVÑVÔV€GÝ#Ø×Ò˜bÑ!Ô!¥2¤8¨a¨S°2°$¸¸Ð,<ÀIÐ#NÑ#NÔ#Nñô ð ð
 
�Š�y "§)¢)¨O¨O¨OÀ7 )Ñ"KÔ"KÐLÑ	MÔ	M€BÝ¨2¬5¸8ÐDÑDÔD€GÝ#Ø×Ò˜bÑ!Ô!¥2¤8¨a¨S°1°#¸°s¸Q¸CÐ,@È	Ð#RÑ#RÔ#Rñô ð ð
 
�Š�y "§)¢)¨L¨L¨LÀ )Ñ"HÔ"HÐIÑ	JÔ	J€BÝ¨2¬5¸6ÐBÑBÔB€GÝ#Ø×Ò˜bÑ!Ô!¥2¤8¨a¨S°3°%¸!¸Ð,=ÀYÐ#OÑ#OÔ#Oñô ð ð
 
�Š�y "§)¢)Ð,<Ð,<Ð,<ÀI )Ñ"NÔ"NÐOÑ	PÔ	P€BÝ¨2¬5¸:ÐRVÐWÑWÔW€GÝ#Ø×Ò˜bÑ!Ô!¥2¤8¨c¨U°T°F¸S¸EÐ,BÈ)Ð#TÑ#TÔ#Tñô ð ð
 
�Š�y "§)¢)Ð,AÐ,AÐ,AÈ )Ñ"SÔ"SÐTÑ	UÔ	U€BÝ¨2¬5¸8ÐDÑDÔD€GÝ#Ø×Ò˜bÑ!Ô!Ý
Œ�3�%˜#˜  ¨ uÐ-°YÐ?Ñ?Ô?ñô ð ð ð r+   c                  ó"  — t          j        d¦  «        } t          j        }|                      ||d|gd|ddggg d¢¬¦  «        }t          |¬¦  «                             |¦  «        }|                     ¦   «         }g d	¢}t          ||¦  «         d
S )zDCheck that missing indicator return the feature names with a prefix.re   rl   rm   rK   rJ   rf   rn   r  )Úmissingindicator_aÚmissingindicator_bÚmissingindicator_dN)	r`   rp   rN   rQ   rs   r   r5   Úget_feature_names_outr   )ru   r1   r<   rß  rv   Úexpected_namess         r)   Ú(test_missing_indicator_feature_names_outre  Å  s«   € å	Ô	˜XÑ	&Ô	&€Bå”V€NØ
�Šà˜^¨Q°Ð?Ø�  2Ð&ð	
ð %Ð$Ð$ð 	ñ 	ô 	€Aõ !°Ð?Ñ?Ô?×CÒCÀAÑFÔF€IØ×3Ò3Ñ5Ô5€MØWÐWÐW€NÝ�~ }Ñ5Ô5Ð5Ð5Ð5r+   c                  ó  — ddgddgddgg} t          d¬¦  «                             | ¦  «        }|                     t          j        t          j        gg¦  «        }|j        t          k    sJ ‚t          |ddgg¦  «         dS )zkCheck transform uses object dtype when fitted on an object dtype.

    Non-regression test for #19572.
    rg   rh   ri   rF   rL   N)r   r5   r6   rN   rQ   r%   rr   r   )r<   Úimp_frequentrB   s      r)   Ú test_imputer_lists_fit_transformrh  Ø  sˆ   € ð ˆsˆ�c˜3�Z # s Ð,€AÝ ¨/Ð:Ñ:Ô:×>Ò>¸qÑAÔA€LØ×$Ò$¥r¤v­r¬vÐ&6Ð%7Ñ8Ô8€GØŒ=�FÒ"Ð"Ð"Ð"Ý�w # s  Ñ-Ô-Ð-Ð-Ð-r+   Ú
dtype_testc                 óz  — t          j        ddt           j        gt           j        ddgg d¢gt           j        ¬¦  «        }t	          ¦   «                              |¦  «        }t          j        t           j        t           j        t           j        gg| ¬¦  «        }|                     |¦  «        }|j        | k    sJ ‚dS )zACheck transform preserves numeric dtype independent of fit dtype.rÿ   g333333@r   )gÍÌÌÌÌÌ@rK   rl   rk   N)rN   ÚasarrayrQ   rå  r   r5   r6   r%   )ri  r<   Úimprj  rB   s        r)   Ú.test_imputer_transform_preserves_numeric_dtyperm  å  s¥   € õ 	Œ
Ø
ˆs•B”FÐ	�bœf c¨3Ð/°°°Ð=ÅRÄZð	ñ 	ô 	€Aõ ‰/Œ/×
Ò
˜aÑ
 Ô
 €CåŒZ�"œ&¥"¤&­"¬&Ð1Ð2¸*ÐEÑEÔE€FØ�mŠm˜FÑ#Ô#€GØŒ=˜JÒ&Ð&Ð&Ð&Ð&Ð&r+   Ú
array_typerq   r   c                 ó>  — t          j        t           j        dgt           j        dgt           j        dgg¦  «        }t          ||¦  «        }t	          | |¬¦  «        }dD ]½} t          ||¦  «        |¦  «        }|rx|j        |j        k    sJ ‚t          r&|dk    r |dd…dgf                              ¦   «         }n(|dd…df         }|dk    r|                     ¦   «         n|}t          |d¦  «         Œ•|j        |j        d         |j        d	         d	z
  fk    sJ ‚Œ¾dS )
zYCheck the behaviour of `keep_empty_features` with all strategies but
    'constant'.
    rK   rZ   rÁ   r  rO  r   Nr   rl   )
rN   rq   rQ   r   r   rP  rS   r"   r;   r   )	r2   rn  ró   r<   rA   rQ  rT   Úconstant_featureÚcol0s	            r)   Ú'test_simple_imputer_keep_empty_featuresrr  ò  sF  € õ 	Œ•2”6˜1�+¥¤¨˜{­R¬V°Q¨KÐ8Ñ9Ô9€AÝ˜1˜jÑ)Ô)€AÝ XÐCVÐWÑWÔW€Gà0ð Cð CˆØ,•G˜G VÑ,Ô,¨QÑ/Ô/ˆ	Øð 		CØ”? a¤gÒ-Ð-Ð-Ð-Ý'ð V¨J¸(Ò,BÐ,BØ#,¨Q¨Q¨Q°°¨VÔ#4×#<Ò#<Ñ#>Ô#>Ð Ð à     A ”�Ø5?À8Ò5KÐ5K 4§<¢<¡>¤> >ÐQUÐ ÝÐ/°Ñ3Ô3Ð3Ð3à”? q¤w¨q¤z°1´7¸1´:À±>Ð&BÒBÐBÐBÐBÐBðCð Cr+   c           
      óR  — t          j        g d¢ddt           j        gt           j        dt           j        gg d¢g d¢t           j        ddgg¦  «        }t          j        g d¢g d¢g d	¢g d¢g d¢g d
¢g¦  «        }t          t           j        t           j        ¬¦  «        }|                     |¦  «        }t          ||¦  «         t          t           j        t           j        ¬¦  «        }|                      | |¦  «        ¦  «        }t          |                     ¦   «         |¦  «         d S )N)rþ   rþ   rþ   ç333333@rÿ   r   )r  r  r  )gš™™™™™@r  r  çš™™™™™ù?)rt  rÿ   rþ   )r  r   rþ   )r  ru  ru  r0   )rN   rq   rQ   r   rR  rR   r   r;   )rx   r<   r=   rA   rB   s        r)   Útest_imputation_customrv    s%  € å
ŒàˆOˆOØ�#•r”vÐÝŒV�S�"œ&Ð!ØˆOˆOØˆOˆOÝŒV�S˜#Ðð	
ñ		ô 		€Aõ ŒXàˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOð	
ñ	ô 	€Fõ ­2¬6½B¼FÐCÑCÔC€GØ×#Ò# AÑ&Ô&€GÝ�w Ñ'Ô'Ð'õ ­2¬6½B¼FÐCÑCÔC€GØ×#Ò# M M°!Ñ$4Ô$4Ñ5Ô5€GÝ�w—’Ñ(Ô(¨&Ñ1Ô1Ð1Ð1Ð1r+   c                  ó‚  — d} t          j        g d¢g d¢gt           j        ¬¦  «        }t          d| d¬¦  «        }d| ›d	t	          | ¦  «        ›d
�}t          j        t          t          j	        |¦  «        ¬¦  «        5  | 
                    |¦  «         ddd¦  «         n# 1 swxY w Y   t          j        g d¢g d¢gt           j        ¬¦  «        }| 
                    |¦  «         d|j        ›d
�}t          j        t          t          j	        |¦  «        ¬¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   t          j        d¦  «        ddg}|                     t           j        ¦  «        }|D ];} t          d| d¬¦  «        }|                     |¦  «        }|j        |j        k    sJ ‚Œ<dS )zþCheck that we raise a proper error message when we cannot cast the fill value
    to the input data type. Otherwise, check that the casting is done properly.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28309
    r  r?  )rK   rZ   rm   rk   rG   rK   )r2   rê   r1   ræ   rç   rè   r]   Nz%The dtype of the filling value (i.e. rl   )rN   rq   Úint64r   rí   r`   rz   r{   rî   rï   r5   rå  Ú_fill_dtyper6   rí  Úfloat32rR   r%   )rê   ÚX_int64rA   r3   Ú	X_float64Úfill_value_listÚ	X_float32rB   s           r)   Ú/test_simple_imputer_constant_fill_value_castingr  -  sS  € ð €JÝŒh˜	˜	˜	 9 9 9Ð-µR´XÐ>Ñ>Ô>€GÝØ¨
À1ðñ ô €Gð Y˜JÐXÐXµD¸Ñ4DÔ4DÐXÐXÐX€GÝ	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð ð Ø�Š�GÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”˜)˜)˜) Y Y YÐ/µr´zÐBÑBÔB€IØ‡K‚K�	ÑÔÐàW°Ô0CÐWÐWÐWð õ 
Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð #ð #Ø×Ò˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ ”z #‘”¨¨QÐ/€OØ× Ò ¥¤Ñ,Ô,€Ià%ð 0ð 0ˆ
ÝØ¨JÀqð
ñ 
ô 
ˆð ×'Ò'¨	Ñ2Ô2ˆØŒ} 	¤Ò/Ð/Ð/Ð/Ð/ð0ð 0s$   Á>B Â B$Â'B$ÄE Å EÅEc                 ó6  — t          j        t           j        ddgdt           j        dgddt           j        gg¦  «        }t          | dd¬¦  «        }t          | dd	¬¦  «        }t	          |                     |¦  «        |                     |¦  «        ¦  «         d
S )a  Check the behaviour of `keep_empty_features` with no empty features.

    With no-empty features, we should get the same imputation whatever the
    parameter `keep_empty_features`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/29375
    r   rl   rK   rZ   rm   r[   F©rM   rê   ró   TN)rN   rq   rQ   r   r   rR   )r2   r<   Úimputer_drop_empty_featuresÚimputer_keep_empty_featuress       r)   Ú(test_iterative_imputer_no_empty_featuresr„  S  s¬   € õ 	Œ•2”6˜1˜a�. 1¥b¤f¨a .°1°a½¼°.ÐAÑBÔB€Aå"2Ø!¨aÀUð#ñ #ô #Ðõ #3Ø!¨aÀTð#ñ #ô #Ðõ Ø#×1Ò1°!Ñ4Ô4Ø#×1Ò1°!Ñ4Ô4ñô ð ð ð r+   rj  )rl   rK   rZ   rm   )r[   rÁ   rÒ   rù   rÁ   rÒ   rù   c                 ó˜  — t          j        t           j        t           j        ddgt           j        dt           j        dgt           j        ddt           j        gg¦  «        }t          | dd¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          | dd	¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||d
d
…dd
…f         ¦  «         t          |d
d
…df         d¦  «         |j        d         |j        d         k    sJ ‚|j        d         |j        d         k    sJ ‚d
S )a.  Check the behaviour of `keep_empty_features` in the presence of empty features.

    With `keep_empty_features=True`, the empty feature will be imputed with the value
    defined by the initial imputation.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/29375
    r   rl   rK   rZ   rm   r[   Fr�  TN)rN   rq   rQ   r   rR   r6   r   rS   )	r2   rj  ri  r‚  ÚX_train_drop_empty_featuresÚX_test_drop_empty_featuresrƒ  ÚX_train_keep_empty_featuresÚX_test_keep_empty_featuress	            r)   Ú*test_iterative_imputer_with_empty_featuresrŠ  m  sd  € õ$ ŒhÝ
Œ&•"”&˜!˜QÐ	¥"¤&¨!­R¬V°QÐ!7½"¼&À!ÀQÍÌÐ9OÐPñô €Gõ #3Ø!¨aÀUð#ñ #ô #Ðð #>×"KÒ"KÈGÑ"TÔ"TÐØ!<×!FÒ!FÀvÑ!NÔ!NÐå"2Ø!¨aÀTð#ñ #ô #Ðð #>×"KÒ"KÈGÑ"TÔ"TÐØ!<×!FÒ!FÀvÑ!NÔ!NÐåÐ/Ð1LÈQÈQÈQÐPQÐPRÐPRÈUÔ1SÑTÔTÐTÝÐ/°°°°1°Ô5°qÑ9Ô9Ð9à&Ô,¨QÔ/Ð3MÔ3SÐTUÔ3VÒVÐVÐVÐVØ&Ô,¨QÔ/Ð3MÔ3SÐTUÔ3VÒVÐVÐVÐVÐVÐVr+   )‘rÞ   rî   r   Ú	itertoolsr   ÚnumpyrN   r`   Úscipyr   Úscipy.statsr   Úsklearnr   Úsklearn.datasetsr   Úsklearn.dummyr	   Úsklearn.exceptionsr
   Úsklearn.experimentalr   Úsklearn.imputer   r   r   r   Úsklearn.impute._baser   Úsklearn.linear_modelr   r   r   Úsklearn.model_selectionr   Úsklearn.pipeliner   r   Úsklearn.random_projectionr   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.fixesr   r   r   r    r!   r"   r*   r-   rC   ÚmarkÚparametrizerV   rc   rw   r|   r‡   r‰   r®   r¼   rr   ÚstrrÈ   rÌ   r%   rÐ   rÓ   rQ   rØ   râ   rò   rû   rk  r  r  r	  r  r  r!  r'  r*  r,  rD  rN  rT  rV  rd  rl  rw  r~  rŠ  r�  r”  r™  rª  rq   r­  r¶  rº  rÀ  rÄ  rO   r•   rÖ  rà  rè  rø  rü  rÊ   rÿ  r  r  r  r  r  r  r  r!  r*  r7  r:  rŸ  rB  rE  rG  rI  rM  rR  r^  re  rh  rz  rå  rm  rr  rv  r  r„  rŠ  r9  r+   r)   ú<module>rŸ     sw  ðØ 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ /Ð /Ð /Ð /Ð /Ð /Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð
ð ð ð
$=ð $=ð $=ðN „×Ò˜Ð%TÐ%TÐ%TÑUÔUØ„×Ò˜¨.Ñ9Ô9ð&ð &ñ :Ô9ñ VÔUð&ð  „×Ò˜Ð%HÐ%HÐ%HÑIÔIðð ñ JÔIðð „×Ò˜Ð%HÐ%HÐ%HÑIÔIðð ñ JÔIðð2 „×Ò˜Ð%TÐ%TÐ%TÑUÔUØ„×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ñ VÔUððFð Fð FðDð Dð Dð „×Ò˜¨.Ñ9Ô9ðB
ð B
ñ :Ô9ðB
ðJ „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ððD „×Ò˜ f¨hÐ%7Ñ8Ô8Ø„×Ò˜ 4¨°Ð"5Ñ6Ô6ð!ð !ñ 7Ô6ñ 9Ô8ð!ð „×Ò˜ f¨hÐ%7Ñ8Ô8Ø„×ÒÐ+¨f°hÐ-?Ñ@Ô@ð!ð !ñ AÔ@ñ 9Ô8ð!ð „×Ò˜ j°/Ð%BÑCÔCØ„×Ò˜ 3¨¨¬°©¬°x°r´xÀ±}´}Ð"EÑFÔFð$ð $ñ GÔFñ DÔCð$ð& „×Ò˜¨.Ñ9Ô9ðXð Xñ :Ô9ðXð6 „×Ò˜ D¨"¬&°%¸¸QÐ#?Ñ@Ô@ð(ð (ñ AÔ@ð(ð8 „×Ò˜ 6¨:Ð"6Ñ7Ô7ð(ð (ñ 8Ô7ð(ð& „×ÒÐ0°6¸CÀÄ¸=Ð2IÑJÔJð!ð !ñ KÔJð!ð „×ÒÐ.°°u°Ñ>Ô>ð(ð (ñ ?Ô>ð(ð& „×ÒÐ,¨nÀÄ
¸|Ñ.KÑLÔLØ„×ÒÐ.°°u°Ñ>Ô>ð2ð 2ñ ?Ô>ñ MÔLð2ð: „×Ò˜ D¨"¬&°%¸¸QÐ#?Ñ@Ô@Ø„×ÒÐ.°°u°Ñ>Ô>ð (ð  (ñ ?Ô>ñ AÔ@ð (ðF „×Ò˜ 6¨:Ð"6Ñ7Ô7Ø„×ÒÐ.°°u°Ñ>Ô>ð(ð (ñ ?Ô>ñ 8Ô7ð(ð8 „×Ò˜   a S˜z¨Q¨C°"´&°¨?Ð;Ñ<Ô<ð ð  ñ =Ô<ð ðð ð ð&%)ð %)ð %)ðVQð Qð Qð0ð ð ðFð Fð Fð „×ÒØÐPÐPÐPñô ð"6ð "6ñô ð"6ðJ „×ÒØ�$˜˜Ñ(Ô(¨-¨-©/¬/¸=¸=¹?¼?ÈGÈGÉIÌIÐVñô ð+ð +ñô ð+ð2+ð +ð +ð +ð +ð +ð0Yð Yð YðB „×Ò˜Ð%HÐ%HÐ%HÑIÔIðð ñ JÔIðð,/-ð /-ð /-ðd"ð "ð "ð,ð ,ð ,ð „×Ò˜ ! Q Ñ(Ô(ð9ð 9ñ )Ô(ð9ð0Eð Eð Eð4/ð /ð /ð<(ð (ð (ð2 „×ÒØ*à	
ˆC��”˜A˜3 ™7 S E¨A¡IÐ.Ñ/Ô/Ð0Ø	ˆt�X�R”X ¤ ˜y¨1™}¨r¬v¨h¸©lÐ;Ñ<Ô<Ð=Ø
Œ&ˆ�"”&˜(˜"œ( b¤f W I°¡M°B´F°8¸a±<Ð#@ÑAÔAÐBØ	ˆˆ�o�o�o x r¤x°°°¸o¸o¸oÐ0NÑ'OÔ'OÐPà�"”&�˜"ÐØ�#�r”vÐØˆBŒH�r˜BœF˜7 BÐ'¨#¨s°B´FÐ);Ð<Ñ=Ô=ð	
ð
ð 	FÐEÐEð ñ ô ð>ð >ñô ð>ð$ „×ÒØ#à+Ø	Œ�"”&�Ð3Ð4Ø
ˆaˆ�-�-�-Ð!=Ð>Ø	ˆˆ�c˜3�ZÐ!=Ð>ð	ñô ðð ñô ðð „×ÒØØˆT€l�b”f�W˜bœfÐ%Ð&¨#¨r¨°c°U¸Q±YÀÀÀqÁÐ4IÐ(JÐKØ	Ð*Ð+ð ñ ô ð
Bð Bñô ð
Bð0 „×Ò˜¨4°¨-Ñ8Ô8ðBð Bñ 9Ô8ðBð$ „×Ò˜¨¨a°´×1FÒ1FÈAÐ1FÑ1NÔ1NÐ'OÑPÔPØ„×Ò˜¨$°°2´9×3HÒ3HÈaÐ3HÑ3PÔ3PÐ)QÑRÔRð2ð 2ñ SÔRñ QÔPð2ð$ „×ÒØ%ð ˆBŒH�r˜1�g  1˜vÐ&Ñ'Ô'ØˆBŒH�r˜1�g  2˜wÐ'Ñ(Ô(Ø'°6Ð:Ð:ØPð		
ð ˆBŒH�s˜C�j 3¨ *Ð-°SÐ9Ñ9Ô9ØˆBŒH�s˜C�j 3¨ *Ð-°SÐ9Ñ9Ô9ØØ?ð		
ðñô ð"0ð 0ñ#ô ð"0ðð ð ð& „×ÒØ%Ð'HÐ'HÑ'JÔ'Jñô ð „×ÒØ2Ø�a˜˜œ ) ) )Ñ,Ô,Ð-°°q¸(¸"¼(À9À9À9Ñ:MÔ:MÐ/NÐOñô ð)Að )Añ	ô ñô ð)AðX „×ÒØØ�^Ñ# nÑ4°~ÑEÈÑVñô ð,ð ,ñ	ô ð,ð* „×Ò˜Ð)>Ð)>Ð)>Ñ?Ô?Ø„×ÒØØ„h�€]€OØ
€dØˆØØñàñð ñð ñ	ð
 ŒVˆHñ	
ô 	
ñ	ô 	ñ
ñô ð8ð 8ñô ñ @Ô?ð8ð:Xð Xð Xð „×ÒØ$ð ˆBŒH�s˜C�j 3¨ *Ð-°VÐ<Ñ<Ô<ØØˆBŒHÐ-Ð-Ð-Ð/FÐ/FÐ/FÐGÈvÐVÑVÔVð	
ð ˆBŒH�r”v˜s�m c¨2¬6 ]Ð3Ñ4Ô4ØŒFØˆBŒHÐ-Ð-Ð-Ð/FÐ/FÐ/FÐGÑHÔHð	
ð ˆBŒH�r”v˜s�m c¨2¬6 ]Ð3¸6ÐBÑBÔBØŒFØˆBŒHÐ-Ð-Ð-Ð/FÐ/FÐ/FÐGÈvÐVÑVÔVð	
ð ˆBŒH�t˜S�k C¨ ;Ð/°vÐ>Ñ>Ô>ØØˆBŒHÐ-Ð-Ð-Ð/FÐ/FÐ/FÐGÈvÐVÑVÔVð	
ð!ñô ð2-ð -ñ3ô ð2-ð „×ÒÐ.°Ð@PÐ0QÑRÔRØ„×ÒØ4à	�”Ð.Ð/Ø>ðñô ð!ð !ñô ñ SÔRð!ðð ð ð „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð „×ÒÐ.°Ð@PÐ0QÑRÔRð&ð &ñ SÔRð&ð „×ÒØØ�^Ñ# nÑ4°~ÑEÈÑVñô ð/ð /ñ	ô ð/ð& „×ÒØÐ1Ð3PÐQñô ð(ð (ñô ð(ð „×ÒØØ�?�?�?Ð# l°O°O°OÐ%DÐEñô ð ð  ñ	ô ð ð" „×Ò˜¨2¨r¬v¨,Ñ7Ô7ð6+ð 6+ñ 8Ô7ð6+ðr „×Ò˜¨2¨r¬v¨,Ñ7Ô7ð-ð -ñ 8Ô7ð-ð$ „×ÒØ/ð 
˜˜˜¨°ÀÐBà!ØCÐCÐCØØØð	
ð 
ˆ{Ð,Ð-¨v°s¸AÐ>Ø	Ð9Ð9Ð9¸6À3ÈÐJà	ˆYˆYˆY˜˜R Ð#Ø	
ˆIˆIˆI�s˜B Ð"Ø	ˆ[ˆ[ˆ[˜#˜r 1Ð%Ø	
ˆJˆJˆJ˜˜R Ð#ð!ñô ð*ð ñ+ô ð*ð „×ÒØà	ˆs�CˆjÐØ	
ˆQ�ˆFˆØ	��cˆ{ÐØ	��aˆyÐØ	ˆ~ˆ~ˆ~ÐØ	
ˆQ�ˆHˆØ	
ˆS�!ˆHˆðñô ðNð Nñô ðNð „×ÒØÐGÐGÐGñô ð(ð (ñô ð(ð „×ÒÐ.°°u°Ñ>Ô>ðBð Bñ ?Ô>ðBð*4Uð 4Uð 4Uðn „×ÒÐ.°°u°Ñ>Ô>ðCð Cñ ?Ô>ðCð9ð 9ð 9ðx6ð 6ð 6ð&
.ð 
.ð 
.ð „×Ò˜¨¬
°B´JÐ'?Ñ@Ô@ð	'ð 	'ñ AÔ@ð	'ð „×Ò˜¨°Ð':Ñ;Ô;Ø„×Ò˜Ð%HÐ%HÐ%HÑIÔIØ„×ÒÐ.°°u°Ñ>Ô>ðCð Cñ ?Ô>ñ JÔIñ <Ô;ðCð, „×Ò˜¨.Ñ9Ô9ð2ð 2ñ :Ô9ð2ðB#0ð #0ð #0ðL „×Ò˜Ð%TÐ%TÐ%TÑUÔUðð ñ VÔUðð2 „×Ò˜Ð%TÐ%TÐ%TÑUÔUØ„×ÒØàˆŒ�,�,�,   Ð-Ñ.Ô.ØˆŒ�2”6˜1˜a Ð# b¤f¨a°°AÐ%6Ð7Ñ8Ô8ØˆŒ�1�a˜˜BœFÐ# a¨¨A¨r¬vÐ%6Ð7Ñ8Ô8ðñô ðWð Wñô ñ VÔUðWð Wð Wr+   