
    ^i                     \    d Z ddlZddlZddlmZ ddlZddlm	Z	m
Z
 deddfdZdeddfd	Zy)
zQuantileDMatrix related tests.    N)train_test_split   )make_batchesmake_categoricaldevicereturnc           	      4   d t        ddd| j                  d            D        \  }}}t        ||      \  }}}}t        j                  ||      }t        j                  |||      }	|j                         }
|	j                         }t        j                  j                  |
d   |d          t        j                  j                  |
d   |d          t        j                  ||      }	|	j                         }t        j                  |
d   |d         rJ y	)
z6Check obtaining the same cut values given a reference.c              3   &   K   | ]	  }|d      yw)r   N ).0datas     a/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/xgboost/testing/quantile_dmatrix.py	<genexpr>z)check_ref_quantile_cut.<locals>.<genexpr>   s       	Qs   i       r   cuda)n_samples_per_batch
n_features	n_batchesuse_cupy)refr   N)
r   
startswithr   xgbQuantileDMatrixget_quantile_cutnptestingassert_allcloseallclose)r   Xy_X_trainX_validy_trainy_validXy_trainXy_valid	cut_train	cut_valids               r   check_ref_quantile_cutr*      s     $&&v.	
GAq! *:!Q)?&GWgw""7G4H""7GBH))+I))+IJJy|Yq\:JJy|Yq\:""7G4H))+I{{9Q<16666    c           	         | dk(  rt        j                  d      }nt        j                  d      }d}t        dd|dt        j                  dd	
      \  }}|j                  |      }t        j                  ||d	      }|j                         dk(  sJ |j                         }|d   }|d   }t        dt        |            D ]{  }	|	dz
  }
t        ||j                  |
      j                  |j                        s9||
   ||	   }}||| }t        j                   j#                  |t        j$                  d|             } y)zCheck string inputs.cpupandascudf    i      Fg      ?T)onehot	cat_dtype	cat_ratioshuffle)enable_categoricalr   r   N)pytestimportorskipr   r   str_	DataFramer   r   num_colr   rangelen
isinstancecolumnsdtypeCategoricalDtyper   r   arange)r   pdn_categoriesr   r    Xycutsindptrvaluesif_idxbegendcols                 r   check_categorical_stringsrN   '   s0     *  (L	''DAq 	QA			Qd	;B::<1 D!WF!WF1c&k" HAa		%()//1D1DEe}fQiCS/CJJ&&sBIIa,FGHr+   )__doc__numpyr   r7   sklearn.model_selectionr   xgboostr   r   r   r   strr*   rN   r   r+   r   <module>rT      s@    $   4  073 74 76Hc Hd Hr+   