
    =[g*                     @   d Z ddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZ ddlZddlZddlmZ dej$                  deddfdZd	ed
eej*                     dededdf
dZej.                  fdededej$                  deded
eej*                     dej$                  fdZy)z#Testing code shared by other tests.    N)AnyCallableDictType)	ArrayLikeleafnum_parallel_treereturnc           	      *   t        | j                  d         D ]x  }t        | j                  d         D ][  }t        | j                  d         D ]>  }| |||ddf   }|j                  d   |k(  sJ t        j                  ||d   k(        r>J  ] z y)z'Validate output for predict leaf tests.r         N)rangeshapenpall)r   r	   ijk
tree_groups         Q/var/www/html/bid-api/venv/lib/python3.12/site-packages/xgboost/testing/shared.pyvalidate_leaf_outputr      s    4::a=!tzz!}%A4::a=)!!Q1*-
!''*.????vvjJqM9:::	 * & "    dmatrixmodelXyc                 >   | j                   dgdt        dt        dt        ffd}|| _          |d      j                  ||||fg       d   dk(  sJ dd<   |j	                         } |d      j                  ||||fg       d   d	k(  sJ | _         y
)z/Assert that we don't create duplicated DMatrix.r   selfkwargsr
   c                 0    dxx   dz  cc<    | fi |S )Nr   r    )r   r   countold_inits     r   new_initz.validate_data_initialization.<locals>.new_init$   s     aA'''r   r   )n_estimators)eval_setr   N)__init__r   r   fitcopy)r   r   r   r   r$   y_copyr"   r#   s         @@r   validate_data_initializationr+      s    
 HCE(s (c (h (  G	qaq!fX68q==E!HVVXF	qaq&k];8q==Gr   fwparser_pathtree_methodc                    t        j                         5 }d} |||      }|j                  | ||       t        j                  j                  |d      }	|j                  |	       t        |	dd      5 }
t        j                  |
      }ddd       t        j                  j                  d	|      }|J t        j                  j                  |      }|j                  J |j                  j                  |       |j!                  |      }i }d
}|j"                  D ]  }t%        |j&                        }||z  }t)        |      D ]f  }|j+                  |      r|j-                  |j/                  |      d      d||j/                  |      <   K||j/                  |      xx   dz  cc<   h  t1        j2                  t5        |j7                                     }t9        |j7                               }t9        t;        |       \  }}t=        j>                  ||d      }|cddd       S # 1 sw Y   xY w# 1 sw Y   yxY w)z*Get feature weights using the demo parser.g      ?)r.   colsample_bynode)feature_weightsz
model.jsonrzutf-8)encodingN
JsonParserr   r   )deg) tempfileTemporaryDirectoryr(   ospathjoin
save_modelopenjsonload	importlibutilspec_from_file_locationmodule_from_specloaderexec_moduleModeltreeslennodesr   is_leafgetsplit_indexcollectionsOrderedDictsorteditemslistzipr   polyfit)r   r   r,   r-   r.   r   tmpdirr0   reg
model_pathfdspecjsonmsplitstotal_nodestreen_nodesnodtuplesr   vws                          r   get_feature_weightsrb   6   s    
	$	$	&&>NO1b)WW\\&,7
z"*cG4IIbME 5 ~~55lKP//5{{&&&&E"!#KKD$**oG7"K7^<<?::d..q148@23F4++A./4++A./14/ $   $$VFLLN%;<bhhj!CL!1JJq!#C 
'	& 54 
'	&s%   A H<5H/FH</H9	4H<<I)__doc__rL   importlib.utilr?   r=   r8   r6   typingr   r   r   r   numpyr   xgboostxgbxgboost._typingr   ndarrayintr   XGBModelr+   XGBRegressorstrrb   r!   r   r   <module>ro      s    )    	  , ,   %;rzz ;c ;d ;  s||, 1: ?H 	 @ !$ 0 0*** 	

* 	*
 * * ZZ*r   