Ë
    °Ó^j¡  ã                   ó\   — 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     úk/var/www/ramen.bs-engineer-server.com/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Ó.ô	
ô�G€A€qˆ!ô *:¸!¸QÓ)?Ñ&€GˆW�g˜wÜ×"Ñ" 7¨GÓ4€HÜ×"Ñ" 7¨G¸ÔB€Hà×)Ñ)Ó+€IØ×)Ñ)Ó+€Iä‡J�J×Ñ˜y¨™|¨Y°q©\Ô:Ü‡J�J×Ñ˜y¨™|¨Y°q©\Ô:ä×"Ñ" 7¨GÓ4€HØ×)Ñ)Ó+€IÜ�{‰{˜9 Q™<¨°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ÜØØ	ØØÜ—'‘'ØØô�D€A€qð 	�‰�Q‹€Aä	×	Ñ	˜Q °dÔ	;€BØ�:‰:‹<˜1ÒÐÐØ×ÑÓ €DØ�!‰W€FØ�!‰W€FÜ�1”c˜&“kÓ"ò HˆØ�A‘ˆÜ�a˜Ÿ	™	 %Ñ(Ñ)×/Ñ/°×1DÑ1DÕEØ˜e‘} f¨Q¡i�ˆCØ˜˜S�/ˆCÜ�J‰J×&Ñ& s¬B¯I©I°a¸Ó,FÕGñHr+   )Ú__doc__Únumpyr   r7   Úsklearn.model_selectionr   Úxgboostr   r   r   r   Ústrr*   rN   r   r+   r   ú<module>rT      s@   ðÙ $ã Û Ý 4ã ç 0ð7 3ð 7¨4ó 7ð6H cð H¨dô Hr+   