Ë
    êÿæiÜa  ã                   ó  — d dl Z d dlmZ d dlmZ d dlZd dlZd dlmZ d dl	Z	d dl
mZ d dlmZmZmZ d dlmZmZmZmZmZ d dlmZmZmZ d d	lmZ d d
lmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z&  ejN                  d«      jQ                  d«      Z)d„ Z*ejV                  jY                  dddd ejZ                  d«      dfg d¢dfg d¢dfdd e.dd«      df e.d d«      df ej^                  g d¢ej`                  ¬«      df ej^                  g d¢ejb                  ¬«      df ej^                  g d¢ejd                  ¬«      dfddgdfd ej^                  ddg«      dfdg d ¢dfd! e.d"d#«      df ej^                  g d ¢«      df ej^                  g d ¢e3¬«      dfg«      d$„ «       Z4d%„ Z5d&„ Z6e#ejV                  jY                  d' e«       e¬(«      d)„ «       «       Z7e#ejV                  jY                  d' e«       e¬(«      ejV                  jY                  d*d d+d,d-g ej^                  d,d-g«       e.d,d«      g d.¢ ejp                  g d/¢«      f«      ejV                  jY                  d0d d,g«      d1„ «       «       «       «       Z9ejV                  jY                  d2g d3¢«      ejV                  jY                  d4g d5¢«      d6„ «       «       Z:ejV                  jY                  d2g d7¢«      ejV                  jY                  d4g d5¢«      d8„ «       «       Z;ejV                  jY                  d2g d9¢«      ejV                  jY                  d4g d5¢«      ejV                  jY                  d:d,dgd;d<gg«      d=„ «       «       «       Z<ejV                  jY                  d>ddg«      ejV                  jY                  d?ddg«      ejV                  jY                  d2g d9¢«      ejV                  jY                  d4d@dAg«      ejV                  jY                  dBd g dC¢g dD¢gfd,dd-gdEdFgdGdggfg«      dH„ «       «       «       «       «       Z=ejV                  jY                  d2g d7¢«      ejV                  jY                  d4g dI¢«      dJ„ «       «       Z>ejV                  jY                  d2g d9¢«      ejV                  jY                  d4g dI¢«      ejV                  jY                  dKd g dC¢g dD¢gfd,dd-gdEdFgdGdggfg«      dL„ «       «       «       Z?ejV                  jY                  dMg dN¢«      dO„ «       Z@ejV                  jY                  d2g d7¢«      dP„ «       ZAejV                  jY                  dMg dQ¢«      ejV                  jY                  d:dd<g«      dR„ «       «       ZBejV                  jY                  d2g dS¢«      dT„ «       ZCdU„ ZDejV                  jY                  d0dd-g«      dV„ «       ZEejV                  jY                  dWg dX¢«      dY„ «       ZFdZ„ ZGd[„ ZHejV                  jY                  d:d d d,g e.d d«       ej^                  d d,g«      g«      d\„ «       ZIejV                  jY                  d2g d]¢«      d^„ «       ZJejV                  jY                  d_d`da e3«       dbfg«      dc„ «       ZKejV                  jY                  dddegdfgdedfgdedggdfdggg«      dh„ «       ZLdi„ ZMdj„ ZNdk„ ZOdl„ ZPdm„ ZQdn„ ZRdo„ ZSejV                  jY                  dpe&«      dq„ «       ZTdr„ ZUejV                  jY                  dse%«      dt„ «       ZVy)ué    N)Úcopy)ÚSkipTest)Úkstest)Úparse)Ú_safe_indexingÚresampleÚshuffle)Ú_convert_to_numpyÚ_get_namespace_device_dtype_idsÚdeviceÚmove_toÚ)yield_namespace_device_dtype_combinations)Ú_determine_key_typeÚ_get_column_indicesÚ_safe_assign)ÚMockDataFrame)Ú_array_api_for_testsÚ_convert_containerÚassert_allcloseÚassert_allclose_dense_sparseÚassert_array_equalÚ'skip_if_array_api_compat_not_configured)ÚCSC_CONTAINERSÚCSR_CONTAINERSé	   )é   r   c                  ó  — t        j                  dd¬«      } | j                  g d¢g d¢g d¢dœd¬	«      }d
dlm} dgddgg d¢dgdgg}|D ]  }t        ||d¬«      } |||   |«       Œ g d¢ddgfg d¢dgfg}|D ]#  \  }}t        ||d¬«      } ||dd…|f   |«       Œ% d
dgddgfdgdgfg}	|	D ]#  \  }
}t        ||
d¬«      } ||dd…|f   |«       Œ% d
dgddgddgg}|D ]  }t        ||d
¬«      } |||   |«       Œ y)z,Check _safe_indexing for polars as expected.Úpolarsz0.18.2)Ú
minversion)é   é   r   é   )r"   é   é   é   )r    r"   r    é
   ©ÚaÚbÚcÚrow)Úorientr   )Úassert_frame_equalr)   r(   )r)   r(   r*   r*   r    ©Úaxis©TFT)FFTNr!   r   )ÚpytestÚimportorskipÚ	DataFrameÚpolars.testingr-   r   )ÚplÚdfr-   Ústr_keysÚkeyÚoutÚ	bool_keysÚbool_keyÚstr_keyÚint_keysÚint_keyÚaxis_0_keyss               úv/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/utils/tests/test_indexing.pyÚtest_polars_indexingrA   '   sT  € ä	×	Ñ	˜X°(Ô	;€BØ	�‰Ú¢²MÑBÈ5ð 
ó 
€Bõ 2à�˜˜S�z¢?°S°E¸C¸5ÐA€HãˆÜ˜R ¨1Ô-ˆÙ˜2˜c™7 CÕ(ð ò &¨¨S zÐ2Ò5IÈCÈ5Ð4QÐR€Iã&Ñˆ�'Ü˜R °Ô2ˆÙ˜2ša ˜j™>¨3Õ/ð 'ð �Q�˜#˜s˜Ð$¨ s¨S¨E lÐ3€Hã$Ñˆ�Ü˜R ¨qÔ1ˆÙ˜2ša ˜j™>¨3Õ/ð %ð �q�6˜A˜q˜6 A q 6Ð*€KÛˆÜ˜R ¨1Ô-ˆÙ˜2˜c™7 CÕ(ñ ó    z
key, dtype)r   Úint)Ú0Ústr)TÚboolTrF   ©r   r    r!   rC   ©rD   Ú1Ú2rE   )rG   rC   )rH   rE   r!   ©ÚdtypeF))TFrF   )Úcol_0rE   ©rM   Úcol_1Úcol_2)rN   rE   ÚbeginÚendc                 ó$   — t        | «      |k(  sJ ‚y ©N)r   )r8   rL   s     r@   Útest_determine_key_typerU   H   s   € ô8 ˜sÓ# uÒ,Ð,Ñ,rB   c                  óz   — t        j                  t        d¬«      5  t        d«       d d d «       y # 1 sw Y   y xY w)NúNo valid specification of the©Úmatchç      ð?)r1   ÚraisesÚ
ValueErrorr   © rB   r@   Útest_determine_key_type_errorr^   g   s&   € Ü	�‰”zÐ)HÖ	IÜ˜CÔ ÷ 
J×	IÑ	Iús   œ1±:c                  ó”   — t        j                  t        d¬«      5  t        t	        ddd«      d¬«       d d d «       y # 1 sw Y   y xY w)NzOnly array-like or scalar arerX   r   r!   r    F)Úaccept_slice)r1   r[   Ú	TypeErrorr   Úslicer]   rB   r@   Ú#test_determine_key_type_slice_errorrc   l   s0   € Ü	�‰”yÐ(GÖ	HÜœE ! Q¨›N¸Õ?÷ 
I×	HÑ	Hús	   œ>¾Az$array_namespace, device_, dtype_name)Úidsc                 óÎ  — t        | |«      }t        j                  d¬«      5  |j                  g d¢|¬«      }t	        |«      dk(  sJ ‚|j                  g d¢|¬«      }t	        |«      dk(  sJ ‚	 |j                  g d¢|¬«      }|�/t        j                  t        d	¬
«      5  t	        |«       d d d «       d d d «       y # t
        $ r d }Y ŒGw xY w# 1 sw Y   Œ#xY w# 1 sw Y   y xY w)NT©Úarray_api_dispatch©r    r!   r   )r   rC   r0   rF   )y      ð?      ð?y       @       @y      @      @rW   rX   )	r   ÚsklearnÚconfig_contextÚasarrayr   ra   r1   r[   r\   )Úarray_namespaceÚdevice_Ú
dtype_nameÚxpÚint_array_keyÚbool_array_keyÚcomplex_array_keys          r@   Ú!test_determine_key_type_array_apirs   q   sÚ   € ô 
˜o¨wÓ	7€Bä	×	Ñ	°4Ö	8ØŸ
™
¢9°W˜
Ó=ˆÜ" =Ó1°UÒ:Ð:Ð:àŸ™Ò$7À˜ÓHˆÜ" >Ó2°fÒ<Ð<Ð<ð	%Ø "§
¡
Ò+CÈG 
Ó TÐð
 Ð(Ü—‘œzÐ1PÖQÜ#Ð$5Ô6÷ R÷ 
9Ð	8øô ò 	%à $Òð	%ú÷
 RÐQú÷ 
9Ð	8úsH   £ACÁ/B>ÂCÂ!CÂ-CÂ>CÃ	CÃCÃCÃC	ÃCÃC$Úindexing_keyéÿÿÿÿr    r   )TFTT)FFFFr/   c                 ó¨  — t        | |«      }t        j                  d«      j                  dd«      }t	        |||¬«      }t        |||¬«      }t        j                  d¬«      5  t	        |||¬«      }	t        |	«      t        |«      k(  sJ ‚|	j                  |j                  k(  sJ ‚	 d d d «       t        t        	|¬«      |«       y # 1 sw Y   Œ!xY w)Né   r"   r.   )ro   r   Trf   )ro   )r   ÚnpÚarangeÚreshaper   r   ri   rj   r   rL   r   r
   )
rl   rm   rn   rt   r/   ro   Úarray_to_index_npÚexpected_resultÚarray_to_index_xpÚindexed_array_xps
             r@   Ú$test_safe_indexing_array_api_supportr   Œ   sÁ   € ô, 
˜o¨wÓ	7€BäŸ	™	 "›×-Ñ-¨a°Ó3ÐÜ$Ð%6¸È4ÔP€OÜÐ 1°bÀÔIÐä	×	Ñ	°4Ö	8Ü)Ð*;¸\ÐPTÔUÐÜÐ&Ó'¬6Ð2CÓ+DÒDÐDÐDØ×%Ñ%Ð):×)@Ñ)@Ò@Ð@Ñ@÷ 
9ô
 Ô%Ð&6¸2Ô>ÀÕP÷ 
9Ð	8ús   Á$ACÃCÚ
array_type)ÚlistÚarrayÚsparseÚ	dataframer   ÚpyarrowÚindices_type)r�   Útupler‚   Úseriesrb   c                 óì   — ddg}|dk(  r t        |d   t        «      r|dxx   dz  cc<   t        g d¢g d¢g d¢g| «      }t        ||«      }t        ||d¬«      }t	        |t        g d¢g d¢g| «      «       y )	Nr    r!   rb   rh   ©r"   r#   r$   ©é   r%   r   r   r.   ©Ú
isinstancerC   r   r   r   ©r€   r†   Úindicesr‚   Úsubsets        r@   Ú&test_safe_indexing_2d_container_axis_0r’   °   sv   € ð
 �!ˆf€GØ�wÒ¤:¨g°a©j¼#Ô#>Ø�‹
�a‰‹
Ü¢	ª9²iÐ@À*ÓM€EÜ  ¨,Ó7€GÜ˜E 7°Ô3€FÜ ØÔ"¢IªyÐ#9¸:ÓFõrB   )r�   r‚   rˆ   Úpolars_seriesÚpyarrow_arrayc                 óÖ   — ddg}|dk(  r t        |d   t        «      r|dxx   dz  cc<   t        g d¢| «      }t        ||«      }t        ||d¬«      }t	        |t        ddg| «      «       y )Nr    r!   rb   ©	r    r!   r   r"   r#   r$   rŒ   r%   r   r   r.   r   r�   r�   s        r@   Útest_safe_indexing_1d_containerr—   À   sl   € ð
 �!ˆf€GØ�wÒ¤:¨g°a©j¼#Ô#>Ø�‹
�a‰‹
ÜÒ:¸JÓG€EÜ  ¨,Ó7€GÜ˜E 7°Ô3€FÜ  Ô);¸QÀ¸FÀJÓ)OÕPrB   )r‚   rƒ   r„   r   r…   r�   rO   rP   c           	      óº  — t        |«      }|dk(  r t        |d   t        «      r|dxx   dz  cc<   g d¢}t        g d¢g d¢g d¢g| |«      }t        ||«      }t        |d   t        «      r9| dv r5d	}t        j                  t        |¬
«      5  t        ||d¬«       d d d «       y t        ||d¬«      }t        |t        ddgddgddgg| «      «       y # 1 sw Y   y xY w)Nrb   r    rN   rh   rŠ   r‹   r   ©r‚   rƒ   úESpecifying the columns using strings is only supported for dataframesrX   r.   r!   r   r#   r$   r%   r   )
r   rŽ   rC   r   rE   r1   r[   r\   r   r   )r€   r†   r�   Úindices_convertedÚcolumns_namer‚   Úerr_msgr‘   s           r@   Ú&test_safe_indexing_2d_container_axis_1rž   Î   så   € ô ˜W›ÐØ�wÒ¤:¨g°a©j¼#Ô#>Ø˜!Ó Ñ!Óâ.€LÜÚ	’IšyÐ)¨:°|ó€Eô +Ð+<¸lÓKÐä�'˜!‘*œcÔ" zÐ5HÑ'HàSð 	ô �]‰]œ:¨WÖ5Ü˜5Ð"3¸!Õ<÷ 6Ð5ô   Ð'8¸qÔAˆÜ$ØÔ&¨¨A¨°°A°¸¸A¸Ð'?ÀÓLõ	
÷	 6Ð5ús   ÂCÃCÚarray_read_onlyÚindices_read_onlyr‚   rˆ   zaxis, expected_arrayrŠ   r‹   r#   r$   r%   c                 ó6  — t        j                  g d¢g d¢g d¢g«      }| r|j                  d¬«       t        ||«      }t        j                  ddg«      }|r|j                  d¬«       t        ||«      }t	        |||¬«      }t        |t        ||«      «       y )	Nrh   rŠ   r‹   F)Úwriter    r!   r.   )rx   r‚   Úsetflagsr   r   r   )	rŸ   r    r€   r†   r/   Úexpected_arrayr‚   r�   r‘   s	            r@   Ú&test_safe_indexing_2d_read_only_axis_1r¥   í   sˆ   € ô �H‰H’i¢ªIÐ6Ó7€EÙØ�‰˜UˆÔ#Ü˜u jÓ1€EÜ�h‰h˜˜1�vÓ€GÙØ×Ñ˜uÐÔ%Ü  ¨,Ó7€GÜ˜E 7°Ô6€FÜ  Ô);¸NÈJÓ)WÕXrB   )r�   r‡   r‚   rˆ   c                 ó¦   — dgdgdz  z   dgdz  z   }t        g d¢| «      }t        ||«      }t        ||d¬«      }t        |t        ddg| «      «       y )	NFTr!   r$   r–   r   r.   r   ©r   r   r   r�   s        r@   Ú$test_safe_indexing_1d_container_maskr¨     s^   € ð
 ˆg˜˜ ™
Ñ" e W¨q¡[Ñ0€GÜÒ:¸JÓG€EÜ  ¨,Ó7€GÜ˜E 7°Ô3€FÜ  Ô);¸QÀ¸FÀJÓ)OÕPrB   zaxis, expected_subsetc                 ó    — g d¢}t        g d¢g d¢g d¢g| |«      }g d¢}t        ||«      }t        |||¬«      }t        |t        || «      «       y )NrN   rh   rŠ   r‹   )FTTr.   r§   )r€   r†   r/   Úexpected_subsetrœ   r‚   r�   r‘   s           r@   Útest_safe_indexing_2d_maskr«     sW   € ò /€LÜÚ	’IšyÐ)¨:°|ó€Eò "€GÜ  ¨,Ó7€Gä˜E 7°Ô6€FÜ ØÔ" ?°JÓ?õrB   z array_type, expected_output_type))r�   r�   ©r‚   r‚   ©rƒ   rƒ   ©r„   rˆ   ©r   r“   ©r…   r”   c                 ó‚   — t        g d¢g d¢g d¢g| «      }d}t        ||d¬«      }t        g d¢|«      }t        ||«       y )Nrh   rŠ   r‹   r!   r   r.   r§   )r€   Úexpected_output_typer‚   r�   r‘   r¤   s         r@   Ú#test_safe_indexing_2d_scalar_axis_0r³   '  sA   € ô ¢	ª9²iÐ@À*ÓM€EØ€GÜ˜E 7°Ô3€FÜ'ª	Ð3GÓH€NÜ  ¨Õ8rB   c                 óN   — t        g d¢| «      }d}t        ||d¬«      }|dk(  sJ ‚y )Nr–   r!   r   r.   r   )r   r   )r€   r‚   r�   r‘   s       r@   Útest_safe_indexing_1d_scalarrµ   :  s0   € ô Ò:¸JÓG€EØ€GÜ˜E 7°Ô3€FØ�QŠ;Ð‰;rB   )r¬   r­   r®   r¯   r°   c                 óP  — g d¢}t        g d¢g d¢g d¢g| |«      }t        |t        «      r9| dv r5d}t        j                  t
        |¬«      5  t        ||d¬	«       d d d «       y t        ||d¬	«      }g d
¢}|dk(  rdgdgdgg}t        ||«      }t        ||«       y # 1 sw Y   y xY w)NrN   rh   rŠ   r‹   r™   rš   rX   r    r.   )r   r$   r   rƒ   r   r$   r   )r   rŽ   rE   r1   r[   r\   r   r   )	r€   r²   r�   rœ   r‚   r�   r‘   Úexpected_outputr¤   s	            r@   Ú#test_safe_indexing_2d_scalar_axis_1r¸   D  s¯   € ò /€LÜÚ	’IšyÐ)¨:°|ó€Eô �'œ3Ô JÐ2EÑ$EàSð 	ô �]‰]œ:¨WÖ5Ü˜5 '°Õ2÷ 6Ð5ô    w°QÔ7ˆÚ#ˆØ 8Ò+à !˜s Q C¨!¨˜oˆOÜ+¨OÐ=QÓRˆÜ$ V¨^Õ<÷ 6Ð5ús   ÁBÂB%)r�   r‚   rƒ   c                 ób   — t        g d¢g d¢g d¢g| «      }t        |d d¬«      }t        ||«       y )Nrh   rŠ   r‹   r   r.   r§   )r€   ÚXÚX_subsets      r@   Útest_safe_indexing_None_axis_0r¼   e  s-   € äšI¢y²)Ð<¸jÓI€AÜ˜a ¨AÔ.€HÜ  ¨1Õ-rB   c                  óÚ   — t        j                  d«      } d}| j                  t        «      }t        j                  t
        |¬«      5  t        |dgd¬«       d d d «       y # 1 sw Y   y xY w)NÚpandasz&No valid specification of the columns.rX   rZ   r    r.   )r1   r2   r3   ÚX_toyr[   r\   r   )Úpdr�   rº   s      r@   Ú0test_safe_indexing_pandas_no_matching_cols_errorrÁ   l  sM   € Ü	×	Ñ	˜XÓ	&€BØ6€GØ
�‰”UÓ€AÜ	�‰”z¨Ö	1Ü�q˜3˜% aÕ(÷ 
2×	1Ñ	1ús   ÁA!Á!A*c                 óŒ   — t        j                  t        d¬«      5  t        t        ddg| ¬«       d d d «       y # 1 sw Y   y xY w)Nz'axis' should be either 0rX   r   r    r.   )r1   r[   r\   r   r¿   r.   s    r@   Útest_safe_indexing_error_axisrÃ   t  s.   € ä	�‰”zÐ)DÖ	EÜ”u˜q !˜f¨4Õ0÷ 
F×	EÑ	Eús	   œ:ºAÚX_constructor)r‚   rˆ   r“   r”   c                 óî  — t        t        d«      «      }| dk(  rt        j                  |«      } n„| dk(  r't	        j
                  d«      }|j                  |«      } nX| dk(  r(t	        j
                  d«      }|j                  |¬«      } n+| dk(  r&t	        j
                  d	«      }|j                  |«      } d
}t	        j                  t        |¬«      5  t        | ddgd¬«       d d d «       y # 1 sw Y   y xY w)Nr#   r‚   rˆ   r¾   r“   r   )Úvaluesr”   r…   z='X' should be a 2D NumPy array, 2D sparse matrix or dataframerX   r   r    r.   )r�   Úrangerx   rk   r1   r2   ÚSeriesr‚   r[   r\   r   )rÄ   rº   rÀ   r5   Úpar�   s         r@   Ú!test_safe_indexing_1d_array_errorrÊ   z  sÇ   € ô 	ŒU�1‹X‹€AØ˜ÒÜŸ
™
 1›‰Ø	˜(Ò	"Ü× Ñ  Ó*ˆØŸ	™	 !›‰Ø	˜/Ò	)Ü× Ñ  Ó*ˆØŸ	™	¨˜	Ó+‰Ø	˜/Ò	)Ü× Ñ  Ó+ˆØŸ™ ›ˆàM€GÜ	�‰”z¨Ö	1Ü�} q¨! f°1Õ5÷ 
2×	1Ñ	1ús   ÃC+Ã+C4c                  ó¢   — ddg} g d¢g d¢g d¢g}d}t        j                  t        |¬«      5  t        || d¬	«       d d d «       y # 1 sw Y   y xY w)
NrO   rP   rh   rŠ   r‹   z/String indexing.*is not supported with 'axis=0'rX   r   r.   ©r1   r[   r\   r   )r�   r‚   r�   s      r@   Ú4test_safe_indexing_container_axis_0_unsupported_typerÍ   ’  sC   € Ø˜Ð €GÚš	¢9Ð-€EØ@€GÜ	�‰”z¨Ö	1Ü�u˜g¨AÕ.÷ 
2×	1Ñ	1ús   ­AÁAc                  ób  — t        j                  d«      } t        | j                  «      }t        |j                  «      }|t        d«      k\  rt        d«      ‚| j                  g d¢g d¢dœ«      }t        |ddgd¬	«      }t        | j                  d
«      r| j                  j                  }n | j                  j                  j                  }t        j                  «       5  t        j                  d|«       d|j                   d<   d d d «       |j                   d   dk(  sJ ‚y # 1 sw Y   ŒxY w)Nr¾   Ú3z;SettingWithCopyWarning has been removed in pandas 3.0.0.devrh   )r   r"   r#   )r(   r)   r   r    r.   ÚSettingWithCopyWarningÚerrorr&   )r   r   )r1   r2   Úparse_versionÚ__version__Úbase_versionr   r3   r   ÚhasattrÚerrorsrÐ   ÚcoreÚcommonÚwarningsÚcatch_warningsÚsimplefilterÚiloc)rÀ   Ú
pd_versionÚpd_base_versionrº   r‘   rÐ   s         r@   Ú4test_safe_indexing_pandas_no_settingwithcopy_warningrß   š  sö   € ô 
×	Ñ	˜XÓ	&€Bä˜rŸ~™~Ó.€JÜ# J×$;Ñ$;Ó<€Oàœ-¨Ó,Ò,ÜÐTÓUÐUà
�‰š9ª9Ñ5Ó6€AÜ˜A  1˜v¨AÔ.€FÜˆr�y‰yÐ2Ô3Ø!#§¡×!AÑ!AÑð "$§¡§¡×!FÑ!FÐÜ	×	 Ñ	 Õ	"Ü×Ñ˜gÐ'=Ô>Øˆ�‰�DÑ÷ 
#ð �6‰6�$‰<˜1ÒÐÑ÷	 
#Ð	"ús   Ã"&D%Ä%D.c                 óš   — ddgddgddgg}d}t        j                  t        |¬«      5  t        || d¬	«       d
d
d
«       y
# 1 sw Y   y
xY w)z@Check that we raise a ValueError when axis=1 with input as list.r    r!   r"   r#   rŒ   r%   z!axis=1 is not supported for listsrX   r.   NrÌ   )r�   rº   r�   s      r@   Ú*test_safe_indexing_list_axis_1_unsupportedrá   ³  sG   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØ1€GÜ	�‰”z¨Ö	1Ü�q˜'¨Õ*÷ 
2×	1Ñ	1ús   ©AÁA
)r‚   rƒ   r„   c                 óª  — t         j                  j                  d«      }|j                  dd«      }ddg}|j                  t	        |«      |j
                  d   «      }t        || «      }t        |||¬«       t        ||d¬«      }t        |t        || «      «       ddg}|j                  |j
                  d   t	        |«      «      }t        || «      }t        |||¬«       t        ||d¬«      }t        |t        || «      «       d	\  }} |j                  |j
                  Ž }t        || «      }t        |||¬«       t        |t        || «      «       y
)z,Check that `_safe_assign` works as expected.r   r&   r#   r    r!   )Úrow_indexerr.   )Úcolumn_indexer)NNN)
rx   ÚrandomÚRandomStateÚrandnÚlenÚshaper   r   r   r   )r€   ÚrngÚX_arrayrã   rÆ   rº   Úassigned_portionrä   s           r@   Útest_safe_assignrí   ¼  s:  € ô �)‰)×
Ñ
 Ó
"€CØ�i‰i˜˜AÓ€Gà�a�&€KØ�Y‰Y”s˜;Ó'¨¯©°qÑ)9Ó:€FÜ˜7 JÓ/€AÜ��F¨Õ4ä% a¨¸1Ô=ÐÜ ØÔ,¨V°ZÓ@ôð ˜�V€NØ�Y‰Y�w—}‘} QÑ'¬¨^Ó)<Ó=€FÜ˜7 JÓ/€AÜ��F¨>Õ:ä% a¨¸aÔ@ÐÜ ØÔ,¨V°ZÓ@ôð #-Ñ€K�ØˆS�Y‰Y˜Ÿ™Ð €FÜ˜7 JÓ/€AÜ��F¨>Õ:ä  Ô$6°v¸zÓ$JÕKrB   zkey, err_msg)r&   z all features must be in \[0, 2\])Úwhateverú/A given column is not a column of the dataframez%No valid specification of the columnsc                 óØ   — t        j                  d«      }|j                  t        g d¢¬«      }t        j                  t
        |¬«      5  t        || «       d d d «       y # 1 sw Y   y xY w)Nr¾   rN   ©ÚcolumnsrX   )r1   r2   r3   r¿   r[   r\   r   )r8   r�   rÀ   ÚX_dfs       r@   Útest_get_column_indices_errorrô   Þ  sK   € ô 
×	Ñ	˜XÓ	&€BØ�<‰<œÒ'Bˆ<ÓC€Dä	�‰”z¨Ö	1Ü˜D #Ô&÷ 
2×	1Ñ	1ús   Á
A Á A)r8   Úcol1Úcol2Úcol3c                 ó\  — t        j                  d«      }t        j                  dt        ¬«      }g d¢}|j                  ||¬«      }dj                  | «      }t        j                  t        «      5 }t        || «       d d d «       t        j                  «      |k(  sJ ‚y # 1 sw Y   Œ$xY w)Nr¾   )r    r#   rK   )rõ   rõ   rö   r÷   rö   rñ   z1Selected columns, {}, are not unique in dataframe)r1   r2   rx   ÚzerosrC   r3   Úformatr[   r\   r   rE   Úvalue)r8   rÀ   Útoyrò   rº   r�   Úexc_infos          r@   Ú6test_get_column_indices_pandas_nonunique_columns_errorrþ   î  sˆ   € ô 
×	Ñ	˜XÓ	&€BÜ
�(‰(�6¤Ô
%€CÚ6€GØ
�‰�S 'ˆÓ*€AàA×HÑHÈÓM€GÜ	�‰”zÔ	" hÜ˜A˜sÔ#÷ 
#äˆx�~‰~Ó 'Ò)Ð)Ñ)÷ 
#Ð	"ús   Á2B"Â"B+c            
      ó€  — t        j                  d«      } | j                  g d¢g d¢gg d¢¬«      }t        dd«      ddgft        dd«      d	dgft        dd«      dgfd
dgddgft        dd
«      d	dgft        dd«      g d¢ft        dd«      d	gfddgdd	gfg g fg	}|D ]  \  }}t	        ||«      |k(  rŒJ ‚ d}t        j
                  t        |¬«      5  t	        |dg«       ddd«       d}t        j
                  t        |¬«      5  t	        |t        ddd«      «       ddd«       y# 1 sw Y   ŒGxY w# 1 sw Y   yxY w)z=Check _get_column_indices for edge cases with the interchanger   rh   rŠ   r'   )Úschemar    Nr!   r   r)   r*   r(   rG   rï   rX   Únot_a_columnzkey.step must be 1 or None)r1   r2   r3   rb   r   r[   r\   ÚNotImplementedError)r5   r6   Úkey_resultsr8   ÚresultÚmsgs         r@   Ú#test_get_column_indices_interchanger  ý  sP  € ä	×	Ñ	˜XÓ	&€Bð 
�‰’y¢)Ð,²_ˆÓ	E€Bô 
ˆq�$‹˜!˜Q˜Ð Ü	ˆt�Q‹˜!˜Q˜Ð Ü	ˆq�!‹�q�cÐØ
ˆsˆ�a˜�VÐÜ	ˆs�C‹˜1˜a˜&Ð!Ü	ˆs�DÓ	š9Ð%Ü	ˆt�SÓ	˜A˜3ÐØ
ˆsˆ�a˜�VÐØ	ˆRˆð
€Kó #‰ˆˆVÜ" 2 sÓ+¨vÓ5Ð5Ð5ð #ð <€CÜ	�‰”z¨Ö	-Ü˜B Ð 0Ô1÷ 
.ð '€CÜ	�‰Ô*°#Ö	6Ü˜B¤ c¨4°Ó 3Ô4÷ 
7Ð	6÷	 
.Ð	-ú÷ 
7Ð	6ús   ÃD(ÄD4Ä(D1Ä4D=c                  óR  — t        «       �J ‚t        j                  t        «      5  t        dgddg«       d d d «       t        j                  t        «      5  t        ddgddgdd¬«       d d d «       t	        t        ddgd¬«      «      dk(  sJ ‚y # 1 sw Y   Œ\xY w# 1 sw Y   Œ3xY w)	Nr   r    Fr   )ÚreplaceÚ	n_samplesr!   r#   )r	  )r   r1   r[   r\   rè   r]   rB   r@   Útest_resampler
    sŠ   € ä‹:ÐÐÐô 
�‰”zÕ	"Ü�!��q˜!�fÔ÷ 
#ä	�‰”zÕ	"Ü�!�Q�˜!˜Q˜¨¸!Õ<÷ 
#ô Œx˜˜A˜¨!Ô,Ó-°Ò2Ð2Ñ2÷ 
#Ð	"úç	"Ð	"ús   ¦BÁBÂBÂB&c                  óN  — t        j                  g d¢«      } t        j                  g d¢«      }g }g }t        d«      D ]„  }|j	                  t        | j                  |«      d|| j                  d   ¬«      j                  «       «       |j	                  t        | |d|| j                  d   ¬«      j                  «       «       Œ† t        j                  |«      }t        j                  |«      }t        ||«      }t        j                  |dk\  «      sJ ‚|j                  dkD  sJ ‚y )	N)ru   r   r    )r   éd   r    r  Tr   )r  Úrandom_stater	  )Úsample_weightr  r  r	  gš™™™™™©?)rx   r‚   rk   rÇ   Úappendr   Úrepeatré   Úmeanr   ÚallÚpvalue)Údatar  Úmean_repeatedÚmean_reweightedÚseedÚtest_results         r@   Útest_resample_weightedr  )  s  € ô �8‰8’JÓ€DÜ—J‘Jš{Ó+€Mà€MØ€Oä�c–
ˆØ×ÑÜØ—‘˜MÓ*ØØ!ØŸ*™* Q™-ô	÷
 ‰d‹fô	
ð 	×ÑÜØØ+ØØ!ØŸ*™* Q™-ô÷ ‰d‹fõ	
ð ô& —J‘J˜}Ó-€MÜ—j‘j Ó1€Oä˜¨Ó8€Kä�6‰6�/ QÑ&Ô'Ð'Ð'ð ×Ñ Ò$Ð$Ñ$rB   c                  ó‚  — t         j                  j                  d«      } d}d}| j                  |df¬«      }| j	                  d||¬«      }t        ||ddd ¬«      \  }}t        j                  |dk(  «      sJ ‚t        ||dd|¬«      \  }}t        j                  |dk(  «      rJ ‚t        j                  |«      dk(  sJ ‚y )	Nr   r  gÍÌÌÌÌÌì?r    ©Úsizer&   ©r	  r  Ústratifyr   )rx   rå   ræ   ÚnormalÚbinomialr   r  Úsum)rê   r	  Úprº   ÚyÚ_Úy_not_stratifiedÚy_stratifieds           r@   Útest_resample_stratifiedr'  Q  s½   € ä
�)‰)×
Ñ
 Ó
"€CØ€IØ€AØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�Q˜ 	ˆÓ*€Aä" 1 a°2ÀAÐPTÔUÑ€AÐÜ�6‰6Ð" aÑ'Ô(Ð(Ð(ä˜q !¨rÀÈAÔN�O€A€|Ü�v‰v�l aÑ'Ô(Ð(Ð(Ü�6‰6�,Ó 1Ò$Ð$Ñ$rB   c                  ó   — t         j                  j                  d«      } d}| j                  |df¬«      }| j	                  dd|¬«      }t        ||dd| |¬«      \  }}t        ||d	d| |¬«      \  }}t        j                  |«      j                  d   dk  sJ ‚t        j                  |«      j                  d   dk(  sJ ‚t        ||dd
| |¬«      \  }}|j                  d   d
k(  sJ ‚t        j                  |«      j                  d   dk(  sJ ‚y )Nr   r  r    r  r!   Té2   )r  r	  r  r  Fiè  )rx   rå   ræ   r  Úrandintr   Úuniqueré   )rê   r	  rº   r#  Ú	X_replacer$  ÚX_no_replaces          r@   Ú test_resample_stratified_replacer.  a  s  € ä
�)‰)×
Ñ
 Ó
"€CØ€IØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�A�q˜yˆÓ)€AäØ	ˆ1�d b°sÀQô�L€Iˆqô Ø	ˆ1�e r¸Àaô�O€L�!ô �9‰9�YÓ×%Ñ% aÑ(¨2Ò-Ð-Ð-Ü�9‰9�\Ó"×(Ñ(¨Ñ+¨rÒ1Ð1Ð1ô Ø	ˆ1�d d¸Àqô�L€Iˆqð �?‰?˜1Ñ Ò%Ð%Ð%Ü�9‰9�YÓ×%Ñ% aÑ(¨CÒ/Ð/Ñ/rB   c                  óâ   — t         j                  j                  d«      } d}| j                  |df¬«      }| j	                  dd|df¬«      }t        ||d| |¬«      \  }}|j                  dk(  sJ ‚y )Nr   r  r    r  r!   r)  r  )rx   rå   ræ   r  r*  r   Úndim)rê   r	  rº   r#  s       r@   Útest_resample_stratify_2dyr1  z  sm   € ä
�)‰)×
Ñ
 Ó
"€CØ€IØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�A�q 	¨1˜~ˆÓ.€AÜ�A�q B°SÀ1ÔE�D€A€qØ�6‰6�QŠ;Ð‰;rB   c                  ó  — t        j                  t        d¬«      5  t        ddgddgddgd¬«       d d d «       t        j                  t        d¬«      5  t        ddgddgddgddg¬«       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)	NzCResampling with sample_weight is only implemented for replace=True.rX   r   r    F)r  r  zCResampling with sample_weight is only implemented for stratify=None)r  r  )r1   r[   r  r   r]   rB   r@   Útest_notimplementederrorr3  „  s‰   € Ü	�‰ÜØSö
ô 	�!�Q�˜!˜Q˜°°1¨v¸uÕE÷	
ô 
�‰ÜØSö
ô 	�!�Q�˜!˜Q˜°°1¨vÀÀAÀÕG÷	
ð 
÷
ð 
ú÷
ð 
ús   œA6ÁBÁ6A?ÂBÚcsr_containerc                 óL  — t         j                  j                  d«      }d}|j                  |df¬«      }|j	                  dd|¬«      } | |j                  dd«      «      }t        j                  t        d¬«      5  t        ||d	||¬
«      \  }}d d d «       y # 1 sw Y   y xY w)Nr   r  r!   r  ru   r    zSparse data was passedrX   r)  r  )
rx   rå   ræ   r  r*  rz   r1   r[   ra   r   )r4  rê   r	  rº   r#  r  s         r@   Ú#test_resample_stratify_sparse_errorr6  ’  sŒ   € ô �)‰)×
Ñ
 Ó
"€CØ€IØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�A�q˜yˆÓ)€AÙ˜QŸY™Y r¨1Ó-Ó.€HÜ	�‰”yÐ(@Ö	AÜ˜˜1¨¸ÀxÔP‰ˆˆ1÷ 
B×	AÑ	Aús   Á=BÂB#c                  ó´   — d„ } t        j                  ddgddggddgdd	ggg«      }t         | |«      «      }t        |«       t         | |«      «      |k(  sJ ‚y )
Nc                 ó&   — t        d„ | D «       «      S )Nc              3   ó@   K  — | ]  }t        d „ |D «       «      –— Œ y­w)c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrT   ©r‡   )Ú.0ÚCs     r@   Ú	<genexpr>zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>   s   è ø€ Ð/©Q¨œ5 Ÿ8©Qùs   ‚Nr;  )r<  ÚBs     r@   r>  zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>   s   è ø€ Ð;¹°A”UÑ/©QÓ/×/¹ùs   ‚r;  )ÚAs    r@   Úto_tuplez3test_shuffle_on_ndim_equals_three.<locals>.to_tupleŸ  s   € ÜÑ;¹Ó;Ó;Ð;rB   r    r!   r   r"   r#   r$   rŒ   r%   )rx   r‚   Úsetr	   )rA  r@  ÚSs      r@   Ú!test_shuffle_on_ndim_equals_threerD  ž  sb   € ò<ô 	�‰�A�q�6˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4Ð5Ó6€AÜ‰H�Q‹KÓ€AÜˆA„JÜ‰x˜‹{Ó˜qÒ Ð Ñ rB   Úcsc_containerc           	      óÖ  — g d¢}t        j                  g d¢t        ¬«      }g d¢}t        t        j                  ddgddgdd	ggt        ¬«      «      } | t        j                  d
«      j                  dd	«      «      }t        |||||d¬«      \  }}}}	}
|g d¢k(  sJ ‚t        |«      t        k(  sJ ‚t        |g d¢«       |j                  t        k(  sJ ‚|g d¢k(  sJ ‚t        |«      t        k(  sJ ‚t        |	t        j                  dd	gddgddggt        ¬«      «       t        |	«      t        k(  sJ ‚t        |
j                  «       t        j                  ddgd	dgddgg«      «       y )Nr'   rK   rh   r(   r   r)   r    r*   r!   r$   r   )r  )r*   r)   r(   )r   r!   r    r"   r#   )rx   r‚   Úobjectr   ry   rz   r	   Útyper�   r   rL   Útoarray)rE  r(   r)   r*   ÚdÚeÚa_sÚb_sÚc_sÚd_sÚe_ss              r@   Ú"test_shuffle_dont_convert_to_arrayrQ  ¨  sF  € ò 	€AÜ
�‰’¬Ô/€AÚ€AÜ”b—h‘h  a ¨3°¨(°S¸!°HÐ=ÄVÔLÓM€AÙ”b—i‘i “l×*Ñ*¨1¨aÓ0Ó1€AÜ% a¨¨A¨q°!À!ÔDÑ€Cˆˆc�3˜à’/Ò!Ð!Ð!Ü�‹9œÒÐÐä�sšOÔ,Ø�9‰9œÒÐÐà’)ÒÐÐÜ�‹9œÒÐÐä�sœBŸH™H s¨A h°°a°¸3À¸(Ð%CÌ6ÔRÔSÜ�‹9œÒ%Ð%Ð%ä�s—{‘{“}¤b§h¡h°°A°¸¸A¸ÀÀAÀÐ/GÓ&HÕIrB   )WrÙ   r   Úunittestr   Únumpyrx   r1   Úscipy.statsr   ri   Ú$sklearn.externals._packaging.versionr   rÒ   Úsklearn.utilsr   r   r	   Úsklearn.utils._array_apir
   r   r   r   r   Úsklearn.utils._indexingr   r   r   Úsklearn.utils._mockingr   Úsklearn.utils._testingr   r   r   r   r   r   Úsklearn.utils.fixesr   r   ry   rz   r¿   rA   ÚmarkÚparametrizeÚbool_rb   r‚   Úint32Úint64Úuint8rG  rU   r^   rc   rs   rk   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.  r1  r3  r6  rD  rQ  r]   rB   r@   Ú<module>rb     sÉ  ðÛ Ý Ý ã Û Ý ã Ý Gß ;Ñ ;÷õ ÷ñ õ
 1÷÷ ÷ ?ð 	ˆ�	‰	�!‹×Ñ˜VÓ$€ò)ðB ‡�×ÑØàØØØ	ˆ�‰�$‹˜Ð Ú	�EÐÚ	˜%Ð ØØ Ù	ˆt�TÓ	˜DÐ!Ù	ˆq�!‹�eÐØ	ˆ�‰’) 2§8¡8Ô	,¨eÐ4Ø	ˆ�‰’) 2§8¡8Ô	,¨eÐ4Ø	ˆ�‰’) 2§8¡8Ô	,¨eÐ4Ø
�ˆ˜ÐØØ	ˆ�‰�4˜�-Ó	  &Ð)ØÚ	$ eÐ,Ø,Ù	ˆw˜Ó	 Ð&Ø	ˆ�‰Ò-Ó	.°Ð6Ø	ˆ�‰Ò-°VÔ	<¸eÐDð-óñ6-ó7ð6-ò!ò
@ð
 )Ø‡�×ÑØ*Ù-Ó/Ø'ð ó ñ
7óó )ð7ð* )Ø‡�×ÑØ*Ù-Ó/Ø'ð ó ð
 ‡�×ÑØà	Ø
Ø	
ˆAˆØˆ�‰�!�Q�ÓÙˆa�‹Ú!Øˆ�
‰
Ò/Ó0ðóð ‡�×Ñ˜ ! Q Ó(ñQó )óóó )ð&Qð" ‡�×ÑØÒOóð ‡�×Ñ˜Ò)VÓWñ	ó Xóð	ð ‡�×ÑØÒOóð ‡�×Ñ˜Ò)VÓWñQó XóðQð ‡�×ÑØÒGóð ‡�×Ñ˜Ò)VÓWØ‡�×Ñ˜ a¨ V¨g°wÐ-?Ð$@ÓAñ
ó Bó Xóð

ð4 ‡�×ÑÐ*¨T°5¨MÓ:Ø‡�×ÑÐ,¨t°U¨mÓ<Ø‡�×ÑØÒGóð ‡�×Ñ˜¨'°8Ð)<Ó=Ø‡�×ÑØ˜a¢)ªYÐ!7Ð8¸1ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ:WÐXóñYóó >óó =ó ;ðYð ‡�×ÑØÒOóð ‡�×Ñ˜Ò)MÓNñQó OóðQð ‡�×ÑØÒGóð ‡�×Ñ˜Ò)MÓNØ‡�×ÑØØŠ)’YÐ	Ð  1¨¨1 v°°1¨v¸¸1°vÐ&>Ð"?Ð@óñó	ó Oóðð ‡�×ÑØ&òó
ñ9ó
ð9ð ‡�×ÑØÒOóñóðð ‡�×ÑØ&òó	ð ‡�×Ñ˜ Q¨ LÓ1ñ=ó 2ó	ð=ð, ‡�×Ñ˜Ò'BÓCñ.ó Dð.ò)ð ‡�×Ñ˜ $¨ Ó+ñ1ó ,ð1ð
 ‡�×ÑØÒJóñ6óð6ò*/òð2 ‡�×Ñ˜ Q¨¨A¨±°a¸³¸X¸R¿X¹XÀqÈ!ÀfÓ=MÐ$NÓOñ+ó Pð+ð ‡�×Ñ˜Ò'GÓHñLó IðLðB ‡�×ÑØà1ØGÙ	‹Ð:Ð;ðóñ'óð'ð ‡�×ÑØ	ˆVˆH�v�h ¨Ð 0°6¸6Ð2BÀVÈVÐDTÐUóñ	*óð	*ò5ò<3ò%%òP%ò 0ò2òHð ‡�×Ñ˜¨.Ó9ñQó :ðQò!ð ‡�×Ñ˜¨.Ó9ñJó :ñJrB   