
    sii                     ^    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dS )
zQuantileDMatrix related tests.    N)train_test_split   )make_batchesmake_categoricaldevicereturnc           	         d t          ddd|                     d                    D             \  }}}t          ||          \  }}}}t          j        ||          }t          j        |||          }	|                                }
|	                                }t          j                            |
d         |d                    t          j                            |
d         |d                    t          j        ||          }	|	                                }t          j	        |
d         |d                   rJ d	S )
z6Check obtaining the same cut values given a reference.c              3   &   K   | ]}|d          V  dS )r   N ).0datas     f/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/testing/quantile_dmatrix.py	<genexpr>z)check_ref_quantile_cut.<locals>.<genexpr>   s:         	Q         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44H"7GBBBH))++I))++IJy|Yq\:::Jy|Yq\:::"7G44H))++I{9Q<16666666r   c           	         | dk    rt          j        d          }nt          j        d          }d}t          dd|dt          j        dd	
          \  }}|                    |          }t          j        ||d	          }|                                dk    sJ |	                                }|d         }|d         }t          dt          |                    D ]}	|	dz
  }
t          ||j        |
                  j        |j                  rM||
         ||	         }}|||         }t          j                            |t          j        d|                     dS )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   '   sc    ** ((L	'  DAq 	QA		Qd	;	;	;B::<<1  D!WF!WF1c&kk"" H HAa	%()/1DEE 	He}fQiCS/CJ&&sBIa,F,FGGGH Hr   )__doc__numpyr   r7   sklearn.model_selectionr   xgboostr   r   r   r   strr+   rN   r   r   r   <module>rT      s    $ $      4 4 4 4 4 4     0 0 0 0 0 0 0 073 74 7 7 7 76Hc Hd H H H H H Hr   