a
    hr                     @   s>  d dl Zd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZ ee Zdd Zejde	d ddde	d ddd	e	d dd	de	d dd	d	e	ej ejdde	ej ejdd	e	ej ejd	de	ej ejd	d	e	d
ddde	d
ddd	e	d
dd	de	d
dd	d	gdd Zejdedd Zejdedd ZdS )    N)assert_allcloseassert_array_equal)_LINKSHalfLogitLinkIntervalMultinomialLogit_inclusive_low_highc                   C   s@   t jtdd tdddd W d   n1 s20    Y  dS )z5Test that interval with low > high raises ValueError.z-One must have low <= high; got low=1, high=0.)match   r   FN)pytestZraises
ValueErrorr    r   r   Y/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/_loss/tests/test_link.pytest_interval_raises   s    r   intervalr
   FTc                 C   s   t | \}}tj||dd}| |s*J | tj|| jf | jksJJ | tj|| jf | jksjJ | tj|| j| jf | jo| jksJ d S )N
   )num)	r   npZlinspaceZincludesZr_lowZlow_inclusivehighZhigh_inclusive)r   r   r   xr   r   r   test_is_in_range   s      
r   linkc                 C   s   t j|}|  } d\}}| jrNd}|jdd||fd}t| trz| |}n,t| trj|jdd|d}n|jdd|d}t	| 
| || | |}t	| | 
|| d S )Nd   Nr   i   r   r   sizer   )r   randomRandomStateis_multiclassuniform
isinstancer   symmetrize_raw_predictionr   r   r   inverse)r   Zglobal_random_seedrng	n_samples	n_classesraw_predictiony_predr   r   r   test_link_inverse_identity<   s    


r,   c           	      C   s   t jd}|  } d\}}| jrNd}|jdd||fd}t| tr^| |}n|jdd|d}| j	|d d}t 
|}| j	||d}t|| t|| t ||sJ t 
|}| j||d}t|| t|| t ||sJ d S )	N*   r   r   r   )locscaler   r   r   )out)r   r    r!   r"   normalr$   r   r%   r#   r&   Z
empty_liker   r   Zshares_memoryr   )	r   r'   r(   r)   r*   r+   r0   Zy_pred_2Zraw_prediction_2r   r   r   test_link_out_argumentT   s(    






r2   )numpyr   r   Znumpy.testingr   r   Zsklearn._loss.linkr   r   r   r   r   listvaluesZLINK_FUNCTIONSr   markZparametrizeinfr   r,   r2   r   r   r   r   <module>   s4   

