§
    qŠtjÜ  ã                   ó”   — d Z ddlmZ ddlmZ ddlZddlZddlm	Z
 ddlmZmZmZ ddlmZ ddlmZ d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )zTest the 20news downloader, if the data is available,
or if specifically requested via environment variable
(e.g. for CI jobs).é    )Úpartial)ÚpatchN)Úcheck_as_frameÚcheck_pandas_dependency_messageÚcheck_return_X_y©Ú	normalize)Úassert_allclose_dense_sparsec                 ón  —  | dd¬¦  «        }|j                              d¦  «        sJ ‚ | d|j        ddd…         d¬¦  «        }|j        |j        dd …         k    sJ ‚t          j        |j        ¦  «                             ¦   «         d	d
gk    sJ ‚t          |j        ¦  «        t          |j        ¦  «        k    sJ ‚t          |j        ¦  «        t          |j	        ¦  «        k    sJ ‚|j	        d	         }|j        |j        d	                  }|j         
                    |¦  «        }|j	        t          j        |j        |k    ¦  «        d	         d	                  }||k    sJ ‚ | ddd¬¦  «        \  }}t          |¦  «        t          |j	        ¦  «        k    sJ ‚|j        |j        j        k    sJ ‚d S )NÚallF)ÚsubsetÚshuffleú.. _20newsgroups_dataset:éÿÿÿÿéýÿÿÿ)r   Ú
categoriesr   éþÿÿÿr   é   T)r   r   Ú
return_X_y)ÚDESCRÚ
startswithÚtarget_namesÚnpÚuniqueÚtargetÚtolistÚlenÚ	filenamesÚdataÚindexÚwhereÚshape)	Úfetch_20newsgroups_fxtr   Ú	data2catsÚentry1ÚcategoryÚlabelÚentry2ÚXÚys	            ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/datasets/tests/test_20news.pyÚtest_20newsr,      sÌ  € Ø!Ð!¨¸Ð>Ñ>Ô>€DØŒ:× Ò Ð!<Ñ=Ô=Ð=Ð=Ð=ð 'Ð&Ø Ô!2°2°b¸°8Ô!<Àeðñ ô €Ið
 Ô! TÔ%6°r°s°sÔ%;Ò;Ð;Ð;Ð;åŒ9�YÔ%Ñ&Ô&×-Ò-Ñ/Ô/°A°q°6Ò9Ð9Ð9Ð9õ ˆyÔ"Ñ#Ô#¥s¨9Ô+;Ñ'<Ô'<Ò<Ð<Ð<Ð<ÝˆyÔ"Ñ#Ô#¥s¨9¬>Ñ':Ô':Ò:Ð:Ð:Ð:ð Œ^˜AÔ€FØÔ% iÔ&6°qÔ&9Ô:€HØÔ×#Ò# HÑ-Ô-€EØŒY•r”x ¤¨uÒ 4Ñ5Ô5°aÔ8¸Ô;Ô<€FØ�VÒÐÐÐð "Ð!¨¸È$ÐOÑOÔO�D€A€qÝˆq‰6Œ6•S˜œ‘^”^Ò#Ð#Ð#Ð#ØŒ7�d”kÔ'Ò'Ð'Ð'Ð'Ð'Ð'ó    c                 ó,  —  | d¬¦  «        }t          |d         ¦  «        t          |j        ¦  «        k    sJ ‚t          |d         ¦  «        t          |j        ¦  «        k    sJ ‚t          |d         ¦  «        t          |j        ¦  «        k    sJ ‚dS )zuChecks the length consistencies within the bunch

    This is a non-regression test for a bug present in 0.16.1.
    r   ©r   r   r   r   N)r   r   r   r   )r#   r   s     r+   Útest_20news_length_consistencyr0   5   s‘   € ð "Ð!¨Ð/Ñ/Ô/€DÝˆt�FŒ|ÑÔ¥ D¤I¡¤Ò.Ð.Ð.Ð.Ýˆt�HŒ~ÑÔ¥# d¤kÑ"2Ô"2Ò2Ð2Ð2Ð2Ýˆt�KÔ Ñ!Ô!¥S¨¬Ñ%8Ô%8Ò8Ð8Ð8Ð8Ð8Ð8r-   c                 óÞ  —  | d¬¦  «        }t          j        |j        ¦  «        r|j        j        dk    sJ ‚|j        j        dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        t          j        k    sJ ‚|j	         
                    d¦  «        sJ ‚ | d¬¦  «        }t          j        |j        ¦  «        r|j        j        dk    sJ ‚|j        j        d	k    sJ ‚|j        j        d         d
k    sJ ‚|j        j        t          j        k    sJ ‚|j	         
                    d¦  «        sJ ‚t          | d¬¦  «        }t          ||¦  «          | d¬¦  «        }t          j        |j        ¦  «        r|j        j        dk    sJ ‚|j        j        dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        t          j        k    sJ ‚|j	         
                    d¦  «        sJ ‚d S )NÚtrainr/   Úcsr)é2,  é;ü r   r4   r   Útest)él  r5   r7   r   )éžI  r5   r8   )ÚspÚissparser   Úformatr"   r   Údtyper   Úfloat64r   r   r   r   )Ú!fetch_20newsgroups_vectorized_fxtÚbunchÚ
fetch_funcs      r+   Útest_20news_vectorizedrA   A   s  € à-Ð-°WÐ=Ñ=Ô=€EÝŒ;�u”zÑ"Ô"ÐA u¤zÔ'8¸EÒ'AÐ'AÐ'AÐAØŒ:Ô˜Ò.Ð.Ð.Ð.ØŒ<Ô˜aÔ  EÒ)Ð)Ð)Ð)ØŒ:Ô�rœzÒ)Ð)Ð)Ð)ØŒ;×!Ò!Ð"=Ñ>Ô>Ð>Ð>Ð>ð .Ð-°VÐ<Ñ<Ô<€EÝŒ;�u”zÑ"Ô"ÐA u¤zÔ'8¸EÒ'AÐ'AÐ'AÐAØŒ:Ô˜~Ò-Ð-Ð-Ð-ØŒ<Ô˜aÔ  DÒ(Ð(Ð(Ð(ØŒ:Ô�rœzÒ)Ð)Ð)Ð)ØŒ;×!Ò!Ð"=Ñ>Ô>Ð>Ð>Ð>õ Ð:À6ÐJÑJÔJ€JÝ�U˜JÑ'Ô'Ð'ð .Ð-°UÐ;Ñ;Ô;€EÝŒ;�u”zÑ"Ô"ÐA u¤zÔ'8¸EÒ'AÐ'AÐ'AÐAØŒ:ÔÐ5Ò5Ð5Ð5Ð5ØŒ<Ô˜aÔ  LÒ0Ð0Ð0Ð0ØŒ:Ô�rœzÒ)Ð)Ð)Ð)ØŒ;×!Ò!Ð"=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r-   c                 ó@  —  | d¬¦  «        } | d¬¦  «        }|d         d d…         }|d         d d…         }t          |t          |¦  «        ¦  «         t          j        t          j                             |                     ¦   «         d¬¦  «        d¦  «        sJ ‚d S )NFr   Tr   éd   r   )Úaxis)r
   r	   r   ÚallcloseÚlinalgÚnormÚtodense)r>   r)   ÚX_ÚX_norms       r+   Útest_20news_normalizationrK   _   s›   € Ø)Ð)°EÐ:Ñ:Ô:€AØ	*Ð	*°TÐ	:Ñ	:Ô	:€BØ�ŒZ˜˜˜Ô€FØ	ˆ&Œ	�$�3�$Œ€Aå  ­°1©¬Ñ6Ô6Ð6ÝŒ;•r”y—~’~ f§n¢nÑ&6Ô&6¸Q�~Ñ?Ô?ÀÑCÔCÐCÐCÐCÐCÐCr-   c                 ól  ‡— t          j        d¦  «        Š | d¬¦  «        }t          || ¦  «         |j        }|j        dk    sJ ‚t          ˆfd„|j        j        D ¦   «         ¦  «        sJ ‚dD ]}||                     ¦   «         v sJ ‚Œd|                     ¦   «         v sJ ‚|j	        j
        dk    sJ ‚d S )NÚpandasT©Úas_frame)r4   i<ü c                 ó:   •— g | ]}t          |‰j        ¦  «        ‘ŒS © )Ú
isinstanceÚSparseDtype)Ú.0ÚcolÚpds     €r+   ú
<listcomp>z(test_20news_as_frame.<locals>.<listcomp>q   s%   ø€ ÐMÐMÐM°C•
˜3 ¤Ñ/Ô/ÐMÐMÐMr-   )ÚbeginnerÚ	beginnersÚ	beginningÚ
beginningsÚbeginsÚbegleyÚbegoneÚcategory_class)ÚpytestÚimportorskipr   Úframer"   r   r   ÚdtypesÚkeysr   Úname)r>   r?   rb   Úexpected_featurerV   s       @r+   Útest_20news_as_framerg   i   så   ø€ Ý	Ô	˜XÑ	&Ô	&€Bà-Ð-°tÐ<Ñ<Ô<€EÝ�5Ð;Ñ<Ô<Ð<àŒK€EØŒ;˜/Ò)Ð)Ð)Ð)ÝÐMÐMÐMÐM¸5¼:Ô;LÐMÑMÔMÑNÔNÐNÐNÐNðð 	0ð 	0Ðð   5§:¢:¡<¤<Ð/Ð/Ð/Ð/Ð/Ø˜uŸzšz™|œ|Ð+Ð+Ð+Ð+ØŒ<ÔÐ 0Ò0Ð0Ð0Ð0Ð0Ð0r-   c                 ó$   — t          | ¦  «         d S )N)r   )r>   Úhide_available_pandass     r+   Útest_as_frame_no_pandasrj   ‚   s   € Ý#Ð$EÑFÔFÐFÐFÐFr-   c                 óB  — t          d¦  «        5 }t          d¦  «        5 }d|_        d|_        d}t          j        t          |¬¦  «        5   | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nzos.path.existszjoblib.loadT)r)   r*   zThe cached dataset located in)ÚmatchrN   )r   Úreturn_valuer`   ÚraisesÚ
ValueError)r>   Úmock_is_existÚ	mock_loadÚerr_msgs       r+   Útest_outdated_picklers   †   s™  € Ý	ÐÑ	 Ô	 ð A MÝ�=Ñ!Ô!ð 	A Yà)-ˆMÔ&à%/ˆIÔ"Ø5ˆGÝ”�z°Ð9Ñ9Ô9ð Að AØ1Ð1¸4Ð@Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	AðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að AsX   �B ,A<ÁA%ÁA<Á%A)Á)A<Á,A)Á-A<Á0BÁ<B 	Â BÂB 	ÂBÂBÂB)Ú__doc__Ú	functoolsr   Úunittest.mockr   Únumpyr   r`   Úscipy.sparseÚsparser9   Ú"sklearn.datasets.tests.test_commonr   r   r   Úsklearn.preprocessingr	   Úsklearn.utils._testingr
   r,   r0   rA   rK   rg   rj   rs   rQ   r-   r+   ú<module>r}      s3  ððð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 ,Ð +Ð +Ð +Ð +Ð +Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?ð(ð (ð (ð@	9ð 	9ð 	9ð?ð ?ð ?ð<Dð Dð Dð1ð 1ð 1ð2Gð Gð Gð	Að 	Að 	Að 	Að 	Ar-   