§
    ¥˜ºh|à  ã                   óü  — d dl Z d dl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„ Z+d„ Z,d„ Z-ej.         /                    dg d¢¦  «        d„ ¦   «         Z0ej.         /                    dg d¢¦  «        d„ ¦   «         Z1ej.         /                    dg d¢¦  «        d„ ¦   «         Z2ej.         /                    dg d¢¦  «        d„ ¦   «         Z3d„ Z4d„ Z5d„ Z6d„ Z7ej.         /                    dddg¦  «        ej.         /                    d de8e9g¦  «        d!„ ¦   «         ¦   «         Z:ej.         /                    dddg¦  «        ej.         /                    d"d#d$g¦  «        d%„ ¦   «         ¦   «         Z;ej.         /                    dd&d'g¦  «        ej.         /                    d e9 ej<        d(¦  «         ej<        d)¦  «        g¦  «        d*„ ¦   «         ¦   «         Z=d+„ Z>ej.         /                    d,dej?        d-d.d g¦  «        d/„ ¦   «         Z@ej.         /                    d e8d0g¦  «        d1„ ¦   «         ZAej.         /                    d2d3d4ej?        fg¦  «        d5„ ¦   «         ZBd6„ ZCej.         /                    d7ejD        ejE        g¦  «        d8„ ¦   «         ZFej.         /                    d,dej?        d-d.d g¦  «        d9„ ¦   «         ZGej.         /                    d e8d0g¦  «        d:„ ¦   «         ZHej.         /                    d;d<gd=ggd<gej?        ggg¦  «        d>„ ¦   «         ZId?„ ZJd@„ ZKdA„ ZLdB„ ZMdC„ ZNej.         /                    dDg dE¢¦  «        dF„ ¦   «         ZOej.         /                    dGd e¦   «          e¦   «          e¦   «          e¦   «         g¦  «        dH„ ¦   «         ZPdI„ ZQdJ„ ZRdK„ ZSej.         /                    dg d¢¦  «        dL„ ¦   «         ZTdM„ ZUdN„ ZVdO„ ZWej.         /                    dPdQdRg¦  «        dS„ ¦   «         ZXdT„ ZYdU„ ZZdV„ Z[ej.         /                    dWd dX ej\        d gdQz  dXgdQz  g¦  «        fdd ej\        ej]         gdQz  ej]        gdQz  g¦  «        fej]         ej]         ej\        ej]         gdQz  ej]        gdQz  g¦  «        fg dY¢g dZ¢ ej\        g dY¢g dZ¢g¦  «        fd[ej]         d\gdXd]ej]        g ej\        d[ej]         d\gdXd]ej]        gg¦  «        fgg d^¢¬_¦  «        d`„ ¦   «         Z^ej.         /                    dadbej]        ej]         dcfd[dRgg dd¢defg¦  «        df„ ¦   «         Z_ej.         /                    dgddgej]         ej]        gfdhd\gdhgdiz  d\gdiz  gfgdjdkg¬_¦  «        dl„ ¦   «         Z`ej.         /                    dmdndog¦  «        dp„ ¦   «         Zaej.         /                    dqdd<ejb         c                    d<¬r¦  «        g¦  «        ej.         /                    dsdd<ejb         c                    d<¬r¦  «        g¦  «        dt„ ¦   «         ¦   «         Zdej.         /                    du ej\        dvd<gd<d=gg¦  «         ej\        dvd<gd<dvgg¦  «        dwdxdyœdzf ej\        d{d|gd}d{gge9¬~¦  «         ej\        d{d|gd}d{gge9¬~¦  «        i dfg¦  «        d€„ ¦   «         Zeej.         /                    d�ej?        ejf        ej\        fd ejg        ej\        fdvejg        ej\        fej?        ejf        ejh        fdvejg        ejh        fej?        ejf        ejD        fdvejg        ejD        fej?        ejf        eji        fdvejg        eji        fej?        ejf        ejj        fdvejg        ejj        fej?        ejf        ejk        fdvejg        ejk        fg¦  «        ej.         /                    d‚dwdQ ej\        g dƒ¢¦  «        fd„dQ ej\        g dƒ¢¦  «        fg¦  «        d…„ ¦   «         ¦   «         Zlej.         /                    d†ejh        ejD        eji        ejj        ejk        g¦  «        d‡„ ¦   «         Zmej.         /                    dˆg d‰¢¦  «        ej.         /                    dŠej?        ej\        fd ej\        fej?        ejh        fej?        ejD        fej?        eji        fej?        ejj        fg¦  «        d‹„ ¦   «         ¦   «         ZndŒ„ Zoej.         /                    d� ej\        d{d|gd|d{gge8¬~¦  «        d{ ej\        g dŽ¢g d�¢ge8¬~¦  «        f ej\        ej?        d4gd4ej?        gg¦  «        ej?         ej\        g d�¢g d‘¢g¦  «        f ej\        ej?        d|gd|ej?        gge8¬~¦  «        ej?         ej\        g dŽ¢g d�¢ge8¬~¦  «        f ej\        dd|gd|dgge8¬~¦  «        d ej\        g dŽ¢g d�¢ge8¬~¦  «        fg¦  «        d’„ ¦   «         Zpej.         /                    d“eeg¦  «        ej.         /                    d”d•ej?        d–fd—g¦  «        d˜„ ¦   «         ¦   «         Zqd™„ Zrdš„ Zsej.         /                    d“eeg¦  «        d›„ ¦   «         Ztej.         /                    d†ejh        ejD        eji        ejj        ejk        g¦  «        dœ„ ¦   «         Zuej.         /                    d�dždŸg¦  «        d „ ¦   «         Zvej.         /                    d¡d¢g d£¢fd¤g d¥¢fg¦  «        d¦„ ¦   «         Zwej.         /                    d§dvej?        g¦  «        d¨„ ¦   «         Zxej.         /                    d§dvej?        g¦  «        d©„ ¦   «         Zyej.         /                    dªd«g d¬¢e8d«d=fd­g d®¢e8d«d<fd{d¯d°ge8d{d=fd¯g d±¢e8d²d=fd\g d³¢ezd\d=fd<g d´¢ezd\d<fd\g dµ¢ezd\d=fd<g d¶¢ezd\d=fg¦  «        d·„ ¦   «         Z{ej.         /                    d¸g d¢¦  «        d¹„ ¦   «         Z|dº„ Z}ej.         /                    d»dndog¦  «        d¼„ ¦   «         Z~d½„ Zd¾„ Z€d¿„ Z�ej.         /                    dÀej‚        ejf        g¦  «        dÁ„ ¦   «         Zƒej.         /                    dÂdÃdÄg¦  «        ej.         /                    d»dndog¦  «        dÅ„ ¦   «         ¦   «         Z„ej.         /                    dÂdÃdÄg¦  «        ej.         /                    dg d¢¦  «        ej.         /                    d»dndog¦  «        dÆ„ ¦   «         ¦   «         ¦   «         Z…dS )Çé    N©Ú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_equalc                 óJ   — t          | |¦  «         | j        |j        k    sJ ‚d S ©N)r   Údtype©ÚxÚys     úh/var/www/html/services/rag-service/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                 óX  — d|›d|›d�}t           }| j        j        dk    s|j        j        dk    rt          }t	          ||¬¦  «        }|                     | ¦  «                             |                      ¦   «         ¦  «        } ||j        || 	                    d¦  «        ¬¦  «          |||| 	                    d¦  «        ¬¦  «         t	          ||¬¦  «        }|                     t          j        | ¦  «        ¦  «         |                     t          j        |                      ¦   «         ¦  «        ¦  «        }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   Ú
csc_matrixÚissparseÚtoarray)	ÚXÚX_truer+   Ú
statisticsr*   r,   Ú	assert_aeÚimputerÚX_transs	            r"   Ú_check_statisticsr<   )   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•Ô! !Ñ$Ô$Ñ%Ô%Ð%Ø×Ò¥Ô 1°!·&²&±(´(Ñ ;Ô ;Ñ<Ô<€Gå„�wÑÔð $Ø—/’/Ñ#Ô#ˆà€IˆgÔ! :°w·~²~ÀdÑ7KÔ7KÐLÑLÔLÐLØ€Iˆg�v w§~¢~°dÑ';Ô';Ð<Ñ<Ô<Ð<Ð<Ð<r$   r+   )ÚmeanÚmedianÚmost_frequentÚconstantc                 óš  — t           j                             dd¦  «        }t           j        |d d d…<   t	          | ¬¦  «        }|                     t          j        |¦  «        ¦  «        }|j        dk    sJ ‚|                     |¦  «        }|j        dk    sJ ‚t          | ¬¦  «        }|                     |¦  «        }|j        dk    sJ ‚d S )Né
   é   ©r+   )rB   rC   )Úinitial_strategy)
ÚnpÚrandomÚrandnÚnanr   Úfit_transformr   Ú
csr_matrixÚshaper   )r+   r6   r:   Ú	X_imputedÚiterative_imputers        r"   Útest_imputation_shaperO   N   sÎ   € õ 	Œ	�Š˜˜AÑÔ€AÝŒV€A€c€cˆ€c�Få XÐ.Ñ.Ô.€GØ×%Ò%¥fÔ&7¸Ñ&:Ô&:Ñ;Ô;€IØŒ?˜gÒ%Ð%Ð%Ð%Ø×%Ò% aÑ(Ô(€IØŒ?˜gÒ%Ð%Ð%Ð%å(¸(ÐCÑCÔCÐØ!×/Ò/°Ñ2Ô2€IØŒ?˜gÒ%Ð%Ð%Ð%Ð%Ð%r$   ©r=   r>   r?   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   rD   ÚSkipping©Úmatch)	rF   ÚonesrI   r   r.   ÚpytestÚwarnsÚUserWarningr/   ©r+   r6   r:   s      r"   Ú test_imputation_deletion_warningr]   _   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   é   é   rC   rB   ©ÚcolumnsrD   z6Skipping features without any observed values: \['b'\]rV   )rY   ÚimportorskiprF   rI   ÚarrayÚobjectÚ	DataFramer   r.   r   Úfeature_names_in_rZ   r[   r/   )r+   Úpdr*   Úfeature_namesr6   r:   s         r"   Ú.test_imputation_deletion_warning_feature_namesrq   i   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c                 óò  — t          j        d¦  «        }d|d<   t          j        |¦  «        }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 )NrR   r   )r+   r*   zProvide a dense arrayrV   )rF   rX   r   r3   r   rY   ÚraisesÚ
ValueErrorr.   r5   r/   r\   s      r"   Útest_imputation_error_sparse_0ru   ƒ   s`  € õ 	Œ�‰Œ€AØ€A€a�DÝÔ˜!ÑÔ€Aå X¸aÐ@Ñ@Ô@€GÝ	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ø�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡K‚K�—	’	‘”ÑÔÐÝ	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA<Á<B ÂB Ã	C,Ã,C0Ã3C0c                 óœ   — t          | d¦  «        r| j        nt          | ¦  «        }|dk    rt          j        nt          j        | g|¢R i |¤ŽS ©NÚsizer   )Úhasattrrx   ÚlenrF   rI   r>   ©Ú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 rw   )ry   rx   rz   rF   rI   r=   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            
      ór  — 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   rB   rf   rg   rC   r=   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r   )r‚   rF   Úhstack©ÚzÚvÚps      r"   ú<lambda>z-test_imputation_mean_median.<locals>.<lambda>­   s   € ­µ2´9¸aÀ¸VÑ3DÔ3DÑ)EÔ)E€ r$   r>   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r   )r€   rF   r…   r†   s      r"   rŠ   z-test_imputation_mean_median.<locals>.<lambda>®   s   € ­;µr´yÀ!ÀQÀÑ7HÔ7HÑ+IÔ+I€ r$   )Úaxis)rF   rG   ÚRandomStateÚzerosÚarangerI   ÚemptyÚrangeÚmaxÚrepeatÚpermutationrz   r…   ÚshuffleÚisnanÚanyÚallr<   )ÚrngÚdimÚdecrL   rŽ   ÚvaluesÚtestsr+   Útest_missing_valuesÚtrue_value_funr6   r7   Útrue_statisticsÚjÚnb_zerosÚnb_missing_valuesÚ	nb_valuesr‡   r‰   rˆ   Úcols_to_keeps                        r"   Útest_imputation_mean_medianr¦   Ÿ   sp  € õ Œ)×
Ò
 Ñ
"Ô
"€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ð
 :?ð .Uñ .UÑ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¨Ð@SÑTÔTÐTÑTð].Uð .U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   rT   éûÿÿÿrg   éüÿÿÿéÿÿÿÿrC   ©r   r   r   )rT   rT   rT   )r¨   r   ç      À)r   rT   ç      @)rg   rT   ç      @)r©   r¨   ç      À)rª   rC   ç      à?)r   rT   r   r¬   r­   r®   r¯   r°   r>   )rF   rk   rI   Ú	transposer<   )r6   Ú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ð ð =Ð<Ð<Ðå�aÐ)¨8Ð5FÍÌÑOÔOÐOÐOÐOr$   r=   r>   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©ra   rb   rS   ©rg   Úeé   ©ÚgÚhé	   re   ú4non-numeric data:
could not convert string to float:rV   rD   )rF   rk   rY   rs   rt   r   rJ   )r+   r   r6   Úmsgr:   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ÚtypeÚlistÚ	dataframec                 ó0  — g d¢g d¢g d¢g}|dk    r)t          j        d¦  «        }|                     |¦  «        }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_   r¾   rV   rD   )rY   rj   rm   rs   rt   r   rJ   )r+   rÁ   r6   ro   r¿   r:   s         r"   Ú:test_imputation_mean_median_error_invalid_type_list_pandasrÅ     sè   € ð 
ˆˆ˜˜˜ ] ] ]Ð3€AØˆ{ÒÐÝÔ  Ñ*Ô*ˆØ�LŠL˜‰OŒOˆØ
A€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð !ð !Ý¨Ð2Ñ2Ô2ˆØ×Ò˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Á&BÂBÂBr@   r?   Ú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 )Nra   r(   rc   rd   rb   r¼   re   z#SimpleImputer does not support datarV   rD   )	rF   rk   rI   rY   rs   rt   r   r.   r/   )r+   r   r6   r,   r:   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   rT   )rª   rC   rª   rS   )rª   rf   rS   rª   )rª   rC   rS   é   )rC   r   rT   )rC   rS   rS   )rf   rS   rS   )rC   rS   rË   r?   rC   rS   rª   )rF   rk   r<   rI   )r6   r7   s     r"   Útest_imputation_most_frequentrÌ   .  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ÑHÔHÐHÐHÐHr$   Ú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 )Nra   r(   rc   rd   rb   r¼   re   )rc   ra   r(   )rc   rd   rd   )rb   rd   rd   )rc   rd   r¼   r?   r)   )rF   rk   rl   r   r.   r/   r   ©rÍ   r6   r7   r:   r;   s        r"   Ú%test_imputation_most_frequent_objectsrÒ   I  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 )
Nr_   ú,Cat1,Cat2,Cat3,Cat4
,i,x,
a,,y,
a,j,,
b,j,x,re   )ra   Úir    )ra   r¡   r!   )ra   r¡   r    )rb   r¡   r    r?   rD   ©rY   rj   ÚioÚStringIOÚread_csvrF   rk   rl   r   rJ   r   ©r   ro   r(   Údfr7   r:   r;   s          r"   Ú$test_imputation_most_frequent_pandasrÝ   f  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)rf   r   ç      ð?c                 óþ   — t          j        d| t          ¬¦  «        }||d<   t          j        t
          d¬¦  «        5  t          |dd¬¦  «        }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrR   re   ©r   r   zimputing numericalrV   r@   r    ©r*   r+   Ú
fill_value)rF   ÚfullÚfloatrY   rs   rt   r   rJ   )ÚX_dataÚmissing_valuer6   r:   s       r"   Ú+test_imputation_constant_error_invalid_typerç   z  sÎ   € õ 	Œ�˜¥eÐ,Ñ,Ô,€AØ€A€d�Gå	Œ•zÐ)=Ð	>Ñ	>Ô	>ð !ð !ÝØ(°:È#ð
ñ 
ô 
ˆð 	×Ò˜aÑ Ô Ð ð	!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   ½(A2Á2A6Á9A6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	d
d¬¦  «        }|                     | ¦  «        }t	          ||¦  «         d S )N©rª   rC   rS   rª   ©rg   rª   rT   rª   ©r¹   rË   rª   rª   ©é   r½   r   rª   )r   rC   rS   r   )rg   r   rT   r   )r¹   rË   r   r   )rí   r½   r   r   rª   r@   r   rá   )rF   rk   r   rJ   r   )r6   r7   r:   r;   s       r"   Ú test_imputation_constant_integerrî   ‡  s�   € å
Œ�.�.�. . . .°.°.°.À-À-À-ÐPÑQÔQ€AåŒX�|�|�| \ \ \°<°<°<ÀÀÀÐNÑOÔO€Få¨2¸
ÈqÐQÑQÔQ€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¦  «        } | |¦  «        } | |¦  «        }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@   rª   )r+   râ   )rF   rk   rI   r   rJ   r   )rï   r6   r7   r:   r;   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ð 	Ð˜!ÑÔ€AàÐ˜vÑ&Ô&€Få Z¸BÐ?Ñ?Ô?€GØ×#Ò# AÑ&Ô&€Gå  ¨&Ñ1Ô1Ð1Ð1Ð1r$   c           	      ó   — 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d¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nra   rb   rc   rd   r¸   r(   r»   r¼   rÖ   re   )Úmissingra   rb   rø   )rc   rø   rd   rø   )r¸   r(   rø   rø   )r»   r¼   rÖ   rø   r@   rø   rá   )rF   rk   rl   r   rJ   r   rÑ   s        r"   Útest_imputation_constant_objectrù   ­  sâ   € õ 	Œà�S˜#˜vÐ&Ø�&˜#˜vÐ&Ø�#�v˜vÐ&Ø�#�s˜FÐ#ð		
õ ð	ñ 	ô 	€Aõ ŒXà,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø&Ð&Ð&ð		
õ ðñ ô €Fõ Ø¨
¸yðñ ô €Gð ×#Ò# AÑ&Ô&€Gå�w Ñ'Ô'Ð'Ð'Ð'r$   c                 ó<  — t          j        d¦  «        }t          j        d¦  «        }|                     || ¬¦  «        }t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        }t          d¬	¦  «        }| 	                    |¦  «        }t          ||¦  «         d S )
Nr_   rÕ   re   )ræ   rÖ   r    ræ   )ra   ræ   r!   ræ   )ra   r¡   ræ   ræ   )rb   r¡   r    ræ   r@   rD   r×   rÛ   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õ  ZÐ0Ñ0Ô0€GØ×#Ò# BÑ'Ô'€Gå�w Ñ'Ô'Ð'Ð'Ð'r$   r6   rf   rC   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   rf   rC   )r   r.   Ún_iter_rF   rI   )r6   r:   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   r:   ©r*   r   ©Úrandom_stateÚimputer__strategyrP   rf   )	r   Údatar   r   r   ÚDecisionTreeRegressorr5   r   r.   )r6   r*   Ú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 )NrT   g      è?r   ©r  r  r=   T)r*   r+   r0   rª   rà   F)r   r0   r5   r   r.   r/   rF   r˜   r  r   Útocsc)ÚX_origr6   r:   ÚXts       r"   Útest_imputation_copyr    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   rB   r  r  )Úmax_iterrT   )rF   rG   r�   r   r5   rI   r   rJ   r   Úinitial_imputer_r/   r.   r˜   rý   )r™   Únrd   r6   Úmissing_flagr:   rM   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   rS   r  r  rf   )r*   r  ÚverboserC   )rF   rG   r�   r   r5   r   r.   r/   )r™   r  rd   r6   r:   s        r"   Útest_iterative_imputer_verboser  G  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   rS   r   rf   )r*   r  )rF   rŽ   r   rJ   r   r  r/   )r  rd   r6   r:   rM   s        r"   Ú"test_iterative_imputer_all_missingr  U  sk   € Ø€AØ	€AÝ
Œ�!�Q�ÑÔ€AÝ¨a¸!Ð<Ñ<Ô<€GØ×%Ò% aÑ(Ô(€IÝ�I˜wÔ7×AÒAÀ!ÑDÔDÑEÔEÐEÐEÐEr$   Úimputation_order)rG   Ú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   rB   rC   r  r  rf   rT   FT)
r*   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>v  s   € ÐDÐDÐD !�1”:ÐDÐDÐDr$   r   r#  rª   rG   Úending)rF   rG   r�   r   r5   r   rJ   Úimputation_sequence_rz   rý   Ún_features_with_missing_r˜   r�   )
r  r™   r  rd   r  r6   r:   Úordered_idxÚordered_idx_round_1Úordered_idx_round_2s
             r"   Ú'test_iterative_imputer_imputation_orderr6  ^  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   rB   r  r  rf   )r*   r  r7  r  )rF   rG   r�   r   r5   r   rJ   r1  rÁ   r   Ú
isinstancer7  ÚappendÚidrz   Úset)	r7  r™   r  rd   r6   r:   ÚhashesÚtripletÚexpected_types	            r"   Ú!test_iterative_imputer_estimatorsr@  †  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   rB   r  r  rf   çš™™™™™É?)r*   r  r(  r)  r  ©
rF   rG   r�   r   r5   r   rJ   r   Úminr’   ©r™   r  rd   r6   r:   r  s         r"   Útest_iterative_imputer_cliprF  ¢  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   rB   r  r  rf   rC   rT   TrB  rG   )	r*   r  r%  r&  r(  r)  r  r  r  rC  rE  s         r"   Ú%test_iterative_imputer_clip_truncnormrH  ²  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é*   )rT   rT   )rx   r   r°   T)r(  r)  r&  r  c                 óR   •— g | ]#}‰                      ‰¦  «        d          d          ‘Œ$S )r   )r/   )r.  Ú_r6   r:   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=rB  r  z&The posterior does appear to be normal)rF   rG   r�   ÚnormalrI   r   rJ   rk   r‘   r˜   r=   Ústdr   )r™   ÚimputationsÚmuÚsigmaÚks_statisticÚp_valuer6   r:   s         @@r"   Ú1test_iterative_imputer_truncated_normal_posteriorrU  Ê  sf  øø€ õ Œ)×
Ò
 Ñ
#Ô
#€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   rB   rS   )ÚlowÚhighrx   rf   rà   )r*   r  rE   r  r)   )	rF   rG   r�   Úrandintr   r.   r   r   r/   )r+   r™   r  rd   ÚX_trainÚX_testr:   Úinitial_imputers           r"   Ú+test_iterative_imputer_missing_at_transformr]  ë  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   rf   r   rB   r  r  T)r*   r  r&  r  Fr!  )r*   r  r&  r%  r  r  )rF   rG   r�   r   r5   r   r.   r/   r=   rY   Úapproxr   )Úrng1Úrng2r  rd   r6   r:   Ú
X_fitted_1Ú
X_fitted_2Úimputer1Úimputer2ÚX_fitted_1aÚX_fitted_1bs               r"   Ú.test_iterative_imputer_transform_stochasticityrh    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   rB   )r  r  rf   )
rF   rG   r�   ÚrandrI   r   r.   r/   rJ   r   )r™   r6   Úm1Úm2Úpred1Úpred2s         r"   Ú!test_iterative_imputer_no_missingro  4  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   rf   r°   rT   ©r  r  r  g{®Gáz”?©Úatol)
rF   rG   r�   rj  Údotr0   rI   r   rJ   r   )	r™   rd   ÚAÚBr6   Únan_maskÚ	X_missingr:   ÚX_filleds	            r"   Útest_iterative_imputer_rank_oner{  B  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$   ÚrankrS   rT   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°   rC   rT   r"  rf   )r  r  r  r  r  rs  )rF   rG   r�   rj  ru  r0   rI   r   r.   r/   r   )r|  r™   r  rd   rv  rw  rz  rx  ry  rZ  ÚX_test_filledr[  r:   Ú
X_test_ests                 r"   Ú)test_iterative_imputer_transform_recoveryr�  Q  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   rB   rC   g      Ð?rf   rr  gü©ñÒMbP?ç{®Gáz„?)Úrtolrt  )rF   rG   r�   rH   rŽ   rL   r‘   rj  r0   rI   r   r.   r/   r   )r™   r  rd   rv  rw  rz  rÖ   r¡   rx  ry  rZ  r  r[  r:   r€  s                  r"   Ú&test_iterative_imputer_additive_matrixr…  j  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   rq  rT   rf   r°   r   rƒ  F)r  Útolr&  r  r  )r  r&  r  r  gH¯¼šò×z>rs  )rF   rG   r�   rj  ru  r0   rI   r   rJ   rz   r1  rý   r   r.   r  )r™   r  rd   rv  rw  r6   rx  ry  r:   Ú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_yrf   rS   r   g333333Ã?F)rx   ÚreplacerT   )r%  r&  Úerror)r   rL   rF   rG   r�   r‘   Úchoicer�   ÚintrI   r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningrJ   r—   r–   )
r6   r!   Ú	n_samplesÚ
n_featuresr™   Úmissing_rateÚfeatÚ
sample_idxr:   Ú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¨   rT   rB   )r   éÈ   i,  r¨   rB   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   rB   rS   ©r(  r)  rf   )rF   rG   r�   rH   r   r.   r9  Ú
_min_valueÚndarrayÚ
_max_valuerL   r   )r(  r)  Úcorrect_outputr6   r:   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Ð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 shapec                 óø   — t           j                             d¦  «        }t          | |¬¦  «        }t          j        t
          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rB   rS   r¢  rV   )rF   rG   r   rY   rs   rt   r.   )r(  r)  r,   r6   r:   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öÿÿÿrg   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 )
NrC   rf   rB   rË   rS   rg   rT   r   )r(  r)  r  )rF   rk   rI   r   r.   r/   r   )Ú	min_max_1Ú	min_max_2rZ  r[  rd  re  Ú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$   r'  TFc                 ó*  — 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   )rT   rC   rC   rf   )rB   rf   rC   rË   )rS   rf   rf   rf   )rí   rg   rC   rC   rC   rg   rT   rf   rB   r=   )rE   r'  r  )é   rË   é   g-Cëâ6?)r„  )
rF   rG   r�   rk   rI   r   r.   r/   r   r=   )r'  r™   rZ  r[  r:   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__!  s   € Ø ,ˆDÔÐÐr$   c                 ó   — | S r   r+  )r½  r}   Úkgardss      r"   r.   zGtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.fit$  s   € ØˆKr$   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )rF   rŽ   rL   )r½  r6   s     r"   ÚpredictzKtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.predict'  s   € Ý”8˜AœG AœJÑ'Ô'Ð'r$   N)Ú__name__Ú
__module__Ú__qualname__r¾  r.   rÂ  r+  r$   r"   ÚZeroEstimatorr»     sA   € € € € € ð	-ð 	-ð 	-ð	ð 	ð 	ð	(ð 	(ð 	(ð 	(ð 	(r$   rÆ  r  rª  )r   rF   rŽ   r.   r  )r¶  r¸  rÆ  r7  r:   rZ  s         r"   Ú,test_iterative_imputer_dont_set_random_staterÇ    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 fitra   rb   rc   re   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  rV   r+  )r   Ú
set_paramsrY   rs   rt   r.   r/   )ÚX_fitr;   ÚparamsÚmsg_errÚ	indicators        r"   Útest_missing_indicator_errorrÑ  1  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zmissing_values, dtype, arr_typez,param_features, n_features, features_indices©r   rf   rC   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 )Nrf   rg   rC   ©rg   r´  rB   )rf   rf   r   )r   r   rf   r«   F)r*   rÊ  r   Tr   Úcsc)rF   rk   Úastyper   rJ   r/   rL   r   Ú	features_r   r   Úboolr9  r¤  rÌ  r2   r5   )r*   Úarr_typer   Úparam_featuresr–  Úfeatures_indicesrÍ  r;   Ú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â  I  sÎ  € õ2 Œ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   rf   rg   rC   rÔ  r  z"Sparse input with missing_values=0rV   )rF   rk   r   rY   rs   rt   rJ   r/   )rÙ  r*   rÍ  r;   Ú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missing_values, arr_typec                 ó¢  — 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 )Nrf   rg   rC   rÔ  )r*   r   TrÕ  rÉ  r   F)rF   rk   rÖ  Úfloat64r   rJ   r/   r2   r9  r¤  r   r4   )rÙ  r*   rç  rÍ  r;   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©ra   rb   rc   )rb   rc   ra   re   ra   r˜   )r*   rÊ  )TFF)FFT)rF   rk   rl   r   rJ   r   )r6   rÐ  r;   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)rb   rb   TF)rb   rb   FT)rÞ   rÞ   TF)rÞ   rÞ   FTc                 óª   — t          t          |d¬¦  «        t          |¬¦  «        ¦  «        }|                     | ¦  «        }t	          ||¦  «         d S )Nr?   r)   r  )r   r   r   rJ   r   )r6   r*   ÚX_trans_expÚtransr;   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 )NrJ  rB   rà   r  rV   )rF   rG   r�   rH   rY   rs   rt   rJ   )rò  Úimputer_missing_valuesræ   r,   r™   r6   r:   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 )Nrf   rÈ  rª   ©rÊ  r*   r   )rF   rk   r   rJ   rL   ©r6   Úmir  s      r"   Ú!test_missing_indicator_no_missingrû    sb   € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€Aå	 >À"Ð	EÑ	EÔ	E€BØ	×	Ò	˜!Ñ	Ô	€BàŒ8�AŒ;˜!ÒÐÐÐÐÐr$   c                  óä   — t          j        g d¢g d¢g d¢g¦  «        } t          dd¬¦  «        }|                     | ¦  «        }|                     ¦   «         |                     ¦   «         k    sJ ‚d S )NrÒ  )rf   rC   r   )rC   r   rf   r˜   rf   rø  )r   rK   r   rJ   ÚgetnnzÚsumrù  s      r"   Ú/test_missing_indicator_sparse_no_explicit_zerosrÿ    ss   € õ 	Ô˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€Aå	 5¸Ð	;Ñ	;Ô	;€BØ	×	Ò	˜!Ñ	Ô	€Bà�9Š9‰;Œ;˜"Ÿ&š&™(œ(Ò"Ð"Ð"Ð"Ð"Ð"r$   c                 óŠ   — t          j        ddgddgg¦  «        } | ¦   «         }|                     |¦  «         |j        �J ‚d S )Nrf   )rF   rk   r.   Ú
indicator_)rò  r6   r:   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 )Nrf   rT   rC   r¹   rS   )rf   rC   r½   )ç      @rÞ   ç      @rÞ   ç        r  )ç       @r  rÞ   r  rÞ   r  )g      @r  r  r  r  rÞ   )rÞ   r  g      "@r  r  r  T)r*   Úadd_indicator)
rF   rI   rk   r   rJ   r   r4   rL   r   r5   )rÙ  ÚX_sparser7   r:   r;   s        r"   Ú2test_simple_imputation_add_indicator_sparse_matrixr
  2  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)r?   rb   )r@   ræ   c                 óÖ   — ddgdt           j        gg}t          j        ddgd|ggt          ¬¦  «        }t	          | ¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nra   rb   rc   re   rD   )rF   rI   rk   rl   r   rJ   r   )r+   Úexpectedr6   r7   r:   r;   s         r"   Ú"test_simple_imputation_string_listr  O  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!  )rS   rg   rC   r   rf   r"  )rf   r   rC   rg   rS   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 )NrJ  r   rT   rq  rf   é   r   é   rC   rB   rg   )r  r  r  c                 ó   — g | ]	}|j         ‘Œ
S r+  r,  )r.  r    s     r"   r/  z)test_imputation_order.<locals>.<listcomp>n  s   € Ð<Ð<Ð<˜aˆqŒzÐ<Ð<Ð<r$   )rF   rG   r�   rj  rI   rY   rZ   r	   r   r.   r1  )ÚorderÚ	idx_orderr™   r6   Ú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½   rS   rª   ©rg   rª   rT   rg   r¹   rË   rí   r   )rT   rg   rC   rf   rC   rf   rg   rT   )rf   rf   rf   rS   )rC   rS   rS   rg   r=   T)r*   r+   r  )rF   rk   r   rJ   Úinverse_transformr/   r   )ræ   ÚX_1ÚX_2ÚX_3ÚX_4r:   Ú	X_1_transÚX_1_inv_transÚ	X_2_transÚX_2_inv_transr6   r;   ÚX_inv_transs                r"   Ú(test_simple_imputation_inverse_transformr#  r  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½   rS   rª   r  r¹   rË   rí   r   r=   r)   zGot 'add_indicator=ú'rV   )	rF   rk   r   rJ   rY   rs   rt   r  r  )ræ   r  r:   r  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(  Úvaluer(  Úmin_valuevalue)r(  r(  r)  r‡   )rf   rC   rS   )rf   rf   rC   )r  r  rf   )rf   rf   r  c                 ó\   — | t          t          j        ||¬¦  «        ||¦  «        k    sJ ‚d S )Nre   )r   rF   rk   )r  rk   r   r'  Ún_repeats        r"   Útest_most_frequentr-  ¿  sG   € ð, •~Ý
Œ�˜eÐ$Ñ$Ô$ k°8ñô ò ð ð ð ð ð r$   rE   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).
    rf   rC   rS   T)rE   Úkeep_empty_featuresNr   )rF   rk   rI   r   rJ   r   r/   )rE   r6   r:   rM   s       r"   Ú*test_iterative_imputer_keep_empty_featuresr0  Ú  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                  óÎ   — t          j        g d¢g d¢g d¢g d¢g¦  «        } d}t          dd|d¬	¦  «        }|                     | ¦  «         t	          |j        j        |¦  «         d
S )z<Check that we propagate properly the parameter `fill_value`.ré   rê   rë   rì   r   rª   r@   r   )r*   rE   râ   r  N)rF   rk   r   rJ   r   r  r1   )r6   râ   r:   s      r"   Ú*test_iterative_imputer_constant_fill_valuer2  ì  s�   € å
Œ�.�.�. . . .°.°.°.À-À-À-ÐPÑQÔQ€Aà€JÝØØ#ØØð	ñ ô €Gð ×Ò˜!ÑÔÐÝ�wÔ/Ô;¸ZÑHÔHÐHÐHÐHr$   r/  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`.rf   rC   rS   )r/  ©rJ   r/   Nr   )rF   rk   rI   r   ÚgetattrrL   r   )r/  r6   r:   ÚmethodrM   s        r"   Ú$test_knn_imputer_keep_empty_featuresr7  û  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 )"Nr_   Úfeature)ÚabcNÚdeÚstringre   r@   Únará   r:  r;  )r:  r;  ÚfghÚok)râ   r+   r>  )rf   NrS   ÚInt64rª   rf   rS   ré  )rf   NrC   rS   r>   r)   rC   )rf   NrC   r=   rõ   )rÞ   Nr  g       ÀrÞ   r  )rÞ   Nr  r  r  )rY   rj   rm   ÚSeriesr   ÚNAr#   rJ   rF   rk   rl   r&   rI   )ro   rÜ   r:   s      r"   Útest_simple_impute_pd_narC    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.r_   rf   rg   rC   rB   r`   rh   r  )Úmissingindicator_aÚmissingindicator_bÚmissingindicator_dN)	rY   rj   rF   rI   rm   r   r.   Úget_feature_names_outr   )ro   r*   r6   rÐ  rp   Úexpected_namess         r"   Ú(test_missing_indicator_feature_names_outrJ  G  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.
    ra   rb   rc   r?   rD   N)r   r.   r/   rF   rI   r   rl   r   )r6   Úimp_frequentr;   s      r"   Ú test_imputer_lists_fit_transformrM  Z  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ÍÌÌÌÌÌ@rC   rf   re   N)rF   ÚasarrayrI   ré  r   r.   r/   r   )rN  r6   Úimpr[  r;   s        r"   Ú.test_imputer_transform_preserves_numeric_dtyperR  g  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_typerk   r   c                 ó¤  — t          j        t           j        dgt           j        dgt           j        dgg¦  «        }t          || ¦  «        }d}t	          d||¬¦  «        }dD ]m} t          ||¦  «        |¦  «        }|j        |j        k    sJ ‚| dk    r|d	d	…d
f                              ¦   «         n|d	d	…d
f         }t          ||¦  «         Œnd	S )z·Check the behaviour of `keep_empty_features` with `strategy='constant'.
    For backward compatibility, a column full of missing values will always be
    fill and never dropped.
    rC   rS   r¹   rB   r@   )r+   râ   r/  r4  r   Nr   ©	rF   rk   rI   r   r   r5  rL   r5   r   )rS  r/  r6   râ   r:   r6  rM   Úconstant_features           r"   Ú0test_simple_imputer_constant_keep_empty_featuresrW  t  sø   € õ 	Œ•2”6˜1�+¥¤¨˜{­R¬V°Q¨KÐ8Ñ9Ô9€AÝ˜1˜jÑ)Ô)€AØ€JÝØØØ/ðñ ô €Gð 1ð 9ð 9ˆØ,•G˜G VÑ,Ô,¨QÑ/Ô/ˆ	ØŒ !¤'Ò)Ð)Ð)Ð)à)3°xÒ)?Ð)?ˆI�a�a�a˜�dŒO×#Ò#Ñ%Ô%Ð%ÀYÈqÈqÈqÐRSÈtÄ_ð 	õ 	Ð+¨ZÑ8Ô8Ð8Ð8ð9ð 9r$   c                 óô  — t          j        t           j        dgt           j        dgt           j        dgg¦  «        }t          ||¦  «        }t	          | |¬¦  «        }dD ]˜} t          ||¦  «        |¦  «        }|rS|j        |j        k    sJ ‚|dk    r|dd…df                              ¦   «         n|dd…df         }t          |d¦  «         Œp|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'.
    rC   rS   r¹   )r+   r/  r4  r   Nr   rf   rU  )r+   rS  r/  r6   r:   r6  rM   rV  s           r"   Ú'test_simple_imputer_keep_empty_featuresrY  �  s#  € õ 	Œ•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Ò-Ð-Ð-Ð-à-7¸8Ò-CÐ-C�	˜!˜!˜!˜Q˜$”×'Ò'Ñ)Ô)Ð)ÈÐSTÐSTÐSTÐVWÐSWÌð õ Ð/°Ñ3Ô3Ð3Ð3à”? q¤w¨q¤z°1´7¸1´:À±>Ð&BÒBÐBÐBÐBÐBð	Cð 	Cr$   )†rØ   r‘  ÚnumpyrF   rY   Ú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   r#   r&   r<   ÚmarkÚparametrizerO   r]   rq   ru   r€   r‚   r¦   r´   rl   ÚstrrÀ   rÅ   r   rÉ   rÌ   rI   rÒ   rÝ   rç   rî   rK   rP  rö   rù   rû   rþ   r  r  r  r  r  r6  r@  rF  rH  rU  r]  rh  ro  r{  r�  r…  rŠ  r›  rk   rž  r§  r«  r±  rµ  rG   r�   rÇ  rÑ  ré  Úint32r3   Ú
coo_matrixÚ
lil_matrixÚ
bsr_matrixrâ  ræ  rê  rí  rñ  rö  rû  rÿ  r  r
  r  r  r#  r&  r�  r-  r0  r2  r7  rC  rJ  rM  Úfloat32rR  rW  rY  r+  r$   r"   ú<module>rq     sÈ  ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø 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Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð
ð ð ð
"=ð "=ð "=ðJ „×Ò˜Ð%TÐ%TÐ%TÑUÔUð&ð &ñ VÔUð&ð  „×Ò˜Ð%HÐ%HÐ%HÑIÔIðð ñ JÔIðð „×Ò˜Ð%HÐ%HÐ%HÑIÔIðð ñ JÔIðð2 „×Ò˜Ð%TÐ%TÐ%TÑUÔUðð ñ VÔUððFð Fð FðDð Dð Dð@Uð @Uð @UðFPð Pð Pð@ „×Ò˜ f¨hÐ%7Ñ8Ô8Ø„×Ò˜ 4¨°Ð"5Ñ6Ô6ð!ð !ñ 7Ô6ñ 9Ô8ð!ð „×Ò˜ f¨hÐ%7Ñ8Ô8Ø„×Ò˜ &¨+Ð!6Ñ7Ô7ð!ð !ñ 8Ô7ñ 9Ô8ð!ð „×Ò˜ j°/Ð%BÑCÔCØ„×Ò˜ 3¨¨¬°©¬°x°r´xÀ±}´}Ð"EÑFÔFð$ð $ñ GÔFñ DÔCð$ð&Ið Ið Ið6 „×Ò˜ D¨"¬&°%¸¸QÐ#?Ñ@Ô@ð(ð (ñ AÔ@ð(ð8 „×Ò˜ 6¨:Ð"6Ñ7Ô7ð(ð (ñ 8Ô7ð(ð& „×ÒÐ0°6¸CÀÄ¸=Ð2IÑJÔJð	!ð 	!ñ KÔJð	!ð	(ð 	(ð 	(ð „×ÒÐ,¨vÔ/@À"Ä*Ð.MÑNÔNð2ð 2ñ OÔNð2ð2 „×Ò˜ D¨"¬&°%¸¸QÐ#?Ñ@Ô@ð(ð (ñ AÔ@ð(ð< „×Ò˜ 6¨:Ð"6Ñ7Ô7ð(ð (ñ 8Ô7ð(ð0 „×Ò˜   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ˆ�-�-�-Ð!=Ð>ðñô ðð ñô ðð „×ÒØØˆ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ð „×ÒØ%à	Œ�”˜RœXÐ&Ø	
ˆBŒH�b”hÐØ	ˆRŒX�r”xÐ Ø	Œ�”˜VÔ.Ð/Ø	ˆRŒX�vÔ(Ð)Ø	Œ�”˜VÔ.Ð/Ø	ˆRŒX�vÔ(Ð)Ø	Œ�”˜VÔ.Ð/Ø	ˆRŒX�vÔ(Ð)Ø	Œ�”˜VÔ.Ð/Ø	ˆRŒX�vÔ(Ð)Ø	Œ�”˜VÔ.Ð/Ø	ˆRŒX�vÔ(Ð)ðñô ð$ „×ÒØ2Ø�a˜˜œ ) ) )Ñ,Ô,Ð-°°q¸(¸"¼(À9À9À9Ñ:MÔ:MÐ/NÐOñô ð)Að )Añ	ô ñ%ô ð,)AðX „×ÒØàÔØÔØÔØÔØÔðñ	ô 	ð,ð ,ñ	ô 	ð,ð* „×Ò˜Ð)>Ð)>Ð)>Ñ?Ô?Ø„×ÒØà	Œ�”ÐØ	
ˆBŒ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ð!ðð ð ð#ð #ð #ð „×ÒÐ.°Ð@PÐ0QÑRÔRð&ð &ñ SÔRð&ð „×ÒØàÔØÔØÔØÔØÔðñ	ô 	ð/ð /ñ	ô 	ð/ð& „×ÒØÐ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 Ð#ð!ñô ð*ð ñ+ô ð*ð „×ÒØÐGÐGÐGñô ð(ð (ñô ð(ðIð Ið Ið „×ÒÐ.°°u°Ñ>Ô>ðCð Cñ ?Ô>ðCð9ð 9ð 9ðx6ð 6ð 6ð&
.ð 
.ð 
.ð „×Ò˜¨¬
°B´JÐ'?Ñ@Ô@ð	'ð 	'ñ AÔ@ð	'ð „×Ò˜¨°Ð':Ñ;Ô;Ø„×ÒÐ.°°u°Ñ>Ô>ð9ð 9ñ ?Ô>ñ <Ô;ð9ð. „×Ò˜¨°Ð':Ñ;Ô;Ø„×Ò˜Ð%HÐ%HÐ%HÑIÔIØ„×ÒÐ.°°u°Ñ>Ô>ðCð Cñ ?Ô>ñ JÔIñ <Ô;ðCð Cð Cr$   