§
    ¨éUgœì  ã                   óô  — 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/m0Z0m1Z1m2Z2m3Z3 d„ Z4d„ Z5d„ Z6ej7         8                    dg d¢¦  «        ej7         8                    de2¦  «        d„ ¦   «         ¦   «         Z9ej7         8                    dg d¢¦  «        d„ ¦   «         Z:ej7         8                    dg d¢¦  «        d„ ¦   «         Z;ej7         8                    dg d¢¦  «        ej7         8                    de1¦  «        d„ ¦   «         ¦   «         Z<d„ Z=d„ Z>ej7         8                    de1¦  «        d „ ¦   «         Z?ej7         8                    de1¦  «        d!„ ¦   «         Z@ej7         8                    dd"d#g¦  «        ej7         8                    d$deAeBg¦  «        d%„ ¦   «         ¦   «         ZCej7         8                    dd"d#g¦  «        ej7         8                    d&d'd(g¦  «        d)„ ¦   «         ¦   «         ZDej7         8                    dd*d+g¦  «        ej7         8                    d$eB ejE        d,¦  «         ejE        d-¦  «        g¦  «        d.„ ¦   «         ¦   «         ZFej7         8                    de1¦  «        d/„ ¦   «         ZGej7         8                    d0dejH        d1d2d g¦  «        d3„ ¦   «         ZIej7         8                    d$eAd4g¦  «        d5„ ¦   «         ZJej7         8                    d6d7d8ejH        fg¦  «        d9„ ¦   «         ZKd:„ ZLej7         8                    d;e2ejM        gz   ¦  «        d<„ ¦   «         ZNej7         8                    d0dejH        d1d2d g¦  «        d=„ ¦   «         ZOej7         8                    d$eAd4g¦  «        d>„ ¦   «         ZPej7         8                    d?d@gdAggd@gejH        ggg¦  «        dB„ ¦   «         ZQdC„ ZRdD„ ZSdE„ ZTdF„ ZUdG„ ZVej7         8                    dHg dI¢¦  «        dJ„ ¦   «         ZWej7         8                    dKd e¦   «          e¦   «          e¦   «          e ¦   «         g¦  «        dL„ ¦   «         ZXdM„ ZYdN„ ZZdO„ Z[ej7         8                    dg d¢¦  «        dP„ ¦   «         Z\dQ„ Z]dR„ Z^dS„ Z_ej7         8                    dTdUdVg¦  «        dW„ ¦   «         Z`dX„ ZadY„ ZbdZ„ Zcej7         8                    d[d d\ ejd        d gdUz  d\gdUz  g¦  «        fdd ejd        eje         gdUz  eje        gdUz  g¦  «        feje         eje         ejd        eje         gdUz  eje        gdUz  g¦  «        fg d]¢g d^¢ ejd        g d]¢g d^¢g¦  «        fd_eje         d`gd\daeje        g ejd        d_eje         d`gd\daeje        gg¦  «        fgg db¢¬c¦  «        dd„ ¦   «         Zfej7         8                    dedfeje        eje         dgfd_dVgg dh¢difg¦  «        dj„ ¦   «         Zgej7         8                    dkddgeje         eje        gfdld`gdlgdmz  d`gdmz  gfgdndog¬c¦  «        dp„ ¦   «         Zhej7         8                    dqdrdsg¦  «        dt„ ¦   «         Ziej7         8                    dudd@ejj         k                    d@¬v¦  «        g¦  «        ej7         8                    dwdd@ejj         k                    d@¬v¦  «        g¦  «        dx„ ¦   «         ¦   «         Zlej7         8                    dy ejd        dzd@gd@dAgg¦  «         ejd        dzd@gd@dzgg¦  «        d{d|d}œd~f ejd        dd€gd�dggeB¬‚¦  «         ejd        dd€gd�dggeB¬‚¦  «        i dƒfg¦  «        d„„ ¦   «         Zmd…„ Znej7         8                    d† en¦   «         ¦  «        ej7         8                    d‡d{dU ejd        g dˆ¢¦  «        fd‰dU ejd        g dˆ¢¦  «        fg¦  «        dŠ„ ¦   «         ¦   «         Zoej7         8                    d‹e1e2z   e0z   e3z   e/z   ¦  «        dŒ„ ¦   «         Zpej7         8                    d�g dŽ¢¦  «        ej7         8                    d�ejd        d fg eq ee1e2z   e0z   e3z   e/z   ejH        g¦  «        ¦  «        z   ¦  «        d�„ ¦   «         ¦   «         Zrd‘„ Zsej7         8                    d’ ejd        dd€gd€dggeA¬‚¦  «        d ejd        g d“¢g d”¢geA¬‚¦  «        f ejd        ejH        d8gd8ejH        gg¦  «        ejH         ejd        g d•¢g d–¢g¦  «        f ejd        ejH        d€gd€ejH        ggeA¬‚¦  «        ejH         ejd        g d“¢g d”¢geA¬‚¦  «        f ejd        dd€gd€dggeA¬‚¦  «        d ejd        g d“¢g d”¢geA¬‚¦  «        fg¦  «        d—„ ¦   «         Ztej7         8                    d˜eeg¦  «        ej7         8                    d™dšejH        d›fdœg¦  «        d�„ ¦   «         ¦   «         Zudž„ Zvej7         8                    de2¦  «        dŸ„ ¦   «         Zwej7         8                    d˜eeg¦  «        d „ ¦   «         Zxej7         8                    d‹e1e2z   e0z   e3z   e/z   ¦  «        d¡„ ¦   «         Zyej7         8                    d¢d£d¤g¦  «        d¥„ ¦   «         Zzej7         8                    d¦d§g d¨¢fd©g dª¢fg¦  «        d«„ ¦   «         Z{ej7         8                    d¬dzejH        g¦  «        d­„ ¦   «         Z|ej7         8                    d¬dzejH        g¦  «        d®„ ¦   «         Z}ej7         8                    d¯d°g d±¢eAd°dAfd²g d³¢eAd°d@fdd´dµgeAddAfd´g d¶¢eAd·dAfd`g d¸¢e~d`dAfd@g d¹¢e~d`d@fd`g dº¢e~d`dAfd@g d»¢e~d`dAfg¦  «        d¼„ ¦   «         Zej7         8                    d½g d¢¦  «        d¾„ ¦   «         Z€d¿„ Z�ej7         8                    dÀdrdsg¦  «        dÁ„ ¦   «         Z‚dÂ„ ZƒdÃ„ Z„dÄ„ Z…ej7         8                    dÅej†        ej‡        g¦  «        dÆ„ ¦   «         Zˆej7         8                    dÇdÈdÉg¦  «        ej7         8                    dÀdrdsg¦  «        dÊ„ ¦   «         ¦   «         Z‰ej7         8                    dÇdÈdÉg¦  «        ej7         8                    dg d¢¦  «        ej7         8                    dÀdrdsg¦  «        dË„ ¦   «         ¦   «         ¦   «         ZŠej7         8                    de1¦  «        dÌ„ ¦   «         Z‹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_CONTAINERSc                 óJ   — t          | |¦  «         | j        |j        k    sJ ‚d S ©N)r   Údtype©ÚxÚys     ú_/var/www/surfInsights/venv3-11/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_truer1   Ú
statisticsr0   Úsparse_containerr2   Ú	assert_aeÚimputerÚX_transs
             r(   Ú_check_statisticsrB   2   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*   r1   )Ú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é
   é   ©r1   )rI   rJ   )Úinitial_strategy)ÚnpÚrandomÚrandnÚnanr   Úfit_transformÚshaper   )r1   rG   r;   r@   Ú	X_imputedÚiterative_imputers         r(   Útest_imputation_shaperU   Y   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*   ©rC   rD   rE   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   rK   ÚSkipping©Úmatch)	rM   ÚonesrP   r   r4   ÚpytestÚwarnsÚUserWarningr5   )r1   r;   r@   s      r(   Ú test_imputation_deletion_warningrb   k   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$   é   é   rJ   rI   ©ÚcolumnsrK   z6Skipping features without any observed values: \['b'\]r\   )r_   ÚimportorskiprM   rP   ÚarrayÚobjectÚ	DataFramer   r4   r   Úfeature_names_in_r`   ra   r5   )r1   Úpdr0   Úfeature_namesr;   r@   s         r(   Ú.test_imputation_deletion_warning_feature_namesrv   u   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 )NrX   r   )r1   r0   zProvide a dense arrayr\   )	rM   r^   r   r_   ÚraisesÚ
ValueErrorr4   r:   r5   )r1   rw   r;   r@   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~   ÚlenrM   rP   rD   ©Ú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€   rM   rP   rC   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   rI   rk   rl   rJ   rC   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r#   )rˆ   rM   Úhstack©ÚzÚvÚps      r(   ú<lambda>z-test_imputation_mean_median.<locals>.<lambda>»   s   € ­µ2´9¸aÀ¸VÑ3DÔ3DÑ)EÔ)E€ r*   rD   c                 óH   — t          t          j        | |f¦  «        ¦  «        S r#   )r†   rM   r‹   rŒ   s      r(   r�   z-test_imputation_mean_median.<locals>.<lambda>¼   s   € ­;µr´yÀ!ÀQÀÑ7HÔ7HÑ+IÔ+I€ r*   )Úaxis)rM   rN   ÚRandomStateÚzerosÚarangerP   ÚemptyÚrangeÚmaxÚrepeatÚpermutationr€   r‹   ÚshuffleÚisnanÚanyÚallrB   )rw   ÚrngÚdimÚdecrR   r”   ÚvaluesÚtestsr1   Ú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   rZ   éûÿÿÿrl   éüÿÿÿéÿÿÿÿrJ   ©r   r   r   )rZ   rZ   rZ   )r®   r   ç      À)r   rZ   ç      @)rl   rZ   ç      @)r¯   r®   ç      À)r°   rJ   ç      à?)r   rZ   r   r²   r³   r´   rµ   r¶   rD   )rM   rp   rP   Ú	transposerB   )rw   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*   rC   rD   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©rf   rg   rY   ©rl   Úeé   ©ÚgÚhé	   rj   ú4non-numeric data:
could not convert string to float:r\   rK   )rM   rp   r_   ry   rz   r   rQ   )r1   r$   r;   Ú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É   rd   rÄ   r\   rK   )r_   ro   rr   ry   rz   r   rQ   )r1   rÇ   r;   rt   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rF   rE   Ú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 )Nrf   r.   rh   ri   rg   rÂ   rj   z#SimpleImputer does not support datar\   rK   )	rM   rp   rP   r_   ry   rz   r   r4   r5   )r1   r$   r;   r2   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   rZ   )r°   rJ   r°   rY   )r°   rk   rY   r°   )r°   rJ   rY   é   )rJ   r   rZ   )rJ   rY   rY   )rk   rY   rY   )rJ   rY   rÑ   rE   rJ   rY   r°   )rM   rp   rB   rP   )rw   r;   r<   s      r(   Útest_imputation_most_frequentrÒ   A  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 )Nrf   r.   rh   ri   rg   rÂ   rj   )rh   rf   r.   )rh   ri   ri   )rg   ri   ri   )rh   ri   rÂ   rE   r/   )rM   rp   rq   r   r4   r5   r   ©rÓ   r;   r<   r@   rA   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 )
Nrd   ú,Cat1,Cat2,Cat3,Cat4
,i,x,
a,,y,
a,j,,
b,j,x,rj   )rf   Úir&   )rf   r§   r'   )rf   r§   r&   )rg   r§   r&   rE   rK   ©r_   ro   ÚioÚStringIOÚread_csvrM   rp   rq   r   rQ   r   ©r$   rt   r.   Údfr<   r@   rA   s          r(   Ú$test_imputation_most_frequent_pandasrã   z  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)rk   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 )NrX   rj   ©r   r   r&   úfill_value=ú
 (of type ú) cannot be castr\   rF   ©r0   r1   Ú
fill_value)rM   ÚfullÚfloatrÇ   r_   ry   rz   ÚreÚescaper   rQ   )ÚX_dataÚmissing_valuer;   rë   r2   r@   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 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°   rJ   rY   r°   ©rl   r°   rZ   r°   ©r¿   rÑ   r°   r°   ©é   rÃ   r   r°   )r   rJ   rY   r   )rl   r   rZ   r   )r¿   rÑ   r   r   )rø   rÃ   r   r   r°   rF   r   rê   )rM   rp   r   rQ   r   )r;   r<   r@   rA   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°   rF   r°   )r1   rë   )rM   rp   rP   r   rQ   r   )rú   r;   r<   r@   rA   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 )Nrf   rg   rh   ri   r¾   r.   rÁ   rÂ   rÜ   rj   )Úmissingrf   rg   r  )rh   r  ri   r  )r¾   r.   r  r  )rÁ   rÂ   rÜ   r  rF   r  rê   )rM   rp   rq   r   rQ   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 )
Nrd   rÛ   rj   )rñ   rÜ   r&   rñ   )rf   rñ   r'   rñ   )rf   r§   rñ   rñ   )rg   r§   r&   rñ   rF   rK   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*   r;   rk   rJ   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   rk   rJ   )r   r4   Ún_iter_rM   rP   )r;   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@   ©r0   r   ©Úrandom_stateÚimputer__strategyrV   rk   )	r   Údatar   r   r   ÚDecisionTreeRegressorr:   r   r4   )r;   r0   Ú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 )NrZ   g      è?r   ©r  r  rC   T)r0   r1   r6   r°   ræ   F)r   r6   r:   r   r4   r5   rM   rž   r  r   Útocsc)ÚX_origr;   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  rI   r  r  )Úmax_iterrZ   )rM   rN   r“   r   r:   rP   r   rQ   r   Úinitial_imputer_r5   r4   rž   r  )rŸ   Únri   r;   Úmissing_flagr@   rS   s          r(   Ú!test_iterative_imputer_zero_itersr$  E  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  rY   r  r  rk   )r0   r   ÚverboserJ   )rM   rN   r“   r   r:   r   r4   r5   )rŸ   r"  ri   r;   r@   s        r(   Útest_iterative_imputer_verboser'  ]  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  rY   r   rk   )r0   r   )rM   r”   r   rQ   r   r!  r5   )r"  ri   r;   r@   rS   s        r(   Ú"test_iterative_imputer_all_missingr)  k  sk   € Ø€AØ	€AÝ
Œ�!�Q�ÑÔ€AÝ¨a¸!Ð<Ñ<Ô<€GØ×%Ò% aÑ(Ô(€IÝ�I˜wÔ7×AÒAÀ!ÑDÔDÑEÔEÐEÐEÐEr*   Úimputation_order)rN   Ú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  rI   rJ   r  r  rk   rZ   FT)
r0   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+  r.  r°   rN   Úending)rM   rN   r“   r   r:   r   rQ   Úimputation_sequence_r€   r  Ún_features_with_missing_rž   r•   )
r*  rŸ   r"  ri   r   r;   r@   Úordered_idxÚordered_idx_round_1Úordered_idx_round_2s
             r(   Ú'test_iterative_imputer_imputation_orderrA  t  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  rI   r  r  rk   )r0   r   rB  r  )rM   rN   r“   r   r:   r   rQ   r<  rÇ   r   Ú
isinstancerB  ÚappendÚidr€   Úset)	rB  rŸ   r"  ri   r;   r@   ÚhashesÚtripletÚexpected_types	            r(   Ú!test_iterative_imputer_estimatorsrK  œ  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  rI   r  r  rk   çš™™™™™É?)r0   r   r3  r4  r  ©
rM   rN   r“   r   r:   r   rQ   r   Úminr˜   ©rŸ   r"  ri   r;   r@   r  s         r(   Útest_iterative_imputer_cliprQ  ¸  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  rI   r  r  rk   rJ   rZ   TrM  rN   )	r0   r   r0  r1  r3  r4  r&  r*  r  rN  rP  s         r(   Ú%test_iterative_imputer_clip_truncnormrS  È  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é*   )rZ   rZ   )r~   r   r¶   T)r3  r4  r1  r  c                 óR   •— g | ]#}‰                      ‰¦  «        d          d          ‘Œ$S ©r   )r5   )r9  Ú_r;   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=rM  r  z&The posterior does appear to be normal)rM   rN   r“   ÚnormalrP   r   rQ   rp   r—   rž   rC   Ústdr   )rŸ   ÚimputationsÚmuÚsigmaÚks_statisticÚp_valuer;   r@   s         @@r(   Ú1test_iterative_imputer_truncated_normal_posteriorra  à  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  rI   rY   )ÚlowÚhighr~   rk   ræ   )r0   r   rL   r  r/   )	rM   rN   r“   Úrandintr   r4   r   r   r5   )r1   rŸ   r"  ri   ÚX_trainÚX_testr@   Úinitial_imputers           r(   Ú+test_iterative_imputer_missing_at_transformri    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   rk   r  rI   r  r  T)r0   r   r1  r  Fr,  )r0   r   r1  r0  r*  r  )rM   rN   r“   r   r:   r   r4   r5   rC   r_   Úapproxr   )Úrng1Úrng2r"  ri   r;   r@   Ú
X_fitted_1Ú
X_fitted_2Úimputer1Úimputer2ÚX_fitted_1aÚX_fitted_1bs               r(   Ú.test_iterative_imputer_transform_stochasticityrt    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  rI   )r   r  rk   )
rM   rN   r“   ÚrandrP   r   r4   r5   rQ   r   )rŸ   r;   Úm1Úm2Úpred1Úpred2s         r(   Ú!test_iterative_imputer_no_missingr{  J  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   rk   r¶   rZ   ©r   r&  r  g{®Gáz”?©Úatol)
rM   rN   r“   rv  Údotr6   rP   r   rQ   r   )	rŸ   ri   ÚAÚBr;   Únan_maskÚ	X_missingr@   ÚX_filleds	            r(   Útest_iterative_imputer_rank_oner‡  X  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*   ÚrankrY   rZ   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¶   rJ   rZ   r-  rk   )r   r*  r&  r  r  r  )rM   rN   r“   rv  r�  r6   rP   r   r4   r5   r   )rˆ  rŸ   r"  ri   r‚  rƒ  r†  r„  r…  rf  ÚX_test_filledrg  r@   Ú
X_test_ests                 r(   Ú)test_iterative_imputer_transform_recoveryr�  g  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  rI   rJ   g      Ð?rk   r~  gü©ñÒMbP?ç{®Gáz„?)Úrtolr€  )rM   rN   r“   rO   r”   rR   r—   rv  r6   rP   r   r4   r5   r   )rŸ   r"  ri   r‚  rƒ  r†  rÜ   r§   r„  r…  rf  r‹  rg  r@   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}  rZ   rk   r¶   r  r�  F)r   Útolr1  r&  r  )r   r1  r&  r  gH¯¼šò×z>r  )rM   rN   r“   rv  r�  r6   rP   r   rQ   r€   r<  r  r   r4   r   )rŸ   r"  ri   r‚  rƒ  r;   r„  r…  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_yrk   rY   r   g333333Ã?F)r~   ÚreplacerZ   )r0  r1  Úerror)r   rR   rM   rN   r“   r—   Úchoicer•   ÚintrP   r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningrQ   r�   rœ   )
r;   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®   rZ   rI   )r  éÈ   i,  r®   rI   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   rI   rY   ©r3  r4  rk   )rM   rN   r“   rO   r   r4   rD  Ú
_min_valueÚndarrayÚ
_max_valuerR   r   )r3  r4  Úcorrect_outputr;   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©rI   rY   r®  r\   )rM   rN   r   r_   ry   rz   r4   )r3  r4  r2   r;   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öÿÿÿrl   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 )
NrJ   rk   rI   rÑ   rY   rl   rZ   r   )r3  r4  r  )rM   rp   rP   r   r4   r5   r   )Ú	min_max_1Ú	min_max_2rf  rg  rp  rq  Ú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*   r2  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   )rZ   rJ   rJ   rk   )rI   rk   rJ   rÑ   )rY   rk   rk   rk   )rø   rl   rJ   rJ   rJ   rl   rZ   rk   rI   rC   )rL   r2  r  )é   rÑ   é   g-Cëâ6?)r�  )
rM   rN   r“   rp   rP   r   r4   r5   r   rC   )r2  rŸ   rf  rg  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__7  s   € Ø ,ˆDÔÐÐr*   c                 ó   — | S r#   r6  )rÉ  rƒ   Úkgardss      r(   r4   zGtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.fit:  s   € ØˆKr*   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )rM   r”   rR   )rÉ  r;   s     r(   ÚpredictzKtest_iterative_imputer_dont_set_random_state.<locals>.ZeroEstimator.predict=  s   € Ý”8˜AœG AœJÑ'Ô'Ð'r*   N)Ú__name__Ú
__module__Ú__qualname__rÊ  r4   rÎ  r6  r*   r(   ÚZeroEstimatorrÇ  6  sA   € € € € € ð	-ð 	-ð 	-ð	ð 	ð 	ð	(ð 	(ð 	(ð 	(ð 	(r*   rÒ  r  r¶  )r   rM   r”   r4   r  )rÂ  rÄ  rÒ  rB  r@   rf  s         r(   Ú,test_iterative_imputer_dont_set_random_staterÓ  3  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 fitrf   rg   rh   rj   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\   r6  )r   Ú
set_paramsr_   ry   rz   r4   r5   )ÚX_fitrA   ÚparamsÚmsg_errÚ	indicators        r(   Útest_missing_indicator_errorrÝ  G  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 rW  )rM   rp   )r9  Úarr_typer0   r$   s       r(   r:  z5_generate_missing_indicator_cases.<locals>.<listcomp>i  sN   € ð ð ð á-ˆHÑ-�~ uð  !Ò#Ð#¨½¼Ð(@Ð(@ð	 
�> 5Ð)ð )AÐ(@Ð(@r*   )rM   Úint32rP   Úfloat64rp   r   r    r   r!   r   r   )Úmissing_values_dtypesÚ	arr_typess     r(   Ú!_generate_missing_indicator_casesrå  _  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   rk   rJ   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 )Nrk   rl   rJ   ©rl   rÀ  rI   )rk   rk   r   )r   r   rk   r±   F)r0   rÖ  r   Tr   Úcsc)rM   rp   Úastyper   rQ   r5   rR   r   Ú	features_r   r$   ÚboolrD  r°  rØ  r8   r:   )r0   rà  r$   Úparam_featuresr¢  Úfeatures_indicesrÙ  rA   Ú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õ  r  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   rk   rl   rJ   rè  r  z"Sparse input with missing_values=0r\   )rM   rp   r   r_   ry   rz   rQ   r5   )rà  r0   rÙ  rA   Ú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 )Nrk   rl   rJ   rè  )r0   r   Tré  rÕ  r   F)rM   rp   rê  râ  r   rQ   r5   r8   rD  r°  r   r9   )rà  r0   rú  rÙ  rA   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©rf   rg   rh   )rg   rh   rf   rj   rf   rž   )r0   rÖ  )TFF)FFT)rM   rp   rq   r   rQ   r   )r;   rÜ  rA   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)rg   rg   TF)rg   rg   FT)rä   rä   TF)rä   rä   FTc                 óª   — t          t          |d¬¦  «        t          |¬¦  «        ¦  «        }|                     | ¦  «        }t	          ||¦  «         d S )NrE   r/   r  )r   r   r   rQ   r   )r;   r0   ÚX_trans_expÚtransrA   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 )NrU  rI   ræ   r  r\   )rM   rN   r“   rO   r_   ry   rz   rQ   )r  Úimputer_missing_valuesrñ   r2   rŸ   r;   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 )Nrk   rÔ  r°   ©rÖ  r0   r   )rM   rp   r   rQ   rR   )r;   Úmir  s      r(   Ú!test_missing_indicator_no_missingr  *  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¬¦  «        }|                     |¦  «        }|                     ¦   «         |                     ¦   «         k    sJ ‚d S )Nræ  )rk   rJ   r   )rJ   r   rk   rž   rk   r
  )r   rQ   ÚgetnnzÚsum)rG   r;   r  r  s       r(   Ú/test_missing_indicator_sparse_no_explicit_zerosr  5  sr   € ð 	ˆ�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€Aå	 5¸Ð	;Ñ	;Ô	;€BØ	×	Ò	˜!Ñ	Ô	€Bà�9Š9‰;Œ;˜"Ÿ&š&™(œ(Ò"Ð"Ð"Ð"Ð"Ð"r*   c                 óŠ   — t          j        ddgddgg¦  «        } | ¦   «         }|                     |¦  «         |j        �J ‚d S )Nrk   )rM   rp   r4   Ú
indicator_)r  r;   r@   s      r(   Útest_imputer_without_indicatorr  A  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 )Nrk   rZ   rJ   r¿   rY   )rk   rJ   rÃ   )ç      @rä   ç      @rä   ç        r  )ç       @r  rä   r  rä   r  )g      @r  r  r  r  rä   )rä   r  g      "@r  r  r  T)r0   Úadd_indicator)
rM   rP   rp   r   rQ   r   r9   rR   r   r:   )rà  ÚX_sparser<   r@   rA   s        r(   Ú2test_simple_imputation_add_indicator_sparse_matrixr  J  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)rE   rg   )rF   rñ   c                 óÖ   — ddgdt           j        gg}t          j        ddgd|ggt          ¬¦  «        }t	          | ¬¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nrf   rg   rh   rj   rK   )rM   rP   rp   rq   r   rQ   r   )r1   Úexpectedr;   r<   r@   rA   s         r(   Ú"test_simple_imputation_string_listr  a  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,  )rY   rl   rJ   r   rk   r-  )rk   r   rJ   rl   rY   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 )NrU  r  rZ   r}  rk   é   r   é   rJ   rI   rl   )r   r*  r  c                 ó   — g | ]	}|j         ‘Œ
S r6  r7  )r9  r&   s     r(   r:  z)test_imputation_order.<locals>.<listcomp>€  s   € Ð<Ð<Ð<˜aˆqŒzÐ<Ð<Ð<r*   )rM   rN   r“   rv  rP   r_   r`   r
   r   r4   r<  )ÚorderÚ	idx_orderrŸ   r;   ÚtrsÚidxs         r(   Útest_imputation_orderr'  o  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Ã   rY   r°   ©rl   r°   rZ   rl   r¿   rÑ   rø   r   )rZ   rl   rJ   rk   rJ   rk   rl   rZ   )rk   rk   rk   rY   )rJ   rY   rY   rl   rC   T)r0   r1   r  )rM   rp   r   rQ   Úinverse_transformr5   r   )rñ   ÚX_1ÚX_2ÚX_3ÚX_4r@   Ú	X_1_transÚX_1_inv_transÚ	X_2_transÚX_2_inv_transr;   rA   ÚX_inv_transs                r(   Ú(test_simple_imputation_inverse_transformr4  „  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Ã   rY   r°   r)  r¿   rÑ   rø   r   rC   r/   zGot 'add_indicator=ú'r\   )	rM   rp   r   rQ   r_   ry   rz   r  r*  )rñ   r+  r@   r/  s       r(   Ú3test_simple_imputation_inverse_transform_exceptionsr7  ¾  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)r9  r9  Úvaluer3  Úmin_valuevalue)r3  r3  r:  r�   ©rk   rJ   rY   )rk   rk   rJ   )r!  r!  rk   )rk   rk   r!  c                 ó\   — | t          t          j        ||¬¦  «        ||¦  «        k    sJ ‚d S )Nrj   )r   rM   rp   )r  rp   r$   r8  Ún_repeats        r(   Útest_most_frequentr?  Ñ  sG   € ð, •~Ý
Œ�˜eÐ$Ñ$Ô$ k°8ñô ò ð ð ð ð ð r*   rL   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).
    rk   rJ   rY   T)rL   Úkeep_empty_featuresNr   )rM   rp   rP   r   rQ   r   r5   )rL   r;   r@   rS   s       r(   Ú*test_iterative_imputer_keep_empty_featuresrB  ì  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°   rF   r   )r0   rL   rë   r   N)rM   rp   r   rQ   r   r!  r7   )r;   rë   r@   s      r(   Ú*test_iterative_imputer_constant_fill_valuerD  þ  s�   € å
Œ�.�.�. . . .°.°.°.À-À-À-ÐPÑQÔQ€Aà€JÝØØ#ØØð	ñ ô €Gð ×Ò˜!ÑÔÐÝ�wÔ/Ô;¸ZÑHÔHÐHÐHÐHr*   rA  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`.rk   rJ   rY   )rA  ©rQ   r5   Nr   )rM   rp   rP   r   ÚgetattrrR   r   )rA  r;   r@   ÚmethodrS   s        r(   Ú$test_knn_imputer_keep_empty_featuresrI    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 )"Nrd   Úfeature)ÚabcNÚdeÚstringrj   rF   Únarê   rL  rM  )rL  rM  ÚfghÚok)rë   r1   rP  )rk   NrY   ÚInt64r°   rk   rY   râ  )rk   NrJ   rY   rD   r/   rJ   )rk   NrJ   rC   r   )rä   Nr  g       Àrä   r  )rä   Nr  r  r  )r_   ro   rr   ÚSeriesr   ÚNAr)   rQ   rM   rp   rq   r,   rP   )rt   râ   r@   s      r(   Útest_simple_impute_pd_narU    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.rd   rk   rl   rJ   rI   re   rm   r  )Úmissingindicator_aÚmissingindicator_bÚmissingindicator_dN)	r_   ro   rM   rP   rr   r   r4   Úget_feature_names_outr   )rt   r0   r;   rÜ  ru   Úexpected_namess         r(   Ú(test_missing_indicator_feature_names_outr\  Y  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.
    rf   rg   rh   rE   rK   N)r   r4   r5   rM   rP   r$   rq   r   )r;   Úimp_frequentrA   s      r(   Ú test_imputer_lists_fit_transformr_  l  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ÍÌÌÌÌÌ@rJ   rk   rj   N)rM   ÚasarrayrP   râ  r   r4   r5   r$   )r`  r;   Úimprg  rA   s        r(   Ú.test_imputer_transform_preserves_numeric_dtyperd  y  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_typerp   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.
    rJ   rY   r¿   rI   rF   )r1   rë   rA  rF  r   Nr   ©	rM   rp   rP   r   r   rG  rR   r:   r   )re  rA  r;   rë   r@   rH  rS   Úconstant_features           r(   Ú0test_simple_imputer_constant_keep_empty_featuresri  †  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'.
    rJ   rY   r¿   )r1   rA  rF  r   Nr   rk   rg  )r1   re  rA  r;   r@   rH  rS   rh  s           r(   Ú'test_simple_imputer_keep_empty_featuresrk  Ÿ  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*   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   çš™™™™™ù?)rm  rý   rü   )r  rþ   rü   )r  rn  rn  r/   )rM   rp   rP   r   rO  rQ   r   r:   )rw   r;   r<   r@   rA   s        r(   Útest_imputation_customro  ¶  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        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<  )rJ   rY   rl   rj   rF   rJ   )r1   rë   r0   rç   rè   ré   r\   Nz%The dtype of the filling value (i.e. rk   )rM   rp   Úint64r   rÇ   r_   ry   rz   rî   rï   r4   râ  r7   r$   r5   rê  Úfloat32rQ   )rë   ÚX_int64r@   r2   Ú	X_float64Úfill_value_listÚ	X_float32rA   s           r(   Ú/test_simple_imputer_constant_fill_value_castingrw  Ø  s^  € ð €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�	ÑÔÐð	°Ô0CÔ0Ið 	ð 	ð 	ð õ 
Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð #ð #Ø×Ò˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ ”z #‘”¨¨QÐ/€OØ× Ò ¥¤Ñ,Ô,€Ià%ð 0ð 0ˆ
ÝØ¨JÀqð
ñ 
ô 
ˆð ×'Ò'¨	Ñ2Ô2ˆØŒ} 	¤Ò/Ð/Ð/Ð/Ð/ð0ð 0s$   Á>B Â B$Â'B$Ä#EÅE	ÅE	)�rÞ   rî   r�  Ú	itertoolsr   ÚnumpyrM   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,   rB   ÚmarkÚparametrizerU   rb   rv   r{   r†   rˆ   r¬   rº   rq   ÚstrrÆ   rË   r$   rÏ   rÒ   rP   rØ   rã   rò   rù   rb  r  r  r  r	  r  r  r$  r'  r)  rA  rK  rQ  rS  ra  ri  rt  r{  r‡  r�  r‘  r–  r§  rp   rª  r³  r·  r½  rÁ  rN   r“   rÓ  rÝ  rå  rõ  rù  rÈ   rü  rÿ  r  r  r  r  r  r  r  r'  r4  r7  rœ  r?  rB  rD  rI  rU  r\  r_  rr  râ  rd  ri  rk  ro  rw  r6  r*   r(   ú<module>rŒ     sV  ðØ 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø 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Ø„×Ò˜ &¨+Ð!6Ñ7Ô7ð!ð !ñ 8Ô7ñ 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ð!ð	(ð 	(ð 	(ð „×ÒÐ,¨nÀÄ
¸|Ñ.KÑLÔLð2ð 2ñ MÔLð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ðð ð ð& „×ÒØ%Ð'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 Ð#ð!ñô ð*ð ñ+ô ð*ð „×ÒØÐ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ð( „×Ò˜¨.Ñ9Ô9ð2ð 2ñ :Ô9ð2ðB$0ð $0ð $0ð $0ð $0r*   