Ë
    ÷Q(h~U  ã                   ó�  — 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Zd dlm	Z
 d dlmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZmZ  ej@                  d«      jC                  d«      Z"d„ Z#ejH                  jK                  dddd ejL                  d«      dfg d¢dfg d¢dfdd e'dd«      df e'd d«      df ejP                  g d¢ejR                  ¬«      df ejP                  g d¢ejT                  ¬«      df ejP                  g d¢ejV                  ¬«      dfddgdfd ejP                  ddg«      dfdg d¢dfd  e'd!d"«      df ejP                  g d¢«      df ejP                  g d¢e,¬«      dfg«      d#„ «       Z-d$„ Z.d%„ Z/eejH                  jK                  d& e«       «      d'„ «       «       Z0ejH                  jK                  d(g d)¢«      ejH                  jK                  d*g d+¢«      d,„ «       «       Z1ejH                  jK                  d(g d-¢«      ejH                  jK                  d*g d+¢«      d.„ «       «       Z2ejH                  jK                  d(g d/¢«      ejH                  jK                  d*g d+¢«      ejH                  jK                  d0d1dgd2d3gg«      d4„ «       «       «       Z3ejH                  jK                  d5ddg«      ejH                  jK                  d6ddg«      ejH                  jK                  d(g d/¢«      ejH                  jK                  d*d7d8g«      ejH                  jK                  d9d g d:¢g d;¢gfd1dd<gd=d>gd?dggfg«      d@„ «       «       «       «       «       Z4ejH                  jK                  d(g d-¢«      ejH                  jK                  d*g dA¢«      dB„ «       «       Z5ejH                  jK                  d(g d/¢«      ejH                  jK                  d*g dA¢«      ejH                  jK                  dCd g d:¢g d;¢gfd1dd<gd=d>gd?dggfg«      dD„ «       «       «       Z6ejH                  jK                  dEg dF¢«      dG„ «       Z7ejH                  jK                  d(g d-¢«      dH„ «       Z8ejH                  jK                  dEg dI¢«      ejH                  jK                  d0dd3g«      dJ„ «       «       Z9ejH                  jK                  d(g dK¢«      dL„ «       Z:dM„ Z;ejH                  jK                  dNdd<g«      dO„ «       Z<ejH                  jK                  dPg dQ¢«      dR„ «       Z=dS„ Z>dT„ Z?ejH                  jK                  d0d d d1g e'd d«       ejP                  d d1g«      g«      dU„ «       Z@ejH                  jK                  d(g dV¢«      dW„ «       ZAejH                  jK                  dXdYdZ e,«       d[fg«      d\„ «       ZBejH                  jK                  d]d^gd_gd^d_gd^d`gd_d`gg«      da„ «       ZCdb„ ZDdc„ ZEdd„ ZFde„ ZGdf„ ZHejH                  jK                  dge«      dh„ «       ZIdi„ ZJejH                  jK                  dje«      dk„ «       ZKy)lé    N)Úcopy)ÚSkipTest)Úparse)Ú_safe_indexingÚresampleÚshuffle)Ú)yield_namespace_device_dtype_combinations)Ú_determine_key_typeÚ_get_column_indicesÚ_safe_assign)ÚMockDataFrame)Ú_array_api_for_testsÚ_convert_containerÚ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               ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_indexing.pyÚtest_polars_indexingr<      sh  € ä	×	Ñ	˜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à&ò 0Ñˆ�'Ü˜R °Ô2ˆÙ˜2ša ˜j™>¨3Õ/ð0ð �Q�˜#˜s˜Ð$¨ s¨S¨E lÐ3€Hà$ò 0Ñˆ�Ü˜R ¨qÔ1ˆÙ˜2ša ˜j™>¨3Õ/ð0ð �q�6˜A˜q˜6 A q 6Ð*€KØò )ˆÜ˜R ¨1Ô-ˆÙ˜2˜c™7 CÕ(ñ)ó    z
key, dtype)r   Úint)Ú0Ústr)TÚboolTrA   ©r   r   r   r>   ©r?   Ú1Ú2r@   )rB   r>   )rC   r@   r   ©ÚdtypeF))TFrA   )Úcol_0r@   ©rH   Úcol_1Úcol_2)rI   r@   ÚbeginÚendc                 ó$   — t        | «      |k(  sJ ‚y ©N)r
   )r3   rG   s     r;   Útest_determine_key_typerP   @   s   € ô8 ˜sÓ# uÒ,Ð,Ñ,r=   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ç      ð?)r,   ÚraisesÚ
ValueErrorr
   © r=   r;   Útest_determine_key_type_errorrY   _   s.   € Ü	�‰”zÐ)HÔ	Iñ !Ü˜CÔ ÷!÷ !ñ !ú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 arerS   r   r   r   F)Úaccept_slice)r,   rV   Ú	TypeErrorr
   ÚslicerX   r=   r;   Ú#test_determine_key_type_slice_errorr^   d   s<   € Ü	�‰”yÐ(GÔ	Hñ @ÜœE ! Q¨›N¸Õ?÷@÷ @ñ @ús	   œ>¾Az#array_namespace, device, dtype_namec                 óÂ  — 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>   r+   rA   )y      ð?      ð?y       @       @y      @      @rR   rS   )	r   ÚsklearnÚconfig_contextÚasarrayr
   r\   r,   rV   rW   )Úarray_namespaceÚdeviceÚ
dtype_nameÚxpÚint_array_keyÚbool_array_keyÚcomplex_array_keys          r;   Ú!test_determine_key_type_array_apirl   i   sÜ   € ô
 
˜o¨vÓ	6€Bä	×	Ñ	°4Ô	8ñ 7ØŸ
™
¢9Ó-ˆÜ" =Ó1°UÒ:Ð:Ð:àŸ™Ò$7Ó8ˆÜ" >Ó2°fÒ<Ð<Ð<ð	%Ø "§
¡
Ò+CÓ DÐð
 Ð(Ü—‘œzÐ1PÔQñ 7Ü#Ð$5Ô6÷7÷7ð 7øô ò 	%à $Òð	%ú÷
7ð 7ú÷7ð 7úsH   £ACÁ+B8Á>CÂC	Â'CÂ8CÃCÃCÃCÃ	C	ÃCÃCÚ
array_type)ÚlistÚarrayÚsparseÚ	dataframer   Úindices_type)rn   Útuplero   Úseriesr]   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   r]   ra   ©r   r   r   ©é   r    r   r   r)   ©Ú
isinstancer>   r   r   r   ©rm   rr   Úindicesro   Ú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õr=   )rn   ro   rt   Úpolars_seriesc                 óÖ   — 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   r]   ©	r   r   r   r   r   r   rx   r    r   r   r)   r   ry   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ÕPr=   )ro   rp   rq   r   r|   r   rJ   rK   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)Nr]   r   rI   ra   rv   rw   r   ©rq   r   úESpecifying the columns using strings is only supported for dataframesrS   r)   r   r   r   r   r    r   )
r   rz   r>   r   r@   r,   rV   rW   r   r   )rm   rr   r|   Úindices_convertedÚcolumns_namero   Ú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Ð9PÑ'PàSð 	ô �]‰]œ:¨WÔ5ñ 	=Ü˜5Ð"3¸!Õ<÷	=ð 	=ô   Ð'8¸qÔAˆÜ$ØÔ&¨¨A¨°°A°¸¸A¸Ð'?ÀÓLõ	
÷		=ð 	=ús   ÂCÃCÚarray_read_onlyÚindices_read_onlyro   rt   zaxis, expected_arrayrv   rw   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 )	Nra   rv   rw   F)Úwriter   r   r)   )Únpro   Úsetflagsr   r   r   )	rŠ   r‹   rm   rr   r*   Úexpected_arrayro   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ÕXr=   )rn   rs   ro   rt   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ÕPr=   zaxis, expected_subsetc                 ó    — g d¢}t        g d¢g d¢g d¢g| |«      }g d¢}t        ||«      }t        |||¬«      }t        |t        || «      «       y )NrI   ra   rv   rw   )FTTr)   r“   )rm   rr   r*   Úexpected_subsetr‡   ro   r|   r}   s           r;   Útest_safe_indexing_2d_maskr—   Û   sW   € ò /€LÜÚ	’IšyÐ)¨:°|ó€Eò "€GÜ  ¨,Ó7€Gä˜E 7°Ô6€FÜ ØÔ" ?°JÓ?õr=   z array_type, expected_output_type))rn   rn   ©ro   ro   ©rp   rp   ©rq   rt   ©r   r   c                 ó‚   — t        g d¢g d¢g d¢g| «      }d}t        ||d¬«      }t        g d¢|«      }t        ||«       y )Nra   rv   rw   r   r   r)   r“   )rm   Úexpected_output_typero   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Ü  ¨Õ8r=   c                 óN   — t        g d¢| «      }d}t        ||d¬«      }|dk(  sJ ‚y )Nr�   r   r   r)   r   )r   r   )rm   ro   r|   r}   s       r;   Útest_safe_indexing_1d_scalarr      s.   € äÒ:¸JÓG€EØ€GÜ˜E 7°Ô3€FØ�QŠ;Ð‰;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)NrI   ra   rv   rw   r„   r…   rS   r   r)   )r   r   r   rp   r   r   r   )r   rz   r@   r,   rV   rW   r   r   )	rm   r�   r|   r‡   ro   rˆ   r}   Úexpected_outputr�   s	            r;   Ú#test_safe_indexing_2d_scalar_axis_1r£   	  s¸   € ò /€LÜÚ	’IšyÐ)¨:°|ó€Eô �'œ3Ô JÐ6MÑ$MàSð 	ô �]‰]œ:¨WÔ5ñ 	3Ü˜5 '°Õ2÷	3ð 	3ô    w°QÔ7ˆÚ#ˆØ 8Ò+à !˜s Q C¨!¨˜oˆOÜ+¨OÐ=QÓRˆÜ$ V¨^Õ<÷	3ð 	3ús   ÁBÂB%)rn   ro   rp   c                 ób   — t        g d¢g d¢g d¢g| «      }t        |d d¬«      }t        ||«       y )Nra   rv   rw   r   r)   r“   )rm   ÚXÚX_subsets      r;   Útest_safe_indexing_None_axis_0r§   )  s-   € äšI¢y²)Ð<¸jÓI€AÜ˜a ¨AÔ.€HÜ  ¨1Õ-r=   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.rS   rU   r   r)   )r,   r-   r.   ÚX_toyrV   rW   r   )Úpdrˆ   r¥   s      r;   Ú0test_safe_indexing_pandas_no_matching_cols_errorr¬   0  sV   € Ü	×	Ñ	˜XÓ	&€BØ6€GØ
�‰”UÓ€AÜ	�‰”z¨Ô	1ñ )Ü�q˜3˜% aÕ(÷)÷ )ñ )ús   ÁA!Á!A*r*   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 0rS   r   r   r)   )r,   rV   rW   r   rª   r)   s    r;   Útest_safe_indexing_error_axisr®   8  s6   € ä	�‰”zÐ)DÔ	Eñ 1Ü”u˜q !˜f¨4Õ0÷1÷ 1ñ 1ús	   œ:ºAÚX_constructor)ro   rt   r   c                 ó–  — t        t        d«      «      }| dk(  rt        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   ro   rt   r©   r   r   )Úvaluesz='X' should be a 2D NumPy array, 2D sparse matrix or dataframerS   r   r   r)   )
rn   ÚrangerŽ   rd   r,   r-   ÚSeriesrV   rW   r   )r¯   r¥   r«   r0   rˆ   s        r;   Ú!test_safe_indexing_1d_array_errorr´   >  s«   € ô 	ŒU�1‹X‹€AØ˜ÒÜŸ
™
 1›‰Ø	˜(Ò	"Ü× Ñ  Ó*ˆØŸ	™	 !›‰Ø	˜/Ò	)Ü× Ñ  Ó*ˆØŸ	™	¨˜	Ó+ˆàM€GÜ	�‰”z¨Ô	1ñ 6Ü�} q¨! f°1Õ5÷6÷ 6ñ 6ús   Â%B?Â?C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)
NrJ   rK   ra   rv   rw   z.String indexing is not supported with 'axis=0'rS   r   r)   ©r,   rV   rW   r   )r|   ro   rˆ   s      r;   Ú4test_safe_indexing_container_axis_0_unsupported_typer·   Q  sL   € Ø˜Ð €GÚš	¢9Ð-€EØ>€GÜ	�‰”z¨Ô	1ñ /Ü�u˜g¨AÕ.÷/÷ /ñ /ú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.devra   )r   r   r   )r#   r$   r   r   r)   ÚSettingWithCopyWarningÚerrorr!   )r   r   )r,   r-   Úparse_versionÚ__version__Úbase_versionr   r.   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É   Y  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   rx   r    z!axis=1 is not supported for listsrS   r)   Nr¶   )r|   r¥   rˆ   s      r;   Ú*test_safe_indexing_list_axis_1_unsupportedrË   r  sP   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØ1€GÜ	�‰”z¨Ô	1ñ +Ü�q˜'¨Õ*÷+÷ +ñ +ús   ©AÁA
)ro   rp   rq   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)
rŽ   ÚrandomÚRandomStateÚrandnÚlenÚshaper   r   r   r   )rm   Ú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ÕKr=   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©   rI   ©ÚcolumnsrS   )r,   r-   r.   rª   rV   rW   r   )r3   rˆ   r«   ÚX_dfs       r;   Útest_get_column_indices_errorrÞ   �  sT   € ô 
×	Ñ	˜XÓ	&€BØ�<‰<œÒ'Bˆ<ÓC€Dä	�‰”z¨Ô	1ñ 'Ü˜D #Ô&÷'÷ 'ñ 'ús   Á
A Á A)r3   Ú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   rF   )rß   rß   rà   rá   rà   rÛ   z1Selected columns, {}, are not unique in dataframe)r,   r-   rŽ   Úzerosr>   r.   ÚformatrV   rW   r   r@   Úvalue)r3   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d¬«      } | j                  g d¢g d¢gg d¢¬«      } G d„ 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©   z1.5r   ra   rv   r"   rÛ   c                   ó   — e Zd Zd„ Zd„ Zy)ú:test_get_column_indices_interchange.<locals>.MockDataFramec                 ó   — || _         y rO   )Ú_df)Úselfr1   s     r;   Ú__init__zCtest_get_column_indices_interchange.<locals>.MockDataFrame.__init__Å  s	   € ØˆD�Hr=   c                 ó.   — t        | j                  |«      S rO   )Úgetattrrí   )rî   Únames     r;   Ú__getattr__zFtest_get_column_indices_interchange.<locals>.MockDataFrame.__getattr__È  s   € Ü˜4Ÿ8™8 TÓ*Ð*r=   N)Ú__name__Ú
__module__Ú__qualname__rï   ró   rX   r=   r;   r   rë   Ä  s   „ ò	ó	+r=   r   r   Nr   r   r$   r%   r#   rB   rÙ   rS   Únot_a_columnzkey.step must be 1 or None)r,   r-   r.   r]   r   rV   rW   ÚNotImplementedError)r«   r1   r   Ú	df_mockedÚkey_resultsr3   ÚresultÚmsgs           r;   Ú#test_get_column_indices_interchangerý   ¼  s{  € ä	×	Ñ	˜X°%Ô	8€Bà	�‰’y¢)Ð,²oˆÓ	F€B÷+ñ +ñ ˜bÓ!€Iô 
ˆ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Ü" 9¨cÓ2°fÓ<Ð<Ð<ð=ð <€CÜ	�‰”z¨Ô	-ñ 9Ü˜I¨Ð'7Ô8÷9ð '€CÜ	�‰Ô*°#Ô	6ñ <Ü˜I¤u¨S°$¸Ó':Ô;÷<ð <÷	9ð 9ú÷<ð <ús   Ã(D<ÄEÄ<EÅE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   r,   rV   rW   rÒ   rX   r=   r;   Útest_resampler  ä  sš   € ä‹:ÐÐÐô 
�‰”zÓ	"ñ Ü�!��q˜!�fÔ÷ä	�‰”zÓ	"ñ =Ü�!�Q�˜!˜Q˜¨¸!Õ<÷=ô Œx˜˜A˜¨!Ô,Ó-°Ò2Ð2Ñ2÷ð ú÷=ð =ús   ¦BÁBÂBÂB&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   éd   gÍÌÌÌÌÌì?r   ©Úsizer!   ©r   Úrandom_stateÚstratifyr   )rŽ   rÏ   rÐ   ÚnormalÚbinomialr   ÚallÚsum)rÔ   r   Úpr¥   ÚyÚ_Úy_not_stratifiedÚy_stratifieds           r;   Útest_resample_stratifiedr  ò  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Ò$Ð$Ñ$r=   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è  )rŽ   rÏ   rÐ   r	  Úrandintr   ÚuniquerÓ   )rÔ   r   r¥   r  Ú	X_replacer  ÚX_no_replaces          r;   Ú test_resample_stratified_replacer    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Ò/Ð/Ñ/r=   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  )rŽ   rÏ   rÐ   r	  r  r   Úndim)rÔ   r   r¥   r  s       r;   Útest_resample_stratify_2dyr    sm   € ä
�)‰)×
Ñ
 Ó
"€CØ€IØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�A�q 	¨1˜~ˆÓ.€AÜ�A�q B°SÀ1ÔE�D€A€qØ�6‰6�QŠ;Ð‰;r=   Ú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  éÿÿÿÿr   zSparse data was passedrS   r  r  )
rŽ   rÏ   rÐ   r	  r  Úreshaper,   rV   r\   r   )r  rÔ   r   r¥   r  r  s         r;   Ú#test_resample_stratify_sparse_errorr!  %  s˜   € ô �)‰)×
Ñ
 Ó
"€CØ€IØ�
‰
˜ A˜ˆ
Ó'€AØ�‰�A�q˜yˆÓ)€AÙ˜QŸY™Y r¨1Ó-Ó.€HÜ	�‰”yÐ(@Ô	Añ QÜ˜˜1¨¸ÀxÔP‰ˆˆ1÷Q÷ Qñ Qú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rO   ©rs   )Ú.0ÚCs     r;   ú	<genexpr>zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>3  s   è ø€ Ò/¨œ5 Ÿ8Ñ/ùs   ‚Nr&  )r'  ÚBs     r;   r)  zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>3  s   è ø€ Ò;°A”UÑ/¨QÔ/×/Ñ;ùs   ‚r&  )ÚAs    r;   Úto_tuplez3test_shuffle_on_ndim_equals_three.<locals>.to_tuple2  s   € ÜÑ;¸Ô;Ó;Ð;r=   r   r   r   r   r   r   rx   r    )rŽ   ro   Úsetr   )r,  r+  ÚSs      r;   Ú!test_shuffle_on_ndim_equals_threer/  1  sb   € ò<ô 	�‰�A�q�6˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4Ð5Ó6€AÜ‰H�Q‹KÓ€AÜˆA„JÜ‰x˜‹{Ó˜qÒ Ð Ñ r=   Ú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"   rF   ra   r#   r   r$   r   r%   r   r   r   )r  )r%   r$   r#   )r   r   r   r   r   )rŽ   ro   Úobjectr   Úaranger   r   Útypern   r   rG   Útoarray)r0  r#   r$   r%   ÚdÚeÚa_sÚb_sÚc_sÚd_sÚe_ss              r;   Ú"test_shuffle_dont_convert_to_arrayr=  ;  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ÕIr=   )LrÃ   r   Úunittestr   ÚnumpyrŽ   r,   rb   Ú$sklearn.externals._packaging.versionr   r¼   Úsklearn.utilsr   r   r   Úsklearn.utils._array_apir	   Úsklearn.utils._indexingr
   r   r   Úsklearn.utils._mockingr   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.fixesr   r   r3  r   rª   r<   ÚmarkÚparametrizeÚbool_r]   ro   Úint32Úint64Úuint8r2  rP   rY   r^   rl   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=  rX   r=   r;   ú<module>rM     sÜ  ðÛ Ý Ý ã Û ã Ý Gß ;Ñ ;Ý N÷ñ õ
 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-ò!ò
@ð
 )Ø‡�×ÑØ)Ñ+TÓ+Vóñ7óó )ð7ð* ‡�×ÑØÒDóð ‡�×Ñ˜Ò)VÓWñ	ó Xóð	ð ‡�×Ñ˜Ò'SÓTØ‡�×Ñ˜Ò)VÓWñQó Xó UðQð ‡�×Ñ˜Ò'QÓRØ‡�×Ñ˜Ò)VÓWØ‡�×Ñ˜ a¨ V¨g°wÐ-?Ð$@ÓAñ
ó Bó Xó Sð
ð4 ‡�×ÑÐ*¨T°5¨MÓ:Ø‡�×ÑÐ,¨t°U¨mÓ<Ø‡�×Ñ˜Ò'QÓRØ‡�×Ñ˜¨'°8Ð)<Ó=Ø‡�×ÑØ˜a¢)ªYÐ!7Ð8¸1ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ:WÐXóñYóó >ó Só =ó ;ðYð ‡�×Ñ˜Ò'SÓTØ‡�×Ñ˜Ò)MÓNñQó Oó UðQð ‡�×Ñ˜Ò'QÓRØ‡�×Ñ˜Ò)MÓNØ‡�×ÑØØŠ)’YÐ	Ð  1¨¨1 v°°1¨v¸¸1°vÐ&>Ð"?Ð@óñó	ó Oó Sðð ‡�×ÑØ&òó	ñ9ó	ð9ð ‡�×Ñ˜Ò'SÓTñó Uðð ‡�×ÑØ&òóð ‡�×Ñ˜ Q¨ LÓ1ñ=ó 2óð=ð, ‡�×Ñ˜Ò'BÓCñ.ó Dð.ò)ð ‡�×Ñ˜ $¨ Ó+ñ1ó ,ð1ð
 ‡�×Ñ˜Ò*NÓOñ6ó Pð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óñ	*óð	*ò%<òP3ò%ò 0ò2ð ‡�×Ñ˜¨.Ó9ñQó :ðQò!ð ‡�×Ñ˜¨.Ó9ñJó :ñJr=   