o
    Ú­j  ã                   @   sR   d Z ddlZddlmZmZmZ ddlZddlZddl	Z
dededdfdd„ZdS )	z Tests for training continuation.é    N)ÚAnyÚDictÚTypeVarÚdeviceÚtree_methodÚreturnc                    s  t  d¡}d}d}|j||dd�\}}t ||¡}|ddd| d	œ}tj||dd
�}	|	jdd�}
tj||dd
�}tj||d|d�}|jdd�}tdtt	t
f tt	ttƒ}d|d|ddf‡ fdd„‰ t|
ƒt|ƒksjJ ‚t|
ƒD ]\}}t |¡}t || ¡}ˆ ||ƒ qndS )zRun training continuation test.zsklearn.datasetsé@   é    é   )Úrandom_stateÚ2z0.1z0.01)r   Ú	max_depthÚgammaÚalphar   )Únum_boost_roundÚjson)Údump_format)r   Ú	xgb_modelÚTÚobj_0Úobj_1r   Nc                    sô   t | tƒrtj| |dd�sJ ‚d S t | tƒr| |ksJ ‚d S t | tƒr+| |ks)J ‚d S t | tƒrftt|  	¡ ƒƒD ]+}t
|  ¡ ƒ| t
| ¡ ƒ| ksLJ ‚t
|  ¡ ƒ| dkrcˆ t
|  ¡ ƒt
| ¡ ƒƒ q8d S t| ƒD ]\}}|| }ˆ ||ƒ qjd S )Ng�íµ ÷Æ°>)ÚatolÚmissing)Ú
isinstanceÚfloatÚnpÚiscloseÚstrÚintÚdictÚrangeÚlenÚitemsÚlistÚkeysÚvaluesÚ	enumerate)r   r   ÚiÚlhsÚrhs©Úrecursive_compare© úY/var/www/html/CropPilot/venv/lib/python3.10/site-packages/xgboost/testing/continuation.pyr+   %   s"   



$€ýþzArun_training_continuation_model_output.<locals>.recursive_compare)ÚpytestÚimportorskipÚmake_regressionÚxgbÚDMatrixÚtrainÚget_dumpr   r   r   r   r   r   r#   r!   r&   r   Úloads)r   r   ÚdatasetsÚ	n_samplesÚ
n_featuresÚXÚyÚdtrainÚparamsÚbst_0Údump_0Úbst_1Údump_1r   r'   r(   r   r   r,   r*   r-   Ú&run_training_continuation_model_output   s0   
û
ýrA   )Ú__doc__r   Útypingr   r   r   Únumpyr   r.   Úxgboostr1   r   rA   r,   r,   r,   r-   Ú<module>   s    