
    Гh                         S r SSKJrJrJrJrJr  SSKrSSK	r
SSKJr  SSKJr  SSKJrJr  SSKJr  SSKJr  SSKrSSKJr  SS	KJr  SS
KJ r   SSK!Jr"  SSKJ#r#J$r$  S\%S\S   S\SS4S jr&S\%S\S   S\SS4S jr'S\%S\S   S\SS4S jr(S\S\%S\S   S\)SS4
S jr*S\)S\)S\%S\+S\,SS4S jr-S\S\)S\4S jr.S\S\\%   4S jr/S\S\)S\)S \)S!\)S\%S\\R`                  \Rb                  \Rb                  4   4S" jr2S\S\%SS4S# jr3g)$z0Tests for dask shared by different test modules.    )AnyListLiteralTuplecastN)array)	dataframe)Client
get_worker)parse)make_classification)concat)get_basescore   )dask)_DASK_VERSION_get_rabit_argstree_methoddevice)cpucudaclientreturnc                    [        SSSS9u  p4[        R                  " SSXS9nUR                  X45        [	        U5      n[
        R                  " U5      R                  SS9n[
        R                  " U5      R                  S	S9n[        R                  " SSU US9n	X)l
        U	R                  Xx5        [	        U	5      n
[        R                  R                  Xj5        g
)z%Test init estimation for classsifier.          	n_samples
n_featuresrandom_state   n_estimators	max_depthr   r   r   Nchunksr   N)r   xgbXGBClassifierfitr   da
from_arrayrechunkdxgbDaskXGBClassifierr   nptestingassert_allclose)r   r   r   Xyclf
base_scoredxdydclfdbase_scores              gC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\xgboost/testing/dask.pycheck_init_estimation_clfr>      s     btTDA


!C GGAMs#J	q		!	!	!	4B	q		!	!	!	/B!!	D KHHR%KJJz7    c                    SSK Jn  U" SSSS9u  pE[        R                  " SSXS9nUR	                  XE5        [        U5      n[        R                  " U5      R                  S	S
9n[        R                  " U5      R                  SS
9n	[        R                  " SSXS9n
X*l        U
R	                  X5        [        U
5      n[        R                  R                  X{5        g)z#Test init estimation for regressor.r   )make_regressionr   r   r   r   r"   r#   r&   r'   r)   N)sklearn.datasetsrA   r*   XGBRegressorr,   r   r-   r.   r/   r0   DaskXGBRegressorr   r2   r3   r4   )r   r   r   rA   r5   r6   regr8   r9   r:   dregr<   s               r=   check_init_estimation_regrG   /   s     1 X"4PDA


!C GGAMs#J	q		!	!	!	4B	q		!	!	!	/B  !D KHHR%KJJz7r?   c                 4    [        XU5        [        XU5        g)zTest init estimation.N)rG   r>   )r   r   r   s      r=   check_init_estimationrI   H   s     k6:k6:r?   	n_workersc           	         US:  d   eU R                  5          [        R                  " XS9n[        R                  " [        S5      [        SSS5      S.5      n[        R                  " / S/S-  QS/S-  Q5      n[        R                  UR                  S	S
S2S4'   U R                  US9  UR                  [        R                  " XSS9[        R                  " XcS95        S	S	S	5        g	! , (       d  f       g	= f)z0Issue #9271, not every worker has missing value.r   )r   r   i'  r   )abi  r"   Ni  i  rM   )rJ   )npartitions)
as_currentr0   r1   pd	DataFramerangeSeriesr2   nanlocwait_for_workersr,   ddfrom_pandas)r   r   r   rJ   r7   r5   r6   s          r=   check_uneven_nanrZ   P   s     >>				$$LLLuU|%q"2EFGII0d
0aS4Z01!#jtDj#o)4NN14NN14	
 
		s   CC--
C;	worker_id	comm_argsis_qdmc                 J   SnSnSnUS:g  n[        5       R                  R                  n	[        R                  R
                  " SSS0UD6   [        R                  " [        R                  " UUUUU S9SS06n
U(       a  [        R                  " XS	9nO[        R                  " XS	9n0 n[        R                  " S
XS.UUS4/SUS9  [        R                  " [        [        [           US   S   5      5      (       d   e SSS5        / / / pn[!        U5       HR  n[        R                  " UUUUUS9u  nnnUR#                  U5        UR#                  U5        UR#                  U5        MT     [%        U5      n[%        U5      n[%        U5      nU(       a  [        R&                  " UUUU	S9nO[        R                  " UUUU	S9n0 n[        R                  " S
XS.UUS4/SUS9  [(        R*                  R-                  WS   S   US   S   SS9  g! , (       d  f       GN= f)z-Basic checks for distributed external memory.r         r   dmlc_communicatorrabit)use_cupyr!   cache)nthreadhist)r   re   r   Train)evalsnum_boost_roundevals_resultrmseN)weightre   g-C6?rtol )r   statenthreadsr*   
collectiveCommunicatorContexttmIteratorForTestmake_batchesExtMemQuantileDMatrixDMatrixtrainnon_increasingr   r   floatrS   extendr   QuantileDMatrixr2   r3   r4   )r[   rJ   r   r\   r]   n_samples_per_batchr    	n_batchesrc   	n_threadsitXyresultslxlylwixr6   wr5   yconcatwconcatresults_locals                           r=   check_external_memoryr   e   s    JIH""++I		+	+	Sg	S	S__#!&	
 	
 !77NBR3B:<		"yK=/ 	
   d5k773CF3K!LMMMM/ 
T2 RBB9//
1a 			!
		!
		!  	r
ARjGRjG  GGYO[[GGYG<>MII9G
G}o" JJ -"8"@t  m 
T	Ss   B5H
H"c                 .    U R                  [        X5      $ )z6Get RABIT collective communicator arguments for tests.)syncr   )r   rJ   s     r=   get_rabit_argsr      s    ;;::r?   c                     [        5       [        S5      :  a  SS0O0 nU R                  " S0 UD6S   n[        UR	                  5       5      $ )zGet workers from a dask client.z2025.4.0rJ   rL   workersro   )r   parse_versionscheduler_infolistkeys)r   kwargsr   s      r=   get_client_workersr      sF    "//]:5N"Nk2TVF##-f-i8Gr?   r   r    n_query_groupsmax_relc                  ^^^^ [        U 5      nU[        U5      -  nUS:X  a  SSKJm  OSSKJm  S[
        S[
        S[        R                  4UUUU4S jjn/ n	Sn
[        SX5       H9  nU R                  XXU
[        U5      -     /S9nU	R                  U5        U
S	-  n
M;     X[        U5      -  -
  nUS:w  a-  U R                  XU[        U5      -  S
9nU	R                  U5        U" S	S5      n[        R                  " XS9n[        U[        R                  5      (       d   eUR                  SS/S	S9UR                  UR                  4$ )z'Synthetic dataset for learning to rank.r   r   )rR   nseedr   c                    > [         R                  R                  U5      n[        U T
T
ST	S9u  p4UR	                  U 4STS9nT" U[        T
5       Vs/ s H  nSU 3PM
     snS9nXWS'   XGS'   U$ s  snf )Nr   )n_informativen_redundant	n_classes)sizelowhighf)columnsqidr6   )r2   randomdefault_rngr   integersrS   )r   r   rngr5   r6   r   r   dfDFr   r    r   s           r=   makemake_ltr.<locals>.make   s    ii##D)"zg
 ll!.lAU:->?->asG->?@5	3	 @s   A0
)r   r   r   r"   )r   r   )metar   r6   )axis)r   lenpandasrR   cudfintrQ   rS   submitappendrX   from_delayed
isinstancedropr6   r   )r   r   r    r   r   r   r   n_samples_per_workerr   futuresr   kfutlastr   r   r   s     ```           @r=   make_ltrr      sC    !(G$G4*(	 	3 	2<< 	 	 G	A1i6mmq1s7|CS;T:U  
 	s	Q 7 s7|;<DqymmD/Cc'l/RmSs1:D		,Bb",,''''77E3<a7("$$66r?   c           	         [        U SSSSUS9u  p#n[        U SSSSUS9u  pVn[        R                  " SSUS	9nUR                  UUUX$4XW4/X6/S
S9  UR                  S:X  d   eUR
                  S   UR                  :X  d   eUR                  5       S   S   n	[        R                  " U	SS SS9(       d   U	5       e[        R                  R                  U	S   SSS9  g)z)Test for the allow_group_split parameter.i      r_      )r   r   r   i   F$   )allow_group_splitr$   r   T)r   eval_seteval_qidverboser"   validation_0zndcg@32Nr`   g{Gz?)	tolerancerL   g      ?rm   )r   r0   DaskXGBRankerr,   n_features_in_shaperj   rt   non_decreasingr2   r3   r4   )
r   r   X_trq_try_trX_vaq_vay_valtrndcgs
             r=   check_no_group_splitr      s   c!QvD  c!QvD 

u2f
UCGG,-   $$$::a=C.....n-i8DT#2Y$7==7JJtBx48r?   )4__doc__typingr   r   r   r   r   numpyr2   r   rQ   r   r   r-   r	   rX   distributedr
   r   packaging.versionr   r   rB   r   xgboostr*   xgboost.testingr3   rt   xgboost.compatr   xgboost.testing.updaterr    r0   r   r   strr>   rG   rI   r   rZ   dictboolr   r   r   rR   rT   r   r   ro   r?   r=   <module>r      s   6 2 2      * 4 0   ! 1  188%m48>D8	8288%m48>D8	82;;%m4;>D;	;

!$
.5m.D
QT
	
*FFF F 	F
 F 
FR;6 ;c ;c ;
 v  $s)  .7.7.7 .7
 .7 .7 .7 2<<BII-..7b9 9 9 9r?   