Ë
    °Ó^j…  ã                   ó¢   — d Z ddlmZmZ ddlZddlmZ ddl	m
Z
 ddlmZmZmZmZ dd	lmZ d
eddfd„Zd
eddfd„Zd
eddfd„Z G d„ de«      Zy)z*Tests related to the `DataIter` interface.é    )ÚCallableÚOptionalN)Útestingé   )Úimport_cupy)ÚDataIterÚDMatrixÚExtMemQuantileDMatrixÚQuantileDMatrixé   )Úpredictor_equalÚdeviceÚreturnc                 ó´  — t        j                  ddd«      \  }}}| j                  d«      rt        j                  dddd«      \  }}nt        j                  dddd«      \  }}t        j                  ddd	d«      \  }}|||g}|||g}	| j                  d«      r(t	        «       }
|D �cg c]  }|
j                  |«      ‘Œ }}t        j                  ||	d
d
d¬«      }t        |«      }t        j                  dddd«      \  }}|||g}|||g}	t        j                  |d¬«      }t        j                  |	d¬«      }t        ||«      }t        ||«      sJ ‚y
c c}w )zCheck QDM with mixed batches.é€   é   FÚcudaé   gš™™™™™¹?Té   gÍÌÌÌÌÌì?N©ÚcacheÚon_hostr   )Úaxis)ÚtmÚmake_regressionÚ
startswithÚmake_sparse_regressionr   ÚarrayÚIteratorForTestr   ÚnpÚconcatenater   )r   ÚX_0Úy_0Ú_ÚX_1Úy_1ÚX_2Úy_2ÚXÚyÚcpÚbatchÚitÚXy_0ÚX_arrÚy_arrÚXy_1s                    úd/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/data_iter.pyÚrun_mixed_sparsityr3      sQ  € ä×$Ñ$ S¨"¨eÓ4�K€CˆˆaØ×Ñ˜Ô Ü×,Ñ,¨S°"°c¸4Ó@‰ˆ‰Sä×,Ñ,¨S°"°c¸5ÓA‰ˆˆSÜ×(Ñ(¨¨b°#°tÓ<�H€CˆØ	ˆc�3ˆ€AØ	ˆc�3ˆ€Aà×Ñ˜Ô Ü‹]ˆà*+Ö, ˆR�X‰X�e�_Ð,ˆÐ,ä	×	Ñ	˜A˜q $¨d¸EÔ	B€BÜ˜2Ó€Dä×(Ñ(¨¨b°#°tÓ<�H€CˆØ	ˆc�3ˆ€AØ	ˆc�3ˆ€AÜ�N‰N˜1 1Ô%€EÜ�N‰N˜1 1Ô%€EÜ˜5 %Ó(€Dä˜4 Ô&Ð&Ñ&ùò -s   Â(Ec                 ó”  ‡ —  G ˆ fd„dt         «      } |«       }ddl}|j                  t        d¬«      5  t	        |d¬«       ddd«       |j                  t        d¬«      5  t        |d¬«       ddd«       |j                  t        d	¬«      5  t        |d¬«       ddd«       y# 1 sw Y   ŒdxY w# 1 sw Y   ŒCxY w# 1 sw Y   yxY w)
z3Check error message for inconsistent feature types.c                   ó>   •‡ — e Zd Zdˆ fd„Zdedefˆfd„Zdd„Zˆ xZS )ú2check_invalid_cat_batches.<locals>._InvalidCatIterr   c                 ó4   •— t         ‰| �  d ¬«       d| _        y )N©Úcache_prefixr   )ÚsuperÚ__init__Ú_it)ÚselfÚ	__class__s    €r2   r;   z;check_invalid_cat_batches.<locals>._InvalidCatIter.__init__/   s   ø€ Ü‰GÑ¨$ÐÔ/ØˆD�Hó    Ú
input_datac           	      ó   •— | j                   dk(  ryt        j                  ddddd| j                   dk(  rdnd¬	«      \  }}‰d
k(  r*dd l}dd l}|j                  |«      }|j                  |«      } |||¬«       | xj                   dz  c_         y)Nr   Fé@   é   é   g      à?r   g      ð?)ÚonehotÚsparsityÚ	cat_ratior   ©ÚdataÚlabelr   T)r<   r   Úmake_categoricalÚcudfÚcupyÚ	DataFramer   )r=   r@   r)   r*   rL   rM   r   s         €r2   Únextz7check_invalid_cat_batches.<locals>._InvalidCatIter.next3   sˆ   ø€ Ø�x‰x˜1Š}ØÜ×&Ñ&ØØØØØØ!%§¡¨Q¢™#°Cô‰DˆAˆqð ˜ÒÛÛà—N‘N 1Ó%�Ø—J‘J˜q“M�á˜A QÕ'Ø�HŠH˜‰M�HØr?   c                 ó   — d| _         y ©Nr   ©r<   ©r=   s    r2   Úresetz8check_invalid_cat_batches.<locals>._InvalidCatIter.resetI   s	   € ØˆD�Hr?   ©r   N)	Ú__name__Ú
__module__Ú__qualname__r;   r   ÚboolrO   rT   Ú__classcell__)r>   r   s   @€r2   Ú_InvalidCatIterr6   .   s    ù„ õ	ð	 8ð 	°õ 	÷,	r?   r[   r   Nz)Inconsistent number of categories between)ÚmatchT)Úenable_categoricalzInconsistent feature types)r   ÚpytestÚraisesÚ
ValueErrorr
   r   r	   )r   r[   r-   r^   s   `   r2   Úcheck_invalid_cat_batchesra   +   sµ   ø€ öœ(ô ñ< 
Ó	€BÛà	�‰”zÐ)TˆÓ	Uñ ;Ü˜b°TÕ:÷;ð 
�‰”zÐ)TˆÓ	Uñ 5Ü˜¨tÕ4÷5ð 
�‰”zÐ)EˆÓ	Fñ -Ü� tÕ,÷-ð -÷;ð ;ú÷5ð 5ú÷-ð -ús#   µB&Á"B2ÂB>Â&B/Â2B;Â>Cc           	      óà  — dD �cg c]  }t        j                  |d| dk(  ¬«      ‘Œ }}t        t        |Ž «      }t        j                  |d   |d   ddd	¬
«      }t        |«      }|j                  «       dk(  sJ ‚|j                  «       t        d„ |d   D «       «      k(  sJ ‚t        |«      }|j                  «       dk(  sJ ‚|j                  «       t        d„ |d   D «       «      k(  sJ ‚yc c}w )z'Tests for having irregular data shapes.)r   r   i   r   r   )Úuse_cupyr   r   Nr   Tr   c              3   ó:   K  — | ]  }|j                   d    –— Œ y­w©r   N©Úshape©Ú.0Úxs     r2   ú	<genexpr>z%check_uneven_sizes.<locals>.<genexpr>d   ó   è ø€ Ò<¨a˜qŸw™w q�zÑ<ùó   ‚c              3   ó:   K  — | ]  }|j                   d    –— Œ y­wre   rf   rh   s     r2   rk   z%check_uneven_sizes.<locals>.<genexpr>h   rl   rm   )
r   r   ÚlistÚzipr   r	   Únum_colÚnum_rowÚsumr
   )r   Ú	n_samplesÚbatchesÚunzipr-   ÚXys         r2   Úcheck_uneven_sizesrx   Y   së   € ð *öàô 	×Ñ˜9 b°6¸VÑ3CÖDð€Gð ô ”�g�Ó€EÜ	×	Ñ	˜E !™H e¨A¡h°¸GÈTÔ	R€Bä	�‹€BØ�:‰:‹<˜2ÒÐÐØ�:‰:‹<œ3Ñ<°5¸±8Ô<Ó<Ò<Ð<Ð<ä	˜rÓ	"€BØ�:‰:‹<˜2ÒÐÐØ�:‰:‹<œ3Ñ<°5¸±8Ô<Ó<Ò<Ð<Ñ<ùòs   …"C+c                   ó€   ‡ — e Zd ZdZddœdededededed	ed
ededee   deddfˆ fd„Z	de
fd„Zdedefd„Zdd„Zˆ xZS )ÚCatIterz-An iterator for testing categorical features.r   )Ú	n_targetsÚn_samples_per_batchÚ
n_featuresÚ	n_batchesÚn_catsrF   rG   rE   r   r   r{   r   Nc          	      ó¤  •— t         ‰| �  |	¬«       || _        || _        ||z  }t	        j
                  |||||||
¬«      \  }}g g }}d}t        |«      D ]V  }t        |||z
  «      }|j                  |||z   …d d …f   }|j                  |«       |j                  ||||z    «       ||z  }ŒX || _
        || _        || _        || _        d| _        y )Nr8   )Ún_categoriesrE   rG   rF   r{   r   )r:   r;   r~   r   r   rK   ÚrangeÚminÚilocÚappendÚxsÚysrj   r*   r<   )r=   r|   r}   r~   r   rF   rG   rE   r   r   r{   rt   Úcatr*   r†   r‡   Úprevr$   Únr)   r>   s                       €r2   r;   zCatIter.__init__n   sù   ø€ ô 	‰Ñ eÐÔ,Ø"ˆŒØˆŒà'¨)Ñ3ˆ	Ü×$Ñ$ØØØØØØØô
‰ˆˆQð �RˆBˆàˆÜ�yÓ!ò 	(ˆAÜÐ'¨°TÑ)9Ó:ˆAØ—‘˜  q¡˜ª!Ð+Ñ,ˆAØ�I‰I�aŒLØ�I‰I�a˜˜t a™xÐ(Ô)ØÐ'Ñ'‰Dð	(ð ˆŒØˆŒàˆŒØˆŒàˆ�r?   c                 ó2   — | j                   | j                  fS )zReturn the concatenated data.)rj   r*   rS   s    r2   Úxyz
CatIter.xyœ   s   € à�v‰v�t—v‘vˆ~Ðr?   r@   c                 óL  — | j                   | j                  k(  ry| j                  | j                      | j                  | j                      }}| j                  dk(  r*dd l}dd l}|j                  |«      }|j                  |«      } |||¬«       | xj                   dz  c_         y)NFr   r   rH   r   T)	r<   r~   r†   r‡   r   rL   rM   rN   r   )r=   r@   r)   r*   rL   rM   s         r2   rO   zCatIter.next    s   € Ø�8‰8�t—~‘~Ò%Øà�w‰w�t—x‘xÑ  $§'¡'¨$¯(©(Ñ"3ˆ1ˆØ�;‰;˜&Ò ÛÛà—‘˜qÓ!ˆAØ—
‘
˜1“ˆAÙ˜ Õ#Ø�Š�A‰�Ør?   c                 ó   — d| _         y rQ   rR   rS   s    r2   rT   zCatIter.reset¯   s	   € Øˆ�r?   rU   )rV   rW   rX   Ú__doc__ÚintÚfloatrY   Ústrr   r;   ÚtuplerŒ   r   rO   rT   rZ   )r>   s   @r2   rz   rz   k   s¥   ø„ Ù7ð ò,à ð,ð ð,ð
 ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð ˜‰}ð,ð ð,ð 
õ,ð\�Eó ð˜xð ¨Dó ÷r?   rz   )r�   Útypingr   r   Únumpyr    Úxgboostr   r   Úcompatr   Úcorer   r	   r
   r   Úutilsr   r’   r3   ra   rx   rz   © r?   r2   ú<module>r›      se   ðÙ 0ç %ã å !å  ß LÓ LÝ "ð'˜sð ' tó 'ð:+- cð +-¨dó +-ð\=˜sð = tó =ô$Eˆhõ Er?   