a
    ;Za`                     @   s  d dl Zd dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZmZ dd gd d	gd	d	gd	d	ggZeeZg d
Zg dZejdddgejdddgejdddgejdddgdd Zdd Zd5ddZdd  Zd!d" Zd#Zejd$d%d&ed'fgd(d) Zejd*ded	 gd+d, Zejd-ed.fd/gd0d1 Zejd2ded	 gd3d4 Z dS )6    N)sparse)stats)l1_min_c)	LinearSVC)LogisticRegressionset_seed_wrapbounded_rand_int_wrap   )r   r   r   r   )   r   r   r   losssquared_hingelogX_labelr   denseY_labeltwo-classesmulti-classintercept_labelno-interceptfit-interceptc           
      C   sX   t td}ttd}ddidddd}|| }|| }|| }	t||| fi |	 d S )	N)r   r   )r   r   fit_interceptFT
   )r   intercept_scaling)r   r   )sparse_Xdense_XY1Y2check_l1_min_c)
r   r   r   r   ZXsZYsZ
interceptsXYZintercept_params r"   <lib/python3.9/site-packages/sklearn/svm/tests/test_bounds.pytest_l1_min_c   s    

r$   c                  C   sD   d} t jt| d tttdd W d    n1 s60    Y  d S )Nzloss type not in)matchl2r   pytestraises
ValueErrorr   r   r   )msgr"   r"   r#   test_l1_min_c_l2_loss&   s    r-   Tc                 C   s   t | ||||d}tdddtddddd| }||_||_||_|| | t|j	d	k
 shJ t|jd	k
 sJ |d
 |_|| | t|j	d	k st|jd	k sJ d S )N)r   r   r   l1Z	liblinear)penaltyZsolverr   F)r   r/   Zdual)r   r   r   g)\(?)r   r   r   r   r   CZfitnpZasarrayZcoef_allZ
intercept_any)r    yr   r   r   Zmin_cZclfr"   r"   r#   r   -   s*    	

r   c                  C   sP   ddgddgg} ddg}t t t| | W d    n1 sB0    Y  d S )Nr   r   )r)   r*   r+   r   )r    r4   r"   r"   r#   test_ill_posed_min_cH   s    r5   c                   C   s<   t t tttdd W d    n1 s.0    Y  d S )Nr.   r'   r(   r"   r"   r"   r#   test_unsupported_lossO   s    r6   l    z	seed, val)NQ   )r   6   	   c                 C   s:   | durt |  td}||ks6J d| d| ddS )z3Test that `set_seed` produces deterministic resultsNd   z	Expected z	 but got z insteadr   )seedvalxr"   r"   r#   test_newrand_set_seedW   s    r>   r;   c                 C   s6   t t t|  W d   n1 s(0    Y  dS )z=Test that `set_seed_wrap` is defined for unsigned 32bits intsN)r)   r*   OverflowErrorr   )r;   r"   r"   r#   test_newrand_set_seed_overflow`   s    r@   zrange_, n_ptsi'  )r:      c                    s   d}g }t jd d}t|D ]4} fddt|D }t ||j}||j qt jddd}t ||j}	|	jdksJ d|	j d	tj|d
d}
|
dksJ d|
 ddS )z;Test that `bounded_rand_int` follows a uniform distributionr:   r   )ZlocZscalec                    s   g | ]}t  qS r"   )r	   ).0_range_r"   r#   
<listcomp>p       z1test_newrand_bounded_rand_int.<locals>.<listcomp>r   g?zNull hypothesis rejected: generated random numbers are not uniform. Details: the (meta) p-value of the test of uniform distribution of p-values is z which is not > 0.05r   )qzlNull hypothesis rejected: generated random numbers are not uniform. Details: lower 10th quantile p-value of z not > 0.05.N)	r   ZuniformrangeZkstestZcdfappendZpvaluer1   Z
percentile)rE   Zn_ptsZn_iterZks_pvalsZuniform_distrC   ZsampleresZuniform_p_vals_distZ	res_pvalsZmin_10pct_pvalr"   rD   r#   test_newrand_bounded_rand_intg   s(    
rL   rE   c                 C   s6   t t t|  W d   n1 s(0    Y  dS )zETest that `bounded_rand_int_wrap` is defined for unsigned 32bits intsN)r)   r*   r?   r	   rD   r"   r"   r#   $test_newrand_bounded_rand_int_limits   s    rM   )TN)!Znumpyr1   Zscipyr   Zspr   r)   Zsklearn.svm._boundsr   Zsklearn.svmr   Zsklearn.linear_modelr   Zsklearn.svm._newrandr   r	   r   Z
csr_matrixr   r   r   ZmarkZparametrizer$   r-   r   r5   r6   Z_MAX_UNSIGNED_INTr>   r@   rL   rM   r"   r"   r"   r#   <module>   s:   




$