§
    qŠtj„D  ã                   ó  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ ej                             ddd	g¦  «        ej                             d
 edd¦  «        ¦  «        d„ ¦   «         ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zej                             dej        dg¦  «        d„ ¦   «         Zd„ Zej                             ddd g¦  «        ej                             ddej        g¦  «        ej                             d¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             ddej        g¦  «        ej                             ddd	g¦  «        d„ ¦   «         ¦   «         Zej                             ddej        g¦  «        ej                             ddd	g¦  «        d„ ¦   «         ¦   «         Zej                             ddej        g¦  «        d„ ¦   «         Z ej                             ddd g¦  «        ej                             ddej        g¦  «        d„ ¦   «         ¦   «         Z!ej                             d d!ej        d"fg¦  «        d#„ ¦   «         Z"dS )$é    N)Úconfig_context)Ú
KNNImputer)Únan_euclidean_distancesÚpairwise_distances)ÚKNeighborsRegressor)Úassert_allcloseÚweightsÚuniformÚdistanceÚn_neighborsé   é   c                 óÖ   — d}d}t           j                             ||¦  «        }t           j        |d<   t	          || ¬¦  «        }|                     |¦  «        }|j        ||fk    sJ ‚d S )Né
   é   )r   r   )r   r	   )ÚnpÚrandomÚrandÚnanr   Úfit_transformÚshape)r	   r   Ún_rowsÚn_colsÚXÚimputerÚ	X_imputeds          ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/impute/tests/test_knn.pyÚtest_knn_imputer_shaper      sq   € ð
 €FØ€FÝ
Œ	�Š�v˜vÑ&Ô&€AÝŒf€A€d�Gå [¸'ÐBÑBÔB€GØ×%Ò% aÑ(Ô(€IØŒ?˜v vÐ.Ò.Ð.Ð.Ð.Ð.Ð.ó    Únaéÿÿÿÿc                 ó†  — t          j        t           j        ddd| gg d¢g d¢| ddddg| d	dd	d
gg d¢g¦  «        }t          j        t
          d¬¦  «        5  t          | ¬¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t           j        ddd| gg d¢g d¢| ddddg| d	dd	d
gg d¢g¦  «        }t          j        dddd| gg d¢g d¢| ddddg| d	dd	d
gg d¢g¦  «        }t          | ¬¦  «                             |¦  «        }t          j        t
          d¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddd¬¦  «        }t          j        t           j	        ddddgt           j	        ddt           j	        dgt           j	        ddddgt           j	        ddddgg¦  «        }d}t          j        t
          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgt           j	        dgg¦  «        }d S )Nr   r   )r   r   r   r   é   )r#   r   r#   r#   é   r   r   é   é   é   r$   )r   r   r   r%   r'   zInput X contains (infinity|NaN))Úmatch©Úmissing_valuesr
   ©r*   r   r	   r#   zInput X contains NaN)
r   ÚarrayÚinfÚpytestÚraisesÚ
ValueErrorr   ÚfitÚ	transformr   )r    r   ÚX_fitr   Úmsgs        r   Ú+test_knn_imputer_default_with_invalid_inputr5      sP  € õ
 	ŒåŒV�Q˜˜1˜bÐ!ØˆOˆOØˆOˆOØ��A�q˜"ÐØ��A�q˜!ÐØˆOˆOð	
ñ		ô 		€Aõ 
Œ•zÐ)JÐ	KÑ	KÔ	Kð -ð -Ý "Ð%Ñ%Ô%×)Ò)¨!Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ 	ŒåŒV�Q˜˜1˜bÐ!ØˆOˆOØˆOˆOØ��A�q˜"ÐØ��A�q˜!ÐØˆOˆOð	
ñ		ô 		€Aõ ŒHà��1�a˜ÐØˆOˆOØˆOˆOØ��A�q˜"ÐØ��A�q˜!ÐØˆOˆOð	
ñ	ô 	€Eõ ¨Ð+Ñ+Ô+×/Ò/°Ñ6Ô6€GÝ	Œ•zÐ)JÐ	KÑ	KÔ	Kð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ¨°qÀ)ÐLÑLÔL€GÝ
ŒåŒV�Q˜˜1˜aÐ ÝŒV�Q˜�2œ6 1Ð%ÝŒV�Q˜˜1˜aÐ ÝŒV�Q˜˜1˜bÐ!ð		
ñ	ô 	€Að !€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	Œà�ˆFÝŒV�QˆKð	
ñ	ô 	€A€A€As6   Á$BÂB	ÂB	Ä6EÅEÅEÇ0HÈHÈHc                 óö  — t          j        dd| dddgdd| dddgdd| dd| gdd| | ddgg¦  «        }t          | d¬¦  «                             |¦  «        }|                     |¦  «        }t          j        |¦  «                             ¦   «         rJ ‚|j        dk    sJ ‚t          j        d	d
¦  «         	                    dd¦  «        }|                     |¦  «        }t          |d d …g d¢f         |¦  «         d S )Nr   ç      ð?r   r#   é   r   ©r*   r   )r8   r%   r   é   ©r   r   r#   r8   r%   )r   r,   r   r1   r2   ÚisnanÚanyr   ÚarangeÚreshaper   )r    r   ÚknnÚX_transformÚX_tests        r   Ú(test_knn_imputer_removes_all_na_featuresrC   \   s  € å
Œà��2�q˜!˜SÐ!Ø��2�q˜!˜QÐØ��2�q˜!˜RÐ Ø��2�r˜1˜aÐ ð		
ñ	ô 	€Aõ  B°AÐ
6Ñ
6Ô
6×
:Ò
:¸1Ñ
=Ô
=€Cà—-’- Ñ"Ô"€KÝŒx˜Ñ$Ô$×(Ò(Ñ*Ô*Ð*Ð*Ð*ØÔ Ò&Ð&Ð&Ð&åŒY�q˜"ÑÔ×%Ò% a¨Ñ+Ô+€FØ—-’- Ñ'Ô'€KÝ�F˜1˜1˜1˜o˜o˜oÐ-Ô.°Ñ<Ô<Ð<Ð<Ð<r   c           
      óÒ  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        d| dddgg d¢dddd| gdd| ddgg¦  «        }t          j        g d	¢g d¢g d
¢g d¢g¦  «        }t          ddd¬¦  «        }t          | dd¬¦  «        }t          |                     |¦  «        |¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )N)r   r   r   r   r7   )r   r   r   r   r   )r#   r#   r#   r#   r   )r   r   r   r   r   r   r7   r#   r   )r   ç      @r   r   r7   )r#   r#   r#   r#   ç      ø?)r   r   rE   r   r   r   r   r
   r+   ©r   r,   r   r   r   )r    ÚX_zeroÚX_nanr   Úimputer_zeroÚimputer_nans         r   Ú*test_knn_imputer_zero_nan_imputes_the_samerL   q   s@  € õ ŒXàÐÐØˆOˆOØˆOˆOØˆOˆOð		
ñô €Fõ ŒHà��A�q˜#ÐØˆOˆOØ��1�a˜ÐØ��2�q˜!Ðð		
ñô €Eõ ”àÐÐØˆOˆOØÐÐØÐÐð		
ñô €Iõ ¨Q¸AÀyÐQÑQÔQ€Lå¨B¸AÀyÐQÑQÔQ€Kå�L×.Ò.¨vÑ6Ô6¸	ÑBÔBÐBÝØ×"Ò" 6Ñ*Ô*¨K×,EÒ,EÀeÑ,LÔ,Lñô ð ð ð r   c                 óÀ  — t          j        g d¢ddd| gddd| g| dddgd| ddgg d	¢g d
¢g¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g¦  «        }t          | ¬¦  «        }t          |                     |¦  «        |¦  «         t          j        ddd| gddd| gddd| gddd| gddd| gddd| gg d¢g d¢g¦  «        }d}t          j        ddd|gddd|gddd|gddd|gddd|gddd|gg d¢g d¢g¦  «        }t          | ¬¦  «        }t          |                     |¦  «        |¦  «         t          j        ddg| dgddgddgddgddgddgg¦  «        }t          j        ddgddgd| gg¦  «        }d}t          j        ddgddgd|gg¦  «        }t          | ¬¦  «        }t          |                     |¦  «                             |¦  «        |¦  «         d S )N©r   r   r   r   r   r   r#   r8   r%   r   r'   )r$   r$   r$   r$   )é   é   é   é   )r   r   r   r$   )r#   r   r#   r$   )r8   r8   r%   r%   )r   r#   r   r'   r)   r   r$   )é   rS   rS   rS   )é   rT   rT   rT   g      5@é	   é   rO   g333333@)r   r,   r   r   r   r1   r2   )r    r   r   r   ÚX_impute_valueÚX1ÚX_2_1Ú
X1_imputeds           r   Útest_knn_imputer_verifyr[   ™   s®  € õ 	ŒàˆLˆLØ��1�bˆMØ��1�bˆMØ��A�qˆMØ��A�qˆMØˆLˆLØÐÐð	
ñ
	ô 
	€Aõ ”àˆLˆLØˆLˆLØˆLˆLØˆLˆLØˆLˆLØˆLˆLØÐÐð	
ñ
ô 
€Iõ ¨Ð+Ñ+Ô+€GÝ�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8õ 	Œà��1�bˆMØ��1�bˆMØ��1�bˆMØ��1�bˆMØ��1�bˆMØ��1�bˆMØÐÐØÐÐð		
ñ	ô 	€Að #€NÝ”à��1�nÐ%Ø��1�nÐ%Ø��1�nÐ%Ø��1�nÐ%Ø��1�nÐ%Ø��1�nÐ%ØÐÐØÐÐð		
ñô €Iõ ¨Ð+Ñ+Ô+€GÝ�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8õ 	Œ�1�a�&˜2˜q˜' A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀBÈÀ8ÐLÑMÔM€Aå	Œ�A�q�6˜A˜q˜6 A r 7Ð+Ñ	,Ô	,€Bà#€EÝ”˜A˜q˜6 A q 6¨A¨u¨:Ð6Ñ7Ô7€Jå¨Ð+Ñ+Ô+€GÝ�G—K’K ‘N”N×,Ò,¨RÑ0Ô0°*Ñ=Ô=Ð=Ð=Ð=r   c           
      ó  — t          j        ddg| dgddgd| gddg| dgdd	gg¦  «        }t          j        ddgddgddgddgddgddgdd	gg¦  «        }t          d
| ¬¦  «        }t          |                     |¦  «        |¦  «         d S )Nr   r   r8   r#   r%   r'   r$   é   r&   r   ©r   r*   rG   )r    r   r   r   s       r   Ú test_knn_imputer_one_n_neighborsr_   ã   s¬   € å
Œ�1�a�&˜2˜q˜' A q 6¨A¨r¨7°Q¸°F¸RÀ¸GÀbÈ"ÀXÐNÑOÔO€Aå”˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸a¸&À1ÀaÀ&È2ÈrÈ(ÐSÑTÔT€Iå Q°rÐ:Ñ:Ô:€Gå�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8Ð8Ð8r   c           
      ó´  — t          j        ddg| dgddgd| gddg| dgdd	gg¦  «        }t          j        ddgd
dgddgddgddgd
dgdd	gg¦  «        }|j        d         dz
  }t          || ¬¦  «        }t	          |                     |¦  «        |¦  «         |j        d         }t          || ¬¦  «        }t	          |                     |¦  «        |¦  «         d S )Nr   r   r8   r#   r%   r'   r$   r]   r&   g      @g      @r   r^   )r   r,   r   r   r   r   )r    r   r   r   r   Úimputer_plus1s         r   Ú*test_knn_imputer_all_samples_are_neighborsrb   î   sý   € å
Œ�1�a�&˜2˜q˜' A q 6¨A¨r¨7°Q¸°F¸RÀ¸GÀbÈ"ÀXÐNÑOÔO€Aå”Ø
ˆQˆ�$˜�˜Q ˜F Q¨ I°°1¨v¸¸a°yÀ2ÀrÀ(ÐKñô €Ið ”'˜!”*˜q‘.€KÝ [ÀÐDÑDÔD€Gå�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8à”'˜!”*€KÝ¨;ÀrÐJÑJÔJ€MÝ�M×/Ò/°Ñ2Ô2°IÑ>Ô>Ð>Ð>Ð>r   c           
      óî  — t          j        ddg| dgddgddgddgdd	gd
dgg¦  «        }t          j        ddgddgddgddgddgdd	gd
dgg¦  «        }t          d| ¬¦  «        }t          |                     |¦  «        |¦  «         d„ }t          || ¬¦  «        }t          |                     |¦  «        |¦  «         d„ }t          || ¬¦  «        }t          |                     |¦  «        |¦  «         d S )Nr   r   r8   r#   r%   r   r'   rU   r$   rV   r   r
   ©r	   r*   c                 ó   — d S ©N© ©Údists    r   Ú	no_weightz2test_knn_imputer_weight_uniform.<locals>.no_weight  s   € Øˆtr   c                 ó*   — t          j        | ¦  «        S rf   )r   Ú	ones_likerh   s    r   Úuniform_weightz7test_knn_imputer_weight_uniform.<locals>.uniform_weight  s   € ÝŒ|˜DÑ!Ô!Ð!r   rG   )r    r   ÚX_imputed_uniformr   rj   rm   s         r   Útest_knn_imputer_weight_uniformro      s;  € å
Œ�1�a�&˜2˜q˜' A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀBÈÀ8ÐLÑMÔM€Aõ œØ
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸"¸b¸ÐBñô Ðõ  ¸2Ð>Ñ>Ô>€GÝ�G×)Ò)¨!Ñ,Ô,Ð.?Ñ@Ô@Ð@ðð ð õ  ¸2Ð>Ñ>Ô>€GÝ�G×)Ò)¨!Ñ,Ô,Ð.?Ñ@Ô@Ð@ð"ð "ð "õ  ÀÐCÑCÔC€GÝ�G×)Ò)¨!Ñ,Ô,Ð.?Ñ@Ô@Ð@Ð@Ð@r   c                 óÎ
  — t          j        ddg| dgddgddgddgdd	gd
dgg¦  «        }t          dd¬¦  «        }g d¢}|                     ||dd …f         ||df         ¦  «         |                     |dd…dd …f         ¦  «        d         }g d¢}t          |dd…d d …f         || ¬¦  «        }d|d d …|f                              ¦   «         z  }t          j        ||df         |¬¦  «        }t          j        ddg|dgddgddgddgdd	gd
dgg¦  «        }	t          j        ddg|dgddgddgddgdd	gd
dgg¦  «        }
t          d| ¬¦  «        }t          | 
                    |¦  «        |	¦  «         t          | 
                    |¦  «        |
¦  «         t          j        | ddgg d¢g d¢g d¢g¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        ddgd|z  d|z  g¬¦  «        }t          j        |ddgg d¢g d¢g d¢g¦  «        }t          dd| ¬¦  «        }t          | 
                    |¦  «        |¦  «         t          j        g d¢d| d| gddd| gg d¢g d¢g d¢g d¢g¦  «        }t          || ¬¦  «        }|dg d¢f         }|dg d ¢f         }d|z  }d|z  }|dg d ¢f         }d|z  }t           j                             |g d¢df         ¦  «                             ¦   «         }t           j                             |g d ¢df         ¦  «                             ¦   «         }t           j                             ||¬¦  «        }t           j                             ||¬¦  «        }t           j                             ||¬¦  «        }t          j        g d¢d|d|gddd|gg d¢g d¢g d¢g d¢g¦  «        }t          d| ¬¦  «        }t          | 
                    |¦  «        |¦  «         t          j        ddd| gddd| gdd| dgg d!¢g d"¢g d#¢g d$¢| dddgg¦  «        }t          |d%d&| ¬'¦  «        }d(|ddd)…f         z  }d(|ddd)…f         z  }d(|d*         z  }d(|ddd…f         z  }t          j        |dd)…d)f         |¬¦  «        }t          j        |dd)…d)f         |¬¦  «        } t          j        |d+         |¬¦  «        }!t          j        |dd…df         |¬¦  «        }"t          j        ddd|gddd| gdd|!dgg d!¢g d"¢g d#¢g d$¢|"dddgg¦  «        }t          | d¬,¦  «        }#t          |# 
                    |¦  «        |¦  «         d S )-Nr   r   r8   r#   r%   r   r'   rU   r$   rV   r   Ú	euclideanr   )Úmetricr	   )r   r   r#   r8   r%   r   r   )r   r   r#   r8   r%   r)   ©r	   rd   )r   r   r   )r#   r   r#   )r8   r%   r%   g      @g     €3@)r   r	   r*   rN   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r#   r8   r%   r   ©r#   r#   r#   r#   ©r8   r8   r8   r8   ©r%   r%   r%   r%   ©r   r   r   r   Únan_euclideanF©rr   Úsquaredr*   r7   r!   )r   r;   )r;   r   )r*   r	   )r   r,   r   r1   Úpredictr   ÚravelÚaverager   r   r   ÚsqrtÚmaÚmasked_invalidÚcopyr   )$r    r   ÚnnÚ
X_rows_idxÚknn_imputed_valueÚX_neighbors_idxri   r	   Úmanual_imputed_valueÚX_imputed_distance1ÚX_imputed_distance2r   Údist_0_1Údist_0_2Úimputed_valuer   Úr1c1_nbor_distsÚr1c3_nbor_distsÚr1c1_nbor_wtÚr1c3_nbor_wtÚr2c3_nbor_distsÚr2c3_nbor_wtÚcol1_donor_valuesÚcol3_donor_valuesÚr1c1_impÚr1c3_impÚr2c3_impÚr0c3_wÚr1c3_wÚr2c2_wÚr7c0_wÚr0c3Úr1c3Úr2c2Úr7c0Úimputer_comp_wts$                                       r   Ú test_knn_imputer_weight_distancer      s¯  € å
Œ�1�a�&˜2˜q˜' A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀBÈÀ8ÐLÑMÔM€Aõ 
 K¸Ð	DÑ	DÔ	D€BØ#Ð#Ð#€JØ‡F‚Fˆ1ˆZ˜˜˜ˆ^Ô˜a 
¨A Ô.Ñ/Ô/Ð/ØŸ
š
 1 Q q S¨!¨"¨" W¤:Ñ.Ô.¨qÔ1Ðð &�o�o€OÝ" 1 Q q S¨!¨!¨! V¤9¨aÀÐCÑCÔC€DØ�$�q�q�q˜/Ð)Ô*×0Ò0Ñ2Ô2Ñ2€GÝœ: a¨¸Ð(:Ô&;ÀWÐMÑMÔMÐåœ(Ø
ˆQˆÐ&¨Ð*¨Q°¨F°Q¸°F¸QÀ¸FÀQÈÀFÈRÐQSÈHÐUñô Ðõ
 œ(Ø
ˆQˆÐ# QÐ'¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÈ"ÈbÈÐRñô Ðõ  ¸BÐ?Ñ?Ô?€GÝ�G×)Ò)¨!Ñ,Ô,Ð.AÑBÔBÐBÝ�G×)Ò)¨!Ñ,Ô,Ð.AÑBÔBÐBõ 	Œà��AˆJØˆIˆIØˆIˆIØˆIˆIð		
ñ	ô 	€Aõ ŒwÐ>Ñ?Ô?€HÝŒwÐ>Ñ?Ô?€HÝ”J  1˜v°°H±¸aÀ(¹lÐ/KÐLÑLÔL€Må”à˜A˜qÐ!ØˆIˆIØˆIˆIØˆIˆIð		
ñô €Iõ  Q°
È2ÐNÑNÔN€GÝ�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8õ 	ŒàˆLˆLØ��A�rˆNØ��1�bˆMØˆLˆLØˆLˆLØˆLˆLØÐÐð	
ñ
	ô 
	€Aõ # 1°RÐ8Ñ8Ô8€DØ˜1˜o˜o˜oÐ-Ô.€OØ˜1˜o˜o˜oÐ-Ô.€OØ�Ñ&€LØ�Ñ&€Là˜1˜o˜o˜oÐ-Ô.€OØ�Ñ&€Lõ œ×,Ò,¨Q¨¨¨ÀÐ/AÔ-BÑCÔC×HÒHÑJÔJÐÝœ×,Ò,¨Q¨¨¨ÀÐ/AÔ-BÑCÔC×HÒHÑJÔJÐõ Œu�}Š}Ð.¸ˆ}ÑEÔE€HÝŒu�}Š}Ð.¸ˆ}ÑEÔE€HÝŒu�}Š}Ð.¸ˆ}ÑEÔE€Hå”àˆLˆLØ�˜!˜XÐ&Ø��1�hÐØˆLˆLØˆLˆLØˆLˆLØÐÐð	
ñ
ô 
€Iõ  ¸BÐ?Ñ?Ô?€GÝ�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8å
Œà��1�bˆMØ��1�bˆMØ��2�qˆMØˆLˆLØˆLˆLØˆLˆLØˆLˆLØ��A�qˆMð		
ñ	ô 	€Aõ Ø	�/¨5Àðñ ô €Dð
 �4˜˜1˜R˜4˜”=Ñ €FØ�4˜˜1˜R˜4˜”=Ñ €FØ�4Ð*Ô+Ñ+€FØ�4˜˜1˜Q˜3˜”<Ñ€Fõ Œ:�a˜˜"˜˜b˜”k¨6Ð2Ñ2Ô2€DÝŒ:�a˜˜"˜˜b˜”k¨6Ð2Ñ2Ô2€DÝŒ:�aÐ*Ô+°VÐ<Ñ<Ô<€DÝŒ:�a˜˜!˜˜Q˜”i¨Ð0Ñ0Ô0€Då”à��1�dˆOØ��1�dˆOØ��4˜ˆOØˆLˆLØˆLˆLØˆLˆLØˆLˆLØ�1�a˜ˆOð		
ñô €Iõ !°¸JÐGÑGÔG€OÝ�O×1Ò1°!Ñ4Ô4°iÑ@Ô@Ð@Ð@Ð@r   c            	      óN  — t           j        dfd„} t          j        dddt           j        gg d¢g d¢t           j        ddd	gg¦  «        }d
}d}t          j        ddd|gg d¢g d¢|ddd	gg¦  «        }t          d| ¬¦  «        }t	          |                     |¦  «        |¦  «         d S )NFc                 ó$  — t           j                             | t          j        | ¦  «        ¬¦  «        } t           j                             |t          j        |¦  «        ¬¦  «        }t          j        t          j        | |z
  ¦  «        ¦  «        }|S )N)Úmask)r   r   r,   r<   ÚnansumÚabs)ÚxÚyr*   rz   ri   s        r   Úcustom_callablez9test_knn_imputer_callable_metric.<locals>.custom_callable²  s`   € ÝŒE�KŠK˜¥¤¨¡¤ˆKÑ,Ô,ˆÝŒE�KŠK˜¥¤¨¡¤ˆKÑ,Ô,ˆÝŒy�œ  A¡™œÑ'Ô'ˆØˆr   r8   r#   )r   rU   r   rU   )r8   r$   r   rU   rU   rV   g      $@g      "@g      @r   )r   rr   )r   r   r,   r   r   r   )r¨   r   ÚX_0_3ÚX_3_0r   r   s         r   Ú test_knn_imputer_callable_metricr«   °  sÏ   € å-/¬V¸Uð ð ð ð õ 	Œ�1�a˜�BœFÐ# \ \ \°<°<°<Å"Ä&È!ÈRÐQUÐAVÐWÑXÔX€Aà€EØ€EÝ”Ø
ˆQ��5Ð	˜<˜<˜<¨¨¨¸¸qÀ"ÀdÐ7KÐLñô €Iõ  Q¨Ð?Ñ?Ô?€GÝ�G×)Ò)¨!Ñ,Ô,¨iÑ8Ô8Ð8Ð8Ð8r   Úworking_memoryzignore:adhere to working_memoryc                 óº  — t          j        d| d| gddd| gdd| dgg d¢g d¢g d¢g d¢| dddgg¦  «        }t          j        |dd	…df         ¦  «        }t          j        |dd
…d
f         ¦  «        }t          j        |dd
…d
f         ¦  «        }t          j        |g d¢df         ¦  «        }t          j        |dd
…df         ¦  «        }t          j        d|d|gddd|gdd|dgg d¢g d¢g d¢g d¢|dddgg¦  «        }t          |¬¦  «        5  t	          | ¬¦  «        }	t          |	                     |¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r   rt   ru   rv   rw   r'   r   r!   r;   ©r¬   r)   )r   r,   Úmeanr   r   r   r   )
r    r¬   r   Úr0c1r›   rœ   r�   rž   r   Úimputer_comps
             r   Ú$test_knn_imputer_with_simple_exampler²   Ä  s  € õ 	Œà��A�rˆNØ��1�bˆMØ��2�qˆMØˆLˆLØˆLˆLØˆLˆLØˆLˆLØ��A�qˆMð		
ñ	ô 	€Aõ Œ7�1�Q�q�S˜!�V”9ÑÔ€DÝŒ7�1�Q�r�T˜2�X”;ÑÔ€DÝŒ7�1�Q�r�T˜2�X”;ÑÔ€DÝŒ7�1�_�_�_ aÐ'Ô(Ñ)Ô)€DÝŒ7�1�Q�r�T˜1�W”:ÑÔ€Då”à��a˜ÐØ��1�dˆOØ��4˜ˆOØˆLˆLØˆLˆLØˆLˆLØˆLˆLØ�1�a˜ˆOð		
ñô €Iõ 
 ~Ð	6Ñ	6Ô	6ð Bð BÝ!°Ð4Ñ4Ô4ˆÝ˜×2Ò2°1Ñ5Ô5°yÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   Ä4EÅEÅEc                 ó†  — t          j        | dg| dgd| gg¦  «        }t          j        ddgddgddgg¦  «        }t          | d|¬¦  «        }t          |                     |¦  «        |¦  «         t          j        d| gg¦  «        }t          j        ddgg¦  «        }t          |                     |¦  «        |¦  «         d S )NrV   r   r#   r   r+   r8   ©r   r,   r   r   r   r2   )r    r	   rX   rZ   r@   ÚX2Ú
X2_imputeds          r   Ú+test_knn_imputer_not_enough_valid_distancesr·   ï  sÆ   € õ 
Œ�B˜�8˜b !˜W q¨" gÐ.Ñ	/Ô	/€BÝ”˜A˜r˜7 Q¨ F¨Q°¨FÐ3Ñ4Ô4€Jå
 B°A¸wÐ
GÑ
GÔ
G€CÝ�C×%Ò% bÑ)Ô)¨:Ñ6Ô6Ð6å	Œ�A�r�7�)Ñ	Ô	€BÝ”˜A˜q˜6˜(Ñ#Ô#€JÝ�C—M’M "Ñ%Ô% zÑ2Ô2Ð2Ð2Ð2r   c                 óx  — t          j        ddg| dgg¦  «        }t          j        d| gg¦  «        }t          j        ddgg¦  «        }t          d| |¬¦  «        }|                     |¦  «         t	          |                     |¦  «        |¦  «         t          j        | ddgd| dgdd| gg¦  «        }t          j        | d| gd| | g| | dgg¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          d| |¬¦  «        }	|	                     |¦  «         t	          |	                     |¦  «        |¦  «         d S )	Nr   r   r   )r   r*   r	   r#   )r#   r   r   )r   r#   r   )r   r   r   )r   r,   r   r1   r   r2   )
r    r	   ÚX1_trainÚX1_testÚX1_test_expectedÚknn1ÚX2_trainÚX2_testÚX2_test_expectedÚknn2s
             r   Útest_knn_imputer_nan_distancerÁ   þ  sJ  € õ Œx˜!˜Q˜ " a Ð)Ñ*Ô*€HÝŒh˜˜B˜�yÑ!Ô!€GÝ”x ! Q  Ñ)Ô)Ðå !°BÀÐHÑHÔH€DØ‡H‚HˆXÑÔÐÝ�D—N’N 7Ñ+Ô+Ð-=Ñ>Ô>Ð>åŒx˜"˜a ˜ a¨¨Q Z°!°Q¸°Ð<Ñ=Ô=€HÝŒh˜˜Q ˜ a¨¨R [°2°r¸1°+Ð>Ñ?Ô?€GÝ”x   ¨I¨I¨I°y°y°yÐ AÑBÔBÐå !°BÀÐHÑHÔH€DØ‡H‚HˆXÑÔÐÝ�D—N’N 7Ñ+Ô+Ð-=Ñ>Ô>Ð>Ð>Ð>r   c                 ó|  — t          j        | dg| dgg¦  «        }t          | d¬¦  «        }t          j        dgdgg¦  «        }t          |                     |¦  «        |¦  «         t          j        ddgd| gg¦  «        }t          j        dgdgg¦  «        }t          |                     |¦  «        |¦  «         d S )Nr   r   r9   r#   rF   r´   )r    rX   r@   ÚX1_expectedrµ   ÚX2_expecteds         r   Ú'test_knn_imputer_drops_all_nan_featuresrÅ     sº   € å	Œ�B˜�7˜R ˜GÐ$Ñ	%Ô	%€BÝ
 B°AÐ
6Ñ
6Ô
6€CÝ”(˜Q˜C ! ˜:Ñ&Ô&€KÝ�C×%Ò% bÑ)Ô)¨;Ñ7Ô7Ð7å	Œ�A�q�6˜A˜r˜7Ð#Ñ	$Ô	$€BÝ”(˜Q˜C # ˜<Ñ(Ô(€KÝ�C—M’M "Ñ%Ô% {Ñ3Ô3Ð3Ð3Ð3r   c           	      óR  — t          j        d| gd| g| dgddgddg| dgg¦  «        }t          |dd| ¬	¦  «        }t          j        |dd…d
f         d
|ddd…f         z  ¬¦  «        }t          j        |dd…d
f         d
|d
dd…f         z  ¬¦  «        }t          j        |dd…df         d
|ddd…f         z  ¬¦  «        }t          j        |dd…df         d
|ddd…f         z  ¬¦  «        }t          j        d|gd|g|dgddgddg|dgg¦  «        }t	          |¬¦  «        5  t          | dd¬¦  «        }	t          |	                     |¦  «        |¦  «         t          | dd¬¦  «        }
t          |
                     |¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr#   r   r8   r%   r   r$   rx   Fry   r   r   rs   r®   r   r+   )r   r,   r   r}   r   r   r   r   )r    r¬   r   ri   ÚX_01ÚX_11ÚX_20ÚX_50Ú
X_expectedÚknn_3Úknn_4s              r   Ú7test_knn_imputer_distance_weighted_not_enough_neighborsrÎ     s)  € õ 	Œ�1�b�'˜A˜r˜7 R¨ G¨a°¨V°a¸°V¸bÀ!¸WÐEÑFÔF€AåØ	�/¨5Àðñ ô €Dõ Œ:�a˜˜!˜˜Q˜”i¨¨T°!°Q°q°S°&¬\Ñ)9Ð:Ñ:Ô:€DÝŒ:�a˜˜!˜˜Q˜”i¨¨T°!°Q°q°S°&¬\Ñ)9Ð:Ñ:Ô:€DÝŒ:�a˜˜!˜˜Q˜”i¨¨T°!°Q°q°S°&¬\Ñ)9Ð:Ñ:Ô:€DÝŒ:�a˜˜!˜˜Q˜”i¨¨T°!°Q°q°S°&¬\Ñ)9Ð:Ñ:Ô:€Då”˜A˜t˜9 q¨$ i°$¸°¸QÀ¸FÀQÈÀFÈTÐSTÈIÐVÑWÔW€Jå	 ~Ð	6Ñ	6Ô	6ð <ð <Ý¨"¸!ÀZÐPÑPÔPˆÝ˜×+Ò+¨AÑ.Ô.°
Ñ;Ô;Ð;å¨"¸!ÀZÐPÑPÔPˆÝ˜×+Ò+¨AÑ.Ô.°
Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   Ä$A+FÆF Æ#F zna, allow_nan)r!   FTc                 ón   — t          | ¬¦  «        }|                     ¦   «         j        j        |k    sJ ‚d S )Nr)   )r   Ú__sklearn_tags__Ú
input_tagsÚ	allow_nan)r    rÒ   r@   s      r   Útest_knn_tagsrÓ   7  s;   € å
 BÐ
'Ñ
'Ô
'€CØ×ÒÑ!Ô!Ô,Ô6¸)ÒCÐCÐCÐCÐCÐCr   )#Únumpyr   r.   Úsklearnr   Úsklearn.imputer   Úsklearn.metrics.pairwiser   r   Úsklearn.neighborsr   Úsklearn.utils._testingr   ÚmarkÚparametrizeÚranger   r   r5   rC   rL   r[   r_   rb   ro   r    r«   Úfilterwarningsr²   r·   rÁ   rÅ   rÎ   rÓ   rg   r   r   ú<module>rÞ      sŠ  ðØ Ð Ð Ð Ø €€€à "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð „×Ò˜ Y°
Ð$;Ñ<Ô<Ø„×Ò˜¨¨¨a°©¬Ñ4Ô4ð
/ð 
/ñ 5Ô4ñ =Ô<ð
/ð „×Ò˜ ¤¨˜|Ñ,Ô,ð>ð >ñ -Ô,ð>ðB „×Ò˜ ¤¨˜|Ñ,Ô,ð=ð =ñ -Ô,ð=ð( „×Ò˜ ¤¨˜|Ñ,Ô,ð$ð $ñ -Ô,ð$ðN „×Ò˜ ¤¨˜|Ñ,Ô,ðF>ð F>ñ -Ô,ðF>ðR „×Ò˜ ¤¨˜|Ñ,Ô,ð9ð 9ñ -Ô,ð9ð „×Ò˜ ¤¨˜|Ñ,Ô,ð?ð ?ñ -Ô,ð?ð" „×Ò˜ ¤¨˜|Ñ,Ô,ðAð Añ -Ô,ðAð4 „×Ò˜ ¤¨˜|Ñ,Ô,ðQAð QAñ -Ô,ðQAðh9ð 9ð 9ð( „×ÒÐ)¨D°!¨9Ñ5Ô5Ø„×Ò˜  B¤F˜|Ñ,Ô,ð „×ÒÐ=Ñ>Ô>ð#Bð #Bñ ?Ô>ñ -Ô,ñ 6Ô5ð
#BðL „×Ò˜  B¤F˜|Ñ,Ô,Ø„×Ò˜ Y°
Ð$;Ñ<Ô<ð
3ð 
3ñ =Ô<ñ -Ô,ð
3ð „×Ò˜  B¤F˜|Ñ,Ô,Ø„×Ò˜ Y°
Ð$;Ñ<Ô<ð?ð ?ñ =Ô<ñ -Ô,ð?ð& „×Ò˜  B¤F˜|Ñ,Ô,ð4ð 4ñ -Ô,ð4ð „×ÒÐ)¨D°!¨9Ñ5Ô5Ø„×Ò˜  B¤F˜|Ñ,Ô,ð<ð <ñ -Ô,ñ 6Ô5ð<ð, „×Ò˜¨;¸¼À¸Ð*GÑHÔHðDð Dñ IÔHðDð Dð Dr   