§
    §éUg @  ã                   óÐ  — 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                             d ¦  «        Ze                     d¬¦  «        Ze                     d¬¦  «        Zee                     d	¬
¦  «        dd…ej        f         z  Zee                     d	¬
¦  «        dd…ej        f         z  Zej                              dg d¢¦  «        ej                              dg d¢¦  «        ej                              dd dg¦  «        d„ ¦   «         ¦   «         ¦   «         Z!ej                              de¦  «        ej                              dddg¦  «        ej                              dg d¢¦  «        ej                              dd dg¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Z"d„ Z#ej                              de¦  «        d„ ¦   «         Z$ej                              dg d¢¦  «        ej                              d e%d	d¦  «        ¦  «        d„ ¦   «         ¦   «         Z&ej                              dg d¢¦  «        d„ ¦   «         Z'd „ Z(d!„ Z)d"„ Z*d#„ Z+d$„ Z,d%„ Z-d&„ Z.d'„ Z/ej                              de¦  «        d(„ ¦   «         Z0d)„ Z1d*„ Z2d+„ Z3d,„ Z4d-„ Z5d.„ Z6d/„ Z7ej                              d0e	e
eeg¦  «        d1„ ¦   «         Z8d2„ Z9dS )3é    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é   ©ÚaxisÚgamma)çš™™™™™¹?r   ç      @zdegree, n_components))r   éô  )é   r   )é   iˆ  Úcoef0r   c                 óü  — t          t          t          | ||¬¦  «        }t          || ||d¬¦  «        }|                     t          ¦  «        }|                     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 ‚d S )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
             úf/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/test_kernel_approximation.pyÚtest_polynomial_count_sketchr8   #   sö   € õ �q¥!¨5¸ÀuÐMÑMÔM€Fõ )Ø!ØØØØðñ ô €Lð ×(Ò(­Ñ+Ô+€GØ×$Ò$¥QÑ'Ô'€GÝ”F˜7 G¤IÑ.Ô.€Mà�]Ñ"€EÝŒ6•"”'˜%‘.”.Ñ!Ô! TÒ)Ð)Ð)Ð)Ý„Fˆ5�eÐÑÔÐÝŒ6�%‰=Œ=˜CÒÐÐÐÝŒ7�5‰>Œ>˜TÒ!Ð!Ð!Ð!Ð!Ð!ó    Úcsr_containerr   ç      ð?r    )r   r   r   c                 óŠ  — t          d| ||d¬¦  «        }|                     t          ¦  «        }|                     t          ¦  «        }t          d| ||d¬¦  «        }|                      |t          ¦  «        ¦  «        }|                      |t          ¦  «        ¦  «        }	t          ||¦  «         t          ||	¦  «         dS )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   @   sÎ   € õ %Ø ¨f¸EÐPRðñ ô €Hð ×%Ò%¥aÑ(Ô(€HØ×!Ò!¥!Ñ$Ô$€Hå%Ø ¨f¸EÐPRðñ ô €Ið ×'Ò'¨¨µaÑ(8Ô(8Ñ9Ô9€IØ×#Ò# M Mµ!Ñ$4Ô$4Ñ5Ô5€Iå�H˜iÑ(Ô(Ð(Ý�H˜iÑ(Ô(Ð(Ð(Ð(r9   c                 ó6   — t          j        | |j        ¦  «        S )N)r+   r,   r-   )r'   r(   s     r7   Ú_linear_kernelrE   X   s   € ÝŒ6�!�Q”S‰>Œ>Ðr9   c                 óŠ  — t           d d …t          j        d d …f         }t          t          j        d d …d d …f         }d|z  |z  ||z   z  }|                     d¬¦  «        }t          d¬¦  «        }|                     t           ¦  «        }|                     t          ¦  «        }t          j        ||j	        ¦  «        }t          ||d¦  «         |                      | t           ¦  «        ¦  «        }	|                      | t          ¦  «        ¦  «        }
t          ||	                     ¦   «         ¦  «         t          ||
                     ¦   «         ¦  «         t                               ¦   «         }d|d<   d}t          j        t           |¬	¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   r   r   ©Úsample_stepsr   éÿÿÿÿ©r   r   z!Negative values in data passed to©Úmatch)r'   r+   Únewaxisr(   Úsumr   r)   r*   r,   r-   r   r   ÚtoarrayÚcopyÚ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\   \   sß  € õ 
ˆ1ˆ1ˆ1�bŒj˜!˜!˜!ÐÔ	€BÝ	
�2Œ:�q�q�q˜!˜!˜!ÐÔ	€Bà�r‘6˜B‘; " r¡'Ñ*€Lð ×Ò 1ÐÑ%Ô%€Fõ $°Ð3Ñ3Ô3€IØ×%Ò%¥aÑ(Ô(€GØ×!Ò!¥!Ñ$Ô$€Gå”F˜7 G¤IÑ.Ô.€Må˜f m°QÑ7Ô7Ð7à×(Ò(¨¨µqÑ)9Ô)9Ñ:Ô:€JØ×$Ò$ ] ]µ1Ñ%5Ô%5Ñ6Ô6€Jå�w 
× 2Ò 2Ñ 4Ô 4Ñ5Ô5Ð5Ý�w 
× 2Ò 2Ñ 4Ô 4Ñ5Ô5Ð5õ �FŠF‰HŒH€EØ€Eˆ$�KØ
-€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�eÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÆF8Æ8F<Æ?F<Úmethod)rT   r)   r*   rH   é   c                 óÞ   — t          |¬¦  «        } t          || ¦  «        t          ¦  «         d}t          ||¬¦  «        } t          || ¦  «        t          ¦  «         |j        |k    sJ ‚dS )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Ð9Ð9Ð9Ð9r9   c                 óò   — t          d¬¦  «        }t          j        d¦  «        }t          j        t
          |¬¦  «        5   t          || ¦  «        t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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   “   s½   € õ &°1Ð5Ñ5Ô5€KÝ
Œ)ØRñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð (ð (Ø$��˜VÑ$Ô$¥QÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   Á A,Á,A0Á3A0c                  ó.  — d} |  dz  t           d<   t          | z   d d …t          j        d d …f         }t           | 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        |                     d¬¦  «        ¦  «        }t          | dd¬¦  «        }|                     t          ¦  «        }| 	                    t           ¦  «        }t          j
        ||j        ¦  «        }t          ||d	¦  «         t          j        |¦  «                             ¦   «         s
J d
¦   «         ‚t          j        |¦  «                             ¦   «         s
J d¦   «         ‚t                                ¦   «         }	|  dz  |	d<   d}
t!          j        t$          |
¬¦  «        5  | 	                    |	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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(   r'   r+   rM   ÚlogÚexprN   r   r)   r*   r,   r-   r   ÚisfiniteÚallrP   rQ   rR   rS   )ÚcÚX_cÚY_cÚ
log_kernelr1   r*   r3   r4   r5   rZ   r[   s              r7   Útest_skewed_chi2_samplerrs   ž   s*  € ð 	€Að ˆb�3‰h…A€d�Gõ ˆq‰5�!�!�!•R”Z   Ð"Ô
#€CÝˆq‰5•"”*˜a˜a˜a   Ð"Ô
#€Cõ
 
Œ�‰Œ�sÑ	�rœv c™{œ{¨SÑ0Ñ1µB´F¸3±K´KÑ?Å"Ä&ÈÈsÉÑBSÔBSÑSð õ ŒV�J—N’N¨�NÑ*Ô*Ñ+Ô+€Fõ "¨Q¸TÐPRÐSÑSÔS€IØ×%Ò%¥aÑ(Ô(€GØ×!Ò!¥!Ñ$Ô$€Gå”F˜7 G¤IÑ.Ô.€MÝ˜f m°QÑ7Ô7Ð7ÝŒ;�vÑÔ×"Ò"Ñ$Ô$ÐEÐEÐ&EÑEÔEÐEÝŒ;�}Ñ%Ô%×)Ò)Ñ+Ô+ÐXÐXÐ-XÑXÔXÐXõ �FŠF‰HŒH€EØ�"�s‘(€Eˆ$�KØ
>€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð #ð #Ø×Ò˜EÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Ç'H
È
HÈHc                  ó´  — t          ¦   «         } t                               ¦   «         }d|d<   t          j        t
          d¬¦  «        5  |                      |¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  |                      t          ¦  «         |                      |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zEnsures correct error messagerI   rJ   zX in AdditiveChi2Sampler.fitrK   Nz"X in AdditiveChi2Sampler.transform)r   r'   rP   rQ   rR   rS   rT   r*   )rb   ÚX_negs     r7   Ú%test_additive_chi2_sampler_exceptionsrv   Æ   s@  € å%Ñ'Ô'€KÝ�FŠF‰HŒH€EØ€Eˆ$�KÝ	Œ•zÐ)GÐ	HÑ	HÔ	Hð ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)MÐ	NÑ	NÔ	Nð %ð %Ø�Š�ÑÔÐØ×Ò˜eÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s$   ÁA*Á*A.Á1A.Â0CÃCÃCc                  óø  — d} t          t          t          | ¬¦  «        }t          | dd¬¦  «        }|                     t          ¦  «        }|                     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 ‚d S )
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ÑOÔO€MØ×)Ò)­!Ñ,Ô,€GØ×%Ò%¥aÑ(Ô(€GÝ”F˜7 G¤IÑ.Ô.€Mà�]Ñ"€EÝŒ6•"”'˜%‘.”.Ñ!Ô! TÒ)Ð)Ð)Ð)Ý„Fˆ5�eÐÑÔÐÝŒ6�%‰=Œ=˜CÒÐÐÐÝŒ7�5‰>Œ>˜TÒ!Ð!Ð!Ð!Ð!Ð!r9   c                 óÒ   — t          ¦   «         }t          j        ddgddgddgg| ¬¦  «        }|                     |¦  «         |j        j        | k    sJ ‚|j        j        | k    sJ ‚dS ©	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†   å   sw   € õ ‰,Œ,€Cå
Œ�1�a�&˜1˜a˜& 1 a &Ð)°Ð>Ñ>Ô>€Aà‡G‚GˆA�J„J€JàÔÔ# |Ò3Ð3Ð3Ð3ØÔÔ$¨Ò4Ð4Ð4Ð4Ð4Ð4r9   c                  ó¦  — t          d¬¦  «        } t          j        ddgddgddggt          j        ¬	¦  «        }|                      |¦  «         t          d¬¦  «        }t          j        ddgddgddggt          j        ¬	¦  «        }|                     |¦  «         t          | j        |j        ¦  «         t          | j        |j        ¦  «         d
S ©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„N€Nå BÐ'Ñ'Ô'€EÝ
Œ(�Q˜�F˜Q ˜F Q¨ FÐ+µ2´:Ð
>Ñ
>Ô
>€CØ	‡I‚Iˆc�N„N€Nå�EÔ(¨%Ô*>Ñ?Ô?Ð?Ý�EÔ)¨5Ô+@ÑAÔAÐAÐAÐAr9   c                  ó¤   — dgdggddg}} t          d¬¦  «        }|                     | |¦  «         |j        t          j        d¦  «        k    sJ ‚dS )	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•      s[   € àˆE�C�5ˆ>˜A˜q˜6€q€AÝ
˜7Ð
#Ñ
#Ô
#€CØ‡G‚GˆAˆq�M„M€MØŒ:�œ qÑ)Ô)Ò)Ð)Ð)Ð)Ð)Ð)r9   c                 óÒ   — t          ¦   «         }t          j        ddgddgddgg| ¬¦  «        }|                     |¦  «         |j        j        | k    sJ ‚|j        j        | k    sJ ‚dS r|   )r   r+   r�   rT   r‚   r€   rƒ   )r„   Úskewed_chi2_samplerr'   s      r7   Ú0test_skewed_chi2_sampler_fitted_attributes_dtyper˜     s   € õ ,Ñ-Ô-Ðå
Œ�1�a�&˜1˜a˜& 1 a &Ð)°Ð>Ñ>Ô>€Aà×Ò˜AÑÔÐàÔ-Ô3°|ÒCÐCÐCÐCØÔ.Ô4¸ÒDÐDÐDÐDÐDÐDr9   c                  ó¦  — t          d¬¦  «        } t          j        ddgddgddggt          j        ¬	¦  «        }|                      |¦  «         t          d¬¦  «        }t          j        ddgddgddggt          j        ¬	¦  «        }|                     |¦  «         t          | j        |j        ¦  «         t          | j        |j        ¦  «         d
S 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�a˜�V˜a ˜V a¨ VÐ,µB´JÐ?Ñ?Ô?€DØ×Ò˜tÑ$Ô$Ð$å.¸BÐ?Ñ?Ô?ÐÝŒ8�a˜�V˜a ˜V a¨ VÐ,µB´JÐ?Ñ?Ô?€DØ×Ò˜tÑ$Ô$Ð$åØÔ-Ð/EÔ/Tñô ð õ ØÔ.Ð0FÔ0Vñô ð ð ð r9   c                 óÒ  — ddgddgddgg}t          ¦   «                              |¦  «                             |¦  «         t          ¦   «                              |¦  «                             |¦  «         t	          ¦   «                              |¦  «                             |¦  «          | |¦  «        }t	          ¦   «                              |¦  «                             |¦  «         d S )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„L×Ò�QÑÔ×!Ò! !Ñ$Ô$Ð$àˆ�aÑÔ€AÝ�L„L×Ò�QÑÔ×!Ò! !Ñ$Ô$Ð$Ð$Ð$r9   c                  ó`  — t           j                             d¦  «        } |                      d¬¦  «        }t	          |j        d         ¬¦  «                             |¦  «        }t          |¦  «        }t          t          j	        ||j
        ¦  «        |¦  «         t	          d| ¬¦  «        }|                     |¦  «                             |¦  «        }|j        |j        d         dfk    sJ ‚t	          dt          | ¬¦  «        }|                     |¦  «                             |¦  «        }|j        |j        d         dfk    sJ ‚t          ¦   «         }|D ]V}t	          d|| ¬¦  «        }|                     |¦  «                             |¦  «        }|j        |j        d         dfk    sJ ‚ŒWd S )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°   4  s�  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š˜ˆÑ!Ô!€Aõ ¨!¬'°!¬*Ð5Ñ5Ô5×CÒCÀAÑFÔF€MÝ�1‰Œ€AÝ�bœf ]°M´OÑDÔDÀaÑHÔHÐHå !°#Ð6Ñ6Ô6€EØ—I’I˜a‘L”L×*Ò*¨1Ñ-Ô-€MØÔ 1¤7¨1¤:¨q /Ò1Ð1Ð1Ð1õ  !­NÈÐMÑMÔM€EØ—I’I˜a‘L”L×*Ò*¨1Ñ-Ô-€MØÔ 1¤7¨1¤:¨q /Ò1Ð1Ð1Ð1õ 'Ñ(Ô(ÐØ!ð 6ð 6ˆÝ a°À3ÐGÑGÔGˆØŸ	š	 !™œ×.Ò.¨qÑ1Ô1ˆØÔ" q¤w¨q¤z°1 oÒ5Ð5Ð5Ð5Ð5ð6ð 6r9   c                  óò  — t           j                             d¦  «        } |                      d¬¦  «        }t	          d¬¦  «        }|                     |¦  «        }t          |d ¬¦  «        }t          j        ||j        ¦  «        }t          ||¦  «         t	          dd¬¦  «        }|                     |¦  «        }t          |d	¬¦  «        }t          j        ||j        ¦  «        }t          ||¦  «         d S )
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¶   O  sæ   € Ý
Œ)×
Ò
 Ñ
#Ô
#€CØ�Š˜ˆÑ!Ô!€Aõ  RÐ(Ñ(Ô(€HØ×*Ò*¨1Ñ-Ô-€MÝ�1˜DÐ!Ñ!Ô!€AÝ	Œ�˜}œÑ	/Ô	/€BÝ˜a Ñ$Ô$Ð$õ ˜v°BÐ7Ñ7Ô7€HØ×*Ò*¨1Ñ-Ô-€MÝ�A˜QÐÑÔ€AÝ	Œ�˜}œÑ	/Ô	/€BÝ˜a Ñ$Ô$Ð$Ð$Ð$r9   c                  óø  — t           j                             d¦  «        } |                      dd¦  «        }t          j        |gdz  ¦  «        }d}t          ||j        d         ¬¦  «                             |¦  «        }|                     |¦  «        }t          ||¬¦  «        }t          |t          j        ||j        ¦  «        ¦  «         t          j        t          j        t          ¦  «        ¦  «        sJ ‚d S )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¾   c  sÍ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��RÑÔ€AÝ
Œ	�1�#˜‘'ÑÔ€Aà€EÝ�u¨1¬7°1¬:Ð6Ñ6Ô6×:Ò:¸1Ñ=Ô=€AØ—K’K ‘N”N€Må�1˜EÐ"Ñ"Ô"€Aå˜a¥¤¨°}´Ñ!GÔ!GÑHÔHÐHÝŒ6•"”+�a‘.”.Ñ!Ô!Ð!Ð!Ð!Ð!Ð!r9   c                  óJ  — t           j                             d¦  «        } |                      d¬¦  «        }t	          |dd¬¦  «        }t          d|j        d         dd¬	¦  «        }|                     |¦  «        }t          t          j	        ||j
        ¦  «        |¦  «         d S )
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Ã   s  sš   € å
Œ)×
Ò
 Ñ
#Ô
#€CØ�Š˜ˆÑ!Ô!€Aå˜! C¨sÐ3Ñ3Ô3€AÝØ¨!¬'°!¬*¸SÈðñ ô €Hð ×*Ò*¨1Ñ-Ô-€MÝ�bœf ]°M´OÑDÔDÀaÑHÔHÐHÐHÐHr9   c                  ó  — t           j                             d¦  «        } d}|                      |df¬¦  «        }d„ }g }t	          |¦  «        }t          ||dz
  d|i¬¦  «                             |¦  «         t          |¦  «        ||dz
  z  d	z  k    sJ ‚d
}ddiddidd	if}|D ]a}t          dt          |dz
  dœ|¤Ž}t          j
        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œbd S )Nr!   r£   r^   r   c                 óz   — |                      d¦  «         t          j        | |¦  «                             ¦   «         S )z&Histogram kernel that writes to a log.r   )Úappendr+   ÚminimumrN   )Úxr”   rk   s      r7   Úlogging_histogram_kernelz8test_nystroem_callable.<locals>.logging_histogram_kernel†  s/   € à�
Š
�1‰ŒˆÝŒ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„f€fÝˆz‰?Œ?˜i¨9°q©=Ñ9¸AÑ=Ò=Ð=Ð=Ð=ð :€CØ˜ˆl˜W a˜L¨8°Q¨-Ð8€FØð ð ˆÝÐS�^¸9Àq¹=ÐSÐSÈUÐSÐSˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�FŠF�1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÃC;Ã;C?	ÄC?	c                  ó.  — t           j                             d¦  «        } |                      d¬¦  «        }t	          |dd¬¦  «        }t          d|j        d         ¬	¦  «        }|                     |¦  «        }t          t          j	        ||j
        ¦  «        |¦  «         d
}ddiddiddif}|D ]d}t          dd|j        d         d	œ|¤Ž}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œed S )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Ñ1Ô1€AÝ˜}¸1¼7À1¼:ÐFÑFÔF€HØ×*Ò*¨1Ñ-Ô-€MÝ�bœf ]°M´OÑDÔDÀaÑHÔHÐHð :€CØ˜ˆl˜W a˜L¨8°Q¨-Ð8€FØð ð ˆÝÐM˜]¸¼À¼ÐMÐMÀuÐMÐMˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�FŠF�1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Ã'D	Ä	D	ÄD	c                  óž   — t          dd¬¦  «        \  } }t          dd¬¦  «        }|                     | ¦  «         |j        j        dk    sJ ‚dS )	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Þ   ±  sh   € õ ¨¸Ð<Ñ<Ô<�D€A€qÝ#ØØðñ ô Ðð ×Ò˜QÑÔÐØÔ2Ô8¸EÒAÐAÐAÐAÐAÐAr9   Ú	Estimatorc                 óF  ‡—  | ¦   «                               t          ¦  «        }|                     t          ¦  «        }|                     ¦   «         }| j                             ¦   «         Šˆfd„t          |j        d         ¦  «        D ¦   «         }t          ||¦  «         dS )zCheck get_feature_names_outc                 ó   •— g | ]}‰› |› �‘Œ	S rÌ   rÌ   )Ú.0ÚiÚ
class_names     €r7   ú
<listcomp>z.test_get_feature_names_out.<locals>.<listcomp>Ê  s$   ø€ ÐJÐJÐJ¨Q˜Ð( QÐ(Ð(ÐJÐJÐJr9   r   N)	rT   r'   r*   Úget_feature_names_outÚ__name__ÚlowerÚranger©   r   )rß   Úestr3   Ú	names_outÚexpected_namesrä   s        @r7   Útest_get_feature_names_outrí   À  s�   ø€ ð
 ˆ)‰+Œ+�/Š/�!Ñ
Ô
€CØ�mŠm�AÑÔ€Gà×)Ò)Ñ+Ô+€IØÔ#×)Ò)Ñ+Ô+€JØJÐJÐJÐJµ%¸¼ÀaÔ8HÑ2IÔ2IÐJÑJÔJ€NÝ�y .Ñ1Ô1Ð1Ð1Ð1r9   c                  ó*  — t           j                             d¦  «        } |                      d¬¦  «        }t	          d¬¦  «                             |¦  «        }g d¢}g d¢}|                     |¬¦  «        }d	„ |D ¦   «         }t          ||¦  «         d
S )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_featuresc                 ó   — g | ]}d |› �‘ŒS )Úadditivechi2sampler_rÌ   )râ   Úsuffixs     r7   rå   zBtest_additivechi2sampler_get_feature_names_out.<locals>.<listcomp>è  s!   € ÐMÐMÐM¸&Ð5¨VÐ5Ð5ÐMÐMÐMr9   N)r+   r¦   r§   Úrandom_sampler   rT   ræ   r   )r¼   r'   Úchi2_samplerÚinput_namesÚsuffixesrë   rì   s          r7   Ú.test_additivechi2sampler_get_feature_names_outr	  Î  s¨   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ×Ò˜xÐÑ(Ô(€Aå&°AÐ6Ñ6Ô6×:Ò:¸1Ñ=Ô=€LØ$Ð$Ð$€Kðð ð €Hð$ ×2Ò2À+Ð2ÑNÔN€IØMÐMÀHÐMÑMÔM€NÝ�y .Ñ1Ô1Ð1Ð1Ð1r9   ):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(   rN   rM   Ú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Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð 	„i×Ò˜AÑÔ€Ø×Ò˜9ÐÑ%Ô%€Ø×Ò˜9ÐÑ%Ô%€Ø €Q‡U‚U�€U�]„]�1�1�1�b”j�=Ô!Ñ !€Ø €Q‡U‚U�€U�]„]�1�1�1�b”j�=Ô!Ñ !€ð „×Ò˜ - - -Ñ0Ô0Ø„×ÒÐ/Ð1PÐ1PÐ1PÑQÔQØ„×Ò˜ 1 c (Ñ+Ô+ð"ð "ñ ,Ô+ñ RÔQñ 1Ô0ð"ð4 „×Ò˜¨.Ñ9Ô9Ø„×Ò˜ 3¨ *Ñ-Ô-Ø„×Ò˜ 9 9 9Ñ-Ô-Ø„×Ò˜ 1 c (Ñ+Ô+ð)ð )ñ ,Ô+ñ .Ô-ñ .Ô-ñ :Ô9ð)ð(ð ð ð „×Ò˜¨.Ñ9Ô9ð!ð !ñ :Ô9ð!ðH „×Ò˜Ð#HÐ#HÐ#HÑIÔIØ„×Ò˜¨¨¨q°!©¬Ñ5Ô5ð:ð :ñ 6Ô5ñ JÔIð:ð  „×Ò˜Ð#HÐ#HÐ#HÑIÔIð(ð (ñ JÔIð(ð%#ð %#ð %#ðP	%ð 	%ð 	%ð"ð "ð "ð&
5ð 
5ð 
5ðBð Bð Bð*ð *ð *ð
Eð 
Eð 
Eðð ð ð$ „×Ò˜¨.Ñ9Ô9ð	%ð 	%ñ :Ô9ð	%ð6ð 6ð 6ð6%ð %ð %ð("ð "ð "ð 
Ið 
Ið 
Iðð ð ð:ð ð ð(Bð Bð Bð „×ÒØÐ'¨Ð5FÈÐQñô ð2ð 2ñô ð2ð2ð 2ð 2ð 2ð 2r9   