
    Ug_q                        d dl Z d dlZd dl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mZ d dlmZmZ d dlmZ d dlm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lm Z m!Z! d dl"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z)  e            Z*d Z+d Z,d Z-d Z.d Z/	 	 	 	 	 	 d3dZ0	 	 	 	 	 	 	 d4dZ1d5dZ2d Z3d Z4ej5        6                    d          ej5        7                    de)          d                          Z8ej5        6                    d          ej5        7                    de)          d!                         Z9ej5        6                    d          ej5        7                    de)          d"                         Z:d# Z;ej5        7                    d$ e<d%                    ej5        7                    de)          d&                         Z=ej5        6                    d          ej5        7                    de)          d'                         Z>ej5        6                    d          ej5        7                    de)          d(                         Z?ej5        7                    de)          d)             Z@ej5        6                    d          ej5        7                    de)          d*                         ZAd+ ZBd, ZCd- ZDd. ZEej5        7                    d/d0d1g          d2             ZFdS )6    N)	logsumexp)HalfMultinomialLoss)clone)	load_iris
make_blobsmake_classification)LogisticRegressionRidge)make_dataset)LinearModelLoss)get_auto_step_size)"_multinomial_grad_loss_all_samples)OneVsRestClassifier)LabelBinarizerLabelEncoder)check_random_statecompute_class_weight)assert_allcloseassert_almost_equalassert_array_almost_equal)	row_norms)CSR_CONTAINERSc                     | |z  }|dk    rt          j        |           | z  S |dk     r| S | t          j        |          dz   z  S )Ng      2@g      2      ?)mathexp)pyzs      b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/linear_model/tests/test_sag.py	log_dlossr!   $   sU    	AA4xxx||qb  5yyr	2!s"##    c           	          t          j        t          j        dt          j        | | z            z                       S )Nr   )npmeanlogr   r   r   s     r    log_lossr(   .   s/    726#rAv.//000r"   c                     | |z
  S )N r'   s     r    squared_dlossr+   3   s    q5Lr"   c                 B    t          j        d| |z
  z  | |z
  z            S )N      ?)r$   r%   r'   s     r    squared_lossr.   7   s#    73!a%=AE*+++r"   c                     |                                  } t          j        ||           } |||          }|||                     |           z  dz  z  }|S )N       @)ravelr$   dot)walphamyXmyylosspredr   s          r    get_pobjr9   <   sP    			A6#q>>DT3Aq	C	AHr"      FTc
           	      H   | j         d         | j         d         }}
t          j        | j         d                   }t          j        | j         d                   }t          j        |
|f          }d}d}t          j        |
          }t          j                            d          }d}t                      }|rd}t          |          D ]U}t          |
          D ]A}t          |                                |
z            }| |         }|	                    |           t          j
        ||          |z   } ||||                   }||||         z  }||z  ||z  z   }|||         z
  }||z  }|||<   |	r|||z  ddt          |          z  z
  z  z  }|rl|||         z
  }|||<   ||z  }||ddt          |          z  z
  z  z  }|	r|||z  t          |          z  |z  |z   z  }n|||z  t          |          z  |z  z  }|||z  t          |          z  z  }CW||fS )Nr   r:           M   r   {Gz?)shaper$   zerosrandomRandomStatesetrangeintrandaddr2   len)Xr   	step_sizer4   n_iterdlosssparsesample_weightfit_interceptsaga	n_samples
n_featuresweightssum_gradientgradient_memory	interceptintercept_sum_gradientintercept_gradient_memoryrngdecayseenepochkidxentryr   gradientupdategradient_corrections                                r    sagrc   D   s~    GAJ
zIhqwqz""G8AGAJ''Lh	:677OI  " 3 3
)


#
#CE55D  v < <y!! 	< 	<Achhjj9,--CcFEHHSMMMug&&2AuQ#''H(M#..X%7F"(?3+?"?//L#)OC  S.:a#D		/>QRR 
X&.1J31O&O#19)#.&*==&#yC#D		/4I'JJ# X!$::SYYFN+", ,II -C!Cc$ii!ORW!WWIy</#d));;GG9	<< Ir"   c                 6   ||z  dk    rt          d          | j        d         | j        d         }}t          j        |          }t          j        |          }t          j        |t                    }t          j        |          }t          |
          }d}d}d}d}t                      }t          j        ||z            }|rd}d}t          |          D ]}t          |          D ]}t	          |                                |z            }| |         }|	                    |           |dk    rzt          |          D ]j}||         dk    r#||xx         ||dz
           ||         z  z  cc<   n4||xx         ||dz
           |||         dz
           z
  ||         z  z  cc<   |||<   k|t          j
        ||          z  |z   } ||||                   }||||         z  }||z  } | ||         |z  z
  }!||!z  }|	rDt          |          D ]4}||xx         |!|         |z  ddt          |          z  z
  z  |z  z  cc<   5|rg|||         z
  }!||!z  }|!|ddt          |          z  z
  z  z  }!|	r|||z  t          |          z  |z  |!z   z  }n|||z  t          |          z  |z  z  }|||<   |d||z  z
  z  }|dk    r||t          |          z  z  |d<   n$||dz
           ||t          |          z  z  z   ||<   |dk    r|dk     rt          |          D ]g}||         dk    r ||xx         ||         ||         z  z  cc<   n1||xx         ||         |||         dz
           z
  ||         z  z  cc<   |dz   ||<   hd||<   ||z  }d}|dz  }t          |          D ]e}||         dk    r#||xx         ||dz
           ||         z  z  cc<   1||xx         ||dz
           |||         dz
           z
  ||         z  z  cc<   f||z  }||fS )	Nr   z:Sparse sag does not handle the case step_size * alpha == 1r   r:   dtyper<   r>   g&.>)ZeroDivisionErrorr?   r$   r@   rE   r   rC   rD   rF   rG   r2   rH   )"rI   r   rJ   r4   rK   rL   rN   rM   rO   rP   random_staterQ   rR   rS   rT   last_updatedrU   rY   rV   rW   wscalerZ   r[   c_sumcounterr\   r]   r^   r_   jr   r`   ra   rb   s"                                     r    
sag_sparsern      s=    5CH
 
 	
 GAJ
zIhz""G8J''L8Jc222Lhy))O
\
*
*CI FE55DHVi'((E  Gv C Cy!! B	 B	Achhjj9,--CcFEHHSMMM!||z** . .A#A!++


eGaK&8<?&JJ






!'A+.|A7J1KK(O', ,


 '.LOO"&000I=AuQ#''H(M#..X%F"(OC,@5,H"I//L z**  AAJJJ+A.#$sSYY.0 !!JJJJ  	X&.1E&E#&*==&#yC#D		/4I'JJ# X!$::SYYFN+", ,II -C!Cc$ii!ORW!WWI#+OC cEI---F!||$T(:;a!&w{!3i6CPTIICU6V!Vg!||z** 2 2A#A!++


eGn|A&FF






!'NU<?Q3F-GG(O', ,


 '.kLOO!"g6!qLGGEB	H :    ?aAJJJ%!,|A>>JJJJAJJJgk"U<?Q+>%??Q   JJJJ vGIr"   c                     |r7dt          j        t          j        | | z  d                    |z   d|z  z   z  S dt          j        t          j        | | z  d                    |z   |z   z  S )N      @r:   axisr   )r$   maxsum)rI   r4   rO   classifications       r    get_step_sizerv      ss     MbfRVAE22233mCcEkQRRbfRVAE22233mCeKLLr"   c                     d} t          | ddd          \  }}d||dk    <   d}d}t          |||          }d	D ]1}|d
k    rd}nd}t          ||dd|z  | z  |d          }|                    ||           t	          |||||t
          ||dk              \  }	}
t          |||||t
          ||dk              \  }}t          j        |	          }	t          j	        |
          }
t          j        |          }t          j	        |          }t          |	|j        d           t          |
|j        d           t          ||j        d           t          ||j        d           3d S )N      r   皙?rQ   centersrh   cluster_std皙?T)rc   rP   rc   P   ,  dy=r   
   solverrO   tolCmax_iterrh   rP   )rK   rL   rO   rP   	   decimal)r   rv   r	   fitrn   r!   rc   r$   
atleast_2d
atleast_1dr   coef_
intercept_)rQ   rI   r   r4   rO   rJ   r   rK   clfrS   rV   weights2
intercept2s                r    test_classifier_matchingr      s   I	11RUVVVDAqAa1fIEMa66I! ,I ,IU??FF F 'EkI%
 
 
 	1''6!	
 	
 	
  #'6!	 
 	 
 	 
* -((M),,	=**]:..
!'39a@@@@!)S^QGGGG!(CIqAAAA!*cnaHHHHHY,I ,Ir"   c            	      ~   d} d}t           j                            d          }|                    | |f          }|                    |          }|                    |          }d}d}d}t          |||d          }	t          |d	d
|| z  |          }
|
                    ||           t          |||	||t          |          \  }}t          |||	||t          |          \  }}t          ||
j                   t          ||
j                   t          ||
j                   t          ||
j                   d S )Nr      sizer   d   TFru   r   rc   )rO   r   r   r4   r   rK   rL   rO   )r$   rA   rB   normalr2   rv   r
   r   rn   r+   rc   r   r   r   )rQ   rR   rY   rI   true_wr   r4   rK   rO   rJ   r   weights1
intercept1r   r   s                  r    test_regressor_matchingr   6  si   IJ
)


#
#C

J/
00AZZZZ((F	fAEFMaeLLLI
#i  C GGAqMMM%		#  Hj 		#  Hj Hci(((J///Hci(((J/////r"   zignore:The max_iter was reachedcsr_containerc                 v   d}d}d}t          |ddd          \  }}t          dd	d
d|z  |z  |d          }t          |          }t          d	d
d|z  |z  |d          }|                    ||           |                     | |          |           |                    ||           t	          |j        |||t                    }	t	          |j        |||t                    }
t	          |j        |||t                    }t          |	|
d           t          |
|d           t          ||	d           dS )z%tests if the sag pobj matches log regr   r   rx   ry   r   rz   r{   rc   FgHz>r   r   )rO   r   r   r   rh      r   N)r   r	   r   r   r9   r   r(   r   )r   rQ   r4   r   rI   r   clf1clf2clf3pobj1pobj2pobj3s               r    )test_sag_pobj_matches_logistic_regressionr   f  sb    IEH	11RUVVVDAq
+	
!  D ;;D
+	
!  D 	HHQNNNHH]]1q!!!HHQNNNTZ1h77ETZ1h77ETZ1h77EeUA6666eUA6666eUA666666r"   c                     d}d}d}d}d}t           j                            d          }|                    ||f          }|                    |          }|                    |          }	t          |dd||d	          }
t          |
          }t          |d
d||d	          }|
                    ||	           |                     | |          |	           |                    ||	           t          |
j	        |||	t                    }t          |j	        |||	t                    }t          |j	        |||	t                    }t          ||d           t          ||d           t          ||d           dS )z'tests if the sag pobj matches ridge regr   r   r   Fr   r   rc   *   rO   r   r   r4   r   rh   h㈵>lsqrr   r   N)r$   rA   rB   r   r2   r
   r   r   r9   r   r.   r   )r   rQ   rR   r4   rK   rO   rY   rI   r   r   r   r   r   r   r   r   s                   r    &test_sag_pobj_matches_ridge_regressionr     s    IJEFM
)


#
#C

J/
00AZZZZ((F	fA#  D ;;D#  D 	HHQNNNHH]]1q!!!HHQNNNTZ1l;;ETZ1l;;ETZ1l;;EeUA6666eUA6666eUA666666r"   c                    d}d}d}d}d}d}t           j                            d          }|                    ||f          }|                    |          }	t          j        ||	          d	z   }
t          |||d
          }t          ||d||z  ||          }t          |          }|                    ||
           |                     | |          |
           t          ||
|||t          ||          \  }}t          ||
|||t          d||	  	        \  }}t          |j                                        |                                d           t          |j        |d           dS )z0tests if the sag regressor is computed correctlyrz   r   (   r   gư>Tr   r   r0   Fr   rc   r   )rK   rL   rO   rh   )rK   rL   rM   rO   rh      r   r:   N)r$   rA   rB   r   r2   rv   r
   r   r   rn   r+   r   r   r1   r   r   )r   r4   rR   rQ   r   r   rO   rY   rI   r3   r   rJ   r   r   
spweights1spintercept1
spweights2spintercept2s                     r    %test_sag_regressor_computed_correctlyr     s    EJIH
CM
)


"
"C

J/
00A



##A
q!sAaeLLLI#i  D ;;DHHQNNNHH]]1q!!!)		#	  	  	 J  *		#
  
  
 J dj..00*2B2B2D2DaPPPPqAAAAAAr"   c            
      x   t          j        g dg dg dgt           j                  } d}d}d}t          | d	                                          }| j        d
         }t          ||d           dD ]}dD ]}|rs||z   t          |          z   }|d|z  z   t          |          z   dz  }t          d|z  |z  |          }	t          d|z  |z  |          }
dd|z  |	z   z  }dd|z  |
z   z  }n3d||z   t          |          z   z  }d|d|z  z   t          |          z   z  }t          ||d|||          }t          ||d|||          }t          ||d           t          ||d           d}t          j        t          |          5  t          ||d|           d d d            d S # 1 swxY w Y   d S )N)r:   ry   r   )ry   r   r   )ry   r   ry   re   333333?F   T)squaredr   r   r   )TFrp   ry   r:   r   r   )rQ   is_sagar&   z:Unknown loss function for SAG solver, got wrong instead ofmatchwrong)r$   arrayfloat64r   rs   r?   r   rE   minr   pytestraises
ValueError)rI   r4   rO   max_squared_summax_squared_sum_rQ   rP   L_sqrL_logmun_sqrmun_logstep_size_sqrstep_size_logstep_size_sqr_step_size_log_msgs                   r    test_get_auto_step_sizer     s   
)))YYY			2"*EEEAEM O D1115577
I)91EEEE !J !J*  	J  	JM '%/#m2D2DD(3;6]9K9KKsRa)me3U;;a)me3U;; !QY%8 9 !QY%8 9 #'>]ASAS'S T ##cEk1C4F4FF! 0 #  N 0 #  N  ~qIIII~qIIIIIA 	JD GC	z	-	-	- L L+UG]KKKL L L L L L L L L L L L L L L L L Ls   F//F36F3seedr   c                    d\  }}d}d}d}d}t           j                            |           }t          j        |||                              |d          }	d|	                                z  }
t          |d|||z  |	          }t          |          }|                    |	|
           |                     ||	          |
           |	                    |	|
          }|	                    |	|
          }|d
k    sJ |d
k    sJ d|	                                z  |
                    |d                                          z   }
t          |d|||z            }t          |          }|                    |	|
           |                     ||	          |
           |	                    |	|
          }|	                    |	|
          }|dk    sJ |dk    sJ dS )z(tests if the sag regressor performs well)r   r   gMbP?r   rz   r:   r-   rc   )r   r   r   r4   rh   g\(\?)r   r   r   r4   ?N)r$   rA   rB   linspacereshaper1   r
   r   r   scorerandn)r   r   xminxmaxrQ   r   r   r4   rY   rI   r   r   r   score1score2s                  r    test_sag_regressorr   *  s    JD$I
CHE
)


%
%C
D$	**229a@@A 	aggiiAi  D ;;DHHQNNNHH]]1q!!!ZZ1FZZ1FD====D==== 	aggii#))Iq1177999ASARSSSD;;DHHQNNNHH]]1q!!!ZZ1FZZ1FD====D======r"   c           
      ^   d}d}d}d}d}t          |ddd          \  }}t          |||d          }t          j        |          }	t          j        |          }
d	|
||	d
         k    <   |
}t          dd|z  |z  ||d|          }t          |          }|                    ||           |                     | |          |           t          |||||t          |          \  }}t          |||||t          d|          \  }}t          |j                                        |                                d           t          |j        |d
           t          |j                                        |                                d           t          |j        |d
           dS )z4tests if the binary classifier is computed correctlyrz   2   r   Try   r   r{   r   r~   r:   rc   r   r=   r   r   r   r   rh   rO   r   )rK   rL   rM   rO   r   N)r   rv   r$   uniqueonesr	   r   r   rn   r!   r   r   r1   r   r   )r   r4   rQ   rK   r   rO   rI   r   rJ   classesy_tmpr   r   	spweightsspinterceptr   r   s                    r    &test_sag_classifier_computed_correctlyr   U  s    EIF
CM	11RUVVVDAqadKKKIillGGIEE!wqz/A
+	
!#  D ;;DHHQNNNHH]]1q!!!'		#  I{  *		#	  	  	 J dj..00)//2C2CQOOOOa@@@@dj..00*2B2B2D2DaPPPPqAAAAAAr"   c                 4   d}d}d}d}d}t          |ddd          \  }}t          |||d	          }t          j        |          }	t	          t          d
d|z  |z  ||d|                    }
t          |
          }|
                    ||           |                     | |          |           g }g }g }g }|	D ]}t          j        |          }d|||k    <   t          ||||t          ||          \  }}t          ||||t          |d|          \  }}|                    |           |                    |           |                    |           |                    |           t          j        |          }t          j        |          }t          j        |          }t          j        |          }t          |	          D ]\  }}t          |
j        |         j                                        ||         d           t          |
j        |         j        ||         d           t          |j        |         j                                        ||         d           t          |j        |         j        ||         d           dS )z8tests if the multiclass classifier is computed correctlyrz   rx   r   F   Tr   r   r{   r   rc   r   r=   r   r~   )rL   rK   rO   )rL   rK   rM   rO   r>   )rtolr-   N)r   rv   r$   r   r   r	   r   r   r   rn   r!   appendvstackr   	enumerater   estimators_r   r1   r   )r   r4   rQ   r   r   rO   rI   r   rJ   r   r   r   coef1r   coef2r   cl	y_encodedr   r   r   r   is                          r    &test_sag_multiclass_computed_correctlyr     s    EI
CHM	11RUVVVDAqadKKKIillGEkI%'	
 	
 	
	 	D ;;DHHQNNNHH]]1q!!!EJEJ ( (GI&&		!r'#-'$
 $
 $
 
L $.'	$
 	$
 	$
 
L 	Z   ,'''Z   ,''''IeE*%%JIeE*%%J7## R R2(+1779958$OOOO(+6
1DQQQQ(+1779958$OOOO(+6
1DQQQQQR Rr"   c                 ^   d}d}d}d}d}t           j                            d          }|                    ||f          }|                    |          }t          j        ||          }	t          j        |	          }	t          dd	|z  |z  ||d
          }
t          |
          }|
                    ||	           |                     | |          |	           |
	                    |          }|	                    |          }t          ||	d           t          ||	d           dS )z(tests if classifier results match targetrz   rx   r   r>      r   r   rc   r   r=   )r   r   r   r   rh      r   N)r$   rA   rB   r   r2   signr	   r   r   predictr   )r   r4   rR   rQ   r   r   rY   rI   r3   r   r   r   pred1pred2s                 r    test_classifier_resultsr     s/    EJI
CH
)


"
"C

J/
00A



##A
q!A


A
+	
!  D ;;DHHQNNNHH]]1q!!!LLOOELLOOEq"----q"------r"   c                    d}d}d}d}d}t          |ddd          \  }}t          |||d	          }t          j        |          }	t          j        |          }
d
|
||	d         k    <   |
}ddd}t          dd|z  |z  ||d||          }t          |          }|                    ||           |                     | |          |           t                      }t          |t          j        |          |          }||
                    |                   }t          |||||t          ||          \  }}t          |||||t          d||	  	        \  }}t          |j                                        |                                d           t!          |j        |d           t          |j                                        |                                d           t!          |j        |d           dS )z8tests binary classifier with classweights for each classrz   r   rx   r   Try   r   r{   r   r~   r:   r   g?)r:   r~   rc   r   r=   )r   r   r   r   rh   rO   class_weight)r   r   )rK   rL   rN   rO   )rK   rL   rM   rN   rO   r   N)r   rv   r$   r   r   r	   r   r   r   r   fit_transformrn   r!   r   r   r1   r   r   )r   r4   rQ   rK   r   rO   rI   r   rJ   r   r   r   r   r   leclass_weight_rN   r   r   r   r   s                        r    #test_binary_classifier_class_weightr    s2    EIF
CM	12SVWWWDAqadKKKIillGGIEE!wqz/A&&L
+	
!#!  D ;;DHHQNNNHH]]1q!!!	B(ry||qQQQM!""2"21"5"56M'		##	 	 	I{  *		##
  
  
 J dj..00)//2C2CQOOOOa@@@@dj..00*2B2B2D2DaPPPPqAAAAAAr"   c                      ddgddgg} ddg}d}t          j        t          |          5  t          d                              | |           d	d	d	           d	S # 1 swxY w Y   d	S )
z1tests if ValueError is thrown with only one classr:   ry   r   r   z;This solver needs samples of at least 2 classes in the datar   rc   )r   N)r   r   r   r	   r   )rI   r   r   s      r    test_classifier_single_classr  5  s    
Q!QA	
AA
GC	z	-	-	- 3 3%(((,,Q2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   %AA #A c                     ddgddgg} ddg}d}d}t          j        d          }t          dd|z  |          }t          j        t
          |	          5  |                    | |           d d d            n# 1 swxY w Y   t          |d|
          }t          j        t
          |	          5  |                    | |           d d d            d S # 1 swxY w Y   d S )Nr   r:   r~   Fr   zQCurrent sag implementation does not handle the case step_size * alpha_scaled == 1rc   )r   r   rO   r   )rO   r   r4   )reescaper	   r   r   rg   r   r
   )rI   r   rO   r4   r   r   r   s          r    test_step_size_alpha_errorr
  ?  st   
Q!QA	
BAME
)	) C
 UcEkWWWD	(	4	4	4  A               }U%HHHD	(	4	4	4  A                 s$   A88A<?A<0CCCc                  R   t           j        t           j                            t          j                  }} | j        \  }}t          t	          j        |                    }t          d          }|
                    ||          }|
                    |          }t	          j        |
                    |                    }t          | ||d          \  }	}
t          |	|||||          \  }}t          t          |          d          }t	          j        ||f          j        }|                    || |d|          \  }}|d d d df         j        }|t	          j        |          z  }|t	          j        |          z  }t)          ||           t+          ||           d S )	Nr   rh   	n_classesT	base_lossrO   r<   l2_reg_strengthrN   r~   )irisdatatargetastyper$   r   r?   rH   r   r   r   absr   r   r   r   r   Tloss_gradientrt   r   r   )rI   r   rQ   rR   r  rY   rS   rV   sample_weightsdataset_loss_1grad_1r7   weights_interceptloss_2grad_2s                    r    test_multinomial_lossr"  R  s   9dk((44qAGIzBIaLL!!I
R
 
 Cii
I..G		)$$IVCIIi0011N aNDDDJGQ7)Y
I NFF %	:::  D 	7I"6779''1aN (  NFF AAAssF^F
bf^$$$F
bf^$$$F ff---'''''r"   c                     d} t          j        ddgddgddgddgg          }t          j        g dt           j                  }t                      }|                    |          }t          j        g d	g d
g          }t          j        g d          }t          j        g d          }t          j        ||          |z   }t          |d          }	||	d d t           j        f         z
  }
|d d t           j        f         |
z  |z                                   }|d d t           j        f         t          j	        |
          |z
  z  }t          j        |j
        |          }t          t          |           d          }t          j        ||f          j
        }|                    |||d|          \  }}|d d d df         j
        }|t          j        |          z  }|t          j        |          z  }t          ||           t!          ||           d}t          j        g dg dg          }t          ||           t!          ||           d S )Nr   r   g@ggffffff
@g)r   r:   ry   r   re   )rz   g?g333333?)r   r   g)r   r   gɿ)皙?r:   r:   r$  r:   rq   r  Tr  r<   r  r~   gc>1X\'@)g>g6
g	/i@)gbgs@g<FzQk)r$   r   r   r   r  r2   r   newaxisrt   r   r  r   r   r   r  r   r   )r  rI   r   lbinY_binrS   rV   r  
predictionlogsumexp_predictionr   r  diffr  r7   r  r   r!  loss_gtgrad_gts                       r    "test_multinomial_loss_ground_truthr-  u  sw   I
3*sDkC;c
CDDA
RZ000ADq!!Eh)9)9)9:;;G((IX...//N7##i/J$Za888)!!!RZ-88Aaaam,q058==???F!!!RZ-(BF1II,=>DVACF%	:::  D 	7I"6779''1aN (  NFF AAAssF^F
bf^$$$F
bf^$$$F'''ff--- !Gh	*	*	*,M,M,MN G (((fg.....r"   r   rc   rP   c                 z   t           j                            d          }t          |          \  }}t	          | |d          }|                    ||           t           j        |j        d d <   t          j	        t          d          5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nr   r  T)r   rh   
warm_startzFloating-point under-/overflowr   )r$   rA   rB   r   r	   r   nanr   r   r   r   )r   rY   rI   r   r   s        r     test_sag_classifier_raises_errorr1    s     )


#
#CC000DAq
F
N
N
NCGGAqMMM
 6CIaaaL	z)I	J	J	J  1                 s   B00B47B4)r:   NFNTF)r:   NNFTFr   )T)Gr   r  numpyr$   r   scipy.specialr   sklearn._loss.lossr   sklearn.baser   sklearn.datasetsr   r   r   sklearn.linear_modelr	   r
   sklearn.linear_model._baser   !sklearn.linear_model._linear_lossr   sklearn.linear_model._sagr   sklearn.linear_model._sag_fastr   sklearn.multiclassr   sklearn.preprocessingr   r   sklearn.utilsr   r   sklearn.utils._testingr   r   r   sklearn.utils.extmathr   sklearn.utils.fixesr   r  r!   r(   r+   r.   r9   rc   rn   rv   r   r   markfilterwarningsparametrizer   r   r   r   rD   r   r   r   r   r  r  r
  r"  r-  r1  r*   r"   r    <module>rE     sF    				      # # # # # # 2 2 2 2 2 2       G G G G G G G G G G : : : : : : : : 3 3 3 3 3 3 = = = = = = 8 8 8 8 8 8 M M M M M M 2 2 2 2 2 2 > > > > > > > > B B B B B B B B         
 , + + + + + . . . . . .y{{$ $ $1 1 1
  , , ,
   
	= = = =J 
	r r r rjM M M M3I 3I 3Il-0 -0 -0` =>>.99"7 "7 :9 ?>"7J =>>.99(7 (7 :9 ?>(7V =>>.993B 3B :9 ?>3Bx/L /L /Ld q**.99& & :9 +*&R =>>.993B 3B :9 ?>3Bl =>>.99FR FR :9 ?>FRR .99. . :9.: =>>.99:B :B :9 ?>:Bz3 3 3  & (  (  (F)/ )/ )/X E6?33  43  r"   