Ë
    ÷Q(h„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                  j                  ddd	g«      ej                  j                  d
 edd«      «      d„ «       «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zej                  j                  dej$                  dg«      d„ «       Zd„ Zej                  j                  ddd g«      ej                  j                  ddej$                  g«      ej                  j9                  d«      d„ «       «       «       Zej                  j                  ddej$                  g«      ej                  j                  ddd	g«      d„ «       «       Zej                  j                  ddej$                  g«      ej                  j                  ddd	g«      d„ «       «       Zej                  j                  ddej$                  g«      d„ «       Z ej                  j                  ddd g«      ej                  j                  ddej$                  g«      d„ «       «       Z!ej                  j                  d d!ej$                  d"fg«      d#„ «       Z"y)$é    N)Úconfig_context)Ú
KNNImputer)Únan_euclidean_distancesÚpairwise_distances)ÚKNeighborsRegressor)Úassert_allcloseÚweightsÚuniformÚdistanceÚn_neighborsé   é   c                 óÔ   — d}d}t         j                  j                  ||«      }t         j                  |d<   t	        || ¬«      }|j                  |«      }|j                  ||fk(  sJ ‚y )Né
   é   )r   r   )r   r	   )ÚnpÚrandomÚrandÚnanr   Úfit_transformÚshape)r	   r   Ún_rowsÚn_colsÚXÚimputerÚ	X_imputeds          ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/impute/tests/test_knn.pyÚtest_knn_imputer_shaper      sb   € ð
 €FØ€FÜ
�	‰	�‰�v˜vÓ&€AÜ�f‰f€A€d�Gä [¸'Ô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        | ¬«      j                  |«       d d d «       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        | ¬«      j                  |«      }t        j                  t
        d¬«      5  |j                  |«       d d d «       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  |j                  |«       d d d «       t        j                  ddgt         j                  dgg«      }y # 1 sw Y   �ŒªxY w# 1 sw Y   ŒøxY w# 1 sw Y   ŒLxY w)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      s0  € ô
 	�‰ä�V‰V�Q˜˜1˜bÐ!ÚÚØ��A�q˜"ÐØ��A�q˜!ÐÚð	
ó		€Aô 
�‰”zÐ)JÔ	Kñ -Ü "Ô%×)Ñ)¨!Ô,÷-ô 	�‰ä�V‰V�Q˜˜1˜bÐ!ÚÚØ��A�q˜"ÐØ��A�q˜!ÐÚð	
ó		€Aô �H‰Hà��1�a˜ÐÚÚØ��A�q˜"ÐØ��A�q˜!ÐÚð	
ó	€Eô ¨Ô+×/Ñ/°Ó6€GÜ	�‰”zÐ)JÔ	Kñ Ø×Ñ˜!Ô÷ô ¨°qÀ)ÔL€GÜ
�‰ä�V‰V�Q˜˜1˜aÐ Ü�V‰V�Q˜œ2Ÿ6™6 1Ð%Ü�V‰V�Q˜˜1˜aÐ Ü�V‰V�Q˜˜1˜bÐ!ð		
ó	€Að !€CÜ	�‰”z¨Ô	-ñ Ø�‰�AŒ÷ô 	�‰à�ˆFÜ�V‰V�QˆKð	
ó	�A÷W-ñ -ú÷4ð ú÷ð ús$   ÁHÄ"H+ÇH7ÈH(È+H4È7I 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¬«      j                  |«      }|j	                  |«      }t        j
                  |«      j                  «       rJ ‚|j                  dk(  sJ ‚t        j                  d	d
«      j                  dd«      }|j	                  |«      }t        |d d …g d¢f   |«       y )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×
:Ñ
:¸1Ó
=€Cà—-‘- Ó"€KÜ�x‰x˜Ó$×(Ñ(Ô*Ð*Ð*Ø×Ñ Ò&Ð&Ð&ä�Y‰Y�q˜"Ó×%Ñ% a¨Ó+€FØ—-‘- Ó'€KÜ�Fš1š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        |j	                  |«      |«       t        |j	                  |«      |j	                  |«      «       y )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‰XâÚÚÚð		
ó€Fô �H‰Hà��A�q˜#ÐÚØ��1�a˜ÐØ��2�q˜!Ðð		
ó€Eô —‘âÚÚÚð		
ó€Iô ¨Q¸AÀyÔQ€Lä¨B¸AÀyÔQ€Kä�L×.Ñ.¨vÓ6¸	ÔBÜØ×"Ñ" 6Ó*¨K×,EÑ,EÀeÓ,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        |j	                  |«      |«       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        |j	                  |«      |«       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        |j                  |«      j                  |«      |«       y )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&  € ô 	�‰âØ��1�bˆMØ��1�bˆMØ��A�qˆMØ��A�qˆMÚÚð	
ó
	€Aô —‘âÚÚÚÚÚÚð	
ó
€Iô ¨Ô+€GÜ�G×)Ñ)¨!Ó,¨iÔ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ô 	�‰�1�a�&˜2˜q˜' A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀBÈÀ8ÐLÓM€Aä	�‰�A�q�6˜A˜q˜6 A r 7Ð+Ó	,€Bà#€EÜ—‘˜A˜q˜6 A q 6¨A¨u¨:Ð6Ó7€Jä¨Ô+€GÜ�G—K‘K “N×,Ñ,¨RÓ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        |j	                  |«      |«       y )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€Aä—‘˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸a¸&À1ÀaÀ&È2ÈrÈ(ÐSÓT€Iä Q°rÔ:€Gä�G×)Ñ)¨!Ó,¨iÕ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                  |«      |«       |j                  d   }t        || ¬«      }t	        |j                  |«      |«       y )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€Aä—‘Ø
ˆQˆ�$˜�˜Q ˜F Q¨ I°°1¨v¸¸a°yÀ2ÀrÀ(ÐKó€Ið —'‘'˜!‘*˜q‘.€KÜ [ÀÔD€Gä�G×)Ñ)¨!Ó,¨iÔ8à—'‘'˜!‘*€KÜ¨;ÀrÔJ€MÜ�M×/Ñ/°Ó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        |j	                  |«      |«       d„ }t        || ¬«      }t        |j	                  |«      |«       d„ }t        || ¬«      }t        |j	                  |«      |«       y )Nr   r   r8   r#   r%   r   r'   rU   r$   rV   r   r
   ©r	   r*   c                  ó   — y ©N© ©Údists    r   Ú	no_weightz2test_knn_imputer_weight_uniform.<locals>.no_weight  s   € Ør   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€Aô Ÿ™Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸"¸b¸ÐBóÐô  ¸2Ô>€GÜ�G×)Ñ)¨!Ó,Ð.?Ô@òô  ¸2Ô>€GÜ�G×)Ñ)¨!Ó,Ð.?Ô@ò"ô  ÀÔ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¢}|j                  ||dd …f   ||df   «       |j	                  |dd…dd …f   «      d   }g d¢}t        |dd…d d …f   || ¬«      }d|d d …|f   j                  «       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        |j                  |«      |	«       t        |j                  |«      |
«       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        |j                  |«      |«       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                  j                  |g d¢df   «      j                  «       }t         j                  j                  |g d ¢df   «      j                  «       }t         j                  j                  ||¬«      }t         j                  j                  ||¬«      }t         j                  j                  ||¬«      }t        j                  g d¢d|d|gddd|gg d¢g d¢g d¢g d¢g«      }t        d| ¬«      }t        |j                  |«      |«       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        |#j                  |«      |«       y )-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      sp  € ä
�‰�1�a�&˜2˜q˜' A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀBÈÀ8ÐLÓM€Aô 
 K¸Ô	D€BÚ#€JØ‡F�Fˆ1ˆZ˜™ˆ^Ñ˜a 
¨A Ñ.Ô/ØŸ
™
 1 Q q S¨!©" W¡:Ó.¨qÑ1Ðò &€OÜ" 1 Q q Sª! V¡9¨aÀÔC€DØ�$’q˜/Ð)Ñ*×0Ñ0Ó2Ñ2€GÜŸ:™: a¨¸Ð(:Ñ&;ÀWÔ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Ü�G×)Ñ)¨!Ó,Ð.AÔBô 	�‰à��AˆJÚÚÚð		
ó	€Aô �w‰wÐ>Ó?€HÜ�w‰wÐ>Ó?€HÜ—J‘J  1˜v°°H±¸aÀ(¹lÐ/KÔL€Mä—‘à˜A˜qÐ!ÚÚÚð		
ó€Iô  Q°
È2ÔN€GÜ�G×)Ñ)¨!Ó,¨iÔ8ô 	�‰âØ��A�rˆNØ��1�bˆMÚÚÚÚð	
ó
	€Aô # 1°RÔ8€DØ˜1šoÐ-Ñ.€OØ˜1šoÐ-Ñ.€OØ�Ñ&€LØ�Ñ&€Là˜1šoÐ-Ñ.€OØ�Ñ&€Lô Ÿ™×,Ñ,¨QªÀÐ/AÑ-BÓC×HÑHÓJÐÜŸ™×,Ñ,¨QªÀÐ/AÑ-BÓC×HÑHÓJÐô �u‰u�}‰}Ð.¸ˆ}ÓE€HÜ�u‰u�}‰}Ð.¸ˆ}ÓE€HÜ�u‰u�}‰}Ð.¸ˆ}ÓE€Hä—‘âØ�˜!˜XÐ&Ø��1�hÐÚÚÚÚð	
ó
€Iô  ¸BÔ?€GÜ�G×)Ñ)¨!Ó,¨iÔ8ä
�‰à��1�bˆMØ��1�bˆMØ��2�qˆMÚÚÚÚØ��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€DÜ�:‰:�a˜˜"˜˜b˜‘k¨6Ô2€DÜ�:‰:�aÐ*Ñ+°VÔ<€DÜ�:‰:�a˜˜!˜˜Q˜‘i¨Ô0€Dä—‘à��1�dˆOØ��1�dˆOØ��4˜ˆOÚÚÚÚØ�1�a˜ˆOð		
ó€Iô !°¸JÔG€OÜ�O×1Ñ1°!Ó4°iÕ@r   c            	      óP  — 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	        |j                  |«      |«       y )NFc                 ó,  — t         j                  j                  | t        j                  | «      ¬«      } t         j                  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‰E�K‰K˜¤§¡¨£ˆKÓ,ˆÜ�E‰E�K‰K˜¤§¡¨£ˆKÓ,ˆÜ�y‰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©V¸Uó ô 	�‰�1�a˜œBŸF™FÐ#¢\²<Ä"Ç&Á&È!ÈRÐQUÐAVÐWÓX€Aà€EØ€EÜ—‘Ø
ˆQ��5Ð	š<ª¸¸qÀ"ÀdÐ7KÐLó€Iô  Q¨Ô?€GÜ�G×)Ñ)¨!Ó,¨iÕ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        |	j                  |«      |«       d d d «       y # 1 sw Y   y xY w)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ÚÚÚÚØ��A�qˆMð		
ó	€Aô �7‰7�1�Q�q�S˜!�V‘9Ó€DÜ�7‰7�1�Q�r�T˜2�X‘;Ó€DÜ�7‰7�1�Q�r�T˜2�X‘;Ó€DÜ�7‰7�1’_ aÐ'Ñ(Ó)€DÜ�7‰7�1�Q�r�T˜1�W‘:Ó€Dä—‘à��a˜ÐØ��1�dˆOØ��4˜ˆOÚÚÚÚØ�1�a˜ˆOð		
ó€Iô 
 ~Ô	6ñ BÜ!°Ô4ˆÜ˜×2Ñ2°1Ó5°yÔA÷B÷ Bñ Bús   Ä(D4Ä4D=c                 ód  — t        j                  | dg| dgd| gg«      }t        j                  ddgddgddgg«      }t        | d|¬«      }t        |j	                  |«      |«       t        j                  d| gg«      }t        j                  ddgg«      }t        |j                  |«      |«       y )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€Jä
 B°A¸wÔ
G€CÜ�C×%Ñ% bÓ)¨:Ô6ä	�‰�A�r�7�)Ó	€BÜ—‘˜A˜q˜6˜(Ó#€JÜ�C—M‘M "Ó% zÕ2r   c                 óB  — t        j                  ddg| dgg«      }t        j                  d| gg«      }t        j                  ddgg«      }t        d| |¬«      }|j                  |«       t	        |j                  |«      |«       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| |¬«      }	|	j                  |«       t	        |	j                  |«      |«       y )	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Á   þ  s  € ô �x‰x˜!˜Q˜ " a Ð)Ó*€HÜ�h‰h˜˜B˜�yÓ!€GÜ—x‘x ! Q  Ó)Ðä !°BÀÔH€DØ‡H�HˆXÔÜ�D—N‘N 7Ó+Ð-=Ô>ä�x‰x˜"˜a ˜ a¨¨Q Z°!°Q¸°Ð<Ó=€HÜ�h‰h˜˜Q ˜ a¨¨R [°2°r¸1°+Ð>Ó?€GÜ—x‘x¢ªI²yÐ AÓBÐä !°BÀÔH€DØ‡H�HˆXÔÜ�D—N‘N 7Ó+Ð-=Õ>r   c                 óZ  — t        j                  | dg| dgg«      }t        | d¬«      }t        j                  dgdgg«      }t        |j	                  |«      |«       t        j                  ddgd| gg«      }t        j                  dgdgg«      }t        |j                  |«      |«       y )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€CÜ—(‘(˜Q˜C ! ˜:Ó&€KÜ�C×%Ñ% bÓ)¨;Ô7ä	�‰�A�q�6˜A˜r˜7Ð#Ó	$€BÜ—(‘(˜Q˜C # ˜<Ó(€KÜ�C—M‘M "Ó% {Õ3r   c           	      óä  — 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        |	j                  |«      |«       t        | dd¬«      }
t        |
j                  |«      |«       d d d «       y # 1 sw Y   y xY w)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€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€Jä	 ~Ô	6ñ <Ü¨"¸!ÀZÔPˆÜ˜×+Ñ+¨AÓ.°
Ô;ä¨"¸!ÀZÔPˆÜ˜×+Ñ+¨AÓ.°
Ô;÷<÷ <ñ <ús   Ä
AE&Å&E/zna, allow_nan)r!   FTc                 ón   — t        | ¬«      }|j                  «       j                  j                  |k(  sJ ‚y )Nr)   )r   Ú__sklearn_tags__Ú
input_tagsÚ	allow_nan)r    rÒ   r@   s      r   Útest_knn_tagsrÓ   7  s/   € ä
 BÔ
'€CØ×ÑÓ!×,Ñ,×6Ñ6¸)Ò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Ý 1Ý 2ð ‡�×Ñ˜ Y°
Ð$;Ó<Ø‡�×Ñ˜©¨a°«Ó4ñ
/ó 5ó =ð
/ð ‡�×Ñ˜ §¡¨˜|Ó,ñ>ó -ð>ðB ‡�×Ñ˜ §¡¨˜|Ó,ñ=ó -ð=ð( ‡�×Ñ˜ §¡¨˜|Ó,ñ$ó -ð$ðN ‡�×Ñ˜ §¡¨˜|Ó,ñF>ó -ðF>ðR ‡�×Ñ˜ §¡¨˜|Ó,ñ9ó -ð9ð ‡�×Ñ˜ §¡¨˜|Ó,ñ?ó -ð?ð" ‡�×Ñ˜ §¡¨˜|Ó,ñAó -ðAð4 ‡�×Ñ˜ §¡¨˜|Ó,ñQAó -ðQAòh9ð( ‡�×ÑÐ)¨D°!¨9Ó5Ø‡�×Ñ˜  B§F¡F˜|Ó,ð ‡�×ÑÐ=Ó>ñ#Bó ?ó -ó 6ð
#BðL ‡�×Ñ˜  B§F¡F˜|Ó,Ø‡�×Ñ˜ Y°
Ð$;Ó<ñ
3ó =ó -ð
3ð ‡�×Ñ˜  B§F¡F˜|Ó,Ø‡�×Ñ˜ Y°
Ð$;Ó<ñ?ó =ó -ð?ð& ‡�×Ñ˜  B§F¡F˜|Ó,ñ4ó -ð4ð ‡�×ÑÐ)¨D°!¨9Ó5Ø‡�×Ñ˜  B§F¡F˜|Ó,ñ<ó -ó 6ð<ð, ‡�×Ñ˜¨;¸¿¹À¸Ð*GÓHñDó IñDr   