Ë
    °Ó^jW  ã                   ó2  — d Z ddlmZ ddlZddlmZ ddlmZm	Z	 dej                  defd	„Zdej                  defd
„Z	 ddedee   defd„ZdZej                   j!                  e¬«      Zej                   j!                  e¬«      Z ej&                  eef«      Zej                   j+                  dde¬«      Zdez   ej.                  dej0                  z  ez  «      z   dez  z
   ej2                  dej0                  z  ez  «      z
  ez   Z e	ee¬«      Zy)z)Helpers for testing monotone constraints.é    )ÚOptionalNé   )ÚFeatureNames)ÚBoosterÚDMatrixÚvÚreturnc                 ó^   — t        j                  t        j                  | «      dk  «      dk(  S )zWhether is v increasing.ç        r   ©ÚnpÚcount_nonzeroÚdiff©r   s    úo/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/monotone_constraints.pyÚis_increasingr      ó%   € ä×ÑœBŸG™G A›J¨Ñ,Ó-°Ñ2Ð2ó    c                 ó^   — t        j                  t        j                  | «      dkD  «      dk(  S )zWhether is v decreasing.r   r   r   r   s    r   Úis_decreasingr      r   r   ÚlearnerÚfeature_namesc                 óä  — d}t        j                  dd|«      j                  |df«      }t        j                  dd|«      }t        |«      D ]¡  }||   t        j                  |df«      z  }t        j
                  ||f«      }t        ||¬«      }| j                  |«      }	t        j
                  ||f«      }
t        |
|¬«      }| j                  |«      }t        |	«      rt        |«      rŒ¡ y y)z5Whether the monotone constraint is correctly applied.éd   r   é   )r   FT)
r   ÚlinspaceÚreshapeÚrangeÚonesÚcolumn_stackr   Úpredictr   r   )r   r   ÚnÚ
variable_xÚfixed_xs_valuesÚiÚfixed_xÚmonotonically_increasing_xÚmonotonically_increasing_dsetÚmonotonically_increasing_yÚmonotonically_decreasing_xÚmonotonically_decreasing_dsetÚmonotonically_decreasing_ys                r   Úis_correctly_constrainedr-      sò   € ð 	€AÜ—‘˜Q  1Ó%×-Ñ-¨q°!¨fÓ5€JÜ—k‘k ! Q¨Ó*€Oä�1‹Xò ˆØ! !Ñ$¤r§w¡w°°1¨v£Ñ6ˆÜ%'§_¡_°jÀ'Ð5JÓ%KÐ"Ü(/Ø&°mô)
Ð%ð &-§_¡_Ð5RÓ%SÐ"ä%'§_¡_°g¸zÐ5JÓ%KÐ"Ü(/Ø&°mô)
Ð%ð &-§_¡_Ð5RÓ%SÐ"ô Ð4Ô5ÜÐ8Õ9áð%ð( r   iè  )Úsizer   g{®Gáz„?)ÚlocÚscaler.   é   é
   )Úlabel)N)Ú__doc__Útypingr   Únumpyr   Ú_typingr   Úcorer   r   ÚndarrayÚboolr   r   r-   ÚNUMBER_OF_DPOINTSÚrandomÚx1_positively_correlated_with_yÚx2_negatively_correlated_with_yr    ÚxÚnormalÚzsÚsinÚpiÚcosÚyÚtraining_dset© r   r   ú<module>rH      sO  ðÙ /å ã å "ß #ð3�R—Z‘Zð 3 Dó 3ð
3�R—Z‘Zð 3 Dó 3ð ?CñØðØ%-¨lÑ%;ðà	óð> Ð Ø"$§)¡)×"2Ñ"2Ð8IÐ"2Ó"JÐ Ø"$§)¡)×"2Ñ"2Ð8IÐ"2Ó"JÐ à€B‡O�OÐ4Ð6UÐVÓW€Ø‡Y�Y×Ñ˜# TÐ0AÐÓB€àÐ'Ñ'Ø€b‡f�fˆR�"—%‘%‰ZÐ9Ñ9Ó:ñ;àÐ
)Ñ)ñ*ð €b‡f�fˆR�"—%‘%‰ZÐ9Ñ9Ó:ñ;ð 	ñ		ð ñ ˜ Ô#�r   