Ë
    ÷Q(hÜ  ã                   ó’   — 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y)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                 ó�  —  | dd¬«      }|j                   j                  d«      sJ ‚ | d|j                  ddd…   d¬«      }|j                  |j                  dd  k(  sJ ‚t        j                  |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                  |«      }|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 ‚y )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/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/datasets/tests/test_20news.pyÚtest_20newsr,      s£  € Ù!¨¸Ô>€DØ�:‰:× Ñ Ð!<Ô=Ð=Ð=ñ 'Ø ×!2Ñ!2°2°b¸°8Ñ!<Àeô€Ið
 ×!Ñ! T×%6Ñ%6°r°sÐ%;Ò;Ð;Ð;ä�9‰9�Y×%Ñ%Ó&×-Ñ-Ó/°A°q°6Ò9Ð9Ð9ô ˆy×"Ñ"Ó#¤s¨9×+;Ñ+;Ó'<Ò<Ð<Ð<Üˆy×"Ñ"Ó#¤s¨9¯>©>Ó':Ò:Ð:Ð:ð �^‰^˜AÑ€FØ×%Ñ% i×&6Ñ&6°qÑ&9Ñ:€HØ×Ñ×#Ñ# HÓ-€EØ�Y‰Y”r—x‘x §¡¨uÑ 4Ó5°aÑ8¸Ñ;Ñ<€FØ�VÒÐÐñ "¨¸È$ÔO�D€A€qÜˆq‹6”S˜Ÿ™“^Ò#Ð#Ð#Ø�7‰7�d—k‘k×'Ñ'Ò'Ð'Ñ'ó    c                 óú   —  | d¬«      }t        |d   «      t        |j                  «      k(  sJ ‚t        |d   «      t        |j                  «      k(  sJ ‚t        |d   «      t        |j                  «      k(  sJ ‚y)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   sn   € ñ "¨Ô/€DÜˆt�F‰|Ó¤ D§I¡I£Ò.Ð.Ð.Üˆt�H‰~Ó¤# d§k¡kÓ"2Ò2Ð2Ð2Üˆt�KÑ Ó!¤S¨¯©Ó%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                  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                  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                  j                  d«      sJ ‚y )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‘zÔ" u§z¡z×'8Ñ'8¸EÒ'AÐAÐAØ�:‰:×Ñ˜Ò.Ð.Ð.Ø�<‰<×Ñ˜aÑ  EÒ)Ð)Ð)Ø�:‰:×ÑœrŸz™zÒ)Ð)Ð)Ø�;‰;×!Ñ!Ð"=Ô>Ð>Ð>ñ .°VÔ<€EÜ�;‰;�u—z‘zÔ" u§z¡z×'8Ñ'8¸EÒ'AÐAÐAØ�:‰:×Ñ˜~Ò-Ð-Ð-Ø�<‰<×Ñ˜aÑ  DÒ(Ð(Ð(Ø�:‰:×ÑœrŸz™zÒ)Ð)Ð)Ø�;‰;×!Ñ!Ð"=Ô>Ð>Ð>ô Ð:À6ÔJ€JÜ�U˜JÔ'ñ .°UÔ;€EÜ�;‰;�u—z‘zÔ" u§z¡z×'8Ñ'8¸EÒ'AÐAÐAØ�:‰:×ÑÐ5Ò5Ð5Ð5Ø�<‰<×Ñ˜aÑ  LÒ0Ð0Ð0Ø�:‰:×ÑœrŸz™zÒ)Ð)Ð)Ø�;‰;×!Ñ!Ð"=Ô>Ð>Ñ>r-   c                 óü   —  | d¬«      } | d¬«      }|d   d d }|d   d d }t        |t        |«      «       t        j                  t        j                  j                  |j                  «       d¬«      d«      sJ ‚y )NFr   Tr   éd   r   )Úaxis)r
   r	   r   ÚallcloseÚlinalgÚnormÚtodense)r>   r)   ÚX_ÚX_norms       r+   Útest_20news_normalizationrK   _   so   € Ù)°EÔ:€AÙ	*°TÔ	:€BØ�‰Z˜˜Ð€FØ	ˆ&‰	�$�3ˆ€Aä  ¬°1«Ô6Ü�;‰;”r—y‘y—~‘~ f§n¡nÓ&6¸Q�~Ó?ÀÔCÐCÑCr-   c           	      ó¶  — t        j                  d«      } | d¬«      }t        || «       |j                  }|j                  dk(  sJ ‚t        |j                  j                  D �cg c]  }t        ||j                  «      ‘Œ c}«      sJ ‚dD ]  }||j                  «       v rŒJ ‚ d|j                  «       v sJ ‚|j                  j                  dk(  sJ ‚y c c}w )NÚpandasT©Úas_frame)r4   i<ü )ÚbeginnerÚ	beginnersÚ	beginningÚ
beginningsÚbeginsÚbegleyÚbegoneÚcategory_class)ÚpytestÚimportorskipr   Úframer"   r   r   ÚdtypesÚ
isinstanceÚSparseDtypeÚkeysr   Úname)r>   Úpdr?   rZ   ÚcolÚexpected_features         r+   Útest_20news_as_framerc   i   sÍ   € Ü	×	Ñ	˜XÓ	&€Bá-°tÔ<€EÜ�5Ð;Ô<à�K‰K€EØ�;‰;˜/Ò)Ð)Ð)Ü¸5¿:¹:×;LÑ;LÖM°C”
˜3 §¡Õ/ÒMÔNÐNÐNðò 	0Ðð   5§:¡:£<Ò/Ð/Ð/ð	0ð ˜uŸz™z›|Ñ+Ð+Ð+Ø�<‰<×ÑÐ 0Ò0Ð0Ñ0ùò Ns   Á%Cc                 ó   — t        | «       y )N)r   )r>   Úhide_available_pandass     r+   Útest_as_frame_no_pandasrf   ‚   s   € Ü#Ð$EÕFr-   c                 ó  — t        d«      5 }t        d«      5 }d|_        d|_        d}t        j                  t        |¬«      5   | d¬«       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nzos.path.existszjoblib.loadT)r)   r*   zThe cached dataset located in)ÚmatchrN   )r   Úreturn_valuerX   ÚraisesÚ
ValueError)r>   Úmock_is_existÚ	mock_loadÚerr_msgs       r+   Útest_outdated_picklero   †   s“   € Ü	ÐÓ	 ð A MÜ�=Ó!ð 	A Yà)-ˆMÔ&à%/ˆIÔ"Ø5ˆGÜ—‘œz°Ô9ñ AÙ1¸4Õ@÷A÷	A÷Að A÷Að Aú÷	Að 	Aú÷Að Aús:   ŒA?˜,A3Á
A'ÁA3ÁA?Á'A0Á,A3Á3A<	Á8A?Á?B)Ú__doc__Ú	functoolsr   Úunittest.mockr   Únumpyr   rX   Úscipy.sparseÚsparser9   Ú"sklearn.datasets.tests.test_commonr   r   r   Úsklearn.preprocessingr	   Úsklearn.utils._testingr
   r,   r0   rA   rK   rc   rf   ro   © r-   r+   ú<module>rz      sT   ðñõ Ý ã Û Ý ÷ñ õ
 ,Ý ?ò(ò@	9ò?ò<Dò1ò2Gó	Ar-   