Ë
    êÿæií  ã                   ó†   — d dl Zd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d„ Zd„ Zd„ Zd	„ Zd
„ Zdd„Zd„ Zd„ Zy)é    N)Úassert_array_almost_equal)Úcomb©Ú_our_rand_r_py)Ú_random_choice_cscÚsample_without_replacementc                  óz   — t        j                  t        «      5  t        ddd«       d d d «       y # 1 sw Y   y xY w)Né   é   Úunknown)ÚpytestÚraisesÚ
ValueErrorr   © ó    út/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/utils/tests/test_random.pyÚ1test_invalid_sample_without_replacement_algorithmr      s&   € Ü	�‰”zÕ	"Ü" 1 a¨Ô3÷ 
#×	"Ñ	"ús   š1±:c                  óh   ‡— d} | D ]*  Š	 dˆfd„	}t        |«       t        |«       t        |«       Œ, y )N)ÚautoÚtracking_selectionÚreservoir_samplingÚpoolc                 ó"   •— t        | |‰|¬«      S )N)ÚmethodÚrandom_state©r   )Ún_populationÚ	n_samplesr   Úms      €r   Ú!sample_without_replacement_methodzUtest_sample_without_replacement_algorithms.<locals>.sample_without_replacement_method   s   ø€ ô .Ø˜i°Àôð r   )N)Úcheck_edge_case_of_sample_intÚcheck_sample_intÚcheck_sample_int_distribution)Úmethodsr    r   s     @r   Ú*test_sample_without_replacement_algorithmsr%      s9   ø€ ØJ€Gãˆð 37õ	ô 	&Ð&GÔHÜÐ:Ô;Ü%Ð&GÕHñ r   c                 ó|  — t        j                  t        «      5   | dd«       d d d «       t        j                  t        «      5   | dd«       d d d «        | dd«      j                  dk(  sJ ‚ | dd«      j                  dk(  sJ ‚ | dd«      j                  dk(  sJ ‚ | dd«      j                  dk(  sJ ‚t        j                  t        «      5   | dd«       d d d «       t        j                  t        «      5   | dd«       d d d «       y # 1 sw Y   ŒëxY w# 1 sw Y   ŒÌxY w# 1 sw Y   ŒMxY w# 1 sw Y   y xY w)Nr   é   é   )r   )r'   r
   éÿÿÿÿ)r   r   r   Úshaper   s    r   r!   r!   $   s  € ä	�‰”zÕ	"Ù" 1 aÔ(÷ 
#ä	�‰”zÕ	"Ù" 1 aÔ(÷ 
#ñ & a¨Ó+×1Ñ1°TÒ9Ð9Ð9á% a¨Ó+×1Ñ1°TÒ9Ð9Ð9ñ & a¨Ó+×1Ñ1°TÒ9Ð9Ð9Ù% a¨Ó+×1Ñ1°TÒ9Ð9Ð9ô 
�‰”zÕ	"Ù" 2 qÔ)÷ 
#ä	�‰”zÕ	"Ù" 1 bÔ)÷ 
#Ð	"÷# 
#Ð	"úç	"Ð	"ú÷ 
#Ð	"úç	"Ð	"ús/   š
DÁ
DÃ
D&Ã;
D2ÄDÄD#Ä&D/Ä2D;c                 ó4  — d}t        |dz   «      D ]d  } | ||«      }t        |«      |k(  sJ ‚t        j                  |«      }t        j                  |«      |k(  sJ ‚t        j
                  ||k  «      rŒdJ ‚ t        j                   | dd«      «      dk(  sJ ‚y )Néd   r'   r   )ÚrangeÚlenÚnpÚuniqueÚsizeÚall)r   r   r   Úsr0   s        r   r"   r"   ;   s–   € ð
 €Lä˜<¨!Ñ+Ö,ˆ	Ù& |°YÓ?ˆÜ�1‹v˜Ò"Ð"Ð"Ü—‘˜1“ˆÜ�w‰w�v‹ )Ò+Ð+Ð+Ü�v‰v�f˜|Ñ+Õ,Ð,Ð,ð -ô �7‰7Ñ-¨a°Ó3Ó4¸Ò9Ð9Ñ9r   c           
      óê   — d}d}t        |«      D ]a  }t        ||d¬«      }i }t        |«      D ]'  }d |t         | ||«      «      <   t        |«      |k(  sŒ' ŒG t	        dt        |«      ›d|›d�«      ‚ y )Né
   é'  T)Úexactz.number of combinations != number of expected (z != Ú))r-   r   Ú	frozensetr.   ÚAssertionError)r   r   Ún_trialsr   Ú
n_expectedÚoutputÚis          r   r#   r#   M   sŠ   € ð
 €Lð €Hä˜<Ö(ˆ	ô ˜,¨	¸Ô>ˆ
àˆÜ�x–ˆAàð ”9Ñ7¸ÀiÓPÓQÑRô �6‹{˜jÓ(Ùð !õ !ä�v•;¢
ð,óð ñ )r   c                 óÞ  — t        j                  ddg«      t        j                  g d¢«      g}t        j                  ddg«      t        j                  g d¢«      g}t        | |||«      }t        j                  |«      sJ ‚t        t        |«      «      D ]X  }t        j                  |d d …|gf   j                  «       j                  «       «      t        | «      z  }t        ||   |d¬«       ŒZ ddgddgg}t        j                  ddg«      t        j                  g d¢«      g}t        | ||¬	«      }t        j                  |«      sJ ‚t        t        |«      «      D ]X  }t        j                  |d d …|gf   j                  «       j                  «       «      t        | «      z  }t        ||   |d¬«       ŒZ t        j                  ddg«      t        j                  g d¢«      g}t        j                  d
dg«      t        j                  g d¢«      g}t        | |||«      }t        j                  |«      sJ ‚t        t        |«      «      D ]]  }t        j                  |d d …|gf   j                  «       j                  «       t        ||   «      ¬«      | z  }t        ||   |d¬«       Œ_ dgdgg}t        j                  d
dg«      t        j                  dg«      g}t        | ||¬	«      }t        j                  |«      sJ ‚t        t        |«      «      D ]O  }t        j                  |d d …|gf   j                  «       j                  «       «      | z  }t        ||   |d¬«       ŒQ y )Nr   r'   ©r   r'   r(   ç      à?©ç333333ã?çš™™™™™¹?g333333Ó?)Údecimalr(   )r   rA   rA   )r   Úclassesr   ç        ç      ð?)rG   rH   rG   )Ú	minlength)r/   Úarrayr   ÚspÚissparser-   r.   ÚbincountÚtoarrayÚravelÚfloatr   )r   r   rF   Úclass_probabilitiesÚgotÚkÚps          r   Útest_random_choice_cscrU   m   sò  € ä�x‰x˜˜A˜Ó¤§¡ª)Ó!4Ð5€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐä
˜Y¨Ð1DÀlÓ
S€CÜ�;‰;�sÔÐÐä”3�w“<Ö ˆÜ�K‰K˜šA ˜s˜F™×+Ñ+Ó-×3Ñ3Ó5Ó6¼¸yÓ9IÑIˆÜ!Ð"5°aÑ"8¸!ÀQÖGð !ð
 �1ˆv˜˜1�vÐ€GÜŸ8™8 S¨# JÓ/´·±Ò:KÓ1LÐMÐä
Ø W¸<ô€Cô �;‰;�sÔÐÐä”3�w“<Ö ˆÜ�K‰K˜šA ˜s˜F™×+Ñ+Ó-×3Ñ3Ó5Ó6¼¸yÓ9IÑIˆÜ!Ð"5°aÑ"8¸!ÀQÖGð !ô
 �x‰x˜˜A˜Ó¤§¡ª)Ó!4Ð5€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐä
˜Y¨Ð1DÀlÓ
S€CÜ�;‰;�sÔÐÐä”3�w“<Ö ˆä�K‰KØ’A˜�s�F‘×#Ñ#Ó%×+Ñ+Ó-¼Ð=PÐQRÑ=SÓ9Tôð ñð 	
ô 	"Ð"5°aÑ"8¸!ÀQÖGð !ð ˆs�Q�Cˆj€GÜŸ8™8 S¨# JÓ/´·±¸3¸%³ÐAÐä
Ø W¸<ô€Cô �;‰;�sÔÐÐä”3�w“<Ö ˆÜ�K‰K˜šA ˜s˜F™×+Ñ+Ó-×3Ñ3Ó5Ó6¸ÑBˆÜ!Ð"5°aÑ"8¸!ÀQÖGñ !r   c                  óÈ  — t        j                  ddg«      t        j                  g d¢«      g} t        j                  ddg«      t        j                  g d¢«      g}t        j                  t        «      5  t        d| |d«       d d d «       t        j                  ddg«      t        j                  g d	¢«      g} t        j                  ddg«      t        j                  g d¢«      g}t        j                  t        «      5  t        d| |d«       d d d «       t        j                  d
dg«      t        j                  g d¢«      g} t        j                  ddg«      t        j                  g d¢«      g}t        j                  t        «      5  t        d| |d«       d d d «       t        j                  ddg«      t        j                  g d¢«      g} t        j                  ddg«      t        j                  g d¢«      g}t        j                  t        «      5  t        d| |d«       d d d «       y # 1 sw Y   �Œ¯xY w# 1 sw Y   �Œ0xY w# 1 sw Y   Œ°xY w# 1 sw Y   y xY w)Nr   r'   )r   r'   r(   é   rA   rB   r   ÚaÚ1)ÚzrY   Ú2gÍÌÌÌÌÌ@rD   )rD   gš™™™™™É?gÍÌÌÌÌÌ"@r@   rC   )r/   rJ   r   r   r   r   )rF   rQ   s     r   Útest_random_choice_csc_errorsr\   ¤   s³  € ä�x‰x˜˜A˜Ó¤§¡ª,Ó!7Ð8€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐÜ	�‰”zÕ	"Ü˜1˜gÐ':¸AÔ>÷ 
#ô �x‰x˜˜c˜
Ó#¤R§X¡XªoÓ%>Ð?€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐÜ	�‰”zÕ	"Ü˜1˜gÐ':¸AÔ>÷ 
#ô �x‰x˜˜c˜
Ó#¤R§X¡XªoÓ%>Ð?€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐÜ	�‰”zÕ	"Ü˜1˜gÐ':¸AÔ>÷ 
#ô �x‰x˜˜A˜Ó¤§¡ª)Ó!4Ð5€GÜŸ8™8 S¨# JÓ/´·±º/Ó1JÐKÐÜ	�‰”zÕ	"Ü˜1˜gÐ':¸AÔ>÷ 
#Ð	"÷% 
#Ñ	"ú÷ 
#Ñ	"ú÷ 
#Ð	"ú÷ 
#Ð	"ús0   Á6H2ÄH?ÆIÈIÈ2H<È?I	ÉIÉI!c                  óD   — dt        d«      k(  sJ ‚dt        d«      k(  sJ ‚y )Ni=(×i³=êKi!  r   r   r   r   r   Útest_our_rand_rr^   ¾   s(   € Øœ zÓ2Ò2Ð2Ð2Ø”^ AÓ&Ò&Ð&Ñ&r   )r6   é   )Únumpyr/   r   Úscipy.sparseÚsparserK   Únumpy.testingr   Úscipy.specialr   Úsklearn.utils._randomr   Úsklearn.utils.randomr   r   r   r%   r!   r"   r#   rU   r\   r^   r   r   r   Ú<module>rg      sF   ðÛ Û Ý Ý 3Ý å 0ß Oò4ò
Iò"*ò.:ò$ó@4Hòn?ó4'r   