§
    rŠtjL  ã            	       ó®  — U d dl Z d dlZd dlmZmZ d dlZd dlZd dlm	Z
 d dlmZ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mZ d dlmZ egZee         ed<   egZ ee         ed	<   ee z   Z!egZ"ee         ed
<   egZ#ee         ed<   e"e#z   Z$	 	 d=d„Z%d„ Z&d\  Z'Z( e)e'e(z  dz  ¦  «        Z*ej+         ,                    dddgddgfddgddgfddgddgfg¦  «        d„ ¦   «         Z-d„ Z.d„ Z/d„ Z0d „ Z1d!„ Z2ej+         ,                    d"e!¦  «        d#„ ¦   «         Z3ej+         ,                    d"e¦  «        d$„ ¦   «         Z4d%„ Z5d&„ Z6d'„ Z7ej+         ,                    d(e¦  «        d)„ ¦   «         Z8ej+         ,                    d(e¦  «        d*„ ¦   «         Z9ej+         ,                    d(e¦  «        d+„ ¦   «         Z:ej+         ,                    d(e¦  «        d,„ ¦   «         Z;ej+         ,                    d(e¦  «        d-„ ¦   «         Z<ej+         ,                    d(e¦  «        d.„ ¦   «         Z=ej+         ,                    d(e¦  «        d/„ ¦   «         Z>d0„ Z?ej+         ,                    d(e¦  «        ej+         ,                    d1e$¦  «        d2„ ¦   «         ¦   «         Z@ej+         ,                    d(e¦  «        ej+         ,                    d3d4¦  «        ej+         ,                    d5d4¦  «        ej+         ,                    d1e$¦  «        ej+         ,                    d6d7d8g¦  «        d9„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZAej+         ,                    d1e$¦  «        ej+         ,                    d:ejB        ejB        fejC        ejC        fejD        ejC        fejE        ejC        ff¦  «        d;„ ¦   «         ¦   «         ZFej+         ,                    d1e$¦  «        d<„ ¦   «         ZGdS )>é    N)ÚAnyÚList)ÚDataDimensionalityWarningÚNotFittedError)Úeuclidean_distances)ÚGaussianRandomProjectionÚSparseRandomProjectionÚ_gaussian_random_matrixÚ_sparse_random_matrixÚjohnson_lindenstrauss_min_dim)Úassert_allcloseÚassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)ÚCOO_CONTAINERSÚall_sparse_random_matrixÚall_dense_random_matrixÚall_SparseRandomProjectionÚall_DenseRandomProjectionÚcsrc                 ó6  — t           j                             |¦  «        } | |                     |¦  «        |                     ||¬¦  «        |                     ||¬¦  «        ff||f¬¦  «        }|�|                     |¦  «        S |                     ¦   «         S )zÊMake some random data with uniformly located non zero entries with
    Gaussian distributed values; `sparse_format` can be `"csr"` (default) or
    `None` (in which case a dense array is returned).
    ©Úsize©Úshape)ÚnpÚrandomÚRandomStateÚrandnÚrandintÚasformatÚtoarray)Úcoo_containerÚ	n_samplesÚ
n_featuresÚ
n_nonzerosÚrandom_stateÚsparse_formatÚrngÚdata_coos           úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/tests/test_random_projection.pyÚmake_sparse_random_datar-   $   s¦   € õ Œ)×
Ò
 Ñ
-Ô
-€CØˆ}à�IŠI�jÑ!Ô!à—’˜I¨J�Ñ7Ô7Ø—’˜J¨Z�Ñ8Ô8ðð	
ð ˜*Ð%ð	ñ 	ô 	€Hð Ð Ø× Ò  Ñ/Ô/Ð/à×ÒÑ!Ô!Ð!ó    c                 óV   — t          j        | ¦  «        s| S |                      ¦   «         S ©N)ÚspÚissparser#   )Úmatrixs    r,   Údensifyr4   A   s)   € ÝŒ;�vÑÔð  Øˆà�~Š~ÑÔÐr.   )é
   éè  g      Y@zn_samples, epséd   én   çÍÌÌÌÌÌì?çš™™™™™ñ?éZ   çš™™™™™¹?ç        é2   iØÿÿÿçš™™™™™É?c                 óŒ   — t          j        t          ¦  «        5  t          | |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©Úeps)ÚpytestÚraisesÚ
ValueErrorr   )r%   rB   s     r,   Útest_invalid_jl_domainrF   Q   s‹   € õ 
Œ•zÑ	"Ô	"ð :ð :Ý% i°SÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   š9¹=Á =c                  ó"  — t          j        t          ¦  «        5  t          ddgz  ddgz  ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j                             ddd¬	¦  «        t	          j        dd
¦  «        ¬¦  «         d S )Né   r7   é   r9   rA   é   r5   )r5   r5   r   ç      à?)rC   rD   rE   r   r   r   r!   Úfull© r.   r,   Útest_input_size_jl_min_dimrN   ^   sâ   € Ý	Œ•zÑ	"Ô	"ð @ð @Ý% a¨3¨%¡i°Q¸#¸±YÐ?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ "Ý
Œ	×Ò˜!˜R hÐÑ/Ô/µR´W¸XÀsÑ5KÔ5Kðñ ô ð ð ð s   šA Á AÁAc                 ó˜   — g d¢}|D ]B\  }}t          j        t          ¦  «        5   | ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒCd S )N))r   r   )éÿÿÿÿrJ   )rJ   rP   )rJ   r   )rP   r   ©rC   rD   rE   ©Úrandom_matrixÚinputsÚn_componentsr&   s       r,   Úcheck_input_size_random_matrixrV   j   s£   € Ø8Ð8Ð8€FØ$*ð 4ð 4Ñ ˆ�jÝŒ]�:Ñ&Ô&ð 	4ð 	4ØˆM˜,¨
Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4øð4ð 4s   ¥>¾A	ÁA	c                 óP   — g d¢}|D ]\  }} | ||¦  «        j         ||fk    sJ ‚Œd S )N))rJ   é   )rX   rJ   )rX   rX   )rJ   rJ   r   rR   s       r,   Úcheck_size_generatedrY   q   sb   € Ø-Ð-Ð-€FØ$*ð 
ð 
Ñ ˆ�jØˆ}˜\¨:Ñ6Ô6Ô<ØØðA
ò 
ð 
ð 
ð 
ð 
ð
ð 
r.   c                 óÞ   — t           | ddd¬¦  «        ¦  «        }t          dt          j        |¦  «        d¦  «         t          dt          j                             |¦  «        d¦  «         d S )Ni'  rJ   r   ©r(   rH   ç      ð?)r4   r   r   ÚmeanÚlinalgÚnorm)rS   ÚAs     r,   Úcheck_zero_mean_and_unit_normra   z   sb   € õ 	��˜e Q°QÐ7Ñ7Ô7Ñ8Ô8€Aå˜a¥¤¨¡¤¨QÑ/Ô/Ð/Ý˜c¥2¤9§>¢>°!Ñ#4Ô#4°aÑ8Ô8Ð8Ð8Ð8r.   c                 ó˜   — d\  }}dD ]A}t          j        t          ¦  «        5   | |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒBd S )N)rX   r5   )g      ð¿r=   r:   ©ÚdensityrQ   )rS   rU   r&   rd   s       r,   Ú%check_input_with_sparse_random_matrixre   „   s·   € Ø$Ñ€L�*à#ð Eð EˆÝŒ]�:Ñ&Ô&ð 	Eð 	EØˆM˜,¨
¸GÐDÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	EøðEð Es   £>¾A	ÁA	rS   c                 ó`   — t          | ¦  «         t          | ¦  «         t          | ¦  «         d S r0   )rV   rY   ra   )rS   s    r,   Ú$test_basic_property_of_random_matrixrg   Œ   s4   € õ # =Ñ1Ô1Ð1Ý˜Ñ'Ô'Ð'Ý! -Ñ0Ô0Ð0Ð0Ð0r.   c                 ón   — t          | ¦  «         t          j        | d¬¦  «        }t          |¦  «         d S )Nr\   rc   )re   Ú	functoolsÚpartialra   )rS   Úrandom_matrix_denses     r,   Ú+test_basic_property_of_sparse_random_matrixrl   ”   s;   € å)¨-Ñ8Ô8Ð8å#Ô+¨MÀ3ÐGÑGÔGÐå!Ð"5Ñ6Ô6Ð6Ð6Ð6r.   c                  óÈ   — d} d}t          | |d¬¦  «        }t          dt          j        |¦  «        d¦  «         t          t          j        |d¬¦  «        d| z  d¦  «         d S )	Nr7   r6   r   r[   r=   rI   rJ   ©Úddof)r
   r   r   r]   Úvar)rU   r&   r`   s      r,   Útest_gaussian_random_matrixrq   �   sh   € ð €LØ€JÝ ¨jÀqÐIÑIÔI€Aå˜c¥2¤7¨1¡:¤:¨qÑ1Ô1Ð1Ý�bœf Q¨QÐ/Ñ/Ô/°°\Ñ1AÀ1ÑEÔEÐEÐEÐEr.   c            
      óv  — d} d}dD �]°}d|z  }t          | ||d¬¦  «        }t          |¦  «        }t          j        |¦  «        }t          j        |¦  «        t          j        | ¦  «        z  |v sJ ‚t          j        |¦  «         t          j        | ¦  «        z  |v sJ ‚|dk    rt          j        |¦  «        dk    sJ ‚n d	|v sJ ‚t          j        |¦  «        d
k    sJ ‚t          t          j        |d	k    ¦  «        dd|z  z
  d¬¦  «         t          t          j        |t          j        |¦  «        t          j        | ¦  «        z  k    ¦  «        dd|z  z  d¬¦  «         t          t          j        |t          j        |¦  «         t          j        | ¦  «        z  k    ¦  «        dd|z  z  d¬¦  «         t          t          j        |d	k    d¬¦  «        dd|z  z
  dz  |z  d¬¦  «         t          t          j        |t          j        |¦  «        t          j        | ¦  «        z  k    d¬¦  «        ddd|z  z  z
  dz  d|z  z  d¬¦  «         t          t          j        |t          j        |¦  «         t          j        | ¦  «        z  k    d¬¦  «        ddd|z  z  z
  dz  d|z  z  d¬¦  «         �Œ²d S )Nr7   iô  )g333333Ó?r\   rJ   r   )rd   r(   r\   rI   r=   rH   )Údecimalrn   )	r   r4   r   ÚuniqueÚsqrtr   r   r]   rp   )rU   r&   rd   Úsr`   Úvaluess         r,   Útest_sparse_random_matrixrx   «   sß  € à€LØ€Jàð ,
ñ ,
ˆØ�‰Kˆå!Ø˜*¨gÀAð
ñ 
ô 
ˆõ �A‰JŒJˆõ ”˜1‘”ˆÝŒw�q‰zŒz�BœG LÑ1Ô1Ñ1°VÐ;Ð;Ð;Ð;Ý”˜‘
”
ˆ{�RœW \Ñ2Ô2Ñ2°fÐ<Ð<Ð<Ð<à�cŠ>ˆ>Ý”7˜6‘?”? aÒ'Ð'Ð'Ð'Ð'à˜&�=�=�=�=Ý”7˜6‘?”? aÒ'Ð'Ð'Ð'õ 	�BœG A¨¢HÑ-Ô-¨q°1°q±5©yÀ!ÐDÑDÔDÐDÝÝŒG�A�œ ™œ¥b¤g¨lÑ&;Ô&;Ñ;Ò;Ñ<Ô<¸aÀ1ÀqÁ5¹kÐSTð	
ñ 	
ô 	
ð 	
õ 	ÝŒG�A�"œ' !™*œ*˜¥r¤w¨|Ñ'<Ô'<Ñ<Ò<Ñ=Ô=¸qÀAÈÁE¹{ÐTUð	
ñ 	
ô 	
ð 	
õ 	�BœF 1¨¢8°!Ð4Ñ4Ô4°q¸1¸q¹5±yÀA±oÈÑ6IÐSTÐUÑUÔUÐUÝÝŒF�1�œ ™
œ
¥R¤W¨\Ñ%:Ô%:Ñ:Ò:ÀÐCÑCÔCØ��a˜!‘e‘‰_ Ñ! Q¨¡UÑ+Øð	
ñ 	
ô 	
ð 	
õ
 	ÝŒF�1�œ ™œ˜¥b¤g¨lÑ&;Ô&;Ñ;Ò;À!ÐDÑDÔDØ��a˜!‘e‘‰_ Ñ! Q¨¡UÑ+Øð	
ñ 	
ô 	
ð 	
ñ 	
ðQ,
ð ,
r.   c                  óÈ   — d} g d¢g}t           D ]R}t          j        t          ¦  «        5   || ¬¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒSd S )NÚauto)r   rJ   rI   ©rU   )Úall_RandomProjectionrC   rD   rE   Úfit)rU   Úfit_dataÚRandomProjections      r,   Ú0test_random_projection_transformer_invalid_inputr€   ä   sÉ   € Ø€LØ�	�	ˆ{€HÝ0ð Fð FÐÝŒ]�:Ñ&Ô&ð 	Fð 	FØÐ¨,Ð7Ñ7Ô7×;Ò;¸HÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	FøðFð Fs   ª AÁA	ÁA	r$   c                 ó  — t          | t          t          t          |d ¬¦  «        }t          D ]R}t          j        t          ¦  «        5   |d¬¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒSd S )N©r(   r)   rz   r{   )	r-   r%   r&   r'   r|   rC   rD   r   Ú	transform)r$   Úglobal_random_seedÚdatar   s       r,   Ú test_try_to_transform_before_fitr†   ì   sá   € å"ØÝÝÝØ'Øðñ ô €Dõ 1ð Bð BÐÝŒ]�>Ñ*Ô*ð 	Bð 	BØÐ¨&Ð1Ñ1Ô1×;Ò;¸DÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	BøðBð Bs   Á A3Á3A7	Á:A7	c                 óò   — t          | ddd|d ¬¦  «        }t          D ]Y} |dd¬¦  «        }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒZd S )	Nr6   r7   ©r%   r&   r'   r(   r)   rz   r<   )rU   rB   z~eps=0.100000 and n_samples=1000 lead to a target dimension of 5920 which is larger than the original space with n_features=100)Úmatch)r-   r|   rC   rD   rE   r}   )r$   r„   r…   r   ÚrpÚexpected_msgs         r,   Ú.test_too_many_samples_to_find_a_safe_embeddingrŒ   û   sß   € å"ØØØØØ'Øðñ ô €Dõ 1ð ð ÐØÐ¨6°sÐ;Ñ;Ô;ˆðð 	õ
 Œ]�:¨\Ð:Ñ:Ô:ð 	ð 	Ø�FŠF�4‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Á	A+Á+A/	Á2A/	c                 óÌ  — t          | ddddd ¬¦  «        }d}t          |d¬¦  «        }|                     ¦   «         }|d	k    }||         }t          D ]‘} |d
|d¬¦  «        }|                     |¦  «        }t          |d¬¦  «        }|                     ¦   «         }||         }||z  }	|	                     ¦   «         d|z   k     sJ ‚d|z
  |	                     ¦   «         k     sJ ‚Œ’d S )Né   iˆ  i˜:  r   rˆ   r?   T)Úsquaredr=   rz   )rU   rB   r(   rJ   )r-   r   Úravelr|   Úfit_transformÚmaxÚmin)
r$   r…   rB   Úoriginal_distancesÚnon_identicalr   rŠ   Ú	projectedÚprojected_distancesÚdistances_ratios
             r,   Ú(test_random_projection_embedding_qualityr™     s3  € å"ØØØØØØðñ ô €Dð €Cå,¨T¸4Ð@Ñ@Ô@ÐØ+×1Ò1Ñ3Ô3ÐØ&¨#Ò-€Mð ,¨MÔ:Ðå0ð /ð /ÐØÐ¨6°sÈÐKÑKÔKˆØ×$Ò$ TÑ*Ô*ˆ	å1°)ÀTÐJÑJÔJÐØ1×7Ò7Ñ9Ô9Ðð 2°-Ô@Ðà-Ð0BÑBˆð
 ×"Ò"Ñ$Ô$ q¨3¡wÒ.Ð.Ð.Ð.Ø�3‰w˜×,Ò,Ñ.Ô.Ò.Ð.Ð.Ð.Ð.ð!/ð /r.   c                 ó¢  — t          | t          t          t          dd ¬¦  «        }t          | t          t          t          dd¬¦  «        }t          D ]þ} |ddd¬¦  «        }|                     |¦  «         t          |                     |¦  «        t          j	        ¦  «        sJ ‚t          |                     |¦  «        t          j	        ¦  «        sJ ‚ |ddd¬¦  «        }|                     |¦  «        }t          |                     |¦  «        t          j	        ¦  «        sJ ‚t          j        |                     |¦  «        ¦  «        sJ ‚Œÿd S )Nr   r‚   r   r5   T)rU   Údense_outputr(   F)r-   r%   r&   r'   r   r}   Ú
isinstancerƒ   r   Úndarrayr1   r2   )r$   Ú
dense_dataÚsparse_dataÚSparseRandomProjrŠ   s        r,   Ú+test_SparseRandomProj_output_representationr¡   7  sU  € å(ØÝÝÝØØðñ ô €Jõ *ØÝÝÝØØðñ ô €Kõ 7ð 6ð 6Ðð Ð¨2¸DÈqÐQÑQÔQˆØ
�ŠˆzÑÔÐÝ˜"Ÿ,š, zÑ2Ô2µB´JÑ?Ô?Ð?Ð?Ð?Ý˜"Ÿ,š, {Ñ3Ô3µR´ZÑ@Ô@Ð@Ð@Ð@ð Ð¨2¸EÐPQÐRÑRÔRˆØ�VŠV�JÑÔˆå˜"Ÿ,š, zÑ2Ô2µB´JÑ?Ô?Ð?Ð?Ð?õ Œ{˜2Ÿ<š<¨Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5Ð5ð6ð 6r.   c                 ó  — t          | t          t          t          |d ¬¦  «        }t          D �]Ò} |ddd¬¦  «                             |¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚|t          v r#|j	        dk    sJ ‚t          |j        dd¦  «         |j        j        dt          fk    sJ ‚|                     |¦  «        }|j        t          dfk    sJ ‚|                     |¦  «        }t          ||¦  «          |dd¬	¦  «        }|                     |¦  «        }t          ||¦  «         t#          j        t&          ¦  «        5  |                     |d d …d
d…f         ¦  «         d d d ¦  «         n# 1 swxY w Y   |t          v rt |ddd¬¦  «        }|                     |¦  «        }	|	j        t          dfk    sJ ‚|j        j        dt          fk    sJ ‚|j        j        dk     sJ ‚d|j        j        k     sJ ‚�ŒÔd S )Nr‚   rz   r   rK   )rU   r(   rB   r8   g¸…ëQ¸ž?rI   )r(   rB   rJ   rX   r7   gü©ñÒMbP?)rU   rd   r(   és   éU   )r-   r%   r&   r'   r|   r}   rU   Ún_components_r   rd   r   Údensity_Úcomponents_r   rƒ   r   r‘   rC   rD   rE   Únnz)
r$   r„   r…   r   rŠ   Úprojected_1Úprojected_2Úrp2Úprojected_3r–   s
             r,   Ú2test_correct_RandomProjection_dimensions_embeddingr­   [  s�  € õ #ØÝÝÝØ'Øðñ ô €Dõ 1ð &+ñ &+ÐØÐ¨6ÀÀsÐKÑKÔK×OÒOÐPTÑUÔUˆð Œ &Ò(Ð(Ð(Ð(ØÔ 3Ò&Ð&Ð&Ð&àÕ9Ð9Ð9Ø”: Ò'Ð'Ð'Ð'Ý ¤¨T°1Ñ5Ô5Ð5àŒ~Ô#¨­ZÐ'8Ò8Ð8Ð8Ð8à—l’l 4Ñ(Ô(ˆØÔ ¥Y°Ð$4Ò4Ð4Ð4Ð4ð —l’l 4Ñ(Ô(ˆÝ˜;¨Ñ4Ô4Ð4ð Ð¨A°3Ð7Ñ7Ô7ˆØ×'Ò'¨Ñ-Ô-ˆÝ˜;¨Ñ4Ô4Ð4õ Œ]�:Ñ&Ô&ð 	'ð 	'Ø�LŠL˜˜a˜a˜a  1 ˜fœÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð
 Õ9Ð9Ð9Ø!Ð!¨s¸EÐPQÐRÑRÔRˆBØ×(Ò(¨Ñ.Ô.ˆIØ”?¥y°#Ð&6Ò6Ð6Ð6Ð6Ø”>Ô'¨CµÐ+<Ò<Ð<Ð<Ð<Ø”>Ô%¨Ò+Ð+Ð+Ð+Ø˜œÔ*Ò*Ð*Ð*Ð*ùðM&+ð &+s   Å"E6Å6E:	Å=E:	c                 ó  — d}d}t          |dz  ¦  «        }t          | ||||d ¬¦  «        }t          D ]U}t          j        t
          ¦  «        5   ||dz   ¬¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒVd S )Né   rX   é   r‚   rJ   r{   )Úintr-   r|   rC   Úwarnsr   r}   )r$   r„   r&   r%   r'   r…   r   s          r,   Ú1test_warning_n_components_greater_than_n_featuresr³   �  s  € ð €JØ€IÝ�Z !‘^Ñ$Ô$€JÝ"ØØØØØ'Øðñ ô €Dõ 1ð Dð DÐÝŒ\Õ3Ñ4Ô4ð 	Dð 	DØÐ¨*°q©.Ð9Ñ9Ô9×=Ò=¸dÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	DøðDð Ds   Á#A=Á=B	ÂB	c                 ó‚  — d}d}t          |dz  ¦  «        }t          | ||||d ¬¦  «        }t          | ||||d¬¦  «        }t          D ]v} |dd¬¦  «                             |¦  «        } |dd¬¦  «                             |¦  «        }	t	          t          |j        ¦  «        t          |	j        ¦  «        ¦  «         Œwd S )	Nr¯   rX   r°   r‚   r   rH   rJ   )rU   r(   )r±   r-   r|   r}   r   r4   r§   )
r$   r„   r&   r%   r'   rž   rŸ   r   Úrp_denseÚ	rp_sparses
             r,   Útest_works_with_sparse_datar·   ¥  sÿ   € à€JØ€IÝ�Z !‘^Ñ$Ô$€JÝ(ØØØØØ'Øðñ ô €Jõ *ØØØØØ'Øðñ ô €Kõ 1ð 
ð 
ÐØ#Ð#°ÀÐCÑCÔC×GÒGÈ
ÑSÔSˆØ$Ð$°!À!ÐDÑDÔD×HÒHÈÑUÔUˆ	Ý!Ý�HÔ(Ñ)Ô)­7°9Ô3HÑ+IÔ+Iñ	
ô 	
ð 	
ð 	
ð
ð 
r.   c                  ó4   — t          dd¬¦  «        dk    sJ ‚dS )zyTest Johnson-Lindenstrauss for small eps.

    Regression test for #17111: before #19374, 32-bit systems would fail.
    r7   çñhãˆµøä>rA   l   JžWN)r   rM   r.   r,   Ú"test_johnson_lindenstrauss_min_dimrº   Ã  s(   € õ
 )¨°$Ð7Ñ7Ô7¸<ÒGÐGÐGÐGÐGÐGr.   Úrandom_projection_clsc                 ó~  ‡— t          | t          t          t          |d ¬¦  «        } |d¬¦  «        }|                     |¦  «         |                     ¦   «         }|j                             ¦   «         Št          j	        ˆfd„t          |j        ¦  «        D ¦   «         t          ¬¦  «        }t          ||¦  «         d S )Nr‚   rI   r{   c                 ó   •— g | ]}‰› |› �‘Œ	S rM   rM   )Ú.0ÚiÚclass_name_lowers     €r,   ú
<listcomp>z<test_random_projection_feature_names_out.<locals>.<listcomp>Ý  s%   ø€ ÐRÐRÐR aÐÐ	!˜aÐ	!Ð	!ÐRÐRÐRr.   )Údtype)r-   r%   r&   r'   r}   Úget_feature_names_outÚ__name__Úlowerr   ÚarrayÚranger¥   Úobjectr   )r$   r»   r„   r…   Úrandom_projectionÚ	names_outÚexpected_names_outrÀ   s          @r,   Ú(test_random_projection_feature_names_outrÌ   Ë  sÑ   ø€ õ
 #ØÝÝÝØ'Øðñ ô €Dð .Ð-¸1Ð=Ñ=Ô=ÐØ×Ò˜$ÑÔÐØ!×7Ò7Ñ9Ô9€IØ,Ô5×;Ò;Ñ=Ô=ÐÝœØRÐRÐRÐR­5Ð1BÔ1PÑ+QÔ+QÐRÑRÔRÝðñ ô Ðõ
 �yÐ"4Ñ5Ô5Ð5Ð5Ð5r.   r%   )rI   é	   r5   é   r6   r&   Úcompute_inverse_componentsTFc                 óž  — d} ||||¬¦  «        }t          | ||||z  dz  dz   |d ¬¦  «        }t          | ||||z  dz  dz   |d¬¦  «        }	||	fD ]û}
t          j        ¦   «         5  t          j        ddt          ¬	¦  «         |                     |
¦  «        }d d d ¦  «         n# 1 swxY w Y   |r(t          |d
¦  «        sJ ‚|j        }|j        ||fk    sJ ‚| 	                    |¦  «        }|j        |
j        k    sJ ‚| 
                    |¦  «        }t          |d¦  «        r|                     ¦   «         }t          ||dd¬¦  «         Œüd S )Nr5   )rU   rÏ   r(   r7   rJ   )r'   r(   r)   r   Úignorez>The number of components is higher than the number of features)ÚmessageÚcategoryÚinverse_components_r#   gH¯¼šò×z>g»½×Ùß|Û=)ÚrtolÚatol)r-   ÚwarningsÚcatch_warningsÚfilterwarningsr   r‘   ÚhasattrrÔ   r   Úinverse_transformrƒ   r#   r   )r$   r%   r&   r»   rÏ   r„   rU   rÉ   ÚX_denseÚX_csrÚXr–   Úinv_componentsÚprojected_backÚprojected_agains                  r,   Útest_inverse_transformrâ   ä  s  € ð €Là-Ð-Ø!Ø#=Ø'ðñ ô Ðõ &ØØØØ˜zÑ)¨SÑ0°1Ñ4Ø'Øðñ ô €Gõ $ØØØØ˜zÑ)¨SÑ0°1Ñ4Ø'Øðñ ô €Eð �uÐð Kð KˆÝÔ$Ñ&Ô&ð 	;ð 	;ÝÔ#ØàTå2ðñ ô ð ð *×7Ò7¸Ñ:Ô:ˆIð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð &ð 	FÝÐ,Ð.CÑDÔDÐDÐDÐDØ.ÔBˆNØ!Ô'¨J¸Ð+EÒEÐEÐEÐEà*×<Ò<¸YÑGÔGˆØÔ# q¤wÒ.Ð.Ð.Ð.à+×5Ò5°nÑEÔEˆÝ�9˜iÑ(Ô(ð 	,Ø!×)Ò)Ñ+Ô+ˆIÝ˜	 ?¸ÀEÐJÑJÔJÐJÐJð-Kð Ks   Á&2B$Â$B(	Â+B(	zinput_dtype, expected_dtypec                 ó  — t           j                             d¦  «        }|                     dd¦  «        } | d¬¦  «        }|                     |                     |¦  «        ¦  «        }|j        j        |k    sJ ‚|j        |k    sJ ‚d S )Né*   é   é¸  r   r[   )r   r   r   Úrandr‘   Úastyper§   rÂ   )r»   Úinput_dtypeÚexpected_dtyper*   rÞ   rŠ   Útransformeds          r,   Ú"test_random_projection_dtype_matchrì   #  sŽ   € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�Š��TÑÔ€AØ	Ð	¨AÐ	.Ñ	.Ô	.€BØ×"Ò" 1§8¢8¨KÑ#8Ô#8Ñ9Ô9€KàŒ>Ô >Ò1Ð1Ð1Ð1ØÔ Ò.Ð.Ð.Ð.Ð.Ð.r.   c                 óÄ  — d}t           j                             d¦  «        }|                     dd¦  «        } | d¬¦  «        } | d¬¦  «        }|                     |                     t           j        ¦  «        ¦  «        }|                     |                     t           j        ¦  «        ¦  «        }t          |||¬¦  «         t          |j
        |j
        ¦  «         d S )Nr¹   rä   rå   ræ   r   r[   )rÖ   )r   r   r   rç   r‘   rè   Úfloat32Úfloat64r   r   r§   )r»   rÖ   r*   rÞ   Úrp_32Úrp_64Úprojection_32Úprojection_64s           r,   Ú,test_random_projection_numerical_consistencyrô   :  sÊ   € ð €DÝ
Œ)×
Ò
 Ñ
#Ô
#€CØ�Š��TÑÔ€AØ!Ð!¨qÐ1Ñ1Ô1€EØ!Ð!¨qÐ1Ñ1Ô1€Eà×'Ò'¨¯ªµ´Ñ(<Ô(<Ñ=Ô=€MØ×'Ò'¨¯ªµ´Ñ(<Ô(<Ñ=Ô=€Må�M =°tÐ<Ñ<Ô<Ð<å  Ô!2°EÔ4EÑFÔFÐFÐFÐFr.   )Nr   )Hri   r×   Útypingr   r   Únumpyr   rC   Úscipy.sparseÚsparser1   Úsklearn.exceptionsr   r   Úsklearn.metricsr   Úsklearn.random_projectionr   r	   r
   r   r   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.fixesr   r   Ú__annotations__r   Úall_random_matrixr   r   r|   r-   r4   r%   r&   r±   r'   ÚmarkÚparametrizerF   rN   rV   rY   ra   re   rg   rl   rq   rx   r€   r†   rŒ   r™   r¡   r­   r³   r·   rº   rÌ   râ   rî   rï   Úint32Úint64rì   rô   rM   r.   r,   ú<module>r     s[  ðØ Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .à'<Ð&=Ð ˜$˜sœ)Ð =Ð =Ñ =Ø&=Ð%>Ð ˜˜cœÐ >Ð >Ñ >Ø,Ð/FÑFÐ à)?Ð(@Ð ˜D œIÐ @Ð @Ñ @Ø(@Ð'AÐ ˜4 œ9Ð AÐ AÑ AØ1Ð4MÑMÐ ð Øð"ð "ð "ð "ð: ð  ð  ð #Ñ €	ˆ:ØˆS�˜ZÑ'¨%Ñ/Ñ0Ô0€
ð „×ÒØà
ˆsˆ�c˜3�ZÐ Ø
ˆcˆ�S˜#�JÐØ
ˆcˆ�S˜#�JÐðñô ð:ð :ñô ð:ð
ð ð ð4ð 4ð 4ð
ð 
ð 
ð9ð 9ð 9ðEð Eð Eð „×Ò˜Ð*;Ñ<Ô<ð1ð 1ñ =Ô<ð1ð „×Ò˜Ð*BÑCÔCð7ð 7ñ DÔCð7ðFð Fð Fð1
ð 1
ð 1
ðrFð Fð Fð „×Ò˜¨.Ñ9Ô9ðBð Bñ :Ô9ðBð „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð* „×Ò˜¨.Ñ9Ô9ð"/ð "/ñ :Ô9ð"/ðJ „×Ò˜¨.Ñ9Ô9ð 6ð  6ñ :Ô9ð 6ðF „×Ò˜¨.Ñ9Ô9ð1+ð 1+ñ :Ô9ð1+ðh „×Ò˜¨.Ñ9Ô9ðDð Dñ :Ô9ðDð( „×Ò˜¨.Ñ9Ô9ð
ð 
ñ :Ô9ð
ð:Hð Hð Hð „×Ò˜¨.Ñ9Ô9Ø„×ÒÐ0Ð2FÑGÔGð6ð 6ñ HÔGñ :Ô9ð6ð. „×Ò˜¨.Ñ9Ô9Ø„×Ò˜Ð&:Ñ;Ô;Ø„×Ò˜Ð';Ñ<Ô<Ø„×ÒÐ0Ð2FÑGÔGØ„×ÒÐ5¸¸e°}ÑEÔEð7Kð 7Kñ FÔEñ HÔGñ =Ô<ñ <Ô;ñ :Ô9ð
7Kðt „×ÒÐ0Ð2FÑGÔGØ„×ÒØ!à	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð
/ð 
/ñô ñ HÔGð
/ð „×ÒÐ0Ð2FÑGÔGðGð Gñ HÔGðGð Gð Gr.   