Ë
    ÷Q(h&  ã                   ó¢  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
„ Zd„ Zej0                  j3                  dg d¢«      ej0                  j3                  dg d¢«      d„ «       «       Zd$d„Zej0                  j3                  dg d¢«      ej0                  j3                  dg d¢«      d„ «       «       Zd$d„Zd„ Zd„ Zd„ Z ej0                  j3                  ddg d¢g«      d„ «       Z!ej0                  j3                  ddd g«      d!„ «       Z"ej0                  j3                  dg d"¢«      d#„ «       Z#y)%é    N)Ú
make_blobs)ÚNotFittedError)ÚGridSearchCV)ÚKDTreeÚKernelDensityÚNearestNeighbors)Úkernel_norm)Úmake_pipeline)ÚStandardScaler)Úassert_allclosec                 óä  — |dk(  r&|j                   d   d|j                   d   dz   z  z  }n@|dk(  r;|j                   d   |j                   d   dz   z  dz  d|j                   d   dz   z  z  }t        j                  | d d …d d d …f   |z
  dz  j                  d«      «      }t	        ||j                   d   |«      |j                   d   z  }|dk(  r3|t        j
                  d	||z  z  ||z  z  «      j                  d«      z  S |d
k(  r|||k  j                  d«      z  S |dk(  r&|d||z  ||z  z  z
  ||k  z  j                  d«      z  S |dk(  r+|t        j
                  | |z  «      j                  d«      z  S |dk(  r |d||z  z
  ||k  z  j                  d«      z  S |dk(  rD|t        j                  dt        j                  z  |z  |z  «      ||k  z  j                  d«      z  S t        d«      ‚)NÚscottr   éÿÿÿÿé   é   Ú	silvermané   Úgaussiang      à¿ÚtophatÚepanechnikovç      ð?ÚexponentialÚlinearÚcosineg      à?zkernel not recognized)	ÚshapeÚnpÚsqrtÚsumr	   ÚexpÚcosÚpiÚ
ValueError)ÚYÚXÚkernelÚhÚdÚnorms         ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/neighbors/tests/test_kde.pyÚcompute_kernel_slowr*      sõ  € ØˆG‚|Ø�G‰G�A‰J˜2 §¡¨¡¨a¡Ñ0Ñ1‰Ø	
ˆkÒ	Ø�W‰W�Q‰Z˜1Ÿ7™7 1™:¨™>Ñ*¨QÑ.°B¸!¿'¹'À!¹*Àq¹.Ñ4IÑJˆä
�‰�!’A�tšQ�J‘- !Ñ#¨Ñ)×.Ñ.¨rÓ2Ó3€AÜ�q˜!Ÿ'™' !™* fÓ-°·±¸±
Ñ:€Dà�ÒØ”b—f‘f˜T Q¨¡U™^¨q°1©uÑ5Ó6×:Ñ:¸2Ó>Ñ>Ð>Ø	�8Ò	Ø�q˜1‘u—k‘k "“oÑ%Ð%Ø	�>Ò	!Ø˜˜q 1™u¨¨Q©Ñ/Ñ/°A¸±EÑ:×?Ñ?ÀÓCÑCÐCØ	�=Ò	 Ø”r—v‘v˜q˜b 1™f“~×*Ñ*¨2Ó.Ñ.Ð.Ø	�8Ò	Ø˜˜A ™E™	 a¨!¡eÑ,×1Ñ1°"Ó5Ñ5Ð5Ø	�8Ò	Ø”r—v‘v˜c¤B§E¡E™k¨A™o°Ñ1Ó2°a¸!±eÑ<×AÑAÀ"ÓEÑEÐEäÐ0Ó1Ð1ó    c           	      óV  — t        | |||¬«      }|j                  |«      j                  |«      }t        t	        j
                  |«      ||t        d|«      ¬«       t        t	        j
                  |j                  |«      «      t	        j                  |«      |t        d|«      ¬«       y )N)r%   Ú	bandwidthÚatolÚrtolgH¯¼šò×z>)r.   r/   )	r   ÚfitÚscore_samplesr   r   r   ÚmaxÚscoreÚprod)	r%   r-   r.   r/   r$   r#   Ú	dens_trueÚkdeÚlog_denss	            r)   Úcheck_resultsr8   )   sx   € Ü
˜v°ÀÈDÔ
Q€CØ�w‰w�q‹z×'Ñ'¨Ó*€HÜ”B—F‘F˜8Ó$ i°dÄÀTÈ4ÃÕQÜÜ
�‰ˆs�y‰y˜‹|ÓœbŸg™g iÓ0°tÄ#ÀdÈDÃ/ör+   r%   )r   r   r   r   r   r   r-   )ç{®Gáz„?çš™™™™™¹?r   r   r   c                 óü   — d\  }}t         j                  j                  d«      }|j                  ||«      }|j                  ||«      }t	        ||| |«      }dD ]!  }dD ]  }	dD ]  }
t        | ||	||||«       Œ Œ Œ# y )N©éd   é   r   )r   gñhãˆµøä>)g�íµ ÷Æ°>r9   )TF)r   ÚrandomÚRandomStateÚrandnr*   r8   )r%   r-   Ú	n_samplesÚ
n_featuresÚrngr$   r#   r5   r/   r.   Úbreadth_firsts              r)   Útest_kernel_densityrF   2   s™   € ð
 %Ñ€Iˆzä
�)‰)×
Ñ
 Ó
"€CØ�	‰	�)˜ZÓ(€AØ�	‰	�)˜ZÓ(€Aä# A q¨&°)Ó<€Iàò NˆØ ò 	NˆDØ!.ò N�Ü˜f i°°t¸QÀÀ9ÕMñNñ	NñNr+   c                 óL  — t         j                  j                  d«      }|j                  | |«      }d}dD ]¾  }t	        ||¬«      j                  |«      }|j                  d«      }|j                  |j                  k(  sJ ‚t        d¬«      j                  |«      }|j                  |d¬	«      \  }	}
|d
k(  rt        j                  |	|k  «      rŒšJ ‚|dk(  sŒ¢t        j                  |	d|z  k  «      rŒ¾J ‚ dD ]Q  }t	        ||¬«      j                  |«      }t        j                  t        «      5  |j                  d«       d d d «       ŒS |j                  dd«      }t	        d¬«      j                  |«      }|j                  «       j                  dk(  sJ ‚y # 1 sw Y   ŒªxY w)Nr   çš™™™™™É?)r   r   )r-   r%   r=   r   )Ún_neighborsT)Úreturn_distancer   r   é   )r   r   r   r   r   ©r%   )r   r   )r   r?   r@   rA   r   r0   Úsampler   r   Ú
kneighborsÚallÚpytestÚraisesÚNotImplementedError)rB   rC   rD   r$   r-   r%   r6   ÚsampÚnbrsÚdistÚinds              r)   Útest_kernel_density_samplingrW   E   s€  € Ü
�)‰)×
Ñ
 Ó
"€CØ�	‰	�)˜ZÓ(€Aà€Ià(ò 0ˆä i¸Ô?×CÑCÀAÓFˆØ�z‰z˜#‹ˆØ�w‰w˜$Ÿ*™*Ò$Ð$Ð$ô  ¨AÔ.×2Ñ2°1Ó5ˆØ—O‘O A°t�OÓ<‰	ˆˆcà�XÒÜ—6‘6˜$ Ñ*Õ+Ð+Ð+Ø�zÓ!ô —6‘6˜$  Y¡Ñ.Õ/Ð/Ð/ð0ð$ Fò ˆÜ i¸Ô?×CÑCÀAÓFˆÜ�]‰]Ô.Ó/ñ 	Ø�J‰J�sŒO÷	ð 	ðð 	�	‰	�!�Q‹€AÜ
˜zÔ
*×
.Ñ
.¨qÓ
1€CØ�:‰:‹<×Ñ Ò'Ð'Ñ'÷	ð 	ús   Ä1FÆF#	Ú	algorithm©ÚautoÚ	ball_treeÚkd_treeÚmetric)Ú	euclideanÚ	minkowskiÚ	manhattanÚ	chebyshevÚ	haversinec                 óÖ  — t         j                  j                  d«      }|j                  dd«      }|j                  dd«      }t	        | |¬«      }| dk(  rH|t
        j                  vr6t        j                  t        d¬«      5  |j                  |«       d d d «       y |j                  |«       |j                  |«      }|j                  |j                  d d k(  sJ ‚y # 1 sw Y   y xY w)	Nr   é
   r   ©rX   r]   r\   zinvalid metric)Úmatchr   )r   r?   r@   rA   r   r   Úvalid_metricsrP   rQ   r"   r0   r1   r   )rX   r]   rD   r$   r#   r6   Úy_denss          r)   Ú test_kde_algorithm_metric_choiceri   h   sÆ   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�aÓ€AØ�	‰	�"�aÓ€Aä
 )°FÔ
;€Cà�IÒ &´×0DÑ0DÑ"DÜ�]‰]œ:Ð-=Ô>ñ 	Ø�G‰G�AŒJ÷	ð 	ð 	�‰�Œ
Ø×"Ñ" 1Ó%ˆØ�|‰|˜qŸw™w r¨˜{Ò*Ð*Ñ*÷	ð 	ús   ÂCÃC(c                  ó   — y )N© )rB   rC   s     r)   Útest_kde_scorerl   }   s   € Ør+   c                  ó  — t        «       } t        j                  t        «      5  | j	                  t
        j                  j                  d«      t
        j                  j                  d«      ¬«       d d d «       t        j                  t        «      5  | j	                  t
        j                  j                  d«      t
        j                  j                  d«       ¬«       d d d «       y # 1 sw Y   ŒzxY w# 1 sw Y   y xY w)N)éÈ   rd   ©Úsample_weightrn   )r   rP   rQ   r"   r0   r   r?   )r6   s    r)   Útest_kde_sample_weights_errorrq   …   s¸   € Ü
‹/€CÜ	�‰”zÓ	"ñ XØ�‰”—	‘	× Ñ  Ó+¼2¿9¹9×;KÑ;KÈIÓ;VˆÔW÷Xä	�‰”zÓ	"ñ SØ�‰”—	‘	× Ñ  Ó+¼B¿I¹I×<LÑ<LÈSÓ<QÐ;QˆÔR÷Sð S÷Xð Xú÷Sð Sús   ¤AC+ÂAC7Ã+C4Ã7D c                  óú   — t        ddddgddgddgg¬«      \  } }t        t        dd¬«      t        d¬«      «      }t	        g d	¢¬
«      }t        ||¬«      }|j                  | «       |j                  d   dk(  sJ ‚y )Nr:   r   r   )Úcluster_stdÚrandom_stateÚcentersF)Ú	with_meanÚwith_stdr   rL   )çü©ñÒMbP?r9   r:   r   rd   )Úkerneldensity__bandwidth)Ú
param_gridry   )r   r
   r   r   Údictr   r0   Úbest_params_)r$   Ú_Úpipe1ÚparamsÚsearchs        r)   Útest_kde_pipeline_gridsearchr�   �   s„   € ä #°AÀÀAÀÈÈAÈÐQRÐTUÐPVÐ?WÔX�D€A€qÜÜ °Ô7Ü˜ZÔ(ó€Eô Ò+DÔE€FÜ˜%¨FÔ3€FØ
‡J�Jˆq„MØ×ÑÐ9Ñ:¸cÒAÐAÑAr+   c            	      óÔ  — d} d}t        j                  | d«      }dD �]H  }t         j                  j                  d«      }|j	                  | |«      }dd|j                  d¬«      z  j                  t         j                  «      z   }t        j                  ||d¬«      }||z  }|j	                  ||«      }	d	D �]ª  }
d
D �]¡  }|
dk7  s|t        j                  v sŒt        |
|¬«      }|j                  ||¬«       |j                  |	«      }|j                  d¬«      }|j                  |«       |j                  |	«      }|j                  d¬«      }t        ||«       t        ||«       |j                  ||¬«       |j                  |	«      }|j                  d¬«      }|j                  |«       |j                  |	«      }|j                  d¬«      }t        ||«       t        ||«       t        j                   t        j"                  ||z
  «      «      }|dkD  sJ ‚|j	                  «       }|j                  |||z  ¬«       |j                  |	«      }t        ||«       �Œ¤ �Œ­ �ŒK y )Ni�  é   ç      @)r   r   rd   r   r   rd   )ÚaxisrY   )r^   r_   r`   ra   r\   re   ro   iÒ  )rt   rx   )r   Úfullr?   r@   Úrandr   ÚastypeÚint8Úrepeatr   rg   r   r0   r1   rM   r   r2   Úabs)rB   Ú	size_testÚweights_neutralr'   rD   r$   ÚweightsÚX_repetitionsÚn_samples_testÚtest_pointsrX   r]   r6   Úscores_const_weightÚsample_const_weightÚscores_no_weightÚsample_no_weightÚscores_weightrp   Úscores_ref_samplingÚsample_ref_samplingÚdiffÚscale_factorÚscores_scaled_weights                           r)   Útest_kde_sample_weightsrœ   š   s@  € Ø€IØ€IÜ—g‘g˜i¨Ó-€OØó (IˆÜ�i‰i×#Ñ# AÓ&ˆØ�H‰H�Y Ó"ˆØ�r˜AŸE™E q˜E›MÑ)×1Ñ1´"·'±'Ó:Ñ:ˆÜŸ	™	 ! W°1Ô5ˆØ" a™ˆØ—h‘h˜~¨qÓ1ˆØ9ó !	IˆIØNó  I�Ø 	Ò)¨V´v×7KÑ7KÒ-KÜ'°)ÀFÔK�Cð —G‘G˜A¨_�GÔ=Ø*-×*;Ñ*;¸KÓ*HÐ'Ø*-¯*©*À$¨*Ó*GÐ'Ø—G‘G˜A”JØ'*×'8Ñ'8¸Ó'EÐ$Ø'*§z¡z¸t zÓ'DÐ$Ü#Ð$7Ð9IÔJÜ#Ð$7Ð9IÔJð —G‘G˜A¨W�GÔ5Ø$'×$5Ñ$5°kÓ$B�MØ$'§J¡J¸D JÓ$A�MØ—G‘G˜MÔ*Ø*-×*;Ñ*;¸KÓ*HÐ'Ø*-¯*©*À$¨*Ó*GÐ'Ü# MÐ3FÔGÜ# MÐ3FÔGô Ÿ6™6¤"§&¡&Ð)9¸MÑ)IÓ"JÓK�DØ %š<Ð'˜<ð $'§8¡8£:�LØ—G‘G˜A¨l¸WÑ.D�GÔFØ+.×+<Ñ+<¸[Ó+IÐ(Ü#Ð$8¸-ÖHòA Iò!	Iñ(Ir+   rp   )r:   rH   g333333Ó?c                 ó„  — t        «       }t        j                  g d¢d«      }|j                  ||¬«       t        j                  ddgd«      }|j	                  |«      }t        | j                  d«      «      }t        j                  ||«       t        j                  |«      }|j	                  |«      }t        ||«       y )N)r   g       @r„   )r   r   ro   gš™™™™™ñ?gÍÌÌÌÌÌ @zdump.pkl)r   r   Úreshaper0   r1   ÚstrÚjoinÚjoblibÚdumpÚloadr   )Útmpdirrp   r6   Údatar$   ÚscoresÚ	file_pathÚscores_pickleds           r)   Útest_picklingr©   É   s˜   € ô ‹/€CÜ�:‰:’o wÓ/€DØ‡G�GˆD €GÔ.ä
�
‰
�C˜�:˜wÓ'€AØ×Ñ˜qÓ!€Fä�F—K‘K 
Ó+Ó,€IÜ
‡K�K��YÔÜ
�+‰+�iÓ
 €CØ×&Ñ& qÓ)€Nä�F˜NÕ+r+   Úmethodr1   rM   c                 óú   — t         j                  j                  d«      }|j                  dd«      }t	        «       }t        j                  t        «      5   t        || «      |«       d d d «       y # 1 sw Y   y xY w)Nr   rd   r   )	r   r?   r@   rA   r   rP   rQ   r   Úgetattr)rª   rD   r$   r6   s       r)   Útest_check_is_fittedr­   Þ   sa   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�aÓ€AÜ
‹/€Cä	�‰”~Ó	&ñ  ØŒ��VÓ˜QÔ÷ ÷  ñ  ús   ÁA1Á1A:)r   r   r:   c                 óh  — d\  }}t         j                  j                  d«      }|j                  ||«      }t	        | ¬«      j                  |«      }|j                  d«      }|j                  |«      }|j                  |j                  k(  sJ ‚|j                  |fk(  sJ ‚| dk(  r&|j                  d   d|j                  d   dz   z  z  }nC| d	k(  r<|j                  d   |j                  d   d
z   z  dz  d|j                  d   dz   z  z  }n| }|j                  t        j                  |«      k(  sJ ‚y )Nr<   r   )r-   r=   r   r   r   r   r   r   )r   r?   r@   rA   r   r0   rM   r1   r   Ú
bandwidth_rP   Úapprox)	r-   rB   rC   rD   r$   r6   rS   Úkde_scr&   s	            r)   Útest_bandwidthr²   ê   s  € à$Ñ€IˆzÜ
�)‰)×
Ñ
 Ó
"€CØ�	‰	�)˜ZÓ(€AÜ
 )Ô
,×
0Ñ
0°Ó
3€CØ�:‰:�c‹?€DØ×Ñ˜qÓ!€FØ�7‰7�d—j‘jÒ Ð Ð Ø�<‰<˜I˜<Ò'Ð'Ð'ð �GÒØ�G‰G�A‰J˜2 §¡¨¡¨a¡Ñ0Ñ1‰Ø	�kÒ	!Ø�W‰W�Q‰Z˜1Ÿ7™7 1™:¨™>Ñ*¨QÑ.°B¸!¿'¹'À!¹*Àq¹.Ñ4IÑJ‰àˆØ�>‰>œVŸ]™]¨1Ó-Ò-Ð-Ñ-r+   r<   )$r¡   Únumpyr   rP   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.model_selectionr   Úsklearn.neighborsr   r   r   Úsklearn.neighbors._ball_treer	   Úsklearn.pipeliner
   Úsklearn.preprocessingr   Úsklearn.utils._testingr   r*   r8   ÚmarkÚparametrizerF   rW   ri   rl   rq   r�   rœ   r©   r­   r²   rk   r+   r)   ú<module>r¾      sZ  ðÛ Û Û å 'Ý -Ý 0ß EÑ EÝ 4Ý *Ý 0Ý 2ò2ò2ð ‡�×ÑØÒWóð ‡�×Ñ˜Ò&JÓKñNó LóðNó (ðF ‡�×Ñ˜Ò&FÓGØ‡�×ÑØÒOóñ+óó Hð+ó"	òSò
Bò,Ið^ ‡�×Ñ˜¨4²Ð*AÓBñ,ó Cð,ð( ‡�×Ñ˜ O°XÐ#>Ó?ñ ó @ð ð ‡�×Ñ˜Ò&AÓBñ.ó Cñ.r+   