Ë
    ÷Q(hÃ@  ã                   óÂ  — d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZ d dlmZmZmZ d dlmZ ej.                  j1                  d «      Zej5                  d¬«      Zej5                  d¬«      Zeej;                  d	¬
«      dd…ej<                  f   z  Zeej;                  d	¬
«      dd…ej<                  f   z  Zdej>                  _         dej>                  _         ejB                  jE                  dg d¢«      ejB                  jE                  dg d¢«      ejB                  jE                  dd dg«      d„ «       «       «       Z#ejB                  jE                  de«      ejB                  jE                  dddg«      ejB                  jE                  dg d¢«      ejB                  jE                  dd dg«      d„ «       «       «       «       Z$d„ Z%ejB                  jE                  de«      d„ «       Z&ejB                  jE                  dg d¢«      ejB                  jE                  d e'd	d«      «      d„ «       «       Z(ejB                  jE                  dg d¢«      d „ «       Z)d!„ Z*d"„ Z+d#„ Z,d$„ Z-d%„ Z.d&„ Z/d'„ Z0d(„ Z1ejB                  jE                  de«      d)„ «       Z2d*„ Z3d+„ Z4d,„ Z5d-„ Z6d.„ Z7d/„ Z8d0„ Z9ejB                  jE                  d1e	e
eeg«      d2„ «       Z:d3„ Z;y)4é    N)Úmake_classification)ÚAdditiveChi2SamplerÚNystroemÚPolynomialCountSketchÚ
RBFSamplerÚSkewedChi2Sampler)Úchi2_kernelÚkernel_metricsÚpolynomial_kernelÚ
rbf_kernel)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERS)é,  é2   ©Úsizeé   ©ÚaxisFÚgamma)çš™™™™™¹?r   ç      @zdegree, n_components))r   éô  )é   r   )é   iˆ  Úcoef0r   c                 óâ  — t        t        t        | ||¬«      }t        || ||d¬«      }|j	                  t        «      }|j                  t        «      }t        j                  ||j                  «      }||z
  }	t        j                  t        j                  |	«      «      dk  sJ ‚t        j                  |	|	¬«       t        j                  |	«      dk  sJ ‚t        j                  |	«      dk  sJ ‚y )N)r   Údegreer   é*   )Ún_componentsr   r   r    Úrandom_stateçš™™™™™©?©Úoutr   )r   ÚXÚYr   Úfit_transformÚ	transformÚnpÚdotÚTÚabsÚmeanÚmax)
r   r    r   r"   ÚkernelÚps_transformÚX_transÚY_transÚkernel_approxÚerrors
             úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_kernel_approximation.pyÚtest_polynomial_count_sketchr8   (   sÊ   € ô œq¤!¨5¸ÀuÔM€Fô )Ø!ØØØØô€Lð ×(Ñ(¬Ó+€GØ×$Ñ$¤QÓ'€GÜ—F‘F˜7 G§I¡IÓ.€Mà�]Ñ"€EÜ�6‰6”"—'‘'˜%“.Ó! TÒ)Ð)Ð)Ü‡F�Fˆ5�eÕÜ�6‰6�%‹=˜CÒÐÐÜ�7‰7�5‹>˜TÒ!Ð!Ñ!ó    Úcsr_containerr   ç      ð?r    )r   r   r   c                 ó4  — t        d| ||d¬«      }|j                  t        «      }|j                  t        «      }t        d| ||d¬«      }|j                   |t        «      «      }|j                   |t        «      «      }	t        ||«       t        ||	«       y)zZCheck that PolynomialCountSketch results are the same for dense and sparse
    input.
    r   r!   )r"   r   r    r   r#   N)r   r)   r'   r*   r(   r   )
r   r    r   r:   Úps_denseÚXt_denseÚYt_denseÚ	ps_sparseÚ	Xt_sparseÚ	Yt_sparses
             r7   Ú)test_polynomial_count_sketch_dense_sparserC   E   s’   € ô %Ø ¨f¸EÐPRô€Hð ×%Ñ%¤aÓ(€HØ×!Ñ!¤!Ó$€Hä%Ø ¨f¸EÐPRô€Ið ×'Ñ'©´aÓ(8Ó9€IØ×#Ñ#¡M´!Ó$4Ó5€Iä�H˜iÔ(Ü�H˜iÕ(r9   c                 óB   — t        j                  | |j                  «      S )N)r+   r,   r-   )r'   r(   s     r7   Ú_linear_kernelrE   ]   s   € Ü�6‰6�!�Q—S‘S‹>Ðr9   c                 óF  — t         d d …t        j                  d d …f   j                  «       }t        t        j                  d d …d d …f   j                  «       }d|z  |z  ||z   z  }|j                  d¬«      }t        d¬«      }|j                  t         «      }|j                  t        «      }t        j                  ||j                  «      }t        ||d«       |j                   | t         «      «      }	|j                   | t        «      «      }
t        ||	j                  «       «       t        ||
j                  «       «       t        j                  «       }d|d<   d}t        j                  t         |¬	«      5  |j#                  |«       d d d «       y # 1 sw Y   y xY w)
Nr   r   r   ©Úsample_stepsr   éÿÿÿÿ©r   r   z!Negative values in data passed to©Úmatch)r'   r+   ÚnewaxisÚcopyr(   Úsumr   r)   r*   r,   r-   r   r   ÚtoarrayÚpytestÚraisesÚ
ValueErrorÚfit)r:   ÚX_ÚY_Úlarge_kernelr1   r*   r3   r4   r5   Ú
X_sp_transÚ
Y_sp_transÚY_negÚmsgs                r7   Útest_additive_chi2_samplerr\   a   sQ  € ô 
Š1Œb�j‰jš!ÐÑ	×	!Ñ	!Ó	#€BÜ	
Œ2�:‰:’qš!ÐÑ	×	!Ñ	!Ó	#€Bà�r‘6˜B‘; " r¡'Ñ*€Lð ×Ñ 1ÐÓ%€Fô $°Ô3€IØ×%Ñ%¤aÓ(€GØ×!Ñ!¤!Ó$€Gä—F‘F˜7 G§I¡IÓ.€Mä˜f m°QÔ7à×(Ñ(©´qÓ)9Ó:€JØ×$Ñ$¡]´1Ó%5Ó6€Jä�w 
× 2Ñ 2Ó 4Ô5Ü�w 
× 2Ñ 2Ó 4Ô5ô �F‰F‹H€EØ€Eˆ$�KØ
-€CÜ	�‰”z¨Ô	-ñ Ø�‰�eÔ÷÷ ñ ús   Å<FÆF Úmethod)rT   r)   r*   rH   é   c                 ó´   — t        |¬«      } t        || «      t        «       d}t        ||¬«      } t        || «      t        «       |j                  |k(  sJ ‚y)zsCheck that the input sample step doesn't raise an error
    and that sample interval doesn't change after fit.
    rG   g      à?)rH   Úsample_intervalN)r   Úgetattrr'   r`   )r]   rH   Útransformerr`   s       r7   Ú'test_additive_chi2_sampler_sample_stepsrc   †   s[   € ô &°<Ô@€KØ „GˆK˜Ó ¤Ô#à€OÜ%Ø!Ø'ô€Kð !„GˆK˜Ó ¤Ô#Ø×&Ñ&¨/Ò9Ð9Ñ9r9   c                 óÒ   — t        d¬«      }t        j                  d«      }t        j                  t
        |¬«      5   t        || «      t        «       ddd«       y# 1 sw Y   yxY w)z8Check that we raise a ValueError on invalid sample_stepsr^   rG   zHIf sample_steps is not in [1, 2, 3], you need to provide sample_intervalrK   N)r   ÚreÚescaperQ   rR   rS   ra   r'   )r]   rb   r[   s      r7   Ú-test_additive_chi2_sampler_wrong_sample_stepsrg   ˜   sU   € ô &°1Ô5€KÜ
�)‰)ØRó€Cô 
�‰”z¨Ô	-ñ (Ø$Œ�˜VÓ$¤QÔ'÷(÷ (ñ (ús   ½AÁA&c                  óê  — d} t         j                  «       }|  dz  |d<   t        | z   d d …t        j                  d d …f   }|| z   t        j                  d d …d d …f   }t        j
                  |«      dz  t        j
                  |«      dz  z   t        j
                  d«      z   t        j
                  ||z   «      z
  }t        j                  |j                  d¬«      «      }t        | dd¬«      }|j                  t        «      }|j                  |«      }t        j                  ||j                  «      }	t        ||	d	«       t        j                  |«      j                  «       sJ d
«       ‚t        j                  |	«      j                  «       sJ d«       ‚|j                  «       }
|  dz  |
d<   d}t!        j"                  t$        |¬«      5  |j                  |
«       d d d «       y # 1 sw Y   y xY w)Ng¸…ëQ¸ž?g       @rJ   r   r   éè  r!   )Ú
skewednessr"   r#   r   zNaNs found in the Gram matrixz)NaNs found in the approximate Gram matrixz2X may not contain entries smaller than -skewednessrK   )r(   rN   r'   r+   rM   ÚlogÚexprO   r   r)   r*   r,   r-   r   ÚisfiniteÚallrQ   rR   rS   )ÚcrV   ÚX_cÚY_cÚ
log_kernelr1   r*   r3   r4   r5   rZ   r[   s               r7   Útest_skewed_chi2_samplerrs   £   s¡  € ð 	€Aô 
�‰‹€BØˆr�C‰x€B€t�Hô ˆq‰5’!”R—Z‘Z¢Ð"Ñ
#€CØ�‰6”2—:‘:šq¢!Ð#Ñ
$€Cô
 
�‰�‹�sÑ	œrŸv™v c›{¨SÑ0Ñ1´B·F±F¸3³KÑ?Ä"Ç&Á&ÈÈsÉÓBSÑSð ô �V‰V�J—N‘N¨�NÓ*Ó+€Fô "¨Q¸TÐPRÔS€IØ×%Ñ%¤aÓ(€GØ×!Ñ! "Ó%€Gä—F‘F˜7 G§I¡IÓ.€MÜ˜f m°QÔ7Ü�;‰;�vÓ×"Ñ"Ô$ÐEÐ&EÓEÐ$Ü�;‰;�}Ó%×)Ñ)Ô+ÐXÐ-XÓXÐ+ð �G‰G‹I€EØ�"�s‘(€Eˆ$�KØ
>€CÜ	�‰”z¨Ô	-ñ #Ø×Ñ˜EÔ"÷#÷ #ñ #ús   ÇG)Ç)G2c                  óx  — t        «       } t        j                  «       }d|d<   t        j                  t
        d¬«      5  | j                  |«       ddd«       t        j                  t
        d¬«      5  | j                  t        «       | j                  |«       ddd«       y# 1 sw Y   ŒTxY w# 1 sw Y   yxY w)zEnsures correct error messagerI   rJ   zX in AdditiveChi2SamplerrK   N)r   r'   rN   rQ   rR   rS   rT   r*   )rb   ÚX_negs     r7   Ú%test_additive_chi2_sampler_exceptionsrv   Ì   s‘   € ä%Ó'€KÜ�F‰F‹H€EØ€Eˆ$�KÜ	�‰”zÐ)CÔ	Dñ Ø�‰˜Ô÷ä	�‰”zÐ)CÔ	Dñ %Ø�‰œÔØ×Ñ˜eÔ$÷%ð %÷ð ú÷%ð %ús   ¿B$Á4'B0Â$B-Â0B9c                  óÞ  — d} t        t        t        | ¬«      }t        | dd¬«      }|j	                  t        «      }|j                  t        «      }t        j                  ||j                  «      }||z
  }t        j                  t        j                  |«      «      dk  sJ ‚t        j                  ||¬«       t        j                  |«      dk  sJ ‚t        j                  |«      d	k  sJ ‚y )
Ng      $@©r   ri   r!   )r   r"   r#   g{®Gáz„?r%   r   r$   )r   r'   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   )r   r1   Úrbf_transformr3   r4   r5   r6   s          r7   Útest_rbf_samplerrz   Ø   s¾   € ð €EÜœœ1 EÔ*€Fô  U¸ÈBÔO€MØ×)Ñ)¬!Ó,€GØ×%Ñ%¤aÓ(€GÜ—F‘F˜7 G§I¡IÓ.€Mà�]Ñ"€EÜ�6‰6”"—'‘'˜%“.Ó! TÒ)Ð)Ð)Ü‡F�Fˆ5�eÕÜ�6‰6�%‹=˜CÒÐÐÜ�7‰7�5‹>˜TÒ!Ð!Ñ!r9   c                 óæ   — t        «       }t        j                  ddgddgddgg| ¬«      }|j                  |«       |j                  j
                  | k(  sJ ‚|j                  j
                  | k(  sJ ‚y©	zRCheck that the fitted attributes are stored accordingly to the
    data type of X.r   r   r   r^   é   é   ©ÚdtypeN)r   r+   ÚarrayrT   Úrandom_offset_r€   Úrandom_weights_)Úglobal_dtypeÚrbfr'   s      r7   Ú(test_rbf_sampler_fitted_attributes_dtyper†   ë   sm   € ô ‹,€Cä
�‰�1�a�&˜1˜a˜& 1 a &Ð)°Ô>€Aà‡G�GˆA„Jà×Ñ×#Ñ# |Ò3Ð3Ð3Ø×Ñ×$Ñ$¨Ò4Ð4Ñ4r9   c                  ó°  — t        d¬«      } t        j                  ddgddgddggt        j                  ¬	«      }| j	                  |«       t        d¬«      }t        j                  ddgddgddggt        j
                  ¬	«      }|j	                  |«       t        | j                  |j                  «       t        | j                  |j                  «       y
©z?Check the equivalence of the results with 32 and 64 bits input.r!   )r#   r   r   r   r^   r}   r~   r   N)	r   r+   r�   Úfloat32rT   Úfloat64r   r‚   rƒ   )Úrbf32ÚX32Úrbf64ÚX64s       r7   Ú"test_rbf_sampler_dtype_equivalencer�   ø   s¦   € ä BÔ'€EÜ
�(‰(�Q˜�F˜Q ˜F Q¨ FÐ+´2·:±:Ô
>€CØ	‡I�Iˆc„Nä BÔ'€EÜ
�(‰(�Q˜�F˜Q ˜F Q¨ FÐ+´2·:±:Ô
>€CØ	‡I�Iˆc„Nä�E×(Ñ(¨%×*>Ñ*>Ô?Ü�E×)Ñ)¨5×+@Ñ+@ÕAr9   c                  óœ   — dgdggddg}} t        d¬«      }|j                  | |«       |j                  t        j                  d«      k(  sJ ‚y)	z4Check the inner value computed when `gamma='scale'`.g        r;   r   r   Úscalerx   r^   N)r   rT   Ú_gammarQ   Úapprox)r'   Úyr…   s      r7   Útest_rbf_sampler_gamma_scaler•     sI   € àˆE�C�5ˆ>˜A˜q˜6€q€AÜ
˜7Ô
#€CØ‡G�GˆAˆq„MØ�:‰:œŸ™ qÓ)Ò)Ð)Ñ)r9   c                 óæ   — t        «       }t        j                  ddgddgddgg| ¬«      }|j                  |«       |j                  j
                  | k(  sJ ‚|j                  j
                  | k(  sJ ‚yr|   )r   r+   r�   rT   r‚   r€   rƒ   )r„   Úskewed_chi2_samplerr'   s      r7   Ú0test_skewed_chi2_sampler_fitted_attributes_dtyper˜     sr   € ô ,Ó-Ðä
�‰�1�a�&˜1˜a˜& 1 a &Ð)°Ô>€Aà×Ñ˜AÔà×-Ñ-×3Ñ3°|ÒCÐCÐCØ×.Ñ.×4Ñ4¸ÒDÐDÑDr9   c                  ó°  — t        d¬«      } t        j                  ddgddgddggt        j                  ¬	«      }| j	                  |«       t        d¬«      }t        j                  ddgddgddggt        j
                  ¬	«      }|j	                  |«       t        | j                  |j                  «       t        | j                  |j                  «       y
rˆ   )	r   r+   r�   r‰   rT   rŠ   r   r‚   rƒ   )Úskewed_chi2_sampler_32ÚX_32Úskewed_chi2_sampler_64ÚX_64s       r7   Ú*test_skewed_chi2_sampler_dtype_equivalencerž     s¸   € ä.¸BÔ?ÐÜ�8‰8�a˜�V˜a ˜V a¨ VÐ,´B·J±JÔ?€DØ×Ñ˜tÔ$ä.¸BÔ?ÐÜ�8‰8�a˜�V˜a ˜V a¨ VÐ,´B·J±JÔ?€DØ×Ñ˜tÔ$äØ×-Ñ-Ð/E×/TÑ/Tôô Ø×.Ñ.Ð0F×0VÑ0Võr9   c                 ój  — ddgddgddgg}t        «       j                  |«      j                  |«       t        «       j                  |«      j                  |«       t	        «       j                  |«      j                  |«        | |«      }t	        «       j                  |«      j                  |«       y )Nr   r   r   r^   r}   r~   )r   rT   r*   r   r   )r:   r'   s     r7   Útest_input_validationr    -  s”   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÜÓ×Ñ˜aÓ ×*Ñ*¨1Ô-ÜÓ×Ñ˜AÓ×(Ñ(¨Ô+ÜƒL×Ñ�QÓ×!Ñ! !Ô$á�aÓ€AÜƒL×Ñ�QÓ×!Ñ! !Õ$r9   c                  ó  — t         j                  j                  d«      } | j                  d¬«      }t	        |j
                  d   ¬«      j                  |«      }t        |«      }t        t        j                  ||j                  «      |«       t	        d| ¬«      }|j                  |«      j                  |«      }|j
                  |j
                  d   dfk(  sJ ‚t	        dt        | ¬«      }|j                  |«      j                  |«      }|j
                  |j
                  d   dfk(  sJ ‚t        «       }|D ]P  }t	        d|| ¬«      }|j                  |«      j                  |«      }|j
                  |j
                  d   dfk(  rŒPJ ‚ y )Nr   ©é
   r^   r   ©r"   r   ©r"   r#   )r"   r1   r#   )r+   ÚrandomÚRandomStateÚuniformr   Úshaper)   r   r   r,   r-   rT   r*   rE   r
   )Úrndr'   ÚX_transformedÚKÚtransÚkernels_availableÚkerns          r7   Útest_nystroem_approximationr°   :  sS  € ä
�)‰)×
Ñ
 Ó
"€CØ�‰˜ˆÓ!€Aô ¨!¯'©'°!©*Ô5×CÑCÀAÓF€MÜ�1‹€AÜœbŸf™f ]°M·O±OÓDÀaÔHä !°#Ô6€EØ—I‘I˜a“L×*Ñ*¨1Ó-€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ô  !¬NÈÔM€EØ—I‘I˜a“L×*Ñ*¨1Ó-€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ô 'Ó(ÐØ!ò 6ˆÜ a°À3ÔGˆØŸ	™	 !›×.Ñ.¨qÓ1ˆØ×"Ñ" q§w¡w¨q¡z°1 oÓ5Ð5Ð5ñ6r9   c                  óÀ  — t         j                  j                  d«      } | j                  d¬«      }t	        d¬«      }|j                  |«      }t        |d ¬«      }t        j                  ||j                  «      }t        ||«       t	        dd¬«      }|j                  |«      }t        |d	¬«      }t        j                  ||j                  «      }t        ||«       y )
Nr!   r¢   r   r£   r¤   rx   Úchi2©r1   r"   r   )r+   r¦   r§   r¨   r   r)   r   r,   r-   r   r	   )rª   r'   Únystroemr«   r¬   ÚK2s         r7   Ú test_nystroem_default_parametersr¶   U  s´   € Ü
�)‰)×
Ñ
 Ó
#€CØ�‰˜ˆÓ!€Aô  RÔ(€HØ×*Ñ*¨1Ó-€MÜ�1˜DÔ!€AÜ	�‰�˜}Ÿ™Ó	/€BÜ˜a Ô$ô ˜v°BÔ7€HØ×*Ñ*¨1Ó-€MÜ�A˜QÔ€AÜ	�‰�˜}Ÿ™Ó	/€BÜ˜a Õ$r9   c                  óÚ  — t         j                  j                  d«      } | j                  dd«      }t        j                  |gdz  «      }d}t        ||j                  d   ¬«      j                  |«      }|j                  |«      }t        ||¬«      }t        |t        j                  ||j                  «      «       t        j                  t        j                  t        «      «      sJ ‚y )Nr   r£   é   r   éd   )r   r"   rx   )r+   r¦   r§   ÚrandÚvstackr   r©   rT   r*   r   r   r,   r-   rn   rm   r(   )Úrngr'   r   ÚNr«   r¬   s         r7   Útest_nystroem_singular_kernelr¾   i  sª   € ä
�)‰)×
Ñ
 Ó
"€CØ�‰��RÓ€AÜ
�	‰	�1�#˜‘'Ó€Aà€EÜ�u¨1¯7©7°1©:Ô6×:Ñ:¸1Ó=€AØ—K‘K “N€Mä�1˜EÔ"€Aä˜a¤§¡¨°}·±Ó!GÔHÜ�6‰6”"—+‘+œa“.Ô!Ð!Ñ!r9   c                  ó0  — t         j                  j                  d«      } | j                  d¬«      }t	        |dd¬«      }t        d|j                  d   dd¬	«      }|j                  |«      }t        t        j                  ||j                  «      |«       y )
Né%   r¢   r   gÍÌÌÌÌÌ@r   ©r    r   Ú
polynomialr   )r1   r"   r    r   )r+   r¦   r§   r¨   r   r   r©   r)   r   r,   r-   )rª   r'   r¬   r´   r«   s        r7   Ú test_nystroem_poly_kernel_paramsrÃ   y  sz   € ä
�)‰)×
Ñ
 Ó
#€CØ�‰˜ˆÓ!€Aä˜! C¨sÔ3€AÜØ¨!¯'©'°!©*¸SÈô€Hð ×*Ñ*¨1Ó-€MÜœbŸf™f ]°M·O±OÓDÀaÕHr9   c                  óØ  — t         j                  j                  d«      } d}| j                  |df¬«      }d„ }g }t	        |«      }t        ||dz
  d|i¬«      j                  |«       t        |«      ||dz
  z  d	z  k(  sJ ‚d
}ddiddidd	if}|D ]L  }t        dt        |dz
  dœ|¤Ž}t        j                  t        |¬«      5  |j                  |«       d d d «       ŒN y # 1 sw Y   ŒYxY w)Nr!   r£   r^   r   c                 ól   — |j                  d«       t        j                  | |«      j                  «       S )z&Histogram kernel that writes to a log.r   )Úappendr+   ÚminimumrO   )Úxr”   rk   s      r7   Úlogging_histogram_kernelz8test_nystroem_callable.<locals>.logging_histogram_kernelŒ  s'   € à�
‰
�1ŒÜ�z‰z˜!˜QÓ×#Ñ#Ó%Ð%r9   r   rk   )r1   r"   Úkernel_paramsr   ú-Don't pass gamma, coef0 or degree to Nystroemr   r   r    r³   rK   © )r+   r¦   r§   r¨   Úlistr   rT   ÚlenrE   rQ   rR   rS   )	rª   Ú	n_samplesr'   rÉ   Ú
kernel_logr[   ÚparamsÚparamÚnys	            r7   Útest_nystroem_callablerÔ   †  s  € ä
�)‰)×
Ñ
 Ó
#€CØ€IØ�‰˜) Q˜ˆÓ(€Aò&ð
 €JÜˆQ‹€AÜØ'Ø !‘mØ˜jÐ)ô÷ 
�cˆ!„fÜˆz‹?˜i¨9°q©=Ñ9¸AÑ=Ò=Ð=Ð=ð :€CØ˜ˆl˜W a˜L¨8°Q¨-Ð8€FØò ˆÜÐSœ^¸9Àq¹=ÑSÈUÑSˆÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1ŒI÷	ð 	ñ÷	ð 	ús   ÃC Ã C)	c                  ó  — t         j                  j                  d«      } | j                  d¬«      }t	        |dd¬«      }t        d|j                  d   ¬	«      }|j                  |«      }t        t        j                  ||j                  «      |«       d
}ddiddiddif}|D ]R  }t        dd|j                  d   d	œ|¤Ž}t        j                  t        |¬«      5  |j                  |«       d d d «       ŒT y # 1 sw Y   Œ_xY w)Né   r¢   r   r   r   rÁ   Úprecomputedr   r³   rË   r   r   r   r    rK   rÌ   )r+   r¦   r§   r¨   r   r   r©   r)   r   r,   r-   rQ   rR   rS   rT   )	rª   r'   r¬   r´   r«   r[   rÑ   rÒ   rÓ   s	            r7   Ú test_nystroem_precomputed_kernelrØ   £  sð   € ô �)‰)×
Ñ
 Ó
#€CØ�‰˜ˆÓ!€Aä˜! A¨SÔ1€AÜ˜}¸1¿7¹7À1¹:ÔF€HØ×*Ñ*¨1Ó-€MÜœbŸf™f ]°M·O±OÓDÀaÔHð :€CØ˜ˆl˜W a˜L¨8°Q¨-Ð8€FØò ˆÜÐM˜]¸¿¹À¹ÑMÀuÑMˆÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1ŒI÷	ð 	ñ÷	ð 	ús   ÃC:Ã:D	c                  ó–   — t        dd¬«      \  } }t        dd¬«      }|j                  | «       |j                  j                  dk(  sJ ‚y)	zÓCheck that `component_indices_` corresponds to the subset of
    training points used to construct the feature map.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20474
    r¹   r¸   )rÏ   Ú
n_featuresr£   r   r¥   )r£   N)r   r   rT   Úcomponent_indices_r©   )r'   Ú_Úfeature_map_nystroems      r7   Útest_nystroem_component_indicesrÞ   ·  sO   € ô ¨¸Ô<�D€A€qÜ#ØØôÐð ×Ñ˜QÔØ×2Ñ2×8Ñ8¸EÒAÐAÑAr9   Ú	Estimatorc                 ó*  —  | «       j                  t        «      }|j                  t        «      }|j                  «       }| j                  j                  «       }t        |j                  d   «      D �cg c]  }|› |› �‘Œ
 }}t        ||«       yc c}w )zCheck get_feature_names_outr   N)	rT   r'   r*   Úget_feature_names_outÚ__name__ÚlowerÚranger©   r   )rß   Úestr3   Ú	names_outÚ
class_nameÚiÚexpected_namess          r7   Útest_get_feature_names_outrê   Æ  s~   € ñ
 ‹+�/‰/œ!Ó
€CØ�m‰mœAÓ€Gà×)Ñ)Ó+€IØ×#Ñ#×)Ñ)Ó+€JÜ27¸¿¹ÀaÑ8HÓ2IÖJ¨Q˜˜ Q CÒ(ÐJ€NÐJÜ�y .Õ1ùò Ks   Á4Bc                  ó  — t         j                  j                  d«      } | j                  d¬«      }t	        d¬«      j                  |«      }g d¢}g d¢}|j                  |¬«      }|D �cg c]  }d	|› �‘Œ	 }}t        ||«       y
c c}w )z4Check get_feature_names_out for AdditiveChi2Sampler.r   )r   r   r   r   rG   )Úf0Úf1Úf2)Úf0_sqrtÚf1_sqrtÚf2_sqrtÚf0_cos1Úf1_cos1Úf2_cos1Úf0_sin1Úf1_sin1Úf2_sin1Úf0_cos2Úf1_cos2Úf2_cos2Úf0_sin2Úf1_sin2Úf2_sin2)Úinput_featuresÚadditivechi2sampler_N)r+   r¦   r§   Úrandom_sampler   rT   rá   r   )r¼   r'   Úchi2_samplerÚinput_namesÚsuffixesræ   Úsuffixré   s           r7   Ú.test_additivechi2sampler_get_feature_names_outr  Ô  sŠ   € ä
�)‰)×
Ñ
 Ó
"€CØ×Ñ˜xÐÓ(€Aä&°AÔ6×:Ñ:¸1Ó=€LÚ$€Kò€Hð$ ×2Ñ2À+Ð2ÓN€IØDLÖM¸&Ð,¨V¨HÒ5ÐM€NÐMÜ�y .Õ1ùò Ns   Á+B)<re   Únumpyr+   rQ   Úsklearn.datasetsr   Úsklearn.kernel_approximationr   r   r   r   r   Úsklearn.metrics.pairwiser	   r
   r   r   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r¦   r§   r¼   r   r'   r(   rO   rM   ÚflagsÚ	writeableÚmarkÚparametrizer8   rC   rE   r\   rä   rc   rg   rs   rv   rz   r†   r�   r•   r˜   rž   r    r°   r¶   r¾   rÃ   rÔ   rØ   rÞ   rê   r  rÌ   r9   r7   ú<module>r     sç  ðÛ 	ã Û å 0÷õ ÷ó ÷ñ õ
 /ð 	‡i�i×Ñ˜AÓ€Ø×Ñ˜9ÐÓ%€Ø×Ñ˜9ÐÓ%€Ø €Q‡U�U�€Uƒ]’1�b—j‘j�=Ñ!Ñ !€Ø €Q‡U�U�€Uƒ]’1�b—j‘j�=Ñ!Ñ !€ð €‡�Ô Ø€‡�Ô ð ‡�×Ñ˜¢-Ó0Ø‡�×ÑÐ/Ò1PÓQØ‡�×Ñ˜ 1 c (Ó+ñ"ó ,ó Ró 1ð"ð4 ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜ 3¨ *Ó-Ø‡�×Ñ˜¢9Ó-Ø‡�×Ñ˜ 1 c (Ó+ñ)ó ,ó .ó .ó :ð)ò(ð ‡�×Ñ˜¨.Ó9ñ!ó :ð!ðH ‡�×Ñ˜Ò#HÓIØ‡�×Ñ˜©¨q°!«Ó5ñ:ó 6ó Jð:ð  ‡�×Ñ˜Ò#HÓIñ(ó Jð(ò&#òR	%ò"ò&
5òBò*ò
Eòð$ ‡�×Ñ˜¨.Ó9ñ	%ó :ð	%ò6ò6%ò("ò 
Iòò:ò(Bð ‡�×ÑØÐ'¨Ð5FÈÐQóñ2óð2ó2r9   