§
    rŠtj÷' ã                   óÎ  — d Z ddlZddlZddlmZmZmZ 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d	lmZ dd
lmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z5 ddl3m6Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z>m?Z? ddl@mAZA ddlBmCZCmDZDmEZE ddlFmGZG  e¦   «          e%¦   «          e'¦   «          e¦   «          ed¬¦  «         e#¦   «          e&d¬¦  «         e g d¢¦  «         e!¦   «          e"¦   «         g
ZH e¦   «          ed¬¦  «         e$¦   «          e¦   «          e¦   «         gZI eJd„ eID ¦   «         ¦  «        ZKeHeIz   ZL e%¦   «          e&¦   «          e"¦   «         gZM ejN        d¦  «        ZO ejP        d¦  «        dz  ZQ ejR        g d¢¦  «         ejR        g d¢¦  «         ejR        g d ¢¦  «         ejR        g d!¢¦  «        g d¢g d"¢fZS e¦   «         ZTe	jU         V                    d#¦  «        ZWd$„ ZXd%„ ZYd&„ ZZdŸd'„Z[d(„ Z\d)„ Z]d*„ Z^d+„ Z_d,„ Z`e	jU         a                    d-d.d/g¦  «        e	jU         a                    d0g d1¢¦  «        e	jU         a                    d2e%e$g¦  «        d3„ ¦   «         ¦   «         ¦   «         Zbe	jU         a                    d-d.d/g¦  «        e	jU         a                    d0g d4¢¦  «        e	jU         a                    d2e%e$g¦  «        d5„ ¦   «         ¦   «         ¦   «         Zcd6„ Zde	jU         a                    d2e%e$g¦  «        d7„ ¦   «         Zed8„ Zfe	jU         a                    d2ee%e$g¦  «        d9„ ¦   «         Zgd:„ Zhd;„ Zid<„ Zjd=„ Zkd>„ Zle	jU         a                    d? ejR        dgd@z  dgd@z  z   ¦  «         ejR        g dA¢¦  «         ejm        ddgddgddgg¦  «        f ejR        dgdBz  dgdCz  z   ¦  «         ejR        g dD¢¦  «         ejm        dEdFgdEdFgdEdFgg¦  «        fg¦  «        dG„ ¦   «         ZndH„ Zoe	jU         a                    dIg dJ¢¦  «        e	jU         a                    dKg dL¢¦  «        dM„ ¦   «         ¦   «         ZpdN„ Zqe	jU         a                    dOe#e&g¦  «        e	jU         a                    dPg dQ¢¦  «        dR„ ¦   «         ¦   «         Zre	jU         a                    dPg dS¢¦  «        dT„ ¦   «         ZsdU„ ZtdV„ ZudW„ ZvdX„ ZwdY„ ZxdZ„ Zyd[„ Zzd\„ Z{d]„ Z|d^„ Z}d_„ Z~d`„ Zda„ Z€db„ Z�e	jU         a                    dce!e"g¦  «        dd„ ¦   «         Z‚de„ Zƒdf„ Z„dg„ Z…dh„ Z†di„ Z‡e	jU         a                    dPg dj¢¦  «        dk„ ¦   «         Zˆe	jU         a                    dl e8¦   «         ¦  «        e	jU         a                    dmdnd/ ej‰         ejN        d@¦  «         ejŠ        do¦  «        f¦  «        fdpf¦  «        dq„ ¦   «         ¦   «         Z‹e	jU         a                    dreC¦  «        ds„ ¦   «         ZŒdt„ Z�du„ ZŽe	jU         a                    dveCeDz   eEz   ¦  «        dw„ ¦   «         Z�dx„ Z�dy„ Z‘e	jU         a                    dzg d{¢¦  «        d|„ ¦   «         Z’d}„ Z“d~„ Z”d„ Z•d€„ Z–d�„ Z—e	jU         a                    d2ee$g¦  «        e	jU         a                    d-d/d.g¦  «        d‚„ ¦   «         ¦   «         Z˜dƒ„ Z™d„„ Zšd…„ Z›d†„ Zœd‡„ Z�e?dˆ„ ¦   «         Zžd‰„ ZŸe	jU         a                    dŠe#ee&f¦  «        d‹„ ¦   «         Z dŒ„ Z¡d�„ Z¢dŽ„ Z£e	jU         a                    d�ee%e$ef¦  «        d�„ ¦   «         Z¤e	jU         a                    d‘g  e¦   «         d/f‘ ed/d’¬“¦  «        d/f‘ e%¦   «         d/f‘ e%d/d’¬“¦  «        d/f‘ e$d/d’¬“¦  «        d/f‘ e$¦   «         d/f‘ e!d’¬”¦  «        d/f‘ e"d’¬”¦  «        d/f‘ e#d’¬”¦  «        d/f‘ ed’¬”¦  «        d/f‘ e&d’¬”¦  «        d/f‘ e¦   «         d/f‘ ed/d’¬“¦  «        d/f‘ e'¦   «         d/f‘ e¦   «         d/f‘ e¦   «         d/f‘ ed¬¦  «        d/f‘ ed¬¦  «        d/f‘ ed/d¬“¦  «        d.f‘ ed/d¬“¦  «        d.f‘ e%d/ej¥         ¦                    d¦  «        ¬“¦  «        d.f‘ e%d/ej¥         ¦                    d¦  «        ¬“¦  «        d.f‘ e!d¬”¦  «        d.f‘ e!ej¥         ¦                    d¦  «        ¬”¦  «        d.f‘ e"d¬”¦  «        d.f‘ e"ej¥         ¦                    d¦  «        ¬”¦  «        d.f‘ e#d¬”¦  «        d.f‘ e#ej¥         ¦                    d¦  «        ¬”¦  «        d.f‘ ed¬”¦  «        d.f‘ eej¥         ¦                    d¦  «        ¬”¦  «        d.f‘ e&d¬”¦  «        d.f‘ e&ej¥         ¦                    d¦  «        ¬”¦  «        d.f‘¦  «        d•„ ¦   «         Z§e	jU         a                    d–eLd—„ eLD ¦   «         ¬˜¦  «        d™„ ¦   «         Z¨e	jU         a                    d–eLdš„ eLD ¦   «         ¬˜¦  «        d›„ ¦   «         Z©e	jU         a                    d–eHeª¬˜¦  «        dœ„ ¦   «         Z«e	jU         a                    d–eMd�„ eMD ¦   «         ¬˜¦  «        dž„ ¦   «         Z¬dS ) zTest the split moduleé    N)ÚcombinationsÚcombinations_with_replacementÚpermutations)Ústats)Úissparse)Úcomb)Úconfig_context)Úload_digitsÚmake_classification)ÚDummyClassifier)ÚGridSearchCVÚ
GroupKFoldÚGroupShuffleSplitÚKFoldÚLeaveOneGroupOutÚLeaveOneOutÚLeavePGroupsOutÚ	LeavePOutÚPredefinedSplitÚRepeatedKFoldÚRepeatedStratifiedKFoldÚShuffleSplitÚStratifiedGroupKFoldÚStratifiedKFoldÚStratifiedShuffleSplitÚTimeSeriesSplitÚcheck_cvÚcross_val_scoreÚtrain_test_split)Ú_build_reprÚ_validate_shuffle_splitÚ_yields_constant_splits)ÚSVC)Úassert_request_is_empty©Údevice)Úget_namespaceÚmove_toÚ)yield_namespace_device_dtype_combinations)ÚMockDataFrame)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú_array_api_for_tests)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERS)Ú_num_samplesé   ©Úpç      à?©Ú	test_size©é   r;   r4   r4   r;   ©Ún_groupsc              #   ó.   K  — | ]}|j         j        V — Œd S ©N)Ú	__class__Ú__name__)Ú.0Úsplitters     úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/model_selection/tests/test_split.pyú	<genexpr>rE   U   s(   è è € ÐWÐW¸8˜8Ô-Ô6ÐWÐWÐWÐWÐWÐWó    é
   ©r;   r;   r;   r;   r4   r4   r4   é   rI   rI   rI   rI   ©r   r   r   r;   r;   r;   r4   r4   r4   rI   rI   rI   ©r   r;   r4   rI   r   r;   r4   rI   r   r;   r4   rI   r   r;   r4   ©r;   r;   r4   r4   r4   rI   rI   rI   é   rM   rM   rM   rM   rM   rM   rM   ©Ú1rO   rO   rO   Ú2rP   rP   Ú3rQ   rQ   rQ   rQ   z0error:The groups parameter:UserWarning:sklearn.*c                 ó„   — | j         j        t          v r|                      |||¬¦  «        S |                      ||¦  «        S )N©Úgroups)r@   rA   ÚGROUP_SPLITTER_NAMESÚsplit)rC   ÚXÚyrT   s       rD   Ú_splitrY   p   s@   € ØÔÔ"Õ&:Ð:Ð:Ø�~Š~˜a ¨6ˆ~Ñ2Ô2Ð2à�~Š~˜a Ñ#Ô#Ð#rF   c                  óâ  — d} d}d}d}d}t          j        ddgddgddgdd	gg¦  «        }t          j        g d
¢¦  «        }t          j        g d¢¦  «        }t          j        g d
¢¦  «        }t          ¦   «         }	t          |¦  «        }
t	          |¦  «        }t          |¦  «        }t          ¦   «         }t          |¦  «        }t          d¬¦  «        }t          g d¢¦  «        }t          |¦  «        }d}d}d}d}d}d}d}d}d}| t          | |¦  «        |||t          ||¦  «        |d|g	}t          t          |	|
|||||||g	|||||||||g	¦  «        ¦  «        D ]ú\  }\  }}||         |                     |||¦  «        k    sJ ‚t           j                             t#          t%          ||||¦  «        ¦  «        t#          t%          ||||¦  «        ¦  «        ¦  «         t%          ||||¦  «        D ]M\  }} t          j        |¦  «        j        j        dk    sJ ‚t          j        | ¦  «        j        j        dk    sJ ‚ŒN|t-          |¦  «        k    sJ ‚Œûd}!t/          j        t2          |!¬¦  «        5  |	                     d ||¦  «         d d d ¦  «         n# 1 swxY w Y   t/          j        t2          |!¬¦  «        5  |
                     d ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrM   r4   rG   r;   rI   é   é   é   é   )r;   r4   rI   rM   r:   r   ©Úrandom_statezLeaveOneOut()zLeavePOut(p=2)z3KFold(n_splits=2, random_state=None, shuffle=False)z=StratifiedKFold(n_splits=2, random_state=None, shuffle=False)úLeaveOneGroupOut()úLeavePGroupsOut(n_groups=2)zJShuffleSplit(n_splits=10, random_state=0, test_size=None, train_size=None)z.PredefinedSplit(test_fold=array([1, 1, 2, 2]))zBStratifiedGroupKFold(n_splits=2, random_state=None, shuffle=False)Úiz%The 'X' parameter should not be None.©Úmatch)ÚnpÚarrayr   r   r   r   r   r   r   r   r   r   Ú	enumerateÚzipÚget_n_splitsÚtestingÚassert_equalÚlistrY   ÚasarrayÚdtypeÚkindÚreprÚpytestÚraisesÚ
ValueError)"Ú	n_samplesÚn_unique_groupsÚn_splitsr6   Ún_shuffle_splitsrW   ÚX_1drX   rT   ÚlooÚlpoÚkfÚskfÚloloÚlopoÚssÚpsÚsgkfÚloo_reprÚlpo_reprÚkf_reprÚskf_reprÚ	lolo_reprÚ	lopo_reprÚss_reprÚps_reprÚ	sgkf_reprÚn_splits_expectedrc   ÚcvÚcv_reprÚtrainÚtestÚmsgs"                                     rD   Ú(test_cross_validator_with_default_paramsr’   w   sÔ  € Ø€IØ€OØ€HØ	€AØÐå
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝŒ8�L�L�LÑ!Ô!€DÝ
Œ���ÑÔ€AÝŒX�l�l�lÑ#Ô#€FÝ
‰-Œ-€CÝ
�A‰,Œ,€CÝ	ˆx‰Œ€BÝ
˜(Ñ
#Ô
#€CÝÑÔ€DÝ˜1ÑÔ€DÝ	 1Ð	%Ñ	%Ô	%€BÝ	˜˜˜Ñ	&Ô	&€BÝ Ñ)Ô)€Dà€HØ€HØC€GØN€HØ$€IØ-€IàTð ð ?€GØT€Ið 	ÝˆY˜ÑÔØØØÝˆ_˜aÑ Ô ØØ	Øð
Ðõ &ÝØ�#�r˜3  d¨B°°DÐ9àØØØØØØØØð
ñ	
ô 	
ñô ð #ð #Ñˆ‰=ˆB�ð" ! Ô# r§¢°q¸!¸VÑ'DÔ'DÒDÐDÐDÐDõ 	Œ
×ÒÝ•˜˜A˜q &Ñ)Ô)Ñ*Ô*­Dµ¸¸DÀ!ÀVÑ1LÔ1LÑ,MÔ,Mñ	
ô 	
ð 	
õ " " a¨¨FÑ3Ô3ð 	6ð 	6‰KˆE�4Ý”:˜eÑ$Ô$Ô*Ô/°3Ò6Ð6Ð6Ð6Ý”:˜dÑ#Ô#Ô)Ô.°#Ò5Ð5Ð5Ð5Ð5ð �$˜r™(œ(Ò"Ð"Ð"Ð"Ð"ð 2€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð *ð *Ø×Ò˜˜q &Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *å	Œ•z¨Ð	-Ñ	-Ô	-ð *ð *Ø×Ò˜˜q &Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s$   É5JÊJÊ JÊ?K$Ë$K(Ë+K(c                  ó0  — d} t           j                             d¦  «        }|                     dd| df¬¦  «        }|                     dd| f¬¦  «        }|                     dd¦  «        }|                     dd| df¬¦  «        }|                     dd| f¬¦  «        }t          ¦   «         t          d¬¦  «        t          ¦   «         t          ¦   «         t          ¦   «         t          ¦   «         t          d¬	¦  «        t          ¦   «         t          d
¬¦  «        t          ¦   «         t          ¦   «         t!          d¬¦  «        t#          d¬	¦  «        t%          ¦   «         t'          |¬¦  «        g}|D ]¤}t)          t+          ||||¬¦  «        ¦  «         t)          t+          ||||¬¦  «        ¦  «         	 t)          t+          ||||¬¦  «        ¦  «         Œd# t,          $ r4}	d}
d                     |
¦  «        }|t1          |	¦  «        v sJ ‚Y d }	~	Œ�d }	~	ww xY wd S )Né   r;   r   rI   r4   ©Úsizeéÿÿÿÿr5   ©rw   r7   r8   r<   )Ú	test_foldrS   )ÚbinaryÚ
multiclassz/Supported target types are: {}. Got 'multilabel)rf   ÚrandomÚRandomStateÚrandintÚreshaper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm   rY   rt   ÚformatÚstr)ru   ÚrngrW   rX   Úy_2dÚy_multilabelrT   Ú	splittersrC   ÚeÚallowed_target_typesr‘   s               rD   Ú	test_2d_yr¨   Ì   s  € à€IÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�A�q 	¨1˜~ˆÑ.Ô.€AØ�Š�A�q 	˜|ˆÑ,Ô,€AØ�9Š9�R˜ÑÔ€DØ—;’;˜q !¨9°a¨.�;Ñ9Ô9€LØ�[Š[˜˜A Y Lˆ[Ñ1Ô1€Få‰ŒÝ�Aˆ‰ŒÝ‰ŒÝÑÔÝ‰ŒÝÑ!Ô!Ý aÐ(Ñ(Ô(Ý‰ŒÝ¨Ð-Ñ-Ô-ÝÑÔÝÑÔÝ Ð#Ñ#Ô#Ý˜AÐÑÔÝÑÔÝ &Ð)Ñ)Ô)ð€Ið" ð 
!ð 
!ˆÝ�V�H˜a ¨6Ð2Ñ2Ô2Ñ3Ô3Ð3Ý�V�H˜a ¨fÐ5Ñ5Ô5Ñ6Ô6Ð6ð	!Ý•˜ ! \¸&ÐAÑAÔAÑBÔBÐBÐBøÝð 	!ð 	!ð 	!Ø#;Ð ØC×JÒJØ$ñô ˆCð �#˜a™&œ&�=�=�=�=�=�=�=�=�=øøøøð	!øøøð
!ð 
!s   Æ4 GÇ
HÇ*HÈHc                 ó  — t          | ¦  «        t          |¦  «        }} |                      |¦  «        t          ¦   «         k    sJ ‚|�5|                      |¦  «        t          t          |¦  «        ¦  «        k    sJ ‚d S d S r?   )ÚsetÚintersectionÚunionÚrange)r�   r�   ru   s      rD   Úcheck_valid_splitr®   ó   s}   € å�e‘*”*�c $™iœiˆ4€Eð ×Ò˜dÑ#Ô#¥s¡u¤uÒ,Ð,Ð,Ð,àÐà�{Š{˜4Ñ Ô ¥C­¨iÑ(8Ô(8Ñ$9Ô$9Ò9Ð9Ð9Ð9ð Ðà9Ð9rF   c                 ól  — t          |¦  «        }|                      |||¦  «        |k    sJ ‚t          ¦   «         }d}|                      |||¦  «        D ]1\  }}	t	          ||	|¬¦  «         |dz  }|                     |	¦  «         Œ2||k    sJ ‚|�"|t          t          |¦  «        ¦  «        k    sJ ‚d S d S )Nr   )ru   r;   )r3   rj   rª   rV   r®   Úupdater­   )
r�   rW   rX   rT   Úexpected_n_splitsru   Úcollected_test_samplesÚ
iterationsr�   r�   s
             rD   Úcheck_cv_coverager´   ÿ   sß   € Ý˜Q‘”€Ià�?Š?˜1˜a Ñ(Ô(Ð,=Ò=Ð=Ð=Ð=å ™UœUÐØ€JØ—x’x  1 fÑ-Ô-ð ,ð ,‰ˆˆtÝ˜% °Ð;Ñ;Ô;Ð;Ø�a‰ˆ
Ø×%Ò% dÑ+Ô+Ð+Ð+ð Ð*Ò*Ð*Ð*Ð*ØÐØ%­­U°9Ñ-=Ô-=Ñ)>Ô)>Ò>Ð>Ð>Ð>ð ÐØ>Ð>rF   c                  óJ  — t          j        ddgddgddgg¦  «        } t          j        ddgddgddgddgd	d
gg¦  «        }t          t          t	          d¦  «                             | ¦  «        f t          j        g d¢¦  «        }t          d¦  «        }t          j        t          d¬¦  «        5  t          |                     ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «        }t          j        t          |¦  «        ¦  «        }t          j        t          d¬¦  «        5  t          |                     |||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        d¦  «         t!          |||d d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        d¦  «         t!          ||||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          j        t          ¦  «        5  t          |                     ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          |                     ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          d¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t$          ¦  «        5  t	          dd ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   r4   rI   rM   r[   r\   r]   r^   é	   rG   )rI   rI   r—   r—   rI   zThe least populated classrd   Úignore©rT   r±   )rI   rI   r—   r—   r4   r   z>k-fold cross-validation requires at least one train/test splitç      ø?ç       @©rw   Úshuffle)rf   rg   rt   Únextr   rV   r   rr   ÚwarnsÚWarningr   ÚarangeÚlenÚwarningsÚcatch_warningsÚsimplefilterr´   rs   Ú	TypeError)ÚX1ÚX2rX   Úskf_3Úsgkf_3Únaive_groupsÚerror_strings          rD   Útest_kfold_valueerrorsrÌ     s%
  € Ý	Œ�A�q�6˜A˜q˜6 A q 6Ð*Ñ	+Ô	+€BÝ	Œ�A�q�6˜A˜q˜6 A q 6¨A¨q¨6°A°r°7Ð;Ñ	<Ô	<€Bå••u˜Q‘x”x—~’~ bÑ)Ô)Ð*Ð*õ 	ŒÐ"Ð"Ð"Ñ#Ô#€Aå˜AÑÔ€EÝ	Œ•gÐ%@Ð	AÑ	AÔ	Að !ð !ÝˆU�[Š[˜˜QÑÔÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ " !Ñ$Ô$€FÝ”9�S ™VœVÑ$Ô$€LÝ	Œ•gÐ%@Ð	AÑ	AÔ	Að 0ð 0ÝˆV�\Š\˜"˜a Ñ.Ô.Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ 
Ô	 Ñ	"Ô	"ð Jð JÝÔ˜hÑ'Ô'Ð'Ý˜%  Q¨tÀqÐIÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jõ 
Ô	 Ñ	"Ô	"ð Sð SÝÔ˜hÑ'Ô'Ð'Ý˜& " a°ÐPQÐRÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sõ 	ŒÐ"Ð"Ð"Ñ#Ô#€Aå	Œ•zÑ	"Ô	"ð !ð !ÝˆU�[Š[˜˜QÑÔÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !å	Œ•zÑ	"Ô	"ð "ð "ÝˆV�\Š\˜"˜aÑ Ô Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
Œ•zÑ	"Ô	"ð ð Ýˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð ð Ýˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àS€LÝ	Œ•z¨Ð	6Ñ	6Ô	6ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•z¨Ð	6Ñ	6Ô	6ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•z¨Ð	6Ñ	6Ô	6ð  ð  Ý˜QÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  å	Œ•z¨Ð	6Ñ	6Ô	6ð  ð  Ý˜QÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
Œ•zÑ	"Ô	"ð ð Ýˆc‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð ð Ýˆc‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð "ð "Ý˜SÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "å	Œ•zÑ	"Ô	"ð "ð "Ý˜SÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
Œ•yÑ	!Ô	!ð (ð (Ý�q $Ð'Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (sV  Â0$C Ã C$Ã'C$Ä6%E'Å'E+Å.E+Æ)F:Æ:F>ÇF>Ç)HÈHÈHÉ$I7É7I;É>I;Ê$KËKËKË/LÌLÌLÌ/MÍMÍMÍ3NÎNÎNÎ5OÏOÏOÏ7PÐPÐPÐ9QÑQÑQÑ9RÒRÒRÒ9SÓSÓSÓ9TÔTÔTÔ9UÕUÕUÕ9VÖVÖVÖ9W×W×W×9XØXØXc                  ó2  — t          j        d¦  «        } t          d¦  «        }t          || d d d¬¦  «         t          j        d¦  «        }t          d¦  «        }t          ||d d d¬¦  «         dt          d¦  «                             |¦  «        k    sJ ‚d S )Né   rI   )rX   rT   r±   é   r[   )rf   Úonesr   r´   rj   )rÆ   r|   rÇ   s      rD   Útest_kfold_indicesrÑ   Z  s“   € å	Œ�‰Œ€BÝ	ˆq‰Œ€BÝ�b˜" ¨TÀQÐGÑGÔGÐGõ 
Œ�‰Œ€BÝ	ˆq‰Œ€BÝ�b˜" ¨TÀQÐGÑGÔGÐGð •�a‘”×%Ò% bÑ)Ô)Ò)Ð)Ð)Ð)Ð)Ð)rF   c                  óp  — ddgddgddgddgd	d
gg} t          d¦  «                             | d d…         ¦  «        }t          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          d¦  «                             | ¦  «        }t          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t          |¦  «        \  }}t          |ddg¦  «         t          |g d¢¦  «         d S )Nr;   r4   rI   rM   r[   r\   r]   r^   r¶   rG   r—   r   ©r   r;   r4   )r   rV   r½   r-   )rÇ   Úsplitsr�   r�   s       rD   Útest_kfold_no_shufflerÕ   j  s>  € àˆaˆ&�1�a�&˜1˜a˜& 1 a &¨1¨b¨'Ð	2€Bå�1‰XŒX�^Š^˜B˜s ˜sœGÑ$Ô$€FÝ�v‘,”,�K€Eˆ4Ý�t˜a ˜VÑ$Ô$Ð$Ý�u˜q !˜fÑ%Ô%Ð%å�v‘,”,�K€Eˆ4Ý�t˜a ˜VÑ$Ô$Ð$Ý�u˜q !˜fÑ%Ô%Ð%å�1‰XŒX�^Š^˜BÑÔ€FÝ�v‘,”,�K€Eˆ4Ý�t˜Y˜Y˜YÑ'Ô'Ð'Ý�u˜q !˜fÑ%Ô%Ð%å�v‘,”,�K€Eˆ4Ý�t˜a ˜VÑ$Ô$Ð$Ý�u˜i˜i˜iÑ(Ô(Ð(Ð(Ð(rF   c            	      óL  — t          j        d¦  «        g d¢}} t          d¦  «                             | |¦  «        }t	          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t	          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          j        d¦  «        g d¢}} t          d¦  «                             | |¦  «        }t	          |¦  «        \  }}t          |g d	¢¦  «         t          |g d
¢¦  «         t	          |¦  «        \  }}t          |g d
¢¦  «         t          |g d	¢¦  «         dt          d¦  «                             | |¦  «        k    sJ ‚t          j        d¦  «        } g d¢}g d¢}t           j                             t          t          d¦  «                             | |¦  «        ¦  «        t          t          d¦  «                             | |¦  «        ¦  «        ¦  «         g d¢}t          j
        |¦  «        } t           j                             t          t          d¦  «                             | |¦  «        ¦  «        t          t          d¦  «                             | |¦  «        ¦  «        ¦  «         d S )NrM   )r;   r;   r   r   r4   r   r;   rI   r]   )r;   r;   r;   r   r   r   r   )r   r;   rI   rM   )r4   r[   r\   r[   )rO   rO   rO   Ú0r×   r×   r×   )r   r;   r   r;   r   r;   r   r;   )rf   rÐ   r   rV   r½   r-   rj   rk   rl   rm   Ú	ones_liker   )rW   rX   rÔ   r�   r�   Úy1Úy2s          rD   Ú test_stratified_kfold_no_shufflerÛ   �  sv  € õ Œ7�1‰:Œ:�|�|�|€q€AÝ˜QÑÔ×%Ò% a¨Ñ+Ô+€FÝ�v‘,”,�K€Eˆ4Ý�t˜a ˜VÑ$Ô$Ð$Ý�u˜q !˜fÑ%Ô%Ð%å�v‘,”,�K€Eˆ4Ý�t˜a ˜VÑ$Ô$Ð$Ý�u˜q !˜fÑ%Ô%Ð%åŒ7�1‰:Œ:Ð,Ð,Ð,€q€AÝ˜QÑÔ×%Ò% a¨Ñ+Ô+€FÝ�v‘,”,�K€Eˆ4Ý�t˜\˜\˜\Ñ*Ô*Ð*Ý�u˜i˜i˜iÑ(Ô(Ð(å�v‘,”,�K€Eˆ4Ý�t˜Y˜Y˜YÑ'Ô'Ð'Ý�u˜l˜l˜lÑ+Ô+Ð+ð • Ñ"Ô"×/Ò/°°1Ñ5Ô5Ò5Ð5Ð5Ð5õ 	Œ�‰
Œ
€AØ	,Ð	,Ð	,€BØ	Ð	Ð	€BÝ„J×ÒÝ�_˜QÑÔ×%Ò% a¨Ñ,Ô,Ñ-Ô-­tµOÀAÑ4FÔ4F×4LÒ4LÈQÐPRÑ4SÔ4SÑ/TÔ/Tñô ð ð
 	!Ð Ð €AÝ
Œ�Q‰Œ€AÝ„J×ÒÝ�_˜QÑÔ×%Ò% a¨Ñ+Ô+Ñ,Ô,­dµ5¸±8´8·>²>À!ÀQÑ3GÔ3GÑ.HÔ.Hñô ð ð ð rF   r¼   FTÚk)rM   r[   r\   r]   r^   r¶   rG   Úkfoldc                 ó&  — d}t          j        |¦  «        }t          j        dgt          d|z  ¦  «        z  dgt          d|z  ¦  «        z  z   dgt          d|z  ¦  «        z  z   ¦  «        }t          j        t          |¦  «        ¦  «        }t          j        |¦  «        t          |¦  «        z  }g }|sd nd}	 || |	|¬¦  «        }
t          |
|||¬	¦  «        D ]›\  }}t          t          j        ||         ¦  «        t          |¦  «        z  |d
¬¦  «         t          t          j        ||         ¦  «        t          |¦  «        z  |d
¬¦  «         | 	                    t          |¦  «        ¦  «         Œœt          j
        |¦  «        dk    sJ ‚d S )Néè  rM   çš™™™™™¹?r   ç{®Gázì?r;   ç{®Gáz„?©r`   r¼   rS   ç{®Gáz”?©Úatol)rf   rÐ   rg   ÚintrÀ   rÁ   ÚbincountrY   r+   ÚappendÚptp)rÜ   r¼   rÝ   ru   rW   rX   rT   ÚdistrÚ
test_sizesr`   r}   r�   r�   s                rD   Útest_stratified_kfold_ratiosrí   ¬  sŽ  € ð €IÝ
Œ�	ÑÔ€AÝ
ŒØ	
ˆ�c�$˜Ñ"Ñ#Ô#Ñ#Øˆ#•�D˜9Ñ$Ñ%Ô%Ñ
%ñ	&àˆ#•�D˜9Ñ$Ñ%Ô%Ñ
%ñ	&ñ	ô 	€Aõ ŒY•s˜1‘v”vÑÔ€FÝŒK˜‰NŒN�S ™VœVÑ#€Eà€JØ&Ð-�4�4¨A€LØ
ˆ%� °gÐ
>Ñ
>Ô
>€CÝ˜c 1 a°Ð7Ñ7Ô7ð %ð %‰ˆˆtÝ�œ A e¤HÑ-Ô-µ°E±
´
Ñ:¸EÈÐMÑMÔMÐMÝ�œ A d¤GÑ,Ô,­s°4©y¬yÑ8¸%ÀdÐKÑKÔKÐKØ×Ò�#˜d™)œ)Ñ$Ô$Ð$Ð$ÝŒ6�*ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rF   )rM   r\   r]   c                 óä  ‡ ‡‡‡
‡— d}t          j        dgt          d|z  ¦  «        z  dgt          d|z  ¦  «        z  z   dgt          d|z  ¦  «        z  z   ¦  «        }t          j        t	          |¦  «        ¦  «        Š
t          j        t	          |¦  «        ¦  «        Šˆ
ˆˆ ˆˆfd„} ||¦  «        }t          g d	¢¦  «        D ]*}t          j        ||¦  «        } ||¦  «        }	|	|k    sJ ‚Œ+d S )
Néd   r4   rà   r   rá   r;   râ   c                 ób   •— ‰sd nd}d„ t           ‰‰|‰¬¦  «        ‰| ‰¬¦  «        D ¦   «         S )Nr   c                 óP   — g | ]#\  }}t          |¦  «        t          |¦  «        f‘Œ$S © )rm   )rB   r�   r�   s      rD   ú
<listcomp>zNtest_stratified_kfold_label_invariance.<locals>.get_splits.<locals>.<listcomp>Ø  s=   € ð 
ð 
ð 
á��tõ �%‰[Œ[�$˜t™*œ*Ð%ð
ð 
ð 
rF   rã   rS   )rY   )rX   r`   rW   rT   rÜ   rÝ   r¼   s     €€€€€rD   Ú
get_splitsz:test_stratified_kfold_label_invariance.<locals>.get_splitsÖ  s^   ø€ Ø#*Ð1�t�t°ˆð
ð 
å%Ø��a l¸GÐDÑDÔDØØØð	 ñ  ô  ð
ñ 
ô 
ð 	
rF   rÓ   )rf   rg   rç   rÐ   rÁ   rÀ   r   Útake)rÜ   r¼   rÝ   ru   rX   rô   Úsplits_baseÚpermÚy_permÚsplits_permrW   rT   s   ```       @@rD   Ú&test_stratified_kfold_label_invariancerú   Ç  s-  øøøøø€ ð
 €IÝ
ŒØ	
ˆ�c�$˜Ñ"Ñ#Ô#Ñ#Øˆ#•�D˜9Ñ$Ñ%Ô%Ñ
%ñ	&àˆ#•�D˜9Ñ$Ñ%Ô%Ñ
%ñ	&ñ	ô 	€Aõ
 	Œ•�A‘”‰Œ€AåŒY•s˜1‘v”vÑÔ€Fð

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð �*˜Q‘-”-€KÝ˜Y˜Y˜YÑ'Ô'ð *ð *ˆÝ”˜˜qÑ!Ô!ˆØ �j Ñ(Ô(ˆØ˜kÒ)Ð)Ð)Ð)Ð)ð*ð *rF   c                  ó@  — t          dd¦  «        D ]Œ} t          d¦  «                             t          j        | ¦  «        ¬¦  «        }d„ |D ¦   «         }t          j        |¦  «        t          j        |¦  «        z
  dk    sJ ‚t          j        |¦  «        | k    sJ ‚Œ�d S )Né   rÏ   r[   ©rW   c                 ó2   — g | ]\  }}t          |¦  «        ‘ŒS rò   ©rÁ   ©rB   Ú_r�   s      rD   ró   z&test_kfold_balance.<locals>.<listcomp>í  s"   € Ð-Ð-Ð-™w˜q $•�T‘”Ð-Ð-Ð-rF   r;   )r­   r   rV   rf   rÐ   ÚmaxÚminÚsum)rc   r|   Úsizess      rD   Útest_kfold_balancer  é  s™   € å�2�r‰]Œ]ð "ð "ˆÝ�1‰XŒX�^Š^�bœg a™jœjˆ^Ñ)Ô)ˆØ-Ð-¨"Ð-Ñ-Ô-ˆå”�u‘”¥¤ u¡¤Ñ-°!Ò3Ð3Ð3Ð3ÝŒv�e‰}Œ} Ò!Ð!Ð!Ð!Ð!ð"ð "rF   c           
      óÒ  — t          j        d¦  «        }dgdz  dgdz  z   }t          j        t          |¦  «        ¦  «        }dD ]¡} | d|¬¦  «        }t	          dd¦  «        D ]�}t          ||d |…         |d |…         |d |…         ¦  «        }d	„ |D ¦   «         }t          j        |¦  «        t          j        |¦  «        z
  dk    sJ ‚t          j        |¦  «        |k    sJ ‚Œ‚Œ¢d S )
NrÏ   r   rI   r;   é   ©TF©r¼   rü   c                 ó2   — g | ]\  }}t          |¦  «        ‘ŒS rò   rÿ   r   s      rD   ró   z0test_stratifiedkfold_balance.<locals>.<listcomp>  s"   € Ð2Ð2Ð2¡7 1 d•S˜‘Y”YÐ2Ð2Ð2rF   )	rf   rÐ   rÀ   rÁ   r­   rY   r  r  r  )	rÝ   rW   rX   rT   r¼   r�   rc   r}   r  s	            rD   Útest_stratifiedkfold_balancer  ó  s  € õ
 	Œ�‰Œ€AØ	
ˆˆa‰�1�#˜‘(Ñ€AåŒY•s˜1‘v”vÑÔ€Fà ð &ð &ˆØˆU�1˜gÐ&Ñ&Ô&ˆÝ�r˜2‘”ð 	&ð 	&ˆAÝ˜˜Q˜r ˜rœU A b q b¤E¨6°"°1°"¬:Ñ6Ô6ˆCØ2Ð2¨cÐ2Ñ2Ô2ˆEå”F˜5‘M”M¥B¤F¨5¡M¤MÑ1°aÒ7Ð7Ð7Ð7Ý”6˜%‘=”= AÒ%Ð%Ð%Ð%Ð%ð	&ð&ð &rF   c                  ó@  — t          d¦  «        } t          ddd¬¦  «        }t          ddd¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }t	          |                      |¦  «        |                     |¦  «        |                     |¦  «        ¦  «        D ]b\  \  }}\  }}\  }	}
t          |||	fd¦  «        D ]:\  }}t          t          j        ||¦  «        ¦  «        t          |¦  «        k    sJ ‚Œ;d||<   Œct          |¦  «        dk    sJ ‚d S )NrI   Tr   ©r¼   r`   r;   é,  r4   )
r   rf   rÐ   Úzerosri   rV   r   rÁ   Úintersect1dr  )r|   Úkf2Úkf3rW   Ú	all_foldsÚtr1Úte1Útr2Úte2Útr3Úte3Útr_aÚtr_bs                rD   Útest_shuffle_kfoldr    s  € å	ˆq‰Œ€BÝ
�˜4¨aÐ
0Ñ
0Ô
0€CÝ
�˜4¨aÐ
0Ñ
0Ô
0€Cå
Œ�‰Œ€Aå”˜‘”€IÝ.1Ø
�Š�‰Œ�S—Y’Y˜q‘\”\ 3§9¢9¨Q¡<¤<ñ/ô /ð ð Ñ*‰
ˆˆc‘J�S˜#¡
  cõ '¨¨S°# ¸Ñ:Ô:ð 	?ð 	?‰JˆD�$å•r”~ d¨DÑ1Ô1Ñ2Ô2µc¸#±h´hÒ>Ð>Ð>Ð>Ð>ð ˆ	�#‰ˆõ ˆy‰>Œ>˜SÒ Ð Ð Ð Ð Ð rF   c                 ón  — t          j        d¦  «        }dgdz  dgdz  z   }t          j        t          |¦  «        ¦  «        }t          j        d¦  «        }dgdz  dgdz  z   }t          j        t          |¦  «        ¦  «        } | ddd¬	¦  «        }t           j                             t          t          ||||¦  «        ¦  «        t          t          ||||¦  «        ¦  «        ¦  «          | ddt           j         	                    d¦  «        ¬	¦  «        }t          ||f||f||f¦  «        D ]…}t          t          |g|¢R Ž t          |g|¢R Ž ¦  «        D ]\\  \  }	}
\  }	}t          j        t          ¦  «        5  t           j                             |
|¦  «         d d d ¦  «         n# 1 swxY w Y   Œ]Œ†d S )
Né   r   r]   r;   r^   é   rI   Tr  )rf   rÐ   rÀ   rÁ   rk   rl   rm   rY   rœ   r�   ri   rr   rs   ÚAssertionErrorr-   )rÝ   rW   rX   Úgroups_1rÇ   rÚ   Úgroups_2r|   Údatar  Útest_aÚtest_bs               rD   Ú2test_shuffle_kfold_stratifiedkfold_reproducibilityr'    sú  € å
Œ�‰Œ€AØ	
ˆˆa‰�1�#˜‘'Ñ€AÝŒy�˜Q™œÑ Ô €HÝ	Œ�‰Œ€BØ
ˆˆq‰�A�3˜‘7Ñ	€BÝŒy�˜R™œÑ!Ô!€Hð 
ˆˆq˜$¨QÐ	/Ñ	/Ô	/€Bå„J×ÒÝ�V�B˜˜1˜hÑ'Ô'Ñ(Ô(­$­v°b¸!¸QÀÑ/IÔ/IÑ*JÔ*Jñô ð ð 
ˆˆq˜$­R¬Y×-BÒ-BÀ1Ñ-EÔ-EÐ	FÑ	FÔ	F€BÝ�Q˜�G˜a ˜W x°Ð&:Ñ;Ô;ð >ð >ˆå(+­F°2Ð,=¸Ð,=Ð,=Ð,=½vÀbÐ?PÈ4Ð?PÐ?PÐ?PÑ(QÔ(Qð 	>ð 	>Ñ$‰KˆQ�™˜!˜Võ
 ”�~Ñ.Ô.ð >ð >Ý”
×-Ò-¨f°fÑ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >øð	>ð>ð >s   Å;!F(Æ(F,Æ/F,c                  óÒ  — t          j        d¦  «        } dgdz  dgdz  z   }t          ddd¬¦  «        }t          ddd¬¦  «        }t          |                     | |¦  «        |                     | |¦  «        ¦  «        D ]-\  \  }}\  }}t          |¦  «        t          |¦  «        k    sJ ‚Œ.t          || |d d¬¦  «         t          j        d	¦  «        }dgdz  dgdz  z   }t          ddd¬¦  «        }t          ddd¬¦  «        }t          d
„ |                     ||¦  «        D ¦   «         ¦  «        }	t          d„ |                     ||¦  «        D ¦   «         ¦  «        }
|	|
k    sJ ‚d S )Né(   r   é   r;   r[   Tr  r¸   rG   c                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS ©r;   ©Útuple©rB   Úss     rD   ró   z0test_shuffle_stratifiedkfold.<locals>.<listcomp>P  ó"   € Ð=Ð=Ð=¨�˜a œd™œÐ=Ð=Ð=rF   c                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS r,  r-  r/  s     rD   ró   z0test_shuffle_stratifiedkfold.<locals>.<listcomp>Q  r1  rF   )	rf   rÐ   r   ri   rV   rª   r´   rÀ   Úsorted)ÚX_40rX   Úkf0Úkf1r  Útest0Útest1rW   r  Ú	test_set1Ú	test_set2s              rD   Útest_shuffle_stratifiedkfoldr;  >  s~  € õ Œ7�2‰;Œ;€DØ	
ˆˆb‰�A�3˜‘8Ñ€AÝ
˜! T¸Ð
:Ñ
:Ô
:€CÝ
˜! T¸Ð
:Ñ
:Ô
:€CÝ"% c§i¢i°°aÑ&8Ô&8¸#¿)º)ÀDÈ!Ñ:LÔ:LÑ"MÔ"Mð (ð (Ñ‰
ˆˆE‘J�Q˜Ý�5‰zŒz�S ™ZœZÒ'Ð'Ð'Ð'Ð'Ý�c˜4 ¨4À1ÐEÑEÔEÐEõ
 	Œ	�"‰Œ€AØ	
ˆˆa‰�1�#˜‘'Ñ€AÝ
˜! T¸Ð
:Ñ
:Ô
:€CÝ
˜! T¸Ð
:Ñ
:Ô
:€CÝÐ=Ð=¨S¯YªY°q¸!©_¬_Ð=Ñ=Ô=Ñ>Ô>€IÝÐ=Ð=¨S¯YªY°q¸!©_¬_Ð=Ñ=Ô=Ñ>Ô>€IØ˜	Ò!Ð!Ð!Ð!Ð!Ð!rF   c                  óè  ‡— t          j        d¦  «        } dgdz  dgdz  z   }t          j        d¦  «        dz  Št          ddd¬¦  «        }t          ddd¬¦  «        }ˆfd	„|                     | d ‰¦  «        D ¦   «         }ˆfd
„|                     | d ‰¦  «        D ¦   «         }t          ||¦  «        D ]\  }}||k    s
J d¦   «         ‚Œt          || |‰d¬¦  «         t          || |‰d¬¦  «         d S )Nr)  r   r*  r;   rI   rM   Tr  c                 ó@   •— g | ]\  }}t          ‰|         ¦  «        ‘ŒS rò   ©rª   ©rB   r  Útest_idxrT   s      €rD   ró   z+test_shuffle_groupkfold.<locals>.<listcomp>_  ó7   ø€ ð ð ð Ù"- ! X�ˆF�8ÔÑÔðð ð rF   c                 ó@   •— g | ]\  }}t          ‰|         ¦  «        ‘ŒS rò   r>  r?  s      €rD   ró   z+test_shuffle_groupkfold.<locals>.<listcomp>b  rA  rF   z6Test groups should differ with different random states)r±   )rf   rÐ   rÀ   r   rV   ri   r´   )	rW   rX   Úgkf0Úgkf1Útest_groups0Útest_groups1Úg0Úg1rT   s	           @rD   Útest_shuffle_groupkfoldrI  U  sC  ø€ õ 	Œ�‰Œ€AØ	
ˆˆb‰�A�3˜‘8Ñ€AÝŒY�r‰]Œ]˜aÑ€FÝ�a °AÐ6Ñ6Ô6€DÝ�a °AÐ6Ñ6Ô6€Dðð ð ð Ø15·²¸A¸tÀVÑ1LÔ1Lðñ ô €Lðð ð ð Ø15·²¸A¸tÀVÑ1LÔ1Lðñ ô €Lõ �l LÑ1Ô1ð Rð R‰ˆˆBØ�RŠxˆxˆxÐQ‰xŒxˆxˆxõ �d˜A˜q &¸AÐ>Ñ>Ô>Ð>Ý�d˜A˜q &¸AÐ>Ñ>Ô>Ð>Ð>Ð>rF   c                  óŒ  — t           j        d d…         t           j        d d…         }} t          dd¬¦  «        }d}t	          |d¬¦  «        }t          || ||¬¦  «                             ¦   «         }d	|k    sJ ‚|d
k    sJ ‚t	          |dd¬¦  «        }t          || ||¬¦  «                             ¦   «         }|d	k    sJ ‚t	          |dd¬¦  «        }t          || ||¬¦  «                             ¦   «         }|d	k    sJ ‚t          |¦  «        }t          || ||¬¦  «                             ¦   «         }d|k    sJ ‚|d
k    sJ ‚d S )NiX  rG   g{®Gázt?)ÚCÚgammarI   Fr»   ©r�   gq=
×£pí?çš™™™™™é?Tr   r  r;   g®Gázî?)Údigitsr$  Útargetr#   r   r   Úmeanr   )rW   rX   Úmodelrw   r�   Ú
mean_scores         rD   Ú1test_kfold_can_detect_dependent_samples_on_digitsrT  m  sy  € õ Œ;�t˜�tÔ�fœm¨D¨S¨DÔ1€q€AÝ�"˜EÐ"Ñ"Ô"€Eà€Hå	˜¨%Ð	0Ñ	0Ô	0€BÝ  ¨¨1°Ð4Ñ4Ô4×9Ò9Ñ;Ô;€JØ�*ÒÐÐÐØ˜ÒÐÐÐõ 
ˆx °AÐ	6Ñ	6Ô	6€BÝ  ¨¨1°Ð4Ñ4Ô4×9Ò9Ñ;Ô;€JØ˜ÒÐÐÐå	ˆx °AÐ	6Ñ	6Ô	6€BÝ  ¨¨1°Ð4Ñ4Ô4×9Ò9Ñ;Ô;€JØ˜ÒÐÐÐõ 
˜Ñ	"Ô	"€BÝ  ¨¨1°Ð4Ñ4Ô4×9Ò9Ñ;Ô;€JØ�*ÒÐÐÐØ˜ÒÐÐÐÐÐrF   c                  ó  — t          d¬¦  «        } t          j        dgdz  dgdz  z   ¦  «        }t          j        |¦  «                             dd¦  «        }t          j        d¦  «        }t          j        |¦  «        t          |¦  «        z  }g }|                      |||¦  «        D ]Ç\  }}t          j	        ||         ||         ¦  «        j
        dk    sJ ‚t          t          j        ||         ¦  «        t          |¦  «        z  |d	¬
¦  «         t          t          j        ||         ¦  «        t          |¦  «        z  |d	¬
¦  «         |                     t          |¦  «        ¦  «         ŒÈt          j        |¦  «        dk    sJ ‚d S )NrI   r˜   r;   r\   r   é   r—   )r;   r4   rI   rM   r[   r\   r;   r;   r4   r4   rI   rI   rM   rM   r[   r[   r\   r\   rä   rå   )r   rf   rg   rØ   rŸ   rn   rè   rÁ   rV   r  r–   r+   ré   rê   )r‚   rX   rW   rT   rë   rì   r�   r�   s           rD   Ú#test_stratified_group_kfold_trivialrW  ™  sa  € Ý¨Ð+Ñ+Ô+€Då
Œ�!��q‘˜A˜3 ™8Ñ#Ñ$Ô$€AÝ
Œ�Q‰Œ×Ò  AÑ&Ô&€AÝŒZÐNÑOÔO€FÝŒK˜‰NŒN�S ™VœVÑ#€EØ€JØ—z’z ! Q¨Ñ/Ô/ð %ð %‰ˆˆtåŒ~˜f Uœm¨V°D¬\Ñ:Ô:Ô?À1ÒDÐDÐDÐDå�œ A e¤HÑ-Ô-µ°E±
´
Ñ:¸EÈÐMÑMÔMÐMÝ�œ A d¤GÑ,Ô,­s°4©y¬yÑ8¸%ÀdÐKÑKÔKÐKØ×Ò�#˜d™)œ)Ñ$Ô$Ð$Ð$ÝŒ6�*ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rF   c                  óÂ  — t          d¬¦  «        } t          j        dgdz  dgdz  z   ¦  «        }t          j        |¦  «                             dd¦  «        }t          j        g d¢¦  «        }t          j        d	d
gddgddgg¦  «        }g }t          |                      |||¦  «        |¦  «        D ]’\  \  }}}t          j        ||         ||         ¦  «        j	        dk    sJ ‚t          j
        ||         ¦  «        t          |¦  «        z  }	t          |	|d¬¦  «         |                     t          |¦  «        ¦  «         Œ“t          j        |¦  «        dk    sJ ‚d S )NrI   r˜   r;   r\   r   rV  r—   )r;   r4   rI   rI   rM   rM   r;   r;   r4   r4   rI   rM   r[   r[   r[   r\   r\   r\   g-²�ï§ê?gsh‘í|?Å?gZd;ßOå?gZd;ßOÕ?r7   çü©ñÒMbP?rå   )r   rf   rg   rØ   rŸ   rn   ri   rV   r  r–   rè   rÁ   r+   ré   rê   )
r‚   rX   rW   rT   Úexpectedrì   r�   r�   Úexpect_distÚ
split_dists
             rD   Ú'test_stratified_group_kfold_approximater]  «  sY  € õ  ¨Ð+Ñ+Ô+€DÝ
Œ�!��q‘˜A˜3 ™8Ñ#Ñ$Ô$€AÝ
Œ�Q‰Œ×Ò  AÑ&Ô&€AÝŒXÐLÐLÐLÑMÔM€FÝŒz˜E 5˜>¨E°5¨>¸CÀ¸:ÐFÑGÔG€HØ€JÝ&)¨$¯*ª*°Q¸¸6Ñ*BÔ*BÀHÑ&MÔ&Mð %ð %Ñ"‰ˆ��{åŒ~˜f Uœm¨V°D¬\Ñ:Ô:Ô?À1ÒDÐDÐDÐDÝ”[  4¤Ñ)Ô)­C°©I¬IÑ5ˆ
Ý˜
 K°eÐ<Ñ<Ô<Ð<Ø×Ò�#˜d™)œ)Ñ$Ô$Ð$Ð$ÝŒ6�*ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rF   zy, groups, expectedr\   )r;   r;   r4   r4   rI   rI   rM   rM   r[   r[   r\   r\   r¶   rI   )r;   r;   r;   r4   r4   r4   rI   rI   rI   rM   r[   r\   ç      è?ç      Ð?c                 ó¢  — t          d¬¦  «        }t          j        | ¦  «                             dd¦  «        }t	          |                     || |¦  «        |¦  «        D ]p\  \  }}}t          j        ||         ||         ¦  «        j        dk    sJ ‚t          j        | |         ¦  «        t          |¦  «        z  }t          ||d¬¦  «         Œqd S )NrI   r˜   r—   r;   r   rY  rå   )r   rf   rØ   rŸ   ri   rV   r  r–   rè   rÁ   r+   )	rX   rT   rZ  r‚   rW   r�   r�   r[  r\  s	            rD   Ú.test_stratified_group_kfold_homogeneous_groupsra  ½  sË   € õ   ¨Ð+Ñ+Ô+€DÝ
Œ�Q‰Œ×Ò  AÑ&Ô&€AÝ&)¨$¯*ª*°Q¸¸6Ñ*BÔ*BÀHÑ&MÔ&Mð =ð =Ñ"‰ˆ��{åŒ~˜f Uœm¨V°D¬\Ñ:Ô:Ô?À1ÒDÐDÐDÐDÝ”[  4¤Ñ)Ô)­C°©I¬IÑ5ˆ
Ý˜
 K°eÐ<Ñ<Ô<Ð<Ð<ð	=ð =rF   c                  ó(  — t          j        dgdz  dgdz  z   ¦  «        } t          j        t          | ¦  «        df¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «        }d}t          |¦  «        D �]}t          d	d
|¬¦  «        }g }|                     || |¦  «        D ]Ç\  }}	t          j        ||         ||	         ¦  «        j	        dk    sJ ‚t          t          j        | |         ¦  «        t          |¦  «        z  |d¬¦  «         t          t          j        | |	         ¦  «        t          |	¦  «        z  |d¬¦  «         |                     t          |	¦  «        ¦  «         ŒÈt          j        |¦  «        dk    sJ ‚�Œd S )Nr   rV  r;   r\   )r;   r;   rI   rI   rI   rM   r[   r[   r[   r[   r]   r]   r4   r4   r\   r\   r^   r^   gUUUUUUå?çUUUUUUÕ?rï   rI   T©rw   r¼   r`   g:Œ0âŽyE>rå   )rf   rg   rÐ   rÁ   rn   r­   r   rV   r  r–   r+   rè   ré   rê   )
rX   rW   rT   Úexpected_class_ratiosÚn_itersÚseedr‚   rì   r�   r�   s
             rD   Ú<test_stratified_group_kfold_shuffle_preserves_stratificationrh  Ö  s¤  € õ 	Œ�!��r‘˜Q˜C !™GÑ#Ñ$Ô$€AÝ
Œ•�Q‘”˜�ÑÔ€Aõ ŒXÐLÐLÐLÑMÔM€FÝœJ¨°Ð'9Ñ:Ô:Ðð €GÝ�g‘”ð 'ñ 'ˆÝ#¨Q¸È4ÐPÑPÔPˆØˆ
ØŸ:š: a¨¨FÑ3Ô3ð 
	)ð 
	)‰KˆE�4å”> &¨¤-°¸´Ñ>Ô>ÔCÀqÒHÐHÐHÐHåÝ”˜A˜eœHÑ%Ô%­¨E©
¬
Ñ2Ð4IÐPTðñ ô ð õ Ý”˜A˜dœGÑ$Ô$¥s¨4¡y¤yÑ0Ð2GÈdðñ ô ð ð ×Ò�c $™iœiÑ(Ô(Ð(Ð(ÝŒv�jÑ!Ô! QÒ&Ð&Ð&Ð&Ñ&ð'ð 'rF   Ú	cls_distr))gš™™™™™Ù?ç333333ã?)g333333Ó?çffffffæ?)çš™™™™™É?rN  )rN  rl  r=   )r[   r”   éF   c                 ó`  — d}t          |¬¦  «        }t          |¬¦  «        }t          j                             d¦  «        }d}|                     d|| ¬¦  «        }t          j        |¦  «                             dd¦  «        }|                     ||¦  «        }	|                     |||	¬	¦  «        }
|                     |||	¬	¦  «        }d}d}t          |
|¦  «        D ]½\  \  }}\  }}t          j
        |	|         |	|         ¦  «        j        dk    sJ ‚t          j        ||         ¦  «        t          |¦  «        z  }t          j        ||         ¦  «        t          |¦  «        z  }|t          j        || ¬
¦  «        z  }|t          j        || ¬
¦  «        z  }Œ¾||z  }||z  }||k    sJ ‚d S )Nr[   r˜   r   rß   r4   )r–   r6   r—   r;   rS   )Úqk)r   r   rf   rœ   r�   ÚchoicerØ   rŸ   rV   ri   r  r–   rè   rÁ   r   Úentropy)ri  r=   rw   r‚   Úgkfr¢   Ún_pointsrX   rW   ÚgÚ
sgkf_foldsÚ	gkf_foldsÚ	sgkf_entrÚgkf_entrÚ
sgkf_trainÚ	sgkf_testr  Úgkf_testÚ
sgkf_distrÚ	gkf_distrs                       rD   Ú/test_stratified_group_kfold_against_group_kfoldr~  õ  s¬  € ð
 €HÝ¨Ð2Ñ2Ô2€DÝ
˜hÐ
'Ñ
'Ô
'€CÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ€HØ�
Š
�1˜8 yˆ
Ñ1Ô1€AÝ
Œ�Q‰Œ×Ò  AÑ&Ô&€AØ�
Š
�8˜XÑ&Ô&€AØ—’˜A˜q¨�Ñ+Ô+€JØ—	’	˜!˜Q q�	Ñ)Ô)€IØ€IØ€HÝ25°jÀ)Ñ2LÔ2Lð ;ð ;Ñ.Ñˆ�Y¡ ! XåŒ~˜a 
œm¨Q¨y¬\Ñ:Ô:Ô?À1ÒDÐDÐDÐDÝ”[  9¤Ñ.Ô.µ°Y±´Ñ?ˆ
Ý”K  (¤Ñ,Ô,­s°8©}¬}Ñ<ˆ	Ø•U”] :°)Ð<Ñ<Ô<Ñ<ˆ	Ø•E”M )°	Ð:Ñ:Ô:Ñ:ˆˆØ�Ñ€IØ�Ñ€HØ˜Ò Ð Ð Ð Ð Ð rF   c                  óö  — t          dd¬¦  «                             t          ¦  «        } t          dd¬¦  «                             t          ¦  «        }t          t          j        d¦  «        d¬¦  «                             t          ¦  «        }t          dd¬¦  «                             t          ¦  «        }t          | |||¦  «        D ]¯\  }}}}t          |d         |d         ¦  «         t          |d         |d         ¦  «         t          |d         |d         ¦  «         t          |d         |d         ¦  «         t          |d         |d         ¦  «         t          |d         |d         ¦  «         Œ°d S )Nrl  r   ©r9   r`   r4   r;   )r   rV   rW   rf   Úint32ri   r-   )Úss1Úss2Úss3Úss4Út1Út2Út3Út4s           rD   Útest_shuffle_splitrŠ    sL  € Ý
 °1Ð
5Ñ
5Ô
5×
;Ò
;½AÑ
>Ô
>€CÝ
 °Ð
3Ñ
3Ô
3×
9Ò
9½!Ñ
<Ô
<€CÝ
¥¤¨!¡¤¸1Ð
=Ñ
=Ô
=×
CÒ
CÅAÑ
FÔ
F€CÝ
 °Ð
3Ñ
3Ô
3×
9Ò
9½!Ñ
<Ô
<€CÝ˜c 3¨¨SÑ1Ô1ð )ð )‰ˆˆB��BÝ˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ý˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ý˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ý˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ý˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ý˜2˜aœ5 " Q¤%Ñ(Ô(Ð(Ð(ð)ð )rF   Úsplit_classztrain_size, exp_train, exp_test))Nr¶   r;   ©r^   r^   r4   ©rN  r^   r4   c                 ó
  — t          j        d¦  «        }t          j        d¦  «        }t           | |¬¦  «                             ||¦  «        ¦  «        \  }}t	          |¦  «        |k    sJ ‚t	          |¦  «        |k    sJ ‚d S ©NrG   ©Ú
train_size)rf   rÐ   r½   rV   rÁ   )r‹  r‘  Ú	exp_trainÚexp_testrW   rX   ÚX_trainÚX_tests           rD   Ú$test_shuffle_split_default_test_sizer–     s€   € õ 	Œ�‰Œ€AÝ
Œ�‰Œ€Aå˜;˜;°*Ð=Ñ=Ô=×CÒCÀAÀqÑIÔIÑJÔJ�O€GˆVåˆw‰<Œ<˜9Ò$Ð$Ð$Ð$Ýˆv‰;Œ;˜(Ò"Ð"Ð"Ð"Ð"Ð"rF   ))Nr^   r4   )r]   r]   rI   )rk  r]   rI   c                 ó2  — t          j        d¦  «        }t          j        d¦  «        }t          d¦  «        }t          t	          | ¬¦  «                             |||¦  «        ¦  «        \  }}t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚d S r�  )rf   rÐ   r­   r½   r   rV   rÁ   )r‘  r’  r“  rW   rX   rT   r”  r•  s           rD   Ú*test_group_shuffle_split_default_test_sizer˜  0  s�   € õ 	Œ�‰Œ€AÝ
Œ�‰Œ€AÝ�2‰YŒY€FåÕ,¸
ÐCÑCÔC×IÒIÈ!ÈQÐPVÑWÔWÑXÔX�O€GˆVåˆw‰<Œ<˜9Ò$Ð$Ð$Ð$Ýˆv‰;Œ;˜(Ò"Ð"Ð"Ð"Ð"Ð"rF   c                  óŒ  — t          j        d¦  «        } t          j        g d¢¦  «        }t          j        t
          ¦  «        5  t          t          dd¬¦  «                             | |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          t          dd¬¦  «                             | |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          t          ddd¬¦  «                             | |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        } t          j        g d	¢¦  «        }t          j        t
          ¦  «        5  t          t          d¬
¦  «                             | |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          t          d¬¦  «                             | |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr]   )r   r;   r;   r;   r4   r4   r4   rI   rl  r8   r4   ©r9   r‘  r¶   )	r   r   r   r;   r;   r;   r4   r4   r4   r�  )	rf   rÀ   rn   rr   rs   rt   r½   r   rV   ©rW   rX   s     rD   Ú"test_stratified_shuffle_split_initrœ  @  se  € Ý
Œ	�!‰Œ€AÝ
Œ
Ð(Ð(Ð(Ñ)Ô)€Aå	Œ•zÑ	"Ô	"ð Cð CÝÕ# A°Ð5Ñ5Ô5×;Ò;¸A¸qÑAÔAÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cõ 
Œ•zÑ	"Ô	"ð Að AÝÕ# A°Ð3Ñ3Ô3×9Ò9¸!¸QÑ?Ô?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aõ 
Œ•zÑ	"Ô	"ð Oð OÝÕ# A°¸qÐAÑAÔA×GÒGÈÈ1ÑMÔMÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 	Œ	�!‰Œ€AÝ
Œ
Ð.Ð.Ð.Ñ/Ô/€Aõ 
Œ•zÑ	"Ô	"ð ?ð ?ÝÕ#¨qÐ1Ñ1Ô1×7Ò7¸¸1Ñ=Ô=Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?å	Œ•zÑ	"Ô	"ð >ð >ÝÕ#¨aÐ0Ñ0Ô0×6Ò6°q¸!Ñ<Ô<Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >sZ   Á3BÂBÂ
BÂ'3C&Ã&C*Ã-C*Ä
4E
Å
EÅEÆ2GÇGÇGÇ:2H9È9H=É H=c                  ó*  — t          j        g d¢¦  «        } d}d}t          d||d¬¦  «                             t          j        t          | ¦  «        ¦  «        | ¦  «        }|D ]/\  }}t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚Œ0d S )NrK   r[   rG   r\   r   )r9   r‘  r`   )rf   rg   r   rV   rÐ   rÁ   )rX   r9   r‘  Ússsr�   r�   s         rD   Ú0test_stratified_shuffle_split_respects_test_sizerŸ  Y  s¯   € Ý
ŒÐ>Ð>Ð>Ñ?Ô?€AØ€IØ€JÝ
 Ø	�Y¨:ÀAðñ ô ç‚e�BŒG•C˜‘F”F‰OŒO˜QÑÔð ð ð &ð &‰ˆˆtÝ�5‰zŒz˜ZÒ'Ð'Ð'Ð'Ý�4‰yŒy˜IÒ%Ð%Ð%Ð%Ð%ð&ð &rF   c                  ó€  — t          j        g d¢¦  «        t          j        g d¢¦  «        t          j        g d¢dz  ¦  «        t          j        g d¢¦  «        t          j        dgdz  dgd	z  z   ¦  «        t          j        d
„ t          d¦  «        D ¦   «         ¦  «        g d¢g d¢g} | D �]}t	          ddd¬¦  «                             t          j        t          |¦  «        ¦  «        |¦  «        }t          j        |¦  «        }t          j	        dt          |¦  «        z  ¦  «        }t          |¦  «        |z
  }|D �]|\  }}t          t          j        ||         ¦  «        t          j        ||         ¦  «        ¦  «         t          j        t          j        ||         d¬¦  «        d         ¦  «        t          t          ||         ¦  «        ¦  «        z  }t          j        t          j        ||         d¬¦  «        d         ¦  «        t          t          ||         ¦  «        ¦  «        z  }t          ||d¦  «         t          |¦  «        t          |¦  «        z   |j        k    sJ ‚t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚t          t          j        ||¦  «        g ¦  «         �Œ~�Œd S )NrH   rJ   rK   r4   rL   r—   i   r;   é2   c                 ó    — g | ]}|gd |z   z  ‘ŒS )rï   rò   )rB   rc   s     rD   ró   z6test_stratified_shuffle_split_iter.<locals>.<listcomp>l  s"   € Ð;Ð;Ð;¨A˜˜˜s Q™w™Ð;Ð;Ð;rF   rü   rN   r\   g…ëQ¸Õ?r   r€  T)Úreturn_inverse)rf   rg   Úconcatenater­   r   rV   rÐ   rÁ   Ú
asanyarrayÚceilr-   Úuniquerè   Úfloatr,   r–   r  )	ÚysrX   rž  r9   r‘  r�   r�   Úp_trainÚp_tests	            rD   Ú"test_stratified_shuffle_split_iterr¬  e  sŸ  € å
ŒÐ5Ð5Ð5Ñ6Ô6Ý
ŒÐ5Ð5Ð5Ñ6Ô6Ý
ŒÐ>Ð>Ð>ÀÑBÑCÔCÝ
ŒÐAÐAÐAÑBÔBÝ
Œ�"�˜‘˜q˜c B™hÑ&Ñ'Ô'Ý
ŒÐ;Ð;µ°r±´Ð;Ñ;Ô;Ñ<Ô<Ø,Ð,Ð,ØDÐDÐDð	
€Bð ð @ñ @ˆÝ$ Q°$ÀQÐGÑGÔG×MÒMÝŒG•C˜‘F”F‰OŒO˜Qñ
ô 
ˆõ ŒM˜!ÑÔˆõ ”G˜D¥3 q¡6¤6™MÑ*Ô*ˆ	Ý˜‘V”V˜iÑ'ˆ
Øð 	@ñ 	@‰KˆE�4Ý�rœy¨¨5¬Ñ2Ô2µB´I¸aÀ¼gÑ4FÔ4FÑGÔGÐGå”k¥"¤)¨A¨e¬HÀTÐ"JÑ"JÔ"JÈ1Ô"MÑNÔNÕQVÝ�A�e”H‘”ñRô Rñ ˆGõ ”[¥¤¨1¨T¬7À4Ð!HÑ!HÔ!HÈÔ!KÑLÔLÍuÝ�A�d”G‘”ñPô Pñ ˆFõ & g¨v°qÑ9Ô9Ð9Ý�u‘:”:¥ D¡	¤	Ñ)¨Q¬VÒ3Ð3Ð3Ð3Ý�u‘:”: Ò+Ð+Ð+Ð+Ý�t‘9”9 	Ò)Ð)Ð)Ð)Ý�rœ~¨e°TÑ:Ô:¸BÑ?Ô?Ð?Ñ?ñ	@ð@ð @rF   c                  óx  ‡— d} dŠˆfd„}dD �]«}t          j        |dz  ddgz  ¦  «        }t          ‰d| z  d¬	¦  «        }dg|z  }dg|z  }d}|                     t          j        |¦  «        |¬
¦  «        D ]-\  }}	|dz  }||f||	ffD ]\  }
}|D ]}|
|xx         dz  cc<   ŒŒŒ.|‰k    sJ ‚t          |d| z  dd| z  z
  ¬¦  «        \  }}t          |¦  «        |k    sJ ‚t          |	¦  «        |k    sJ ‚t          t          |¦  «                             |	¦  «        ¦  «        dk    sJ ‚t          j	        |¦  «        }|j
        d| z  k    sJ ‚||z   t          |¦  «        k    sJ ‚t          |¦  «        dk    sJ ‚t          |¦  «        |z  }t          |¦  «        |z  } |||¦  «          |||¦  «         �Œ­d S )Nr[   rß   c                 ó�   •— d‰z  }t          j        ‰|¦  «        }| D ]'}|                     |¦  «        }||k    s
J d¦   «         ‚Œ(d S )Nçš™™™™™©?z=An index is not drawn with chance corresponding to even draws)r   ÚbinomÚpmf)Ú
idx_countsr6   Ú	thresholdÚbfÚcountÚprobrw   s         €rD   Úassert_counts_are_okz@test_stratified_shuffle_split_even.<locals>.assert_counts_are_ok�  sf   ø€ ð ˜8‘Oˆ	ÝŒ[˜ 1Ñ%Ô%ˆØð 	ð 	ˆEØ—6’6˜%‘=”=ˆDØ˜)Ò#Ð#Ð#ØOñ $Ô#Ð#Ð#ð	ð 	rF   )r\   é   r4   r   r;   ç      ð?©rw   r9   r`   r›  rš  )rf   rg   r   rV   rÐ   r!   rÁ   rª   r«   r§  r9   r¨  )Ún_foldsr·  ru   rT   rÔ   Útrain_countsÚtest_countsÚn_splits_actualr�   r�   ÚcounterÚidsÚidÚn_trainÚn_testÚgroup_countsÚ	ex_test_pÚ
ex_train_prw   s                     @rD   Ú"test_stratified_shuffle_split_evenrÇ  Š  sg  ø€ ð €GØ€Hð	ð 	ð 	ð 	ð 	ð ð  5ñ  5ˆ	Ý”˜9¨™>¨a°¨VÑ3Ñ4Ô4ˆÝ'Ø¨¨w©ÀQð
ñ 
ô 
ˆð �s˜Y‘ˆØ�c˜I‘oˆØˆØ!Ÿ<š<­"¬'°)Ñ*<Ô*<À˜<ÑGÔGð 	%ð 	%‰KˆE�4Ø˜qÑ ˆOØ".°Ð!6¸ÀdÐ8KÐ Lð %ð %‘�˜Øð %ð %�BØ˜B�K�K”K 1Ñ$�K�K‘K�Kð%ð%ð  (Ò*Ð*Ð*Ð*å1Ø  w¡¸3À#ÈÁ-Ñ;Pð
ñ 
ô 
‰ˆ�õ �5‰zŒz˜WÒ$Ð$Ð$Ð$Ý�4‰yŒy˜FÒ"Ð"Ð"Ð"Ý•3�u‘:”:×*Ò*¨4Ñ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6å”y Ñ(Ô(ˆØÔ 3¨¡=Ò0Ð0Ð0Ð0Ø˜Ñ¥3 v¡;¤;Ò.Ð.Ð.Ð.Ý�<Ñ Ô  AÒ%Ð%Ð%Ð%Ý˜&‘M”M IÑ-ˆ	Ý˜7‘^”^ iÑ/ˆ
àÐ˜\¨:Ñ6Ô6Ð6ØÐ˜[¨)Ñ4Ô4Ð4Ñ4ðA 5ð  5rF   c                  óˆ  — g d¢dz  ddgdz  z   } t          j        | ¦  «        }t          ddd¬¦  «        }t          |                     || ¬	¦  «        ¦  «        \  }}t          t          j        ||¦  «        g ¦  «         t          t          j        ||¦  «        t          j        t          | ¦  «        ¦  «        ¦  «         d S )
N©r   r;   r4   rI   rI   rM   r[   r;   r7   r   rº  r›  )
rf   rØ   r   r½   rV   r-   r  Úunion1drÀ   rÁ   )rX   rW   rž  r�   r�   s        rD   Ú4test_stratified_shuffle_split_overlap_train_test_bugrË  ¾  s³   € ð 	ˆˆ�qÑ˜A˜q˜6 A™:Ñ%€AÝ
Œ�Q‰Œ€Aå
 ¨!°sÈÐ
KÑ
KÔ
K€Cå�s—y’y 1¨�yÑ*Ô*Ñ+Ô+�K€Eˆ4õ •r”~ e¨TÑ2Ô2°BÑ7Ô7Ð7õ •r”z %¨Ñ.Ô.µ´	½#¸a¹&¼&Ñ0AÔ0AÑBÔBÐBÐBÐBrF   c            	      óà  — t          j        ddgddgddgddgg¦  «        t          j        ddgddgddgddgg¦  «        fD �]+} t          j        | ¦  «        }t          ddd¬¦  «        }t	          |                     || ¬¦  «        ¦  «        \  }}| |         }| |         }t          t          j        ||¦  «        g ¦  «         t          t          j        ||¦  «        t          j	        t          | ¦  «        ¦  «        ¦  «         t          j        | d d …df         ¦  «        }|t          j        |d d …df         ¦  «        k    sJ ‚|t          j        |d d …df         ¦  «        k    sJ ‚�Œ-d S )Nr   r;   r7   rº  r›  )rf   rg   rØ   r   r½   rV   r-   r  rÊ  rÀ   rÁ   rQ  )rX   rW   rž  r�   r�   Úy_trainÚy_testÚexpected_ratios           rD   Ú(test_stratified_shuffle_split_multilabelrÐ  Ï  s{  € õ 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2Ý
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2ðð 7ñ 7ˆõ ŒL˜‰OŒOˆÝ$¨a¸3ÈQÐOÑOÔOˆÝ˜3Ÿ9š9 q¨A˜9Ñ.Ô.Ñ/Ô/‰ˆˆtØ�E”(ˆØ�4”ˆõ 	�2œ>¨%°Ñ6Ô6¸Ñ;Ô;Ð;õ 	�2œ: e¨TÑ2Ô2µB´I½cÀ!¹f¼fÑ4EÔ4EÑFÔFÐFõ œ  1 1 1 a 4¤Ñ)Ô)ˆØ¥¤¨°°°°A°¬Ñ!7Ô!7Ò7Ð7Ð7Ð7Ø¥¤¨°°°°1°¬Ñ!6Ô!6Ò6Ð6Ð6Ð6Ñ6ð)7ð 7rF   c                  ó
  — g d¢dgdz  z   g d¢z   } g d¢dgdz  z   g d¢z   }t          j        | gdz  |gdz  z   ¦  «        }t          j        |¦  «        }t          ddd¬¦  «        }t	          |                     ||¬	¦  «        ¦  «        \  }}||         }||         }t          j        |d d …d
f         ¦  «        }	|	t          j        |d d …d
f         ¦  «        k    sJ ‚|	t          j        |d d …d
f         ¦  «        k    sJ ‚d S )N)r;   r   r;   r   rß   r;   rG   rï   r7   rº  r›  rM   )rf   rg   rØ   r   r½   rV   rQ  )
Úrow_with_many_zerosÚrow_with_many_onesrX   rW   rž  r�   r�   rÍ  rÎ  rÏ  s
             rD   Ú4test_stratified_shuffle_split_multilabel_many_labelsrÔ  è  s+  € ð $˜)˜) q c¨D¡jÑ0°9°9°9Ñ<ÐØ"˜˜ a S¨4¡ZÑ/°)°)°)Ñ;ÐÝ
ŒÐ%Ð&¨Ñ+Ð/AÐ.BÀSÑ.HÑHÑIÔI€AÝ
Œ�Q‰Œ€Aå
 ¨!°sÈÐ
KÑ
KÔ
K€CÝ�s—y’y 1¨�yÑ*Ô*Ñ+Ô+�K€Eˆ4Ø�Œh€GØˆtŒW€Fõ ”W˜Q˜q˜q˜q !˜tœWÑ%Ô%€NØ�RœW W¨Q¨Q¨Q°¨T¤]Ñ3Ô3Ò3Ð3Ð3Ð3Ø�RœW V¨A¨A¨A¨q¨D¤\Ñ2Ô2Ò2Ð2Ð2Ð2Ð2Ð2rF   c                  ó   — t          j        dd¦  «        } g }g }t          t          dd¬¦  «                             t
          ¦  «        ¦  «        D ]7\  }\  }}|                     |¦  «         |                     |¦  «         || |<   Œ8t          | ¦  «        }t          t          j	        | ¦  «        ¦  «        | 
                    ¦   «         k    sJ ‚t          |                     ¦   «         Ž \  }}t          ||¦  «         t          ||¦  «         d S )NrG   g      ð¿r[   Tr
  )rf   Úfullrh   r   rV   rW   ré   r   rÁ   r§  rj   ri   r-   )	ÚfoldsÚkf_trainÚkf_testrc   Ú	train_indÚtest_indr�   Úps_trainÚps_tests	            rD   Ú%test_predefinedsplit_with_kfold_splitrÞ  ÿ  sÿ   € åŒG�B˜ÑÔ€EØ€HØ€GÝ$-­e°A¸tÐ.DÑ.DÔ.D×.JÒ.JÍ1Ñ.MÔ.MÑ$NÔ$Nð ð Ñ ˆÑ ˆI�xØ�Š˜	Ñ"Ô"Ð"Ø�Š�xÑ Ô Ð Øˆˆh‰ˆÝ	˜Ñ	Ô	€Bå�rŒy˜ÑÔÑ Ô  B§O¢OÑ$5Ô$5Ò5Ð5Ð5Ð5Ý˜RŸXšX™ZœZÐ(Ñ€HˆgÝ�x Ñ*Ô*Ð*Ý�w Ñ(Ô(Ð(Ð(Ð(rF   c                  ó>  — t           D �]} t          j        t          | ¦  «        ¦  «        x}}d}d}t	          ||d¬¦  «        }t          |¦  «         |                     ||| ¬¦  «        |k    sJ ‚t          j        | ¦  «        }t          j        | ¦  «        }| 	                    ||| ¬¦  «        D �]h\  }}	t          j        ||         ¦  «        }
t          j        ||	         ¦  «        }t          j
        t          j        ||         |¦  «        ¦  «        rJ ‚t          j
        t          j        ||	         |
¦  «        ¦  «        rJ ‚||         j        ||	         j        z   |j        k    sJ ‚t          t          j        ||	¦  «        g ¦  «         t          t          |¦  «        t!          |t          |¦  «        z  ¦  «        z
  ¦  «        dk    sJ ‚t          t          |
¦  «        t!          d|z
  t          |¦  «        z  ¦  «        z
  ¦  «        dk    sJ ‚�Œj�Œd S )Nr\   rc  r   r€  rS   r;   r¹  )Útest_groupsrf   rÐ   rÁ   r   rq   rj   r§  rn   rV   ÚanyÚisinr–   r-   r  ÚabsÚround)Úgroups_irW   rX   rw   r9   ÚsloÚl_uniqueÚlr�   r�   Úl_train_uniqueÚl_test_uniques               rD   Útest_group_shuffle_splitrë    s  € Ýð !ñ !ˆÝ”�˜H™œÑ&Ô&Ð&ˆˆAØˆØˆ	Ý °IÈAÐNÑNÔNˆõ 	ˆS‰	Œ	ˆ	ð ×Ò  1¨XÐÑ6Ô6¸(ÒBÐBÐBÐBå”9˜XÑ&Ô&ˆÝŒJ�xÑ Ô ˆàŸ9š9 Q¨°(˜9Ñ;Ô;ð 	ñ 	‰KˆE�4åœY q¨¤xÑ0Ô0ˆNÝœI a¨¤gÑ.Ô.ˆMÝ”v�bœg a¨¤h°Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?Ý”v�bœg a¨¤g¨~Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?ð �U”8”= 1 T¤7¤<Ñ/°1´6Ò9Ð9Ð9Ð9õ �rœ~¨e°TÑ:Ô:¸BÑ?Ô?Ð?õ •s˜=Ñ)Ô)­E°)½cÀ(¹m¼mÑ2KÑ,LÔ,LÑLÑMÔMÐQRÒRÐRÐRÐRå•C˜Ñ'Ô'­%°°y±ÅCÈÁMÄMÑ0QÑ*RÔ*RÑRÑSÔSÐWXÒXÐXÐXÐXÑXñ#	ð!ð !rF   c            
      óì  — t          ¦   «         } t          d¬¦  «        }t          d¬¦  «        }t          | ¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          t          d¬¦  «        ¦  «        dk    sJ ‚t          | df|df|dff¦  «        D �]n\  }\  }}t          t          ¦  «        D �]O\  }}t          t          j        |¦  «        ¦  «        }|dk    r|n
||dz
  z  dz  }	t          j        t          |¦  «        ¦  «        x}
}| 	                    |
||¬	¦  «        |	k    sJ ‚t          j
        |¦  «        }|                     |
||¬	¦  «        D ]§\  }}t          t          j        ||         ||         ¦  «                             ¦   «         g ¦  «         t          |¦  «        t          |¦  «        z   t          |¦  «        k    sJ ‚t          j        ||         ¦  «        j        d
         s
J |¦   «         ‚Œ¨�ŒQ�Œp|  	                    d d g d¢¦  «        dk    sJ ‚|  	                    g d¢¬	¦  «        dk    sJ ‚| 	                    d d t          j        d¦  «        ¦  «        dk    sJ ‚| 	                    t          j        d¦  «        ¬	¦  «        dk    sJ ‚t#          j        t&          ¦  «        5  |  	                    d d dt          j        dg¦  «         d d d ¦  «         n# 1 swxY w Y   t#          j        t&          ¦  «        5  | 	                    d d dt          j        dg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t#          j        t&          |¬¦  «        5  |  	                    d d d ¦  «         d d d ¦  «         n# 1 swxY w Y   t#          j        t&          |¬¦  «        5  | 	                    d d d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   r<   r4   ra   zLeavePGroupsOut(n_groups=1)rb   rI   zLeavePGroupsOut(n_groups=3)rS   r   )ÚaÚbÚcrî  rï  )r¹  çš™™™™™ñ?r¹  g333333ó?rM   r\   g        z*The 'groups' parameter should not be None.rd   )r   r   rq   rh   rà  rÁ   rf   r§  rÐ   rj   rn   rV   r-   r  ÚtolistÚshaperÀ   rr   rs   rt   ÚnanÚinf)ÚlogoÚlpgo_1Úlpgo_2Újr�   Úp_groups_outrc   rå  r=   rw   rW   rX   Ú
groups_arrr�   r�   r‘   s                   rD   Útest_leave_one_p_group_outrû  5  s  € ÝÑÔ€DÝ aÐ(Ñ(Ô(€FÝ aÐ(Ñ(Ô(€Fõ �‰:Œ:Ð-Ò-Ð-Ð-Ð-Ý�‰<Œ<Ð8Ò8Ð8Ð8Ð8Ý�‰<Œ<Ð8Ò8Ð8Ð8Ð8Ý•¨Ð+Ñ+Ô+Ñ,Ô,Ð0MÒMÐMÐMÐMå!*¨T°1¨I¸À°{ÀVÈQÀKÐ+PÑ!QÔ!Qð Jñ JÑˆÑˆB�Ý$¥[Ñ1Ô1ð 	Jñ 	J‰KˆAˆxÝ�2œ9 XÑ.Ô.Ñ/Ô/ˆHØ#/°1Ò#4Ð#4�x�x¸(ÀhÐQRÁlÑ:SÐVWÑ:WˆHÝ”G�C ™MœMÑ*Ô*Ð*ˆA�ð —?’? 1 a°�?Ñ9Ô9¸XÒEÐEÐEÐEåœ HÑ-Ô-ˆJð  "Ÿxšx¨¨1°X˜xÑ>Ô>ð Jð J‘��tå"Ý”N :¨eÔ#4°jÀÔ6FÑGÔG×NÒNÑPÔPÐRTñô ð õ
 ˜5‘z”z¥C¨¡I¤IÑ-µ°X±´Ò>Ð>Ð>Ð>õ ”y ¨DÔ!1Ñ2Ô2Ô8¸Ô;ÐIÐI¸\ÑIÔIÐ;ÐIñJñ	Jð2 ×Ò˜T 4Ð)BÐ)BÐ)BÑCÔCÀqÒHÐHÐHÐHØ×ÒÐ$8Ð$8Ð$8ÐÑ9Ô9¸QÒ>Ð>Ð>Ð>Ø×Ò˜t T­2¬9°Q©<¬<Ñ8Ô8¸AÒ=Ð=Ð=Ð=Ø×Ò¥b¤i°¡l¤lÐÑ3Ô3°qÒ8Ð8Ð8Ð8õ 
Œ•zÑ	"Ô	"ð :ð :Ø×Ò˜$  s­B¬F°CÐ&8Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å	Œ•zÑ	"Ô	"ð <ð <Ø×Ò˜D $¨­b¬f°cÐ(:Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð 7€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ,ð ,Ø×Ò˜$  dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,å	Œ•z¨Ð	-Ñ	-Ô	-ð .ð .Ø×Ò˜D $¨Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .sH   Ë%K=Ë=LÌLÌ!%MÍMÍMÍ:NÎN"Î%N"ÏO)Ï)O-Ï0O-c                  ó  — t          j        g d¢¦  «        } t          j        t          | ¦  «        ¦  «        }t          j        | d¬¦  «        }t	          ¦   «                              || ¬¦  «        }t	          ¦   «                              || ¬¦  «        }t          d¬¦  «                             || ¬¦  «        }t          d¬¦  «                             || ¬¦  «        }d|d d …<   ||f||ffD ]A\  }}t          ||¦  «        D ]+\  \  }	}
\  }}t          |	|¦  «         t          |
|¦  «         Œ,ŒBdt          d¬¦  «         	                    ||| ¬	¦  «        k    sJ ‚dt	          ¦   «          	                    ||| ¬	¦  «        k    sJ ‚d S )
N)r   r;   r4   r;   r;   r4   r   r   T)ÚcopyrS   r4   r<   r   rI   )rX   rT   )
rf   rg   rÐ   rÁ   r   rV   r   ri   r-   rj   )rT   rW   Úgroups_changingr~   Úlolo_changingÚlploÚlplo_changingÚlloÚllo_changingr�   r�   Ú
train_chanÚ	test_chans                rD   Ú$test_leave_group_out_changing_groupsr  l  s«  € õ ŒXÐ.Ð.Ð.Ñ/Ô/€FÝ
Œ•�F‘”ÑÔ€AÝ”h˜v¨DÐ1Ñ1Ô1€OÝÑÔ×#Ò# A¨fÐ#Ñ5Ô5€DÝ$Ñ&Ô&×,Ò,¨Q°vÐ,Ñ>Ô>€MÝ AÐ&Ñ&Ô&×,Ò,¨Q°vÐ,Ñ>Ô>€DÝ#¨QÐ/Ñ/Ô/×5Ò5°aÀÐ5ÑGÔG€MØ€O�A�A�AÑØ# ]Ð3°d¸MÐ5JÐKð 0ð 0Ñˆˆ\Ý69¸#¸|Ñ6LÔ6Lð 	0ð 	0Ñ2‰MˆU�DÑ2˜J¨	Ý˜u jÑ1Ô1Ð1Ý˜t YÑ/Ô/Ð/Ð/ð	0ð
 •¨Ð+Ñ+Ô+×8Ò8¸¸aÈÐ8ÑOÔOÒOÐOÐOÐOàÕ Ñ"Ô"×/Ò/°°Q¸vÐ/ÑFÔFÒFÐFÐFÐFÐFÐFrF   c                  óv  — t          j        g d¢¦  «        } t          j        t          | ¦  «        ¦  «        }t	          t          ¦   «                              || ¬¦  «        ¦  «        }g d¢ddgfg d¢ddgfg d	¢d
dgfg}|D ]7\  }}t          |¦  «        \  }}t          ||¦  «         t          ||¦  «         Œ8d S )N)r4   r4   r   r   r;   r;   rS   )r   r;   rM   r[   r4   rI   rÉ  rM   r[   ©r4   rI   rM   r[   r   r;   )	rf   rg   rÐ   rÁ   Úiterr   rV   r½   r-   )rT   rW   rÔ   Úexpected_indicesÚexpected_trainÚexpected_testr�   r�   s           rD   Ú%test_leave_group_out_order_dependencer  ‚  sâ   € õ ŒXÐ(Ð(Ð(Ñ)Ô)€FÝ
Œ•�F‘”ÑÔ€AåÕ"Ñ$Ô$×*Ò*¨1°VÐ*Ñ<Ô<Ñ=Ô=€Fð 
ˆˆ˜˜1�vÐØ	ˆˆ˜˜1�vÐØ	ˆˆ˜˜1�vÐðÐð *:ð 0ð 0Ñ%ˆ˜Ý˜6‘l”l‰ˆˆtÝ˜5 .Ñ1Ô1Ð1Ý˜4 Ñ/Ô/Ð/Ð/ð0ð 0rF   c                  ó   — t          j        d¦  «        x} x}}t          j        d¦  «        }t	          j        t          |¬¦  «        5  t          t          ¦   «          	                    | ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        x} x}}t          j        d|› d�¦  «        }t	          j        t          |¬¦  «        5  t          t          ¦   «          	                    | ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        x} x}}t          j        d|› d�¦  «        }t	          j        t          |¬¦  «        5  t          t          d	¬
¦  «         	                    | ||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d	¦  «        x} x}}t          j        d|› d�¦  «        }t	          j        t          |¬¦  «        5  t          t          d	¬
¦  «         	                    | ||¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zFound array with 0 sample(s)rd   r;   z:The groups parameter contains fewer than 2 unique groups (z'). LeaveOneGroupOut expects at least 2.z^The groups parameter contains fewer than (or equal to) n_groups (3) numbers of unique groups (zR). LeavePGroupsOut expects that at least n_groups + 1 (4) unique groups be presentrI   r<   )rf   rÐ   ÚreÚescaperr   rs   rt   r½   r   rV   r   rÀ   )rW   rX   rT   r‘   s       rD   Ú:test_leave_one_p_group_out_error_on_fewer_number_of_groupsr  –  sL  € Ý”W˜Q‘Z”ZÐ€AÐˆˆFÝ
Œ)Ð2Ñ
3Ô
3€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 5ð 5ÝÕÑÔ×%Ò% a¨¨FÑ3Ô3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ ”W˜Q‘Z”ZÐ€AÐˆˆFÝ
Œ)ð	0ÀVð 	0ð 	0ð 	0ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð 5ð 5ÝÕÑÔ×%Ò% a¨¨FÑ3Ô3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ ”W˜Q‘Z”ZÐ€AÐˆˆFÝ
Œ)ð	Ø)/ð	ð 	ð 	ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð >ð >Ý�_ aÐ(Ñ(Ô(×.Ò.¨q°!°VÑ<Ô<Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ ”Y˜q‘\”\Ð!€AÐ!ˆˆFÝ
Œ)ð	Ø)/ð	ð 	ð 	ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð >ð >Ý�_ aÐ(Ñ(Ô(×.Ò.¨q°!°VÑ<Ô<Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >sH   Á1BÂB	ÂB	Ã1DÄDÄDÅ.3F-Æ-F1Æ4F1È3IÉIÉ
Ic                  ó  — t           t          fD ]|} t          j        t          ¦  «        5   | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ}d S )Nr   )Ú	n_repeatsr¹   )r   r   rr   rs   rt   rM  s    rD   Útest_repeated_cv_value_errorsr  ¹  s  € åÕ5Ð6ð ð ˆÝŒ]�:Ñ&Ô&ð 	ð 	ØˆB˜ˆO‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	ð 	ØˆB˜ÐÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s#   ªAÁA	Á
A	Á'B Â B	ÂB	Ú
RepeatedCVc                 ó’   — d\  }} | ||¬¦  «        }d                      |j        j        ¦  «        }|t          |¦  «        k    sJ ‚d S )N)r4   r\   ©rw   r  z.{}(n_repeats=6, n_splits=2, random_state=None))r    r@   rA   rq   )r  rw   r  Úrepeated_cvÚrepeated_cv_reprs        rD   Útest_repeated_cv_reprr  Â  s`   € àÑ€HˆiØ�* h¸)ÐDÑDÔD€KØG×NÒNØÔÔ&ñô Ðð �t KÑ0Ô0Ò0Ð0Ð0Ð0Ð0Ð0rF   c                  óÒ  — ddgddgddgddgd	d
gg} d}t          dd|¬¦  «        }t          d¦  «        D �]0}|                     | ¦  «        }t          |¦  «        \  }}t	          |ddg¦  «         t	          |g d¢¦  «         t          |¦  «        \  }}t	          |g d¢¦  «         t	          |ddg¦  «         t          |¦  «        \  }}t	          |ddg¦  «         t	          |g d¢¦  «         t          |¦  «        \  }}t	          |g d¢¦  «         t	          |ddg¦  «         t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ2d S )Nr;   r4   rI   rM   r[   r\   r]   r^   r¶   rG   i{ic©rw   r  r`   )r   r;   rI   r   )r4   rI   rM   )r   r­   rV   r½   r-   rr   rs   ÚStopIteration)rW   r`   Úrkfr  rÔ   r�   r�   s          rD   Ú'test_repeated_kfold_deterministic_splitr  Ì  s¼  € Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨R¨Ð1€AØ€LÝ
 ¨a¸lÐ
KÑ
KÔ
K€Cõ �1‰XŒXð ñ ˆØ—’˜1‘”ˆÝ˜6‘l”l‰ˆˆtÝ˜5 1 a &Ñ)Ô)Ð)Ý˜4   Ñ+Ô+Ð+å˜6‘l”l‰ˆˆtÝ˜5 ) ) )Ñ,Ô,Ð,Ý˜4 ! Q Ñ(Ô(Ð(å˜6‘l”l‰ˆˆtÝ˜5 1 a &Ñ)Ô)Ð)Ý˜4   Ñ+Ô+Ð+å˜6‘l”l‰ˆˆtÝ˜5 ) ) )Ñ,Ô,Ð,Ý˜4 ! Q Ñ(Ô(Ð(åŒ]�=Ñ)Ô)ð 	ð 	Ý�‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ùð%ð s   Ä>EÅE	Å!E	c                  ón   — d} d}t          | |¬¦  «        }| |z  }||                     ¦   «         k    sJ ‚d S ©NrI   rM   r  )r   rj   )rw   r  r  r±   s       rD   Ú$test_get_n_splits_for_repeated_kfoldr"  é  sL   € Ø€HØ€IÝ
 °YÐ
?Ñ
?Ô
?€CØ  9Ñ,ÐØ × 0Ò 0Ñ 2Ô 2Ò2Ð2Ð2Ð2Ð2Ð2rF   c                  ón   — d} d}t          | |¬¦  «        }| |z  }||                     ¦   «         k    sJ ‚d S r!  )r   rj   )rw   r  Úrskfr±   s       rD   Ú/test_get_n_splits_for_repeated_stratified_kfoldr%  ñ  sL   € Ø€HØ€IÝ"¨HÀ	ÐJÑJÔJ€DØ  9Ñ,ÐØ × 1Ò 1Ñ 3Ô 3Ò3Ð3Ð3Ð3Ð3Ð3rF   c                  óÜ  — ddgddgddgddgd	d
gg} g d¢}d}t          dd|¬¦  «        }t          d¦  «        D �]1}|                     | |¦  «        }t          |¦  «        \  }}t	          |ddg¦  «         t	          |g d¢¦  «         t          |¦  «        \  }}t	          |g d¢¦  «         t	          |ddg¦  «         t          |¦  «        \  }}t	          |ddg¦  «         t	          |g d¢¦  «         t          |¦  «        \  }}t	          |g d¢¦  «         t	          |ddg¦  «         t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ3d S )Nr;   r4   rI   rM   r[   r\   r]   r^   r¶   rG   )r;   r;   r;   r   r   iq²ésr  )r   r4   rI   )r   r;   rM   )r   r­   rV   r½   r-   rr   rs   r  )rW   rX   r`   r$  r  rÔ   r�   r�   s           rD   Ú2test_repeated_stratified_kfold_deterministic_splitr'  ù  sÉ  € Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨R¨Ð1€AØˆˆ€AØ€LÝ"¨A¸ÈÐVÑVÔV€Dõ �1‰XŒXð ñ ˆØ—’˜A˜qÑ!Ô!ˆÝ˜6‘l”l‰ˆˆtÝ˜5 1 a &Ñ)Ô)Ð)Ý˜4   Ñ+Ô+Ð+å˜6‘l”l‰ˆˆtÝ˜5 ) ) )Ñ,Ô,Ð,Ý˜4 ! Q Ñ(Ô(Ð(å˜6‘l”l‰ˆˆtÝ˜5 1 a &Ñ)Ô)Ð)Ý˜4   Ñ+Ô+Ð+å˜6‘l”l‰ˆˆtÝ˜5 ) ) )Ñ,Ô,Ð,Ý˜4 ! Q Ñ(Ô(Ð(åŒ]�=Ñ)Ô)ð 	ð 	Ý�‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ùð%ð s   ÅEÅE#	Å&E#	c            	      óB  — t          j        t          t          ¦  «         t          j        t          t          t	          d¦  «        d¬¦  «         t          j        t          t          t	          d¦  «        dd¬¦  «         t          j        t          t          t	          d¦  «        t          j        d¦  «        t          j        d¦  «        ¬¦  «         t          j        t          t          t	          d¦  «        d¬¦  «         t          j        t          t          t	          d¦  «        dd	¬¦  «         t          j        t          t          t	          d¦  «        d¬
¦  «         t          j        t          t          t	          d¦  «        t	          d¦  «        ¦  «         t          j        t          t          t	          d¦  «        dd¬¦  «         t          j        t          d¬¦  «        5  t          t	          d¦  «        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrI   rð  r�  rj  rš  Ú
wrong_typer8   r4   rM   )Úsome_argumenté*   rG   FT)r¼   Ústratifyzrtrain_size=11 should be either positive and smaller than the number of samples 10 or a float in the \(0, 1\) rangerd   rü   r;   )r‘  r9   )rr   rs   rt   r   r­   rf   Úfloat32rÅ   rò   rF   rD   Útest_train_test_split_errorsr.    sõ  € Ý
„M•*Õ.Ñ/Ô/Ð/å
„M•*Õ.µ°a±´ÀSÐIÑIÔIÐIå
„M•*Õ.µ°a±´ÀCÐTWÐXÑXÔXÐXÝ
„MÝÝÝˆa‰ŒÝ”*˜S‘/”/Ý”:˜c‘?”?ðñ ô ð õ „M•*Õ.µ°a±´ÀLÐQÑQÔQÐQÝ
„M•*Õ.µ°a±´ÀAÐRSÐTÑTÔTÐTÝ
„M•)Õ-­u°Q©x¬xÀsÐKÑKÔKÐKÝ
„M•*Õ.µ°a±´½%À¹)¼)ÑDÔDÐDÝ
„M•*Õ.µ°b±	´	À5ÐSWÐXÑXÔXÐXå	ŒÝð'ð
ñ 
ô 
ð @ð @õ 	�˜r™œ¨r¸QÐ?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s   Ç' HÈHÈH))Nr]   rI   rŒ  r�  c                 óŒ   — t          t          | ¬¦  «        \  }}t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚d S )Nr�  )r   rW   rÁ   )r‘  r’  r“  r”  r•  s        rD   Ú'test_train_test_split_default_test_sizer0  3  sN   € õ '¥q°ZÐ@Ñ@Ô@�O€GˆVåˆw‰<Œ<˜9Ò$Ð$Ð$Ð$Ýˆv‰;Œ;˜(Ò"Ð"Ð"Ð"Ð"Ð"rF   z(array_namespace, device_name, dtype_namezshuffle,stratify)TNrM   )FNc                 óâ  — t          |||¦  «        \  }}t          j        d¦  «                             d¦  «        }t          j        d¦  «        }|                     |¦  «        }	|                     |	|¬¦  «        }
|                     |¦  «        }|                     ||¬¦  «        }t          |	|d| |¬¦  «        \  }}}}t          d¬¦  «        5  |�|                     |¦  «        }n|}t          |
|| |d¬	¦  «        \  }}}}t          |¦  «        d         t          |
¦  «        d         k    sJ ‚t          |¦  «        d         t          |
¦  «        d         k    sJ ‚t          |¦  «        d         t          |¦  «        d         k    sJ ‚t          |¦  «        d         t          |¦  «        d         k    sJ ‚t          |¦  «        t          |
¦  «        k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        t          |
¦  «        k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |j
        |
j
        k    sJ ‚|j
        |j
        k    sJ ‚|j
        |
j
        k    sJ ‚|j
        |j
        k    sJ ‚t          t          |t          d
¬¦  «        |¦  «         t          t          |t          d
¬¦  «        |¦  «         d S )Nrï   ©rG   rG   rG   r%   r   )r`   r¼   r,  T)Úarray_api_dispatch)r¼   r,  r`   Úcpu)Úxpr&   )r/   rf   rÀ   rŸ   Úastypern   r   r	   r'   Úarray_api_devicero   r+   r(   )r¼   r,  Úarray_namespaceÚdevice_nameÚ
dtype_namer5  r&   rW   rX   ÚX_npÚX_xpÚy_npÚy_xpÚ
X_train_npÚ	X_test_npÚ
y_train_npÚ	y_test_npÚstratify_xpÚ
X_train_xpÚ	X_test_xpÚ
y_train_xpÚ	y_test_xps                         rD   Útest_array_api_train_test_splitrH  ?  sa  € õ  & o°{ÀJÑOÔO�J€Bˆå
Œ	�#‰Œ×Ò˜xÑ(Ô(€AÝ
Œ	�"‰Œ€Aà�8Š8�JÑÔ€DØ�:Š:�d 6ˆ:Ñ*Ô*€Dà�8Š8�JÑÔ€DØ�:Š:�d 6ˆ:Ñ*Ô*€Då3CØˆa˜a¨¸8ð4ñ 4ô 4Ñ0€J�	˜: yõ 
¨4Ð	0Ñ	0Ô	0ð Eð EØÐØŸ*š* XÑ.Ô.ˆKˆKà"ˆKÝ7GØ�$ °+ÈAð8
ñ 8
ô 8
Ñ4ˆ
�I˜z¨9õ ˜ZÑ(Ô(¨Ô+­}¸TÑ/BÔ/BÀ1Ô/EÒEÐEÐEÐEÝ˜YÑ'Ô'¨Ô*­m¸DÑ.AÔ.AÀ!Ô.DÒDÐDÐDÐDÝ˜ZÑ(Ô(¨Ô+­}¸TÑ/BÔ/BÀ1Ô/EÒEÐEÐEÐEÝ˜YÑ'Ô'¨Ô*­m¸DÑ.AÔ.AÀ!Ô.DÒDÐDÐDÐDõ   
Ñ+Ô+Õ/?ÀÑ/EÔ/EÒEÐEÐEÐEÝ 
Ñ+Ô+Õ/?ÀÑ/EÔ/EÒEÐEÐEÐEÝ 	Ñ*Ô*Õ.>¸tÑ.DÔ.DÒDÐDÐDÐDÝ 	Ñ*Ô*Õ.>¸tÑ.DÔ.DÒDÐDÐDÐDÐDð)Eð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð, Ô˜tœzÒ)Ð)Ð)Ð)ØÔ˜tœzÒ)Ð)Ð)Ð)ØŒ?˜dœjÒ(Ð(Ð(Ð(ØŒ?˜dœjÒ(Ð(Ð(Ð(åÝ�
�r¨%Ð0Ñ0Ô0Øñô ð õ Ý�	�b¨Ð/Ñ/Ô/Øñô ð ð ð s   ÃE4IÉIÉIÚcoo_containerc                 ó¶  — t          j        d¦  «                             d¦  «        } | |¦  «        }t          j        d¦  «        }t          ||d d¬¦  «        }|\  }}}}t	          |¦  «        t	          |¦  «        k    sJ ‚t          |d d …df         |dz  ¦  «         t          |d d …df         |dz  ¦  «         t          |||                     ¦   «         ¦  «        }|\  }}}	}
}}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          j        d¦  «                             ddd	d
¦  «        }t          j        d¦  «                             ddd¦  «        }t          ||¦  «        }|d         j	        dk    sJ ‚|d         j	        dk    sJ ‚|d
         j	        dk    sJ ‚|d	         j	        dk    sJ ‚t          j
        g d¢¦  «        }t          g d¢g d¢¦  «        D ]–\  }}t          |||d¬¦  «        \  }}t	          |¦  «        |k    sJ ‚t	          |¦  «        t	          |¦  «        z   t	          |¦  «        k    sJ ‚t          j        |dk    ¦  «        t          j        |d
k    ¦  «        k    sJ ‚Œ—t          j        d¦  «        }dD ];}t          |d|¬¦  «        \  }}t          |ddg¦  «         t          |g d¢¦  «         Œ<d S )Nrï   r2  rG   r7   rš  r   r  r[   rI   r4   i  r]   rü   )r]   r[   rI   r4   r;   )rI   r[   rI   r4   )r]   r]   rü   )rI   r]   rü   )r;   r;   r;   r;   r4   r4   r4   r4   )r4   rM   r_  r7   r^  )r4   rM   r4   rM   r\   )r9   r,  r`   )r4   rl  F)r¼   r9   r^   r¶   )r   r;   r4   rI   rM   r[   r\   r]   )rf   rÀ   rŸ   r   rÁ   r-   rñ  Ú
isinstancerm   rò  rg   ri   r  )rI  rW   ÚX_srX   rV   r”  r•  rÍ  rÎ  Ú	X_s_trainÚX_s_testÚX_4dÚy_3dr9   Úexp_test_sizer�   r�   s                    rD   Útest_train_test_splitrR  ‚  s  € å
Œ	�#‰Œ×Ò˜xÑ(Ô(€AØ
ˆ-˜Ñ
Ô
€CÝ
Œ	�"‰Œ€Aõ ˜Q ¨T¸cÐBÑBÔB€EØ',Ñ$€GˆV�W˜fÝˆv‰;Œ;�#˜g™,œ,Ò&Ð&Ð&Ð&å�w˜q˜q˜q !˜t”} g°¡lÑ3Ô3Ð3Ý�v˜a˜a˜a ˜d”| V¨b¡[Ñ1Ô1Ð1õ ˜Q  Q§X¢X¡Z¤ZÑ0Ô0€EØ<AÑ9€GˆV�Y ¨'°6Ý�g�tÑ$Ô$Ð$Ð$Ð$Ý�f�dÑ#Ô#Ð#Ð#Ð#õ Œ9�^Ñ$Ô$×,Ò,¨R°°A°qÑ9Ô9€DÝŒ9�[Ñ!Ô!×)Ò)¨"¨a°Ñ4Ô4€DÝ˜T 4Ñ(Ô(€EØ�Œ8Œ>˜\Ò)Ð)Ð)Ð)Ø�Œ8Œ>˜\Ò)Ð)Ð)Ð)Ø�Œ8Œ>˜ZÒ'Ð'Ð'Ð'Ø�Œ8Œ>˜ZÒ'Ð'Ð'Ð'õ 	ŒÐ)Ð)Ð)Ñ*Ô*€AÝ$'Ð(?Ð(?Ð(?ÀÀÀÑ$QÔ$Qð 8ð 8Ñ ˆ	�=Ý&Ø˜¨Q¸Qð
ñ 
ô 
‰ˆˆtõ �4‰yŒy˜MÒ)Ð)Ð)Ð)Ý�4‰yŒy�3˜u™:œ:Ñ%­¨Q©¬Ò/Ð/Ð/Ð/åŒv�e˜q’jÑ!Ô!¥R¤V¨E°QªJÑ%7Ô%7Ò7Ð7Ð7Ð7Ð7õ 	Œ	�"‰Œ€AØð <ð <ˆ	Ý& q°%À9ÐMÑMÔM‰ˆˆtÝ˜4 ! Q Ñ(Ô(Ð(Ý˜5Ð":Ð":Ð":Ñ;Ô;Ð;Ð;ð<ð <rF   c                  óÌ   — d} t          j        | ¦  «        }|d| z  k    }t          |||d¬¦  «        }|\  }}}}|j        |j        z   | k    sJ ‚|j        |j        z   | k    sJ ‚dS )z�Check for integer overflow on 32-bit platforms.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20774
    i † ç®Gáz®ï?r_  )r,  r‘  N)rf   rÀ   r   r–   )Ú
big_numberrW   rX   rV   r”  r•  rÍ  rÎ  s           rD   Ú$test_train_test_split_32bit_overflowrV  ²  s‡   € ð €Jõ 	Œ	�*ÑÔ€AØ	ˆT�JÑÒ€Aå˜Q ¨A¸$Ð?Ñ?Ô?€EØ',Ñ$€GˆV�W˜fàŒ<˜&œ+Ñ%¨Ò3Ð3Ð3Ð3ØŒ<˜&œ+Ñ%¨Ò3Ð3Ð3Ð3Ð3Ð3rF   c                  ó  — t           g} 	 ddlm} |                      |¦  «         n# t          $ r Y nw xY w| D ]H} |t
          ¦  «        }t          |¦  «        \  }}t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚ŒId S )Nr   )Ú	DataFrame)r*   ÚpandasrX  ré   ÚImportErrorrW   r   rK  )ÚtypesrX  ÚInputFeatureTypeÚX_dfr”  r•  s         rD   Útest_train_test_split_pandasr^  É  sÁ   € åˆO€EðØ$Ð$Ð$Ð$Ð$Ð$à�Š�YÑÔÐÐøÝð ð ð Øˆðøøøà!ð 4ð 4ÐàÐ¥Ñ"Ô"ˆÝ*¨4Ñ0Ô0‰ˆ�Ý˜'Ð#3Ñ4Ô4Ð4Ð4Ð4Ý˜&Ð"2Ñ3Ô3Ð3Ð3Ð3Ð3ð4ð 4s   Š& ¦
3²3Úsparse_containerc                 óþ   — t          j        d¦  «                             d¦  «        } | |¦  «        }t          |¦  «        \  }}t	          |¦  «        r|j        dk    sJ ‚t	          |¦  «        r|j        dk    sJ ‚d S )Nrï   r2  Úcsr)rf   rÀ   rŸ   r   r   r    )r_  rW   rL  r”  r•  s        rD   Útest_train_test_split_sparserb  Ú  s†   € õ 	Œ	�#‰Œ×Ò˜xÑ(Ô(€AØ
Ð
˜1Ñ
Ô
€CÝ& sÑ+Ô+�O€GˆVÝ�GÑÔÐ8 ¤°5Ò!8Ð!8Ð!8Ð8Ý�FÑÔÐ6 ¤°Ò 6Ð 6Ð 6Ð6Ð 6Ð 6rF   c                  óÒ   — t          t          ¦  «        } t          | ¦  «        \  }}t          |t           ¦  «        sJ ‚t          |t           ¦  «        sJ ‚t          | ¦  «        \  }}d S r?   )r*   rW   r   rK  )r]  r”  r•  ÚX_train_arrÚ
X_test_arrs        rD   Ú!test_train_test_split_mock_pandasrf  ç  sb   € å�ÑÔ€DÝ& tÑ,Ô,�O€GˆVÝ�g�}Ñ-Ô-Ð-Ð-Ð-Ý�f�mÑ,Ô,Ð,Ð,Ð,Ý.¨tÑ4Ô4Ñ€K���rF   c                  ó–  — t          j        d¦  «        } dgdz  dgdz  z   }t          j        t          j        d¦  «        t          j        d¦  «        f¦  «        }|                     ¦   «         }dD ]Ö}t          | ||r|nd d¬¦  «        \  }}}}t          | ||r|nd d¬¦  «        \  }	}
}}t          | ||r|nd d¬¦  «        \  }}}}t           j                             ||	¦  «         t           j                             ||¦  «         t           j                             ||¦  «         t           j                             ||¦  «         Œ×d S )	Nr]   rO   rM   r×   rI   r	  r   )r,  r`   )rf   rÐ   Úhstackr  rñ  r   rk   rl   )rW   rÙ   rÚ   Úy3r,  ÚX_train1ÚX_test1Úy_train1Úy_test1ÚX_train2ÚX_test2Úy_train2Úy_test2ÚX_train3ÚX_test3Úy_train3Úy_test3s                    rD   Ú test_train_test_split_list_inputrv  ð  sg  € å
Œ�‰
Œ
€AØ
ˆ�‰�c�U˜Q‘YÑ	€BÝ	Œ•B”G˜A‘J”J¥¤¨¡¤Ð,Ñ	-Ô	-€BØ	�Š‰Œ€Bà!ð 2ð 2ˆÝ/?Øˆr (Ð4˜B˜B°À1ð0
ñ 0
ô 0
Ñ,ˆ�'˜8 Wõ 0@Øˆr (Ð4˜B˜B°À1ð0
ñ 0
ô 0
Ñ,ˆ�'˜8 Wõ 0@Øˆr (Ð4˜B˜B°À1ð0
ñ 0
ô 0
Ñ,ˆ�'˜8 Wõ 	Œ
×Ò ¨(Ñ3Ô3Ð3Ý
Œ
×Ò ¨(Ñ3Ô3Ð3Ý
Œ
×Ò ¨Ñ1Ô1Ð1Ý
Œ
×Ò ¨Ñ1Ô1Ð1Ð1ð2ð 2rF   ztest_size, train_size))rº   N)r¹  N)rà   gffffffî?)Ny              ð?)rü   N)rG   N)r^   rI   c                 óÖ   — t          j        t          ¦  «        5  t          t	          | |¬¦  «                             t          ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrš  )rr   rs   rt   r½   r   rV   rW   rš  s     rD   Útest_shufflesplit_errorsrx    sµ   € õ
 
Œ•zÑ	"Ô	"ð Pð PÝ�\ I¸*ÐEÑEÔE×KÒKÍAÑNÔNÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps   š7AÁA"Á%A"c                  óÎ   — t          d¬¦  «        } t          d„ |                      t          ¦  «        D ¦   «         d„ |                      t          ¦  «        D ¦   «         ¦  «         d S )Né   r_   c                 ó   — g | ]\  }}|‘ŒS rò   rò   ©rB   rí  rî  s      rD   ró   z2test_shufflesplit_reproducible.<locals>.<listcomp>  s   € Ð2Ð2Ð2™d˜a ˜Ð2Ð2Ð2rF   c                 ó   — g | ]\  }}|‘ŒS rò   rò   r|  s      rD   ró   z2test_shufflesplit_reproducible.<locals>.<listcomp>  s   € Ð4OÐ4OÐ4O¹4¸1¸a°QÐ4OÐ4OÐ4OrF   )r   r-   rV   rW   )r€   s    rD   Útest_shufflesplit_reproducibler~    s\   € õ 
 2Ð	&Ñ	&Ô	&€BÝÐ2Ð2 b§h¢h­q¡k¤kÐ2Ñ2Ô2Ð4OÐ4OÀ2Ç8Â8ÍAÁ;Ä;Ð4OÑ4OÔ4OÑPÔPÐPÐPÐPrF   c            	      óŽ  — t          dd¬¦  «        } t          j        d¦  «        }dgdz  dgdz  z   }t          j        t          j        d¦  «        t          j        d¦  «        f¦  «        }|                     ¦   «         }t          j                             t          |  	                    ||¦  «        ¦  «        t          |  	                    ||¦  «        ¦  «        ¦  «         t          j                             t          |  	                    ||¦  «        ¦  «        t          |  	                    ||¦  «        ¦  «        ¦  «         d S )	Nr4   r+  r€  r]   rO   rM   r×   rI   )
r   rf   rÐ   rh  r  rñ  rk   rl   rm   rV   )rž  rW   rÙ   rÚ   ri  s        rD   Ú&test_stratifiedshufflesplit_list_inputr€    sö   € å
 ¨1¸2Ð
>Ñ
>Ô
>€CÝ
Œ�‰
Œ
€AØ
ˆ�‰�c�U˜Q‘YÑ	€BÝ	Œ•B”G˜A‘J”J¥¤¨¡¤Ð,Ñ	-Ô	-€BØ	�Š‰Œ€Bå„J×Ò�D §¢¨1¨bÑ!1Ô!1Ñ2Ô2µD¸¿ºÀ1ÀbÑ9IÔ9IÑ4JÔ4JÑKÔKÐKÝ„J×Ò�D §¢¨1¨bÑ!1Ô!1Ñ2Ô2µD¸¿ºÀ1ÀbÑ9IÔ9IÑ4JÔ4JÑKÔKÐKÐKÐKrF   c                  ó  — t          j        dt           j        ¬¦  «                             dd¦  «        } t           j        | dd d …f<   t          j        ddg| j        d         dz  ¦  «        }t          | |dd	¬
¦  «         d S )NéÈ   ©ro   rG   r—   r4   r   r;   rl  r+  r€  )rf   rÀ   Úfloat64rŸ   ró  Úrepeatrò  r   r›  s     rD   Ú test_train_test_split_allow_nansr†  $  sw   € å
Œ	�#�RœZÐ(Ñ(Ô(×0Ò0°°RÑ8Ô8€AÝŒf€A€aˆˆˆ€d�GÝ
Œ	�1�a�&˜!œ' !œ* q™.Ñ)Ô)€AÝ�Q˜ S°rÐ:Ñ:Ô:Ð:Ð:Ð:rF   c            	      óô  — t          j        d¦  «        } t          dd¬¦  «        }t           j                             t          t          d¦  «                             | ¦  «        ¦  «        t          |                     | ¦  «        ¦  «        ¦  «         t          j        g d¢¦  «        }t          d|d¬¦  «        }t           j                             t          t          d¦  «                             | |¦  «        ¦  «        t          |                     | |¦  «        ¦  «        ¦  «         t          j        g d¢¦  «        }t          d|d¬¦  «        }t           j                             t          t          d¦  «                             | |¦  «        ¦  «        t          |                     | |¦  «        ¦  «        ¦  «         | 
                    dd	¦  «        }t          d|d¬¦  «        }t           j                             t          t          d¦  «                             | |¦  «        ¦  «        t          |                     | |¦  «        ¦  «        ¦  «         t          j        t          t          d¦  «                             | |¦  «        ¦  «        d
         t          t          d¦  «                             | |¦  «        ¦  «        d
         k    ¦  «        rJ ‚t          j        d¦  «        } t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }t          d|d¬¦  «        }t           j                             t          t          d¦  «                             | ¦  «        ¦  «        t          |                     | ¦  «        ¦  «        ¦  «         t          j        d	dgd
dgd
d
gdd	gdd
gg¦  «        }t          d|d¬¦  «        }t           j                             t          t          d¦  «                             | ¦  «        ¦  «        t          |                     | ¦  «        ¦  «        ¦  «         d}t          j        t          |¬¦  «        5  t          d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¶   rI   F)Ú
classifier)	r   r;   r   r;   r   r   r;   r;   r;   T)	r   r;   r   r;   r4   r;   r4   r   r4   r—   r;   r   r[   )r   r   r   r   )r   r;   r;   r   )r   r   r   r;   )r;   r;   r   r;   )r   r   r;   r   r4   z6Expected `cv` as an integer, a cross-validation objectrd   r~   rM  )rf   rÐ   r   rk   rl   rm   r   rV   rg   r   rŸ   Úallr½   rr   rs   rt   )rW   r�   Úy_binaryÚy_multiclassÚy_multiclass_2dr¤   Úy_multioutputr‘   s           rD   Útest_check_cvrŽ  ,  s
  € Ý
Œ�‰
Œ
€AÝ	�! Ð	&Ñ	&Ô	&€Bõ „J×Ò�D¥ q¡¤§¢°Ñ!2Ô!2Ñ3Ô3µT¸"¿(º(À1¹+¼+Ñ5FÔ5FÑGÔGÐGåŒxÐ3Ð3Ð3Ñ4Ô4€HÝ	�!�X¨$Ð	/Ñ	/Ô	/€BÝ„J×ÒÝ�_˜QÑÔ×%Ò% a¨Ñ2Ô2Ñ3Ô3µT¸"¿(º(À1ÀhÑ:OÔ:OÑ5PÔ5Pñô ð õ ”8Ð7Ð7Ð7Ñ8Ô8€LÝ	�!�\¨dÐ	3Ñ	3Ô	3€BÝ„J×ÒÝ�_˜QÑÔ×%Ò% a¨Ñ6Ô6Ñ7Ô7½¸b¿hºhÀqÈ,Ñ>WÔ>WÑ9XÔ9Xñô ð ð #×*Ò*¨2¨qÑ1Ô1€OÝ	�!�_°Ð	6Ñ	6Ô	6€BÝ„J×ÒÝ�_˜QÑÔ×%Ò% a¨Ñ9Ô9Ñ:Ô:ÝˆR�XŠX�a˜Ñ)Ô)Ñ*Ô*ñô ð õ
 ŒvÝ�_˜QÑÔ×%Ò% a¨Ñ9Ô9Ñ:Ô:¸1Ô=Ý•�a‘”—’˜q /Ñ2Ô2Ñ3Ô3°AÔ6ò	7ñô ð ð ð õ
 	Œ�‰
Œ
€AÝ”8Ø	ˆˆ�|�|�| \ \ \°<°<°<ÀÀÀÐNñô €Lõ 
�!�\¨dÐ	3Ñ	3Ô	3€BÝ„J×Ò�D¥ q¡¤§¢°Ñ!2Ô!2Ñ3Ô3µT¸"¿(º(À1¹+¼+Ñ5FÔ5FÑGÔGÐGå”H˜q !˜f q¨! f¨q°!¨f°q¸!°f¸qÀ!¸fÐEÑFÔF€MÝ	�!�]¨tÐ	4Ñ	4Ô	4€BÝ„J×Ò�D¥ q¡¤§¢°Ñ!2Ô!2Ñ3Ô3µT¸"¿(º(À1¹+¼+Ñ5FÔ5FÑGÔGÐGà
B€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ý�FÐÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÑQ-Ñ-Q1Ñ4Q1c            	      ó   — t          ¦   «                              t          t          ¦  «        } t	          | ¦  «        }t
          j                             t          |                     t          t          ¦  «        ¦  «        t          |                     t          t          ¦  «        ¦  «        ¦  «         t          dd¬¦  «                             t          t          ¦  «        }t	          |¦  «        }t
          j                             t          |                     t          t          ¦  «        ¦  «        t          |                     t          t          ¦  «        ¦  «        ¦  «         	 d}t
          j                             t          |                     t          t          ¦  «        ¦  «        t          |                     t          t          ¦  «        ¦  «        ¦  «         n# t          $ r d}Y nw xY w|r
J d¦   «         ‚d S )NTr   r  FzVIf the splits are randomized, successive calls to split should yield different results)
r   rV   rW   rX   r   rf   rk   rl   rm   r!  )Úkf_iterÚkf_iter_wrappedÚkf_randomized_iterÚkf_randomized_iter_wrappedÚsplits_are_equals        rD   Útest_cv_iterable_wrapperr•  [  s±  € Ý‰gŒg�mŠm�A�qÑ!Ô!€GÝ˜wÑ'Ô'€Oõ „J×ÒÝˆ_×"Ò"¥1¥aÑ(Ô(Ñ)Ô)­4°×0EÒ0EÅaÍÑ0KÔ0KÑ+LÔ+Lñô ð õ
  t¸!Ð<Ñ<Ô<×BÒBÅ1ÅaÑHÔHÐÝ!)Ð*<Ñ!=Ô!=Ðå„J×ÒÝÐ'×-Ò-­aµÑ3Ô3Ñ4Ô4ÝÐ'×-Ò-­aµÑ3Ô3Ñ4Ô4ñô ð ð
!ØÐÝ
Œ
×ÒÝ�×&Ò&¥q­!Ñ,Ô,Ñ-Ô-ÝÐ+×1Ò1µ!µQÑ7Ô7Ñ8Ô8ñ	
ô 	
ð 	
ð 	
øõ ð !ð !ð !Ø ÐÐÐð!øøøàð ð ð	Cñô Ðð ð s   Å'A8G  Ç G/Ç.G/c           	      óX
  — t           j                             |¦  «        }d}d}d}t          j        |¦  «        x}}d|z  }	|                     d||¦  «        }
||z  }t          t          j        |
¦  «        ¦  «         t          j        |¦  «        }|sd n|} | |||¬¦  «        }t          | 	                    |||
¦  «        ¦  «        D ]\  }\  }}|||<   Œt          |¦  «        t          |
¦  «        k    sJ ‚t          j        |¦  «        D ]+}|	t          t          ||k    ¦  «        |z
  ¦  «        k    sJ ‚Œ,t          j        |
¦  «        D ]3}t          t          j        ||
|k             ¦  «        ¦  «        dk    sJ ‚Œ4t          j        |
t          ¬¦  «        }
| 	                    |||
¦  «        D ]9\  }}t          t          j        |
|         |
|         ¦  «        ¦  «        dk    sJ ‚Œ:t          j        g d	¢¦  «        }
t          t          j        |
¦  «        ¦  «        }t          |
¦  «        }d}d|z  }	||z  }t          j        |¦  «        x}}t          j        |¦  «        }t          | 	                    |||
¦  «        ¦  «        D ]\  }\  }}|||<   Œt          |¦  «        t          |
¦  «        k    sJ ‚|s@t          j        |¦  «        D ]+}|	t          t          ||k    ¦  «        |z
  ¦  «        k    sJ ‚Œ,t!          j        ¦   «         5  t!          j        d
t&          ¦  «         t          j        |
¦  «        D ]3}t          t          j        ||
|k             ¦  «        ¦  «        dk    sJ ‚Œ4	 d d d ¦  «         n# 1 swxY w Y   t          j        |
t          ¬¦  «        }
| 	                    |||
¦  «        D ]9\  }}t          t          j        |
|         |
|         ¦  «        ¦  «        dk    sJ ‚Œ: | |||¬¦  «        }t)          | 	                    |||
                     ¦   «         ¦  «        ¦  «        }t-          | 	                    |||
¦  «        |¦  «        D ]+\  \  }}\  }}t/          ||¦  «         t/          ||¦  «         Œ,t          j        g d¢¦  «        }
t          j        t          |
¦  «        ¦  «        x}}t1          j        t4          d¬¦  «        5  t7           | d¬¦  «         	                    |||
¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr  rß   r[   r¯  r   rd  r;   rƒ  )&ÚAlbertÚJeanÚBertrandÚMichelr˜  ÚFrancisÚRobertrš  ÚRachelÚLoisÚMichelleÚBernardÚMarionÚLaurar˜  r�  ÚFranckÚJohnÚGaelÚAnnaÚAlixrœ  r¡  ÚDavidÚTonyÚAbelÚBeckyÚMadmoodÚCaryÚMaryÚ	Alexandrer¨  r›  ÚBarackÚAbdoulÚRashaÚXiÚSilviar·   )r;   r;   r;   r4   r4   z%Cannot have number of splits.*greaterrd   rI   r˜   )rf   rœ   r�   rÐ   rž   rÁ   r§  r  rh   rV   rã  r  rn   Úobjectr  rg   rÂ   rÃ   rÄ   ÚFutureWarningrm   rñ  ri   r-   rr   rs   rt   r½   )rÝ   r¼   Úglobal_random_seedr¢   r=   ru   rw   rW   rX   Ú	tolerancerT   Úideal_n_groups_per_foldr×  r`   Úlkfrc   r  r�   Úgroupr�   Úlkf_copyÚcv_iterÚtrain1r8  Útrain2Útest2s                             rD   Útest_group_kfoldrÁ  |  sØ  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€Cð €HØ€IØ€HåŒG�IÑÔÐ€Aˆð �yÑ €IØ�[Š[˜˜H iÑ0Ô0€Fà'¨8Ñ3Ðå�Œ	�&ÑÔÑÔÐåŒH�YÑÔ€EØ&Ð>�4�4Ð,>€LØ
ˆ%˜¨7ÀÐ
NÑ
NÔ
N€CÝ! #§)¢)¨A¨q°&Ñ"9Ô"9Ñ:Ô:ð ð ‰ˆ‰9ˆAˆtØˆˆd‰ˆõ ˆu‰:Œ:�˜V™œÒ$Ð$Ð$Ð$ÝŒY�uÑÔð Kð KˆØ�C¥ E¨Q¢J¡¤Ð2IÑ IÑJÔJÒJÐJÐJÐJÐJõ ”˜6Ñ"Ô"ð ;ð ;ˆÝ•2”9˜U 6¨U¢?Ô3Ñ4Ô4Ñ5Ô5¸Ò:Ð:Ð:Ð:Ð:õ ŒZ˜¥fÐ-Ñ-Ô-€FØ—y’y  A vÑ.Ô.ð Eð E‰ˆˆtÝ•2”> &¨¤-°¸´Ñ>Ô>Ñ?Ô?À1ÒDÐDÐDÐDÐDõ ŒXð'	
ð '	
ð '	
ñ)ô )€FõV •2”9˜VÑ$Ô$Ñ%Ô%€HÝ�F‘”€IØ€HØ�yÑ €IØ'¨8Ñ3ÐåŒG�IÑÔÐ€Aˆõ ŒH�YÑÔ€EÝ! #§)¢)¨A¨q°&Ñ"9Ô"9Ñ:Ô:ð ð ‰ˆ‰9ˆAˆtØˆˆd‰ˆõ ˆu‰:Œ:�˜V™œÒ$Ð$Ð$Ð$Øð OÝ”˜5Ñ!Ô!ð 	Oð 	OˆAØ¥¥C¨°ª
¡O¤OÐ6MÑ$MÑ NÔ NÒNÐNÐNÐNÐNõ 
Ô	 Ñ	"Ô	"ð ?ð ?ÝÔ˜h­Ñ6Ô6Ð6Ý”Y˜vÑ&Ô&ð 	?ð 	?ˆEÝ•r”y  v°¢Ô!7Ñ8Ô8Ñ9Ô9¸QÒ>Ð>Ð>Ð>Ð>ð	?ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ ŒZ˜¥fÐ-Ñ-Ô-€FØ—y’y  A vÑ.Ô.ð Eð E‰ˆˆtÝ•2”> &¨¤-°¸´Ñ>Ô>Ñ?Ô?À1ÒDÐDÐDÐDÐDð ˆu˜h°ÀlÐSÑSÔS€HÝ�3—9’9˜Q  6§=¢=¡?¤?Ñ3Ô3Ñ4Ô4€GÝ,/°·²¸qÀ!ÀVÑ0LÔ0LÈgÑ,VÔ,Vð )ð )Ñ(‰ˆ�™˜& %Ý˜6 6Ñ*Ô*Ð*Ý˜5 %Ñ(Ô(Ð(Ð(õ ŒX�o�o�oÑ&Ô&€FÝŒG•C˜‘K”KÑ Ô Ð €AˆÝ	Œ•zÐ)PÐ	QÑ	QÔ	Qð 4ð 4ÝˆUˆU˜AÐÑÔ×$Ò$ Q¨¨6Ñ2Ô2Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s%   ÌA#NÎNÎ
NÓ#/TÔT#Ô&T#c                  ó  — ddgddgddgddgd	d
gddgddgg} t          j        t          d¬¦  «        5  t          t	          d¬¦  «                             | ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          d¦  «        }|                     | d d…         ¦  «        }t          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t	          d¦  «                             | ¦  «        }t          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t	          d¦  «                             | ¦  «        }t          t          |¦  «        ¦  «        }|| 	                    ¦   «         k    sJ ‚|dk    sJ ‚d S )Nr;   r4   rI   rM   r[   r\   r]   r^   r¶   rG   rü   rV  é   r  z$Cannot have number of folds.*greaterrd   r˜   r—   r   rÉ  rÓ   ©r   r;   r4   rI   rM   )
rr   rs   rt   r½   r   rV   r-   rÁ   rm   rj   )rW   ÚtscvrÔ   r�   r�   r¾  s         rD   Útest_time_series_cvrÆ  ý  sK  € Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨R¨°2°r°(¸RÀ¸HÐE€Aõ 
Œ•zÐ)OÐ	PÑ	PÔ	Pð 3ð 3Ý�_ aÐ(Ñ(Ô(×.Ò.¨qÑ1Ô1Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ ˜1ÑÔ€Dð �ZŠZ˜˜#˜2˜#œÑÔ€FÝ�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜a ˜VÑ$Ô$Ð$å˜QÑÔ×%Ò% aÑ(Ô(€Få�v‘,”,�K€Eˆ4Ý�u˜i˜i˜iÑ(Ô(Ð(Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜o˜o˜oÑ.Ô.Ð.Ý�t˜a ˜VÑ$Ô$Ð$õ ˜QÑÔ×%Ò% aÑ(Ô(€FÝ�$˜v™,œ,Ñ'Ô'€OØ˜d×/Ò/Ñ1Ô1Ò1Ð1Ð1Ð1Ø˜aÒÐÐÐÐÐs   ³1A0Á0A4Á7A4c                 óø   — t          | |¦  «        D ]h\  \  }}\  }}t          ||¦  «         t          |¦  «        |k    sJ ‚t          t          |¦  «        |z
  d¦  «        }t          |||d …         ¦  «         Œid S )Nr   )ri   r-   rÁ   r  )rÔ   Úcheck_splitsÚmax_train_sizer�   r�   Úcheck_trainÚ
check_testÚsuffix_starts           rD   Ú!_check_time_series_max_train_sizerÍ  "  s’   € Ý47¸ÀÑ4MÔ4Mð >ð >Ñ0‰ˆ�Ñ0˜ ZÝ˜4 Ñ,Ô,Ð,Ý�;ÑÔ >Ò1Ð1Ð1Ð1Ý�3˜u™:œ:¨Ñ6¸Ñ:Ô:ˆÝ˜;¨¨l¨m¨mÔ(<Ñ=Ô=Ð=Ð=ð	>ð >rF   c                  ó¸  — t          j        d¦  «        } t          d¬¦  «                             | ¦  «        }t          dd¬¦  «                             | ¦  «        }t	          ||d¬¦  «         t          dd¬¦  «                             | ¦  «        }t	          ||d¬¦  «         t          dd¬¦  «                             | ¦  «        }t	          ||d¬¦  «         d S )N)r\   r;   rI   r˜   )rw   rÉ  )rÉ  r4   r[   )rf   r  r   rV   rÍ  )rW   rÔ   rÈ  s      rD   Útest_time_series_max_train_sizerÏ  *  sØ   € Ý
Œ�ÑÔ€AÝ aÐ(Ñ(Ô(×.Ò.¨qÑ1Ô1€FÝ"¨A¸aÐ@Ñ@Ô@×FÒFÀqÑIÔI€LÝ% f¨lÈ1ÐMÑMÔMÐMõ #¨A¸aÐ@Ñ@Ô@×FÒFÀqÑIÔI€LÝ% f¨lÈ1ÐMÑMÔMÐMõ #¨A¸aÐ@Ñ@Ô@×FÒFÀqÑIÔI€LÝ% f¨lÈ1ÐMÑMÔMÐMÐMÐMrF   c                  ó¨  — t          j        d¦  «        } t          dd¬¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |dg¦  «         t          |g d¢¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |g d	¢¦  «         t          d
d
d¬¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t          j        t          d¬¦  «        5  t          dd
¬¦  «                             | ¦  «        }t	          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rG   r;   rI   )rw   r9   r   )r;   r4   rI   rÉ  ©rM   r[   r\   )r   r;   r4   rI   rM   r[   r\   ©r]   r^   r¶   r4   rM   )rw   r9   rÉ  r  r\   r]   )rM   r[   r\   r]   r^   r¶   zToo many splits.*with test_sizerd   r[   ©	rf   r  r   rV   r½   r-   rr   rs   rt   ©rW   rÔ   r�   r�   s       rD   Útest_time_series_test_sizerÖ  9  s  € Ý
Œ�ÑÔ€Aõ  a°1Ð5Ñ5Ô5×;Ò;¸AÑ>Ô>€Få�v‘,”,�K€Eˆ4Ý�u˜q˜cÑ"Ô"Ð"Ý�t˜Y˜Y˜YÑ'Ô'Ð'å�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜Y˜Y˜YÑ'Ô'Ð'å�v‘,”,�K€Eˆ4Ý�uÐ3Ð3Ð3Ñ4Ô4Ð4Ý�t˜Y˜Y˜YÑ'Ô'Ð'õ  a°1ÀQÐGÑGÔG×MÒMÈaÑPÔP€Få�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜a ˜VÑ$Ô$Ð$õ 
Œ•zÐ)JÐ	KÑ	KÔ	Kð ð Ý ¨!°qÐ9Ñ9Ô9×?Ò?ÀÑBÔBˆÝˆV‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Æ4GÇGÇGc                  óð  — t          j        d¦  «        } t          dd¬¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |ddg¦  «         t          |g d¢¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          d	dd¬
¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t	          |¦  «        \  }}t          |dd	g¦  «         t          |ddg¦  «         t	          |¦  «        \  }}t          |ddg¦  «         t          |ddg¦  «         t          dddd¬¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |ddg¦  «         t          ddd	¬¦  «                             | ¦  «        }t	          |¦  «        \  }}t          |ddg¦  «         t          |g d¢¦  «         t	          |¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          j        t          d¬¦  «        5  t          dd¬¦  «                             | ¦  «        }t	          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÑ  r4   )rw   Úgapr   r;   rÒ  rÄ  rÓ  rI   )rw   rØ  rÉ  rM   r[   r\   r]   r^   r¶   )rw   rØ  rÉ  r9   rÉ  r  )rw   rØ  r9   zToo many splits.*and gaprd   rÔ  rÕ  s       rD   Útest_time_series_gaprÙ  \  s8  € Ý
Œ�ÑÔ€Aõ  a¨QÐ/Ñ/Ô/×5Ò5°aÑ8Ô8€Få�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜Y˜Y˜YÑ'Ô'Ð'å�v‘,”,�K€Eˆ4Ý�u˜o˜o˜oÑ.Ô.Ð.Ý�t˜Y˜Y˜YÑ'Ô'Ð'õ  a¨Q¸qÐAÑAÔA×GÒGÈÑJÔJ€Få�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜a ˜VÑ$Ô$Ð$õ  a¨Q¸qÈAÐNÑNÔN×TÒTÐUVÑWÔW€Få�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜a ˜VÑ$Ô$Ð$å�v‘,”,�K€Eˆ4Ý�u˜l˜l˜lÑ+Ô+Ð+Ý�t˜a ˜VÑ$Ô$Ð$õ  a¨Q¸!Ð<Ñ<Ô<×BÒBÀ1ÑEÔE€Få�v‘,”,�K€Eˆ4Ý�u˜q !˜fÑ%Ô%Ð%Ý�t˜Y˜Y˜YÑ'Ô'Ð'å�v‘,”,�K€Eˆ4Ý�u˜o˜o˜oÑ.Ô.Ð.Ý�t˜Y˜Y˜YÑ'Ô'Ð'õ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ý ¨!°Ð3Ñ3Ô3×9Ò9¸!Ñ<Ô<ˆÝˆV‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ê*4K+Ë+K/Ë2K/c            
      ó  — t           j                             d¦  «        } t          ddd¬¦  «        \  }}|                      ddd¦  «        }t          ¦   «         t          d¬¦  «        t          ¦   «         t          d¬¦  «        t          ¦   «         t          d¬¦  «        t          dd¬¦  «        g}t          |d¦  «        D ]?\  }}t          t          ¦   «         d	d
dgi|d¬¦  «        }t          |||||d|i¬¦  «         Œ@d S )Nr   r  r4   )ru   Ú	n_classesr`   r[   r˜   rI   )rw   r`   ÚstrategyÚ
stratifiedÚmost_frequentÚraise)Ú
param_gridr�   Úerror_scorerT   )rW   rX   rT   r�   Úparams)rf   rœ   r�   r   rž   r   r   r   r   r   r   r   r   r   r   )r¢   rW   rX   rT   ÚcvsÚinner_cvÚouter_cvÚgss           rD   Útest_nested_cvrç  •  s,  € õ Œ)×
Ò
 Ñ
"Ô
"€Cå¨°qÀqÐIÑIÔI�D€A€qØ�[Š[˜˜A˜rÑ"Ô"€Fõ 	ÑÔÝ Ð#Ñ#Ô#Ý‰ŒÝ˜AÐÑÔÝÑÔÝ aÐ(Ñ(Ô(Ý¨¸Ð:Ñ:Ô:ð€Cõ <¸CÀÑCÔCð 	
ð 	
Ñˆ�(ÝÝÑÔØ" \°?Ð$CÐDØØð	
ñ 
ô 
ˆõ 	Ø�!�q ¨H¸hÈÐ=Oð	
ñ 	
ô 	
ð 	
ð 	
ð	
ð 	
rF   c                  ó^   —  G d„ d¦  «        } t           | dd¦  «        ¦  «        dk    sJ ‚d S )Nc                   ó   — e Zd Zdd„Zd„ ZdS )ú%test_build_repr.<locals>.MockSplitterr   Nc                 ó0   — || _         || _        || _        d S r?   )rí  rî  rï  )Úselfrí  rî  rï  s       rD   Ú__init__z.test_build_repr.<locals>.MockSplitter.__init__µ  s   € ØˆDŒFØˆDŒFØˆDŒFˆFˆFrF   c                 ó    — t          | ¦  «        S r?   )r    )rì  s    rD   Ú__repr__z.test_build_repr.<locals>.MockSplitter.__repr__º  s   € Ý˜tÑ$Ô$Ð$rF   )r   N)rA   Ú
__module__Ú__qualname__rí  rï  rò   rF   rD   ÚMockSplitterrê  ´  s7   € € € € € ð	ð 	ð 	ð 	ð
	%ð 	%ð 	%ð 	%ð 	%rF   rò  r[   r\   zMockSplitter(a=5, b=6, c=None))rq   )rò  s    rD   Útest_build_reprró  ³  sX   € ð%ð %ð %ð %ð %ñ %ô %ð %õ ��˜Q Ñ"Ô"Ñ#Ô#Ð'GÒGÐGÐGÐGÐGÐGrF   Ú
CVSplitterc           	      óÖ   —  | d¬¦  «        }dggdg}}t          j        t          d¬¦  «        5  t          t	          |||dg¬¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT  r8   r;   r   ú[With n_samples=1, test_size=0.99 and train_size=None, the resulting train set will be emptyrd   rS   )rr   rs   rt   r½   rY   )rô  r�   rW   rX   s       rD   Ú!test_shuffle_split_empty_trainsetr÷  À  sË   € ð 
ˆ˜dÐ	#Ñ	#Ô	#€BØˆCˆ5�1�#€q€AÝ	ŒÝð4ð
ñ 
ô 
ð +ð +õ 	�V�B˜˜1 a SÐ)Ñ)Ô)Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   ¯"AÁA"Á%A"c                  ó4  — dgg\  } t          j        t          d¬¦  «        5  t          | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   dgdgdgg} t          j        t          d¬¦  «        5  t          | d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   rö  rd   rT  r8   z[With n_samples=3, test_size=0.67 and train_size=None, the resulting train set will be emptygq=
×£på?)rr   rs   rt   r   rý   s    rD   Ú$test_train_test_split_empty_trainsetrù  Ð  sA  € ØˆCˆ5�D€QÝ	ŒÝð4ð
ñ 
ô 
ð ,ð ,õ 	˜ dÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ˆˆqˆc�A�3ˆ€AÝ	ŒÝð4ð
ñ 
ô 
ð ,ð ,õ 	˜ dÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s#   ¢A Á AÁAÁ.BÂBÂBc                  óÞ   — t          ¦   «         } dggdg}}t          j        t          d¬¦  «        5  t	          |                      ||¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   r   z+Cannot perform LeaveOneOut with n_samples=1rd   )r   rr   rs   rt   r½   rV   ©r�   rW   rX   s      rD   Ú!test_leave_one_out_empty_trainsetrü  æ  s®   € å	‰Œ€BØˆCˆ5�1�#€q€AÝ	Œ•zÐ)VÐ	WÑ	WÔ	Wð ð ÝˆR�XŠX�a˜‰^Œ^ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ±$A"Á"A&Á)A&c                  óè   — t          d¬¦  «        } dgdggddg}}t          j        t          d¬¦  «        5  t	          |                      ||¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr4   r5   r;   r   rI   z6p=2 must be strictly less than the number of samples=2rd   )r   rr   rs   rt   r½   rV   rû  s      rD   Útest_leave_p_out_empty_trainsetrþ  î  sÁ   € å	�Qˆ‰Œ€BØˆC�!�ˆ:˜˜1�v€q€AÝ	ŒÝÐRð
ñ 
ô 
ð ð õ 	ˆR�XŠX�a˜‰^Œ^ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¶$A'Á'A+Á.A+ÚKlassc                 óŠ   — t          j        t          d¬¦  «        5   | ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz$has no effect since shuffle is Falserd   rI   Fr   r  )rr   rs   rt   )rÿ  s    rD   Útest_random_state_shuffle_falser  ø  s•   € õ
 
Œ•zÐ)OÐ	PÑ	PÔ	Pð 0ð 0Øˆˆa˜¨QÐ/Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   œ8¸<¿<zcv, expectedé{   r  r_   c                 ó0   — t          | ¦  «        |k    sJ ‚d S r?   )r"   )r�   rZ  s     rD   Útest_yields_constant_splitsr    s$   € õL # 2Ñ&Ô&¨(Ò2Ð2Ð2Ð2Ð2Ð2rF   r�   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rò   ©r¡   ©rB   r�   s     rD   ró   ró   *  ó   € Ð2SÐ2SÐ2S¸rµ3°r±7´7Ð2SÐ2SÐ2SrF   )rÀ  c                 óä   — t          | d¦  «        sJ ‚|                      ¦   «         }| t          v r|j        j        d         du sJ ‚n| t
          v r|j        j        rJ ‚t          |dg¬¦  «         dS )z>Check get_metadata_routing returns the correct MetadataRouter.Úget_metadata_routingrT   TrV   )ÚexcludeN)Úhasattrr
  ÚGROUP_SPLITTERSrV   ÚrequestsÚNO_GROUP_SPLITTERSr$   )r�   Úmetadatas     rD   Ú"test_splitter_get_metadata_routingr  *  s�   € õ �2Ð-Ñ.Ô.Ð.Ð.Ð.Ø×&Ò&Ñ(Ô(€HØ	�_ÐÐØŒ~Ô& xÔ0°DÐ8Ð8Ð8Ð8Ð8Ø	Õ!Ð	!Ð	!Ø”>Ô*Ð*Ð*Ð*å˜H¨w¨iÐ8Ñ8Ô8Ð8Ð8Ð8rF   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rò   r  r  s     rD   ró   ró   7  r  rF   c                 óz   — | t           v rt          | d¦  «        sJ ‚dS | t          v rt          | d¦  «        rJ ‚dS dS )zJCheck set_split_request is defined for group splitters and not for others.Úset_split_requestN)r  r  r  rM  s    rD   Útest_splitter_set_split_requestr  7  s]   € ð 
�_ÐÐÝ�rÐ.Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ø	Õ!Ð	!Ð	!Ý˜2Ð2Ñ3Ô3Ð3Ð3Ð3ð 
"Ð	!Ø3Ð3rF   c                 ó–  — d| j         j        › �}d}t          j                             d¦  «        }|                     dd|df¬¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }t          j        t          |¬¦  «        5  |  	                    |||¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nz#The groups parameter is ignored by r”   r;   r   rI   r4   r•   rd   rS   )
r@   rA   rf   rœ   r�   rž   rr   r¾   ÚUserWarningrV   )r�   r‘   ru   r¢   rW   rX   rT   s          rD   Ú)test_no_group_splitters_warns_with_groupsr  @  s  € à
G°´Ô0EÐ
GÐ
G€Cà€IÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�A�q 	¨1˜~ˆÑ.Ô.€AØ�Š�A�q 	˜|ˆÑ,Ô,€AØ�[Š[˜˜A Y Lˆ[Ñ1Ô1€Få	Œ•k¨Ð	-Ñ	-Ô	-ð &ð &Ø
�Š��A˜fˆÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ÂB>Â>CÃCc                 ó,   — g | ]}t          |¦  «        ‘ŒS rò   r  r  s     rD   ró   ró   O  s   € Ð*XÐ*XÐ*X°r­3¨r©7¬7Ð*XÐ*XÐ*XrF   c                 ó¦   — d}t          j        t          |¬¦  «        5  |                      t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz+missing 1 required positional argument: 'y'rd   )rr   rs   rÅ   rV   rW   )r�   r‘   s     rD   Ú"test_stratified_splitter_without_yr  N  s‘   € ð 8€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø
�Š•‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   žAÁA
ÁA
r?   )­Ú__doc__r  rÂ   Ú	itertoolsr   r   r   Únumpyrf   rr   Úscipyr   Úscipy.sparser   Úscipy.specialr   Úsklearnr	   Úsklearn.datasetsr
   r   Úsklearn.dummyr   Úsklearn.model_selectionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úsklearn.model_selection._splitr    r!   r"   Úsklearn.svmr#   Ú%sklearn.tests.metadata_routing_commonr$   Úsklearn.utils._array_apir&   r7  r'   r(   r)   Úsklearn.utils._mockingr*   Úsklearn.utils._testingr+   r,   r-   r.   Úsklearn.utils.estimator_checksr/   Úsklearn.utils.fixesr0   r1   r2   Úsklearn.utils.validationr3   r  r  rª   rU   ÚALL_SPLITTERSÚSPLITTERS_REQUIRING_TARGETrÐ   rW   rÀ   rX   rg   rà  rO  ÚmarkÚfilterwarningsÚ
pytestmarkrY   r’   r¨   r®   r´   rÌ   rÑ   rÕ   rÛ   Úparametrizerí   rú   r  r  r  r'  r;  rI  rT  rW  r]  rn   ra  rh  r~  rŠ  r–  r˜  rœ  rŸ  r¬  rÇ  rË  rÐ  rÔ  rÞ  rë  rû  r  r  r  r  r  r  r"  r%  r'  r.  r0  rh  r  rH  rR  rV  r^  rb  rf  rv  rx  r~  r€  r†  rŽ  r•  rÁ  rÆ  rÍ  rÏ  rÖ  rÙ  rç  ró  r÷  rù  rü  rþ  r  rœ   r�   r  r  r  r¡   r  r  rò   rF   rD   ú<module>r5     s=  ðØ Ð à 	€	€	€	Ø €€€Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oà Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð*ð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð Ø IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 1Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ð 
€E�G„GØ€OÑÔØ€OÑÔØ€K�M„MØ€I�€N�N„NØ€L�N„NØÐ SÐ)Ñ)Ô)Ø€O�L�L�LÑ!Ô!Ø€M�O„OØÐÑÔðÐ ð €J�L„LØ€O˜QÐÑÔØÐÑÔØÐÑÔØÐÑÔð€ð �sÐWÐWÀÐWÑWÔWÑWÔWÐ à" _Ñ4€ð €OÑÔØÐÑÔØÐÑÔðÐ ð €B„GˆB�K„K€Ø€B„Iˆb�M„M�QÑ€à€B„HÐ1Ð1Ð1Ñ2Ô2Ø€B„HÐ1Ð1Ð1Ñ2Ô2Ø€B„HÐ:Ð:Ð:Ñ;Ô;Ø€B„HÐ=Ð=Ð=Ñ>Ô>Ø(Ð(Ð(Ø@Ð@Ð@ð€ð 
ˆ‰Œ€àŒ[×'Ò'Ø6ñô €
ð
$ð $ð $ðR*ð R*ð R*ðj$!ð $!ð $!ðN	:ð 	:ð 	:ð 	:ð?ð ?ð ?ð$F(ð F(ð F(ðR*ð *ð *ð )ð )ð )ð.(ð (ð (ðV „×Ò˜ U¨D MÑ2Ô2Ø„×Ò˜Ð4Ð4Ð4Ñ5Ô5Ø„×Ò˜ ?Ð4HÐ"IÑJÔJð#ð #ñ KÔJñ 6Ô5ñ 3Ô2ð#ð0 „×Ò˜ U¨D MÑ2Ô2Ø„×Ò˜˜i˜i˜iÑ(Ô(Ø„×Ò˜ ?Ð4HÐ"IÑJÔJð*ð *ñ KÔJñ )Ô(ñ 3Ô2ð*ð>"ð "ð "ð „×Ò˜ ?Ð4HÐ"IÑJÔJð&ð &ñ KÔJð&ð&!ð !ð !ð. „×Ò˜ 5¨/Ð;OÐ"PÑQÔQð>ð >ñ RÔQð>ð>"ð "ð "ð.?ð ?ð ?ð0)ð )ð )ðX#ð #ð #ð$#ð #ð #ð$ „×ÒØð ˆBŒH�a�S˜1‘W ˜s Q™wÑ&Ñ'Ô'ØˆBŒHÐ9Ð9Ð9Ñ:Ô:ØˆBŒJ˜˜c˜
 S¨# J°°c°
Ð;Ñ<Ô<ð	
ð ˆBŒH�a�S˜1‘W ˜s Q™wÑ&Ñ'Ô'ØˆBŒHÐ9Ð9Ð9Ñ:Ô:ØˆBŒJ˜˜t˜ t¨T l°T¸4°LÐAÑBÔBð	
ðñô ð=ð =ñô ð=ð'ð 'ð 'ð> „×Ò˜Ð&VÐ&VÐ&VÑWÔWØ„×Ò˜ [ [ [Ñ1Ô1ð!ð !ñ 2Ô1ñ XÔWð!ð6)ð )ð )ð „×Ò˜¨Ð7MÐ(NÑOÔOØ„×ÒØ%Ð'MÐ'MÐ'Mñô ð	#ð 	#ñô ñ PÔOð	#ð „×ÒØ%Ð'MÐ'MÐ'Mñô ð
#ð 
#ñô ð
#ð>ð >ð >ð2	&ð 	&ð 	&ð"@ð "@ð "@ðJ15ð 15ð 15ðhCð Cð Cð"7ð 7ð 7ð23ð 3ð 3ð.)ð )ð )ð""ð "ð "ðJ4.ð 4.ð 4.ðnGð Gð Gð,0ð 0ð 0ð( >ð  >ð  >ðFð ð ð „×Ò˜¨Ð7NÐ'OÑPÔPð1ð 1ñ QÔPð1ðð ð ð:3ð 3ð 3ð4ð 4ð 4ðð ð ð<@ð @ð @ð8 „×ÒØ%Ð'MÐ'MÐ'Mñô ð#ð #ñô ð#ð „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒØàØ	ˆyˆrŒy˜'˜"œ' !™*œ* h b¤h¨q¡k¤kÐ2Ñ3Ô3Ð4àð	ñô ð3ð 3ñô ñ	ô ð3ðl „×Ò˜¨.Ñ9Ô9ð,<ð ,<ñ :Ô9ð,<ð^4ð 4ð 4ð.4ð 4ð 4ð" „×ÒØ˜¨Ñ7¸.ÑHñô ð7ð 7ñô ð7ð5ð 5ð 5ð2ð 2ð 2ð0 „×ÒØØWÐWÐWñô ðPð Pñ	ô ðPð
Qð Qð Qð	Lð 	Lð 	Lð;ð ;ð ;ð,ð ,ð ,ð^ð ð ðB „×Ò˜ :Ð/CÐ"DÑEÔEØ„×Ò˜ T¨5 MÑ2Ô2ð|4ð |4ñ 3Ô2ñ FÔEð|4ð~" ð " ð " ðJ>ð >ð >ðNð Nð Nð ð  ð  ðF6ð 6ð 6ðr ð
ð 
ñ „ð
ð:
Hð 
Hð 
Hð „×ÒØ�<Ð!2Ð4JÐKñô ð
+ð 
+ñô ð
+ð,ð ,ð ,ð,ð ð ðð ð ð „×ÒØˆe�_Ð&:¸JÐGñô ð0ð 0ñô ð0ð „×ÒØð!Ø	ˆ‰Œ�$ˆð!à	ˆ�t¨#Ð	.Ñ	.Ô	.°Ð5ð!ð 
ˆÑ	Ô	˜DÐ!ð!ð 
ˆ °CÐ	8Ñ	8Ô	8¸$Ð?ð	!ð
 
Ð	 d¸Ð	=Ñ	=Ô	=¸tÐDð!ð 
Ð	Ñ	Ô	 Ð&ð!ð 
ˆ CÐ	(Ñ	(Ô	(¨$Ð/ð!ð 
!Ð	 ¨cÐ	2Ñ	2Ô	2°DÐ9ð!ð 
ˆ 3Ð	'Ñ	'Ô	'¨Ð.ð!ð 
Ð	¨Ð	,Ñ	,Ô	,¨dÐ3ð!ð 
 Ð	¨SÐ	1Ñ	1Ô	1°4Ð8ð!ð 
ˆ‰Œ�tÐð!ð 
ˆ˜D¨sÐ	3Ñ	3Ô	3°TÐ:ð!ð 
ˆÑ	Ô	˜DÐ!ð!ð 
ˆ‰Œ˜Ðð!ð  
Ð	Ñ	Ô	˜TÐ"ð!!ð" 
ˆ !Ð	$Ñ	$Ô	$ dÐ+ð#!ð$ 
ˆ�Qˆ‰Œ˜Ðð%!ð& 
ˆ�t¨$Ð	/Ñ	/Ô	/°Ð7ð'!ð( 
ˆ�t¨$Ð	/Ñ	/Ô	/°Ð7ð)!ð* 
ˆ °B´I×4IÒ4IÈ!Ñ4LÔ4LÐ	MÑ	MÔ	MÈuÐUð+!ð, 
ˆ °B´I×4IÒ4IÈ!Ñ4LÔ4LÐ	MÑ	MÔ	MÈuÐUð-!ð. 
ˆ DÐ	)Ñ	)Ô	)¨5Ð1ð/!ð0 
ˆ B¤I×$9Ò$9¸!Ñ$<Ô$<Ð	=Ñ	=Ô	=¸uÐEð1!ð2 
!Ð	 ¨dÐ	3Ñ	3Ô	3°UÐ;ð3!ð4 
!Ð	 ¨b¬i×.CÒ.CÀAÑ.FÔ.FÐ	GÑ	GÔ	GÈÐOð5!ð6 
ˆ 4Ð	(Ñ	(Ô	(¨%Ð0ð7!ð8 
ˆ 2¤9×#8Ò#8¸Ñ#;Ô#;Ð	<Ñ	<Ô	<¸eÐDð9!ð: 
Ð	¨Ð	-Ñ	-Ô	-¨uÐ5ð;!ð< 
Ð	¨¬	×(=Ò(=¸aÑ(@Ô(@Ð	AÑ	AÔ	AÀ5ÐIð=!ð> 
 Ð	¨TÐ	2Ñ	2Ô	2°EÐ:ð?!ð@ 
 Ð	¨R¬Y×-BÒ-BÀ1Ñ-EÔ-EÐ	FÑ	FÔ	FÈÐNðA!ñ$ô $ðJ3ð 3ñK$ô $ðJ3ð „×Ò˜˜}Ð2SÐ2SÀ]Ð2SÑ2SÔ2SÐÑTÔTð	9ð 	9ñ UÔTð	9ð „×Ò˜˜}Ð2SÐ2SÀ]Ð2SÑ2SÔ2SÐÑTÔTð4ð 4ñ UÔTð4ð „×Ò˜Ð1°sÐÑ;Ô;ð
&ð 
&ñ <Ô;ð
&ð „×ÒØÐ
$Ð*XÐ*XÐ=WÐ*XÑ*XÔ*Xð ñ ô ðð ñô ðð ð rF   