§
    qŠtjv  ã                   óê   — d Z ddlZddlmZ ddlZddlZddlmZm	Z	 ddl
mZ ddlmZ g d¢Z ej        d¬	¦  «        d
„ ¦   «         Z ej        d¬	¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )av  This test for the LFW require medium-size data downloading and processing

If the data has not been already downloaded by running the examples,
the tests won't run (skipped).

If the test are run, the first execution will be long (typically a bit
more than a couple of minutes) but as the dataset loader is leveraging
joblib, successive runs will be fast (less than 200ms).
é    N)Úpartial)Úfetch_lfw_pairsÚfetch_lfw_people)Úcheck_return_X_y)Úassert_array_equal)ÚAbdelatif_SmithÚAbhati_KeplerÚCamara_AlvaroÚChen_DupontÚJohn_LeeÚ
Lin_BaumanÚ
Onur_LopezÚmodule)Úscopec              #   ó<   K  — |                       d¦  «        }|V — d S )NÚscikit_learn_empty_test)Úmktemp)Útmp_path_factoryÚdata_dirs     ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/datasets/tests/test_lfw.pyÚmock_empty_data_homer       s'   è è € à×&Ò&Ð'@ÑAÔA€Hà
€N€N€N€N€Nó    c           	   #   óJ  K  — t          j        d¦  «        }|                      d¦  «        }|dz  }|                     dd¬¦  «         t	          j        d¦  «        }t          j                             d¦  «        }i }t          D ]¸}|dz  |z  }|                     dd¬¦  «         | 	                    dd	¦  «        }	|	||<   t          |	¦  «        D ]l}
||d
|
z  z   z  }| 	                    ddd¬¦  «        }|                     |                     t          j        ¦  «        ¦  «        }|                     |¦  «         ŒmŒ¹|dz  dz                       d¦  «         t!          |dz  d¦  «        5 }|                     d¦  «         d„ |                     ¦   «         D ¦   «         }t          d	¦  «        D ]p}
|                     |¦  «        }|                     t          ||         ¦  «        d¦  «        \  }}|                     d|||fz                       ¦   «         ¦  «         Œqt          d	¦  «        D ]¨}
|                     t          d¦  «        \  }}|                     t          j        ||         ¦  «        ¦  «        }|                     t          j        ||         ¦  «        ¦  «        }|                     d||||fz                       ¦   «         ¦  «         Œ©	 ddd¦  «         n# 1 swxY w Y   |dz                       d¦  «         |dz                       d¦  «         |V — dS )z<Test fixture run once and common to all tests of this modulez	PIL.ImageÚscikit_learn_lfw_testÚlfw_homeT)ÚparentsÚexist_oké*   Úlfw_funneledé   é   z	_%04d.jpgr   éÿ   )éú   r#   é   )Úsizez	.test.swps.   Text file to be ignored by the dataset loader.zpairsDevTrain.txtÚwbs   10
c                 ó$   — g | ]\  }}|d k    ¯|‘ŒS )é   © )Ú.0ÚnameÚcounts      r   ú
<listcomp>z"mock_data_home.<locals>.<listcomp>I   s!   € ÐNÐNÐN¡+ $¨À5ÈAÂ:À:˜À:À:À:r   r(   z	%s	%d	%d
z%s	%d	%s	%d
NzpairsDevTest.txts&   Fake place holder that won't be testedz	pairs.txt)ÚpytestÚimportorskipr   ÚmkdirÚrandomÚRandomÚnpÚRandomStateÚ
FAKE_NAMESÚrandintÚrangeÚ	fromarrayÚastypeÚuint8ÚsaveÚwrite_bytesÚopenÚwriteÚitemsÚchoiceÚsampleÚencodeÚarange)r   ÚImager   r   Úrandom_stateÚnp_rngÚcountsr+   Úfolder_nameÚn_facesÚiÚ	file_pathÚunifaceÚimgÚfÚmore_than_twoÚfirstÚsecondÚ
first_nameÚsecond_nameÚfirst_indexÚsecond_indexs                         r   Úmock_data_homerV   '   su  è è € õ Ô Ñ,Ô,€Eà×&Ò&Ð'>Ñ?Ô?€HØ˜*Ñ$€HØ‡N‚N˜4¨$€NÑ/Ô/Ð/å”= Ñ$Ô$€LÝŒY×"Ò" 2Ñ&Ô&€Fð €FÝð 
 ð 
 ˆØ Ñ/°$Ñ6ˆØ×Ò $°ÐÑ6Ô6Ð6à—.’.  AÑ&Ô&ˆØˆˆt‰Ý�w‘”ð 	 ð 	 ˆAØ# t¨k¸A©oÑ'=Ñ>ˆIØ—n’n Q¨°-�nÑ@Ô@ˆGØ—/’/ '§.¢.µ´Ñ":Ô":Ñ;Ô;ˆCØ�HŠH�YÑÔÐÐð		 ð �Ñ Ñ,×9Ò9Ø9ñô ð õ
 
ˆhÐ,Ñ,¨dÑ	3Ô	3ð °qØ	�Š�ÑÔÐØNÐN°·²±´ÐNÑNÔNˆÝ�q‘”ð 	Gð 	GˆAØ×&Ò& }Ñ5Ô5ˆDØ(×/Ò/µ°f¸T´lÑ0CÔ0CÀQÑGÔG‰MˆE�6Ø�GŠG�^ t¨U°FÐ&;Ñ;×CÒCÑEÔEÑFÔFÐFÐFå�q‘”ð 		ð 		ˆAØ&2×&9Ò&9½*ÀaÑ&HÔ&HÑ#ˆJ˜Ø Ÿ-š-­¬	°&¸Ô2DÑ(EÔ(EÑFÔFˆKØ!Ÿ=š=­¬°6¸+Ô3FÑ)GÔ)GÑHÔHˆLØ�GŠGà&Ø! ;°¸\ÐJñKç’&‘(”(ñ	ô ð ð ð			ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð& Ð"Ñ"×/Ò/Ø1ñô ð ð �Ñ×(Ò(Ð)RÑSÔSÐSà
€N€N€N€N€Ns   Å+E,K$Ë$K(Ë+K(c                 óŒ   — t          j        t          ¦  «        5  t          | d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©NF©Ú	data_homeÚdownload_if_missing)r.   ÚraisesÚOSErrorr   ©r   s    r   Útest_load_empty_lfw_peopler_   b   sž   € Ý	Œ•wÑ	Ô	ð Tð TÝÐ#7ÈUÐSÑSÔSÐSðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Tó   š9¹=Á =c                 ó  — t          | dd¬¦  «        }|j        j        dk    sJ ‚|j        j        dk    sJ ‚t	          |j        g d¢¦  «         g d¢}t	          |j        |¦  «         t          | d d dd¬	¦  «        }|j        j        d
k    sJ ‚|j                             d¦  «        sJ ‚t	          |j        g d¢¦  «         t	          |j        g d¢¦  «         t          t           | d d dd¬	¦  «        }t          ||¦  «         d S )Nr$   F©rZ   Úmin_faces_per_personr[   )é
   é>   é/   )rd   ib  )
r(   r   r    r   r(   r   r(   r    r    r(   )úAbdelatif SmithúAbhati Keplerú
Onur LopezT©rZ   ÚresizeÚslice_Úcolorr[   )é   r#   r#   r$   ú&.. _labeled_faces_in_the_wild_dataset:)r   r   r    é   r!   rp   r$   rp   r   r$   rp   r    r(   é   r!   r    r(   )rg   rh   zCamara AlvarozChen DupontzJohn Leez
Lin Baumanri   )r   ÚimagesÚshapeÚdatar   ÚtargetÚtarget_namesÚDESCRÚ
startswithr   r   )rV   Ú
lfw_peopleÚexpected_classesÚ
fetch_funcs       r   Útest_load_fake_lfw_peopler|   g   st  € Ý!Ø °qÈeðñ ô €Jð ÔÔ" lÒ2Ð2Ð2Ð2ØŒ?Ô  JÒ.Ð.Ð.Ð.õ �zÔ(Ð*HÐ*HÐ*HÑIÔIÐIð JÐIÐIÐÝ�zÔ.Ð0@ÑAÔAÐAõ "Ø ØØØØ!ðñ ô €Jð ÔÔ"Ð&7Ò7Ð7Ð7Ð7ØÔ×&Ò&Ð'OÑPÔPÐPÐPÐPõ ØÔÐNÐNÐNñô ð õ ØÔð	
ð 	
ð 	
ñô ð õ ÝØ ØØØØ!ðñ ô €Jõ �Z Ñ,Ô,Ð,Ð,Ð,r   c                 óŽ   — t          j        t          ¦  «        5  t          | dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Néd   Frb   )r.   r\   Ú
ValueErrorr   )rV   s    r   Ú)test_load_fake_lfw_people_too_restrictiver€   ¡   s–   € Ý	Œ•zÑ	"Ô	"ð 
ð 
ÝØ$Ø!$Ø %ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   š:º>Á>c                 óŒ   — t          j        t          ¦  «        5  t          | d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rX   )r.   r\   r]   r   r^   s    r   Útest_load_empty_lfw_pairsr‚   ª   sž   € Ý	Œ•wÑ	Ô	ð Sð SÝÐ"6ÈEÐRÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð Sð Sr`   c                 óˆ  — t          | d¬¦  «        }|j        j        dk    sJ ‚t          |j        g d¢¦  «         ddg}t          |j        |¦  «         t          | d d dd¬¦  «        }|j        j        d	k    sJ ‚t          |j        g d¢¦  «         t          |j        |¦  «         |j                             d
¦  «        sJ ‚d S )NFrY   )rd   r(   re   rf   )
r    r    r    r    r    r   r   r   r   r   zDifferent personszSame personTrj   )rd   r(   r#   r#   r$   ro   )r   Úpairsrs   r   ru   rv   rw   rx   )rV   Úlfw_pairs_trainrz   s      r   Útest_load_fake_lfw_pairsr†   ¯   s  € Ý%Ø °eðñ ô €Oð Ô Ô&¨/Ò9Ð9Ð9Ð9õ �Ô-Ð/MÐ/MÐ/MÑNÔNÐNð ,¨]Ð;ÐÝ�Ô3Ð5EÑFÔFÐFõ &Ø ØØØØ!ðñ ô €Oð Ô Ô&Ð*>Ò>Ð>Ð>Ð>õ �Ô-Ð/MÐ/MÐ/MÑNÔNÐNÝ�Ô3Ð5EÑFÔFÐFàÔ ×+Ò+Ð,TÑUÔUÐUÐUÐUÐUÐUr   c                 ó  — t          dd¦  «        t          dd¦  «        f}t          | ddd|¬¦  «        }|j        d	         j        |d	         j        |d	         j        z
  |d
         j        |d
         j        z
  fk    sJ ‚dS )zˆCheck that we properly crop the images.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24942
    éF   éÃ   éN   é¬   r$   FN)rZ   rc   r[   rk   rl   r   r    )Úslicer   rr   rs   ÚstopÚstart)rV   rl   Úlfws      r   Ú'test_fetch_lfw_people_internal_croppingr�   Ñ   sš   € õ �B˜‰nŒn�e B¨™nœnÐ-€FÝ
Ø ØØ!ØØðñ ô €Cð Œ:�aŒ=ÔØˆqŒ	Œ˜ œœÑ(ØˆqŒ	Œ˜ œœÑ(ð#ò ð ð ð ð ð r   )Ú__doc__r1   Ú	functoolsr   Únumpyr3   r.   Úsklearn.datasetsr   r   Ú"sklearn.datasets.tests.test_commonr   Úsklearn.utils._testingr   r5   Úfixturer   rV   r_   r|   r€   r‚   r†   r�   r)   r   r   ú<module>r˜      sT  ððð ð €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð €
ð €„�hÐÑÔðð ñ  Ôðð €„�hÐÑÔð7ð 7ñ  Ôð7ðtTð Tð Tð
7-ð 7-ð 7-ðt
ð 
ð 
ðSð Sð Sð
Vð Vð VðDð ð ð ð r   