§
    rŠtj÷G  ã                   ó@  — 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	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mZ d dlmZ d dlmZ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&de%j)        _*        de&j)        _*        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„ ¦   «         Z0ej+         ,                    dg d¢¦  «        ej+         ,                    d  e1dd!¦  «        ¦  «        d"„ ¦   «         ¦   «         Z2ej+         ,                    dg d¢¦  «        d#„ ¦   «         Z3d$„ Z4d%„ Z5d&„ Z6d'„ Z7d(„ Z8d)„ Z9d*„ Z:d+„ Z;ej+         ,                    de ¦  «        d,„ ¦   «         Z<d-„ Z=ej+         ,                    d. e¦   «         ¦  «        ej+         ,                    d/ e> e¦   «         ¦  «        e/d0gz   ¦  «        ej+         ,                    d1d2d3g¦  «        d4„ ¦   «         ¦   «         ¦   «         Z?d5„ Z@d6„ ZAd7„ ZBd8„ ZCd9„ ZDd:„ ZEej+         ,                    d;eeee
g¦  «        d<„ ¦   «         ZFd=„ ZGdS )>é    N)Úconfig_context)Úmake_classification)ÚAdditiveChi2SamplerÚNystroemÚPolynomialCountSketchÚ
RBFSamplerÚSkewedChi2Sampler)Úchi2_kernelÚkernel_metricsÚpolynomial_kernelÚ
rbf_kernel)Ú_atol_for_typeÚget_namespace_and_deviceÚmove_toÚ)yield_namespace_device_dtype_combinations©Údevice)Ú_array_api_for_testsÚ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¬¦  «        }|                     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
             úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/tests/test_kernel_approximation.pyÚtest_polynomial_count_sketchr@   3   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   r1   r/   r2   r0   r   )
r    r(   r&   rB   Úps_denseÚXt_denseÚYt_denseÚ	ps_sparseÚ	Xt_sparseÚ	Yt_sparses
             r?   Ú)test_polynomial_count_sketch_dense_sparserK   P   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Ñ(Ô(Ð(Ð(Ð(rA   c                 ó   — | |z  S )N© )ÚxÚys     r?   Ú_linear_kernelrP   h   s   € Øˆq‰5€LrA   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/   r3   ÚnewaxisÚcopyr0   Úsumr   r1   r2   r4   r5   r   r   ÚtoarrayÚpytestÚraisesÚ
ValueErrorÚfit)rB   ÚX_ÚY_Úlarge_kernelr9   r2   r;   r<   r=   Ú
X_sp_transÚ
Y_sp_transÚY_negÚmsgs                r?   Útest_additive_chi2_samplerrg   l   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   Æ9GÇG Ç#G Úmethod)r_   r1   r2   rS   é   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.
    rR   g      à?)rS   Úsample_intervalN)r   Úgetattrr/   rk   )rh   rS   Útransformerrk   s       r?   Ú'test_additive_chi2_sampler_sample_stepsrn   ‘   sƒ   € õ &°<Ð@Ñ@Ô@€KØ …GˆK˜Ñ Ô ¥Ñ#Ô#Ð#à€OÝ%Ø!Ø'ðñ ô €Kð !…GˆK˜Ñ Ô ¥Ñ#Ô#Ð#ØÔ&¨/Ò9Ð9Ð9Ð9Ð9Ð9rA   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_stepsri   rR   zHIf sample_steps is not in [1, 2, 3], you need to provide sample_intervalrV   N)r   ÚreÚescaper\   r]   r^   rl   r/   )rh   rm   rf   s      r?   Ú-test_additive_chi2_sampler_wrong_sample_stepsrr   £   s½   € õ &°1Ð5Ñ5Ô5€KÝ
Œ)ØRñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð (ð (Ø$��˜VÑ$Ô$¥QÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   Á A,Á,A0Á3A0c                  ó8  — d} t                                ¦   «         }|  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        |                     d¬¦  «        ¦  «        }t          | dd¬¦  «        }| 	                    t          ¦  «        }| 
                    |¦  «        }t          j        ||j        ¦  «        }	t          ||	d	¦  «         t          j        |¦  «                             ¦   «         s
J d
¦   «         ‚t          j        |	¦  «                             ¦   «         s
J d¦   «         ‚|                     ¦   «         }
|  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       @rU   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 -skewednessrV   )r0   rY   r/   r3   rX   ÚlogÚexprZ   r	   r1   r2   r4   r5   r   ÚisfiniteÚallr\   r]   r^   )Úcra   ÚX_cÚY_cÚ
log_kernelr9   r2   r;   r<   r=   re   rf   s               r?   Útest_skewed_chi2_samplerr~   ®   s7  € ð 	€Aõ 
�Š‰Œ€BØˆr�C‰x€B€t�Hõ ˆq‰5�!�!�!•R”Z   Ð"Ô
#€CØ�‰6•2”:˜q˜q˜q ! ! !Ð#Ô
$€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Ð$ÝŒ;�}Ñ%Ô%×)Ò)Ñ+Ô+ÐXÐXÐ-XÑXÔXÐ+ð �GŠG‰IŒI€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 messagerT   rU   zX in AdditiveChi2SamplerrV   N)r   r/   rY   r\   r]   r^   r_   r2   )rm   ÚX_negs     r?   Ú%test_additive_chi2_sampler_exceptionsr�   ×   s@  € å%Ñ'Ô'€KÝ�FŠF‰HŒH€EØ€Eˆ$�KÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)CÐ	DÑ	DÔ	Dð %ð %Ø�Š�ÑÔÐØ×Ò˜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    rt   r)   )r    r*   r+   g{®Gáz„?r-   r!   r,   )r   r/   r0   r   r1   r2   r3   r4   r5   r6   r7   r8   )r    r9   Úrbf_transformr;   r<   r=   r>   s          r?   Útest_rbf_samplerr…   ã   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Ò!Ð!Ð!Ð!Ð!Ð!rA   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%   ri   é   é   ©ÚdtypeN)r   r3   Úarrayr_   Úrandom_offset_r‹   Úrandom_weights_)Úglobal_dtypeÚrbfr/   s      r?   Ú(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Ð4rA   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%   ri   rˆ   r‰   rŠ   N)	r   r3   rŒ   Úfloat32r_   Úfloat64r   r�   rŽ   )Úrbf32ÚX32Úrbf64ÚX64s       r?   Ú"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ÐArA   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        rC   r   r   Úscalerƒ   ri   N)r   r_   Ú_gammar\   Úapprox)r/   rO   r�   s      r?   Útest_rbf_sampler_gamma_scalerŸ     s[   € àˆE�C�5ˆ>˜A˜q˜6€q€AÝ
˜7Ð
#Ñ
#Ô
#€CØ‡G‚GˆAˆq�M„M€MØŒ:�œ qÑ)Ô)Ò)Ð)Ð)Ð)Ð)Ð)rA   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	   r3   rŒ   r_   r�   r‹   rŽ   )r�   Úskewed_chi2_samplerr/   s      r?   Ú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ÐDrA   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	   r3   rŒ   r”   r_   r•   r   r�   rŽ   )Úskewed_chi2_sampler_32ÚX_32Úskewed_chi2_sampler_64ÚX_64s       r?   Ú*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ñô ð ð ð rA   c                 óÒ  — ddgddgddgg}t          ¦   «                              |¦  «                             |¦  «         t          ¦   «                              |¦  «                             |¦  «         t	          ¦   «                              |¦  «                             |¦  «          | |¦  «        }t	          ¦   «                              |¦  «                             |¦  «         d S )Nr   r$   r%   ri   rˆ   r‰   )r   r_   r2   r	   r   )rB   r/   s     r?   Útest_input_validationrª   8  sÍ   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÝÑÔ×Ò˜aÑ Ô ×*Ò*¨1Ñ-Ô-Ð-ÝÑÔ×Ò˜AÑÔ×(Ò(¨Ñ+Ô+Ð+Ý�L„L×Ò�QÑÔ×!Ò! !Ñ$Ô$Ð$àˆ�aÑÔ€AÝ�L„L×Ò�QÑÔ×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   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   ©é
   ri   r   ©r*   r$   ©r*   r+   ©r*   r9   r+   )r3   ÚrandomÚRandomStateÚuniformr   Úshaper1   r   r   r4   r5   r_   r2   rP   r   )Úrndr/   ÚX_transformedÚKÚtransÚkernels_availableÚkerns          r?   Útest_nystroem_approximationr»   E  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ð 6rA   z(array_namespace, device_name, dtype_namer9   Úprecomputedr*   r$   éd   c                 óô  — t          | ||¦  «        \  }}t          j                             d¦  «        }d}d|z  }	|                     ||	f¬¦  «                             |¦  «        }
|dk    rt          |
d |…         ¦  «        }
|                     |
|¬¦  «        }t          ||d¬¦  «        }| 	                    |
¦  «        }t          d¬	¦  «        5  | 	                    |¦  «        }t          |t          d
¬¦  «        }dD ]>}t          t          ||¦  «        ¦  «        \  }}}||u sJ ‚|t          |¦  «        k    sJ ‚Œ?	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t!          |||¬¦  «         d S )Nr   r­   r$   r   r¼   r   r°   T)Úarray_api_dispatchÚcpu)Úxpr   )Úcomponents_Únormalization_)Úatol)r   r3   r±   r²   r³   Úastyper   Úasarrayr   r1   r   r   r   rl   Úarray_devicer   r   )Úarray_namespaceÚdevice_nameÚ
dtype_namer9   r*   rÁ   r   rµ   Ú	n_samplesÚ
n_featuresÚX_npÚX_xpÚnystroemÚX_np_transformedÚX_xp_transformedÚX_xp_transformed_npÚattribute_nameÚxp_attrÚ_Údevice_attrrÄ   s                        r?   Ú%test_nystroem_approximation_array_apir×   `  sà  € õ & o°{ÀJÑOÔO�J€BˆÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ€Ið �Y‘€JØ�;Š;˜Y¨
Ð3ˆ;Ñ4Ô4×;Ò;¸JÑGÔG€DØ�ÒÐÝ˜$˜} ˜}Ô-Ñ.Ô.ˆà�:Š:�d 6ˆ:Ñ*Ô*€Då \¸&ÈqÐQÑQÔQ€HØ×-Ò-¨dÑ3Ô3Ðå	¨4Ð	0Ñ	0Ô	0ð 	5ð 	5Ø#×1Ò1°$Ñ7Ô7ÐÝ%Ð&6½2ÀeÐLÑLÔLÐà?ð 	5ð 	5ˆNÝ&>Ý˜ .Ñ1Ô1ñ'ô 'Ñ#ˆG�Q˜ð ˜b�=�=�=�=Ø¥,¨tÑ"4Ô"4Ò4Ð4Ð4Ð4Ð4ð	5ð		5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ ˜*Ñ%Ô%€DÝÐ$Ð&9ÀÐEÑEÔEÐEÐEÐEs   ÃA.EÅEÅE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®   rƒ   Úchi2©r9   r*   r   )r3   r±   r²   r³   r   r1   r   r4   r5   r   r
   )rµ   r/   rÏ   r¶   r·   ÚK2s         r?   Ú test_nystroem_default_parametersrÜ   ‰  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 Ñ$Ô$Ð$Ð$Ð$rA   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$   r½   )r    r*   rƒ   )r3   r±   r²   ÚrandÚvstackr   r´   r_   r2   r   r   r4   r5   ry   rx   r0   )Úrngr/   r    ÚNr¶   r·   s         r?   Útest_nystroem_singular_kernelrã   �  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‘.”.Ñ!Ô!Ð!Ð!Ð!Ð!Ð!rA   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   )r9   r*   r(   r&   )r3   r±   r²   r³   r   r   r´   r1   r   r4   r5   )rµ   r/   r·   rÏ   r¶   s        r?   Ú test_nystroem_poly_kernel_paramsrè   ­  sš   € å
Œ)×
Ò
 Ñ
#Ô
#€CØ�Š˜ˆÑ!Ô!€Aå˜! C¨sÐ3Ñ3Ô3€AÝØ¨!¬'°!¬*¸SÈðñ ô €Hð ×*Ò*¨1Ñ-Ô-€MÝ�bœf ]°M´OÑDÔDÀaÑHÔHÐHÐHÐHrA   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­   ri   r   c                 óz   — |                      d¦  «         t          j        | |¦  «                             ¦   «         S )z&Histogram kernel that writes to a log.r   )Úappendr3   ÚminimumrZ   )rN   rO   rv   s      r?   Úlogging_histogram_kernelz8test_nystroem_callable.<locals>.logging_histogram_kernelÀ  s/   € à�
Š
�1‰ŒˆÝŒz˜!˜QÑÔ×#Ò#Ñ%Ô%Ð%rA   r   rv   )r9   r*   Úkernel_paramsr$   ú-Don't pass gamma, coef0 or degree to Nystroemr    r&   r(   rÚ   rV   rM   )r3   r±   r²   r³   Úlistr   r_   ÚlenrP   r\   r]   r^   )	rµ   rË   r/   rí   Ú
kernel_logrf   ÚparamsÚparamÚnys	            r?   Ú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æ   r¼   r   rÚ   rï   r    r   r&   r(   rV   rM   )r3   r±   r²   r³   r   r   r´   r1   r   r4   r5   r\   r]   r^   r_   )	rµ   r/   r·   rÏ   r¶   rf   ró   rô   rõ   s	            r?   Ú 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Ë   rÌ   r­   r   r¯   )r­   N)r   r   r_   Úcomponent_indices_r´   )r/   rÕ   Úfeature_map_nystroems      r?   Útest_nystroem_component_indicesrý   ë  sh   € õ ¨¸Ð<Ñ<Ô<�D€A€qÝ#ØØðñ ô Ðð ×Ò˜QÑÔÐØÔ2Ô8¸EÒAÐAÐAÐAÐAÐArA   Ú	Estimatorc                 óF  ‡—  | ¦   «                               t          ¦  «        }|                     t          ¦  «        }|                     ¦   «         }| j                             ¦   «         Šˆfd„t          |j        d         ¦  «        D ¦   «         }t          ||¦  «         dS )zCheck get_feature_names_outc                 ó   •— g | ]}‰› |› �‘Œ	S rM   rM   )Ú.0ÚiÚ
class_names     €r?   ú
<listcomp>z.test_get_feature_names_out.<locals>.<listcomp>  s$   ø€ ÐJÐJÐJ¨Q˜Ð( QÐ(Ð(ÐJÐJÐJrA   r   N)	r_   r/   r2   Úget_feature_names_outÚ__name__ÚlowerÚranger´   r   )rþ   Úestr;   Ú	names_outÚexpected_namesr  s        @r?   Ú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Ð1rA   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%   rR   )Ú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_rM   )r  Úsuffixs     r?   r  zBtest_additivechi2sampler_get_feature_names_out.<locals>.<listcomp>"  s!   € ÐMÐMÐM¸&Ð5¨VÐ5Ð5ÐMÐMÐMrA   N)r3   r±   r²   Úrandom_sampler   r_   r  r   )rá   r/   Úchi2_samplerÚinput_namesÚsuffixesr
  r  s          r?   Ú.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Ð1rA   )Hrp   Únumpyr3   r\   Úsklearn._configr   Úsklearn.datasetsr   Úsklearn.kernel_approximationr   r   r   r   r	   Úsklearn.metrics.pairwiser
   r   r   r   Úsklearn.utils._array_apir   r   r   r   r   rÇ   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.fixesr   r±   r²   rá   r$  r/   r0   rZ   rX   ÚflagsÚ	writeableÚmarkÚparametrizer@   rK   rP   rg   r  rn   rr   r~   r�   r…   r‘   rš   rŸ   r¢   r¨   rª   r»   rð   r×   rÜ   rã   rè   rö   rù   rý   r  r(  rM   rA   r?   ú<module>r5     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ð(ð&#ð &#ð &#ðR	%ð 	%ð 	%ð"ð "ð "ð&
5ð 
5ð 
5ðBð Bð Bð*ð *ð *ð
Eð 
Eð 
Eðð ð ð$ „×Ò˜¨.Ñ9Ô9ð	%ð 	%ñ :Ô9ð	%ð6ð 6ð 6ð6 „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒØˆdˆd�>�>Ñ#Ô#Ñ$Ô$¨¸Ð'FÑFñô ð „×Ò˜¨!¨S¨Ñ2Ô2ðFð Fñ 3Ô2ñô ñ	ô ðFðB%ð %ð %ð("ð "ð "ð 
Ið 
Ið 
Iðð ð ð:ð ð ð(Bð Bð Bð „×ÒØÐ'¨Ð5FÈÐQñô ð2ð 2ñô ð2ð2ð 2ð 2ð 2ð 2rA   