
    Mpj%                        S r SSKrSSKrSSKJrJrJrJr  SSK	J
r
JrJrJrJr  SSKJrJrJr  SSKJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJrJ r J!r!J"r"J#r#J$r$  SSK%J&r&  SSK'J(r(J)r)  SSK*J+r+J,r,J-r-  SSK.J/r/  SS/SS/SS/SS/SS/SS//r0/ SQr1SS/SS/SS//r2/ SQr3S r4S r5\Rl                  Rn                  S 5       r8S r9S r:S r;S r<S r=S r>S  r?S! r@S" rA\Rl                  Rn                  \Rl                  R                  S#5      S$ 5       5       rCS% rD\Rl                  R                  S&\R                  \R                  45      S' 5       rHS( rIS) rJ\Rl                  R                  S*\R                  " S+S,9\R                  " 5       /5      S- 5       rK\Rl                  R                  S*\R>                  " S+S,9\RD                  " S+S,9/5      S. 5       rLS/ rM\Rl                  R                  S0\R                  S14\R                  S24\R>                  S14\RD                  S14\RF                  S14// S3QS49\Rl                  R                  S5S/\N" \15      -  S6/\N" \15      -  /S7S8/S49S9 5       5       rO\Rl                  R                  S:\R                  S;4\R                  S<4/S=S>/S49\Rl                  R                  S5/ S?Q/ S@Q/SASB/S49SC 5       5       rP\Rl                  R                  SD\R                  SESF/SFSG/SH.4\R                  SISI/SISI/SH.4/S=S>/S49\Rl                  R                  SJ/ SKQSL4/ SMQSN4/SOSP/S49SQ 5       5       rQ\Rl                  R                  SR\R                  \R                  \RD                  // SSQS49\Rl                  R                  S5/ SKQ/ SMQ/SOSP/S49ST 5       5       rRSU rS\Rl                  R                  SV\-5      SW 5       rTSX rU\Rl                  R                  SY\,5      SZ 5       rV\Rl                  R                  SY\,5      S[ 5       rW\Rl                  R                  S\S]S^/5      \Rl                  R                  S_S`Sa/5      \Rl                  R                  SbScSd/5      Se 5       5       5       rXSf rYSg rZSh r[Si r\Sj r]\R@                  Sk4Sl jr^Sm r_Sn r`\Rl                  Rn                  So 5       raSp rbSq rcSr rdSs reSt rfSu rgSv rhSw ri\Rl                  R                  S#5      Sx 5       rjSy rkSz rl\Rl                  R                  S{\R                  \R                  /5      S| 5       rm\Rl                  R                  S{\R                  \R                  /5      S} 5       rnS~ ro\Rl                  Rn                  \Rl                  R                  S\ S`S^SdS.4\ SaS^ScS.4\ SaS^SdS.4\ SaS]ScS.4\!SScS.4\!SScS.4\!SScS.4/5      S 5       5       rp\Rl                  R                  S\#\\"45      S 5       rq\Rl                  R                  SR\R                  \R>                  /5      S 5       rrS rs\Rl                  R                  S\R                  \R                  4\R                  \R                  4\R>                  \u4\RD                  \u4\RF                  \u4/5      \Rl                  R                  S/ SQ5      S 5       5       rv\Rl                  R                  S\S^S/5      S 5       rwS rx\Rl                  R                  S\R                  \4\R>                  \4/5      \Rl                  R                  S\R                  \z" S5      /5      S 5       5       r{\Rl                  R                  S\R                  S=4\R                  S>4/5      \Rl                  R                  SScSd/5      S 5       5       r|\Rl                  R                  S\R                  \R                  /5      S 5       r}g)zr
Testing for Support Vector Machine module (sklearn.svm)

TODO: remove hard coded numerical results when possible
    N)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equal)basedatasetslinear_modelmetricssvm)
make_blobsmake_classificationmake_regression)ConvergenceWarningNotFittedError)f1_score)
rbf_kernel)train_test_split)OneVsRestClassifier)SVR	LinearSVC	LinearSVRNuSVROneClassSVM_libsvm)_validate_dual_parameter)check_random_stateshuffle)	_IS_32BITCSR_CONTAINERSLIL_CONTAINERS)_num_samples      )r$   r$   r$   r%   r%   r%      )r$   r%   r%   c                     [         R                  " 5       n[        U 5      nUR                  UR                  R
                  5      nUR                  U   Ul        UR                  U   Ul        U$ N)r   	load_irisr   permutationtargetsizedata)random_seedirisrngperms       V/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/sklearn/svm/tests/test_svm.pyget_iris_datasetr3   0   sV    D
[
)C??4;;++,D		$DI++d#DKK    c                  ~   [         R                  " SS9R                  [        [        5      n [        U R                  SS//5        [        U R                  SS/5        [        U R                  [        S   [        S   45        [        U R                  S/5        [        U R                  [        5      [        5        g )Nlinearkernel      п      ?r$   r&           )r   SVCfitXYr   
dual_coef_support_support_vectors_
intercept_predictclfs    r2   test_libsvm_parametersrG   9   s    
''
"
&
&q!
,Cs~~7s||aV,s++adAaD\:s~~u-s{{1~q)r4   c           	         [        U 5      nS H  n[        R                  " US9R                  UR                  UR
                  5      n[        R                  " UR                  UR                  5      UR
                  :H  5      S:  d   e[        US5      US:H  :X  a  M   e   [        WR                  [        R                  " UR                  5      5        [        R                  " UR                  UR
                  R                  [        R                  5      5      u	  nnnnnn	n
nnUUUUUU	U
S.n[        R                  " UR                  40 UD6n[        R                  " XR
                  :H  5      S:  d   e[        R                  " UR                  UR
                  R                  [        R                  5      SS9u	  nnnnnn	n
nnUUUUUU	U
S.n[        R                  " UR                  40 UDSS0D6n[        R                  " XR
                  :H  5      S:  d   e[        R                   " UR                  UR
                  R                  [        R                  5      S	SS
S9n[        R                  " XR
                  :H  5      S:  d   e[        R                   " UR                  UR
                  R                  [        R                  5      S	SS
S9n[        X5        g )N)r6   rbfr7   ?coef_r6   )supportSVnSVsv_coef	interceptprobAprobBgffffff?r8      r   )r8   r.   )r3   r   r<   r=   r-   r+   npmeanrD   hasattrr   classes_sortr   astypefloat64cross_validation)global_random_seedr/   krF   libsvm_supportlibsvm_support_vectorslibsvm_n_class_SVlibsvm_sv_coeflibsvm_interceptlibsvm_probAlibsvm_probBlibsvm_fit_statuslibsvm_n_itermodel_paramspredpred2s                   r2   test_libsvm_irisrj   F   sp    ./DggQ##DIIt{{;wws{{499-<=CCCsG$h777 
 s||RWWS\\%:;  	DIIt{{11"**=> "$ !%L ??49955D774;;&'$... 	DIIt{{11"**=hO "$ !%L ??499FFXFD774;;&'$...##		4;;%%bjj11XSTD 774;;&'$...
 $$		4;;%%bjj11XSTE t#r4   c                  H
   [         R                  " SS9n [        R                  " [        [        R
                  " [        5      R                  5      nU R                  U[        5        [        R                  " [        [        R
                  " [        5      R                  5      nU R                  U5      n[        R                  " [        5         U R                  UR                  5        S S S 5        [        U R                  SS//5        [        U R                  SS/5        [        U R                   S/5        [#        U R                  SS/5        [        U[$        5        [        R&                  " U5      n[)        [+        [        5      5       H?  nU R                   H,  n[        R                  " [        U   [        U   5      X$U4'   M.     MA     U R                  U5      n[        U[$        5        S n[         R                  " US9n U R                  [        R
                  " [        5      [        5        U R                  [        5      n[        U R                  SS//5        [        U R                   S/5        [#        U R                  SS/5        [        U[$        5        [         R                  " SS9n [         R                  " S	S9n[-        S
5      n[        R                  " UR.                  UR.                  R                  5      nU R                  XR0                  5        UR                  UR.                  UR0                  5        U R                  U5      n[#        U R                  UR                  5        [#        U R                  UR                  5        [#        U R                   UR                   5        [3        [        R4                  " X8R0                  :H  5      SSS9  [        R&                  " U5      n[)        [+        UR.                  5      5       HK  nU R                   H8  n[        R                  " UR.                  U   UR.                  U   5      XU4'   M:     MM     U R                  U5      n[3        [        R4                  " X8R0                  :H  5      SSS9  [         R                  " US9n U R                  UR.                  UR0                  5        [3        [        R4                  " X8R0                  :H  5      SSS9  g ! , (       d  f       GN-= f)Nprecomputedr7   r9   r:   r$   r&   r   c                 B    [         R                  " XR                  5      $ r(   rT   dotTxys     r2   kfunctest_precomputed.<locals>.kfunc   s    vva~r4   r6   *   gGz?r%   decimal)r   r<   rT   ro   r>   arrayrp   r=   r?   rD   pytestraises
ValueErrorr   r@   rA   rC   r   true_result
zeros_likerangelenr3   r-   r+   r   rU   )	rF   KKTrh   ijrt   clf2r/   s	            r2   test_precomputedr      sS    ''
'C 	q"((1+-- AGGAqM	288A;==	!B;;r?D	z	"BDD 
# s~~7s||aV,s~~s+cllQF3t[) 
r	B3q6]AvvadAaD)B!tH   ;;r?Dt[)
 ''
CGGBHHQK;;q>Ds~~7s~~s+cllQF3t[) ''
'C77(#DBD
tyy$))++&AGGA{{HHTYY$;;q>DcllDMM:cnndoo>cnndoo> 34dAF 	aA3tyy>"AffTYYq\499Q<8AdG  # ;;q>D 34dAF
''
CGGDIIt{{# 34dAFy 
#	"s   T
T!c                     [         R                  " 5       n [        R                  " SSSS9[        R                  " SSSS9[        R                  " SSS9[        R
                  " SS9[        R
                  " SS94 HU  nUR                  U R                  U R                  5        UR                  U R                  U R                  5      S:  a  MU   e   [        R                  " 5       R                  U R                  [        R                  " [        U R                  5      5      5        [        R
                  " 5       R                  U R                  [        R                  " [        U R                  5      5      5        g )	Nr6   皙?      ?)r8   nuC      $@r8   r   r   g{Gz?)r   load_diabetesr   r   r   r   r=   r-   r+   scorerT   onesr   )diabetesrF   s     r2   test_svrr      s     %%'H		cS1		cT2x4( 	x/yy84??? GGIMM(--X]]);!<=MMOrwws8==/A'BCr4   c                  x   [         R                  " 5       n [        R                  " SS9R	                  U R
                  U R                  5      nUR                  U R
                  U R                  5      n[        R                  " SSS9R	                  U R
                  U R                  5      nUR                  U R
                  U R                  5      n[        [        R                  R                  UR                  5      [        R                  R                  UR                  5      SS5        [        X$S5        g )N     @@r   r6   r   r$   -C6?r%   )r   r   r   r   r=   r-   r+   r   r   r   rT   linalgnormrK   r   )r   lsvrscore1svrscore2s        r2   test_linearsvrr      s     %%'H==3##HMM8??CDZZx7F
''S
)
-
-hmmX__
MCYYx}}hoo6FBIINN4::.		syy0I1fU*r4   c                    [         R                  " 5       n[        UR                  5      n[        R
                  " U5      n[        R                  " SSSS9R                  UR                  UR                  US9nUR                  UR                  UR                  5      n[        R                  " SSSS9R                  UR                  UR                  5      nUR                  UR                  UR                  5      n[        [        R                  R                  UR                  5      [        R                  R                  UR                  5      SS5        [        XWS5        [        R                   R#                  U 5      nUR%                  S	S
U5      n	[        R                  " SSSS9R                  UR                  UR                  U	S9n
U
R                  UR                  UR                  U	S9n[        R&                  " UR                  U	S	S9n[        R&                  " UR                  U	S	S9n[        R                  " SSSS9R                  X5      nUR                  X5      n[        XS5        g )Nr   -q=i'  )r   tolmax_itersample_weightr$   r   r%   r   
   axis)r   r   r   r+   rT   r   r   r   r=   r-   r   r   r   r   rK   r   randomRandomStaterandintrepeat)r\   r   	n_samplesunit_weightr   r   lsvr_no_weightr   r0   random_weightlsvr_unflatscore3X_flaty_flat	lsvr_flatscore4s                   r2   test_linearsvr_fit_sampleweightr     s    %%'HHOO$I'')$K==3EE:>>xk ? D ZZx7F]]SeeDHHxN !!(--AF
		tzz"BIINN>3G3G$H!V * ))

 2
3CKK2y1M--#55AEExm F K xm  F YYx}}m!<FYYxA>F?CCFSI__V,F*r4   c                      S/S//n SS/n[         R                  " S S9nUR                  X5        [        R                  " [
        5         UR                  U 5        S S S 5        g ! , (       d  f       g = f)Nr;   r   g      ?c                 2    [         R                  " S//5      $ )Nr   )rT   ry   rq   s     r2   <lambda>!test_svr_errors.<locals>.<lambda>1  s    bhhw&7r4   r7   )r   r   r=   rz   r{   r|   rD   r>   rs   rF   s      r2   test_svr_errorsr   ,  sW    
A	c
A ''7
8CGGAM	z	"A 
#	"	"s   A&&
A4c                    ^ [         R                  " 5       mTR                  [        5        TR	                  [
        5      n [        U / SQ5        U R                  [        R                  " S5      :X  d   e[        TR                  S/SS9  [        TR                  / SQ/SS9  [        R                  " [        5         U4S j" 5         S S S 5        g ! , (       d  f       g = f)N)r$   r#   r#   intpgrh|r&   rw   )      ?r   r   r   c                     > T R                   $ r(   )rK   rE   s   r2   r   test_oneclass.<locals>.<lambda>B  s	    r4   )r   r   r=   r>   rD   rp   r   dtyperT   r   rC   r@   rz   r{   AttributeError)rh   rF   s    @r2   test_oneclassr   7  s    
//
CGGAJ;;q>Dt[)::&))))cnnvhBcnn/K.LVWX	~	&	 
'	&	&s   =C
C c                     [         R                  " 5       n [        S5      nSUR                  SS5      -  n[        R
                  US-   US-
  4   nSUR                  SS5      -  n[        R
                  US-   US-
  4   nUR                  SSSS9n[         R                  " S	S
S	S9n U R                  U5        U R                  U5      n[        R                  " US:H  5      S:  d   eU R                  U5      n[        R                  " US:H  5      S:  d   eU R                  U5      n[        US:  R                  5       US:H  5        U R                  U5      n	[        U	S:  R                  5       US:H  5        g )Nr%   333333?d         )r   r%   )lowhighr,   皙?rI   )r   r8   gammar$   rJ   r#   r   )r   r   r   randnrT   r_uniformr=   rD   rU   decision_functionr   ravel)
rF   rndr>   X_trainX_test
X_outliersy_pred_testy_pred_outliersdec_func_testdec_func_outlierss
             r2   test_oneclass_decision_functionr   F  s`   
//
C
Q
C 	ciiQAeeAE1q5L!G 	ciiAAUU1q5!a%< F!':J //Sc
:CGGG ++f%K77;!#$s***kk*-O77?b()C///))&1M)002K14DE--j9)A-44618LMr4   c                      SS/SS/SS//n [         R                  " SS9R                  U 5      n[        UR	                  SS//5      UR                  SS//5      UR                  -   5        g )Nr$   r%   r   g       @)r   r   r=   r   score_samplesr   offset_)r   rF   s     r2   test_oneclass_score_samplesr   d  sl    1v1v1v&G
//
"
&
&w
/CC:,'Szl+ckk9r4   c                  L   [         R                  " SSS9n U R                  [        [        5        [        U R                  SS//5        [        U R                  SS//5      S/5        [        R                  " SS//5      U l
        [        U R                  SS//5      S	/5        g )
Nr6   r   r   r9   r:   皙r$   r;   r%   )r   r<   r=   r>   r?   r   r@   rD   rT   ry   _dual_coef_rE   s    r2   test_tweak_paramsr   m  s     ''S
)CGGAqMs~~7s{{T4L>2QC8hhc
|,COs{{T4L>2QC8r4   zignore::FutureWarningc           	         [        U 5      n[        R                  " SU SS9[        R                  " SU S94 GH1  nUR	                  UR
                  UR                  5        UR                  UR
                  5      n[        [        R                  " US5      [        R                  " UR
                  R                  S   5      5        [        R                  " [        R                  " US5      UR                  UR
                  5      :H  5      S:  d   e[!        UR                  UR
                  5      [        R"                  " UR%                  UR
                  5      5      S5        GM4     g )	NTr   )probabilityrandom_stater   )r   r   r$   r   rJ      )r3   r   r<   NuSVCr=   r-   r+   predict_probar   rT   sumr   shaperU   argmaxrD   r   exppredict_log_proba)r\   r/   rF   prob_predicts       r2   test_probabilityr     s    
 ./D 	D/ASI		d1CD 			4;;'((3!"&&q"9277499??STCU;VWwwryyq1S[[5KKLsRRRdii("&&1F1Ftyy1Q*RTU	
r4   c                    [        U 5      n[        R                  " SSSS9R                  UR                  UR
                  5      n[        R                  " UR                  UR                  R                  5      UR                  -   n[        X2R                  UR                  5      5        UR                  [        [        5        [        R                  " [        UR                  R                  5      UR                  -   nUR                  [        5      n[        UR!                  5       UR                  [        5      5        [        XBR"                  UR                  [        5      S:  R%                  [&        5         5        [        R(                  " / SQ5      n[        UR                  [        5      US5        [        R                  " SS	SS
9nUR                  [        [        5        [+        [        UR,                  UR.                  S9n[        R                  " XbR0                  R                  5      UR                  -   n[        UR!                  5       UR                  [        5      5        g )Nr6   r   ovo)r8   r   decision_function_shaper   )      gQr   gQ?r   r   r%   rI   r$   )r8   r   r   r   )r3   r   r<   r=   r-   r+   rT   ro   rK   rp   rC   r   r   r>   r?   rD   r   rW   rY   intry   r   rB   r   r@   )r\   r/   rF   dec
predictionexpectedrbfss          r2   test_decision_functionr     s   ./D
 ''S%
H
L
L		4;;C &&CIIKK
(3>>
9Cc#8#8#CD GGAqM
&&CIIKK
 3>>
1CQJciik3+@+@+CDLL#"7"7":Q">!F!Fs!KL xx;<Hc33A6!D ''a
GCGGAqMa--SYY?D
&&~~''
(3>>
9Cciik3+@+@+CDr4   SVMc                 
   [        U5      nU " SSUSS9nUR                  UR                  UR                  5        UR	                  UR                  5      nUR
                  [        UR                  5      S4:X  d   e[        UR                  UR                  5      [        R                  " USS95        [        SS	US
9u  pV[        XVUS9u  pxpUR                  Xy5        UR	                  U5      nUR
                  [        U5      S	4:X  d   e[        UR                  U5      [        R                  " USS95        U " SSUSS9nUR                  Xy5        UR	                  U5      nUR
                  [        U5      S4:X  d   eg )Nr6   ovrT)r8   r   r   
break_tiesr&   r$   r   P   rS   )r   centersr   r   r   r   )r3   r=   r-   r+   r   r   r   r   rD   rT   r   r   r   )r   r\   r/   linear_ovr_svmr   r>   rs   r   r   y_trainy_testlinear_ovo_svms               r2   test_decision_function_shaper    sl    ./D %'	N tyy$++.

*
*499
5C99TYY++++~--dii8"))Ca:PQ A<NODA'7	-($GW w(

*
*6
2C99Va((((~--f5ryy17MN  %'	N w(

*
*7
3C99Wr****r4   c                    [        U 5      nUR                  nUR                  n[        R                  " SSS9R                  X#5      n[        R                  " X$R                  R                  5      UR                  -   n[        UR                  5       UR                  U5      R                  5       5        [        R                  " SSS9R                  X#5      n[        X$R                  UR                   S9n[        R                  " XdR"                  R                  5      UR                  -   n[        UR                  5       UR                  U5      R                  5       5        g )Nr6   r   r   rI   r$   )r8   r   r   )r3   r-   r+   r   r   r=   rT   ro   rK   rp   rC   r   r   rD   r   rB   r   r@   )r\   r/   r>   rs   regr   r   s          r2   test_svr_predictr
    s     ./D		AA ''S
)
-
-a
3C
&&IIKK
 3>>
1Cciik3;;q>+?+?+AB ''a
(
,
,Q
2Ca--SYY?D
&&~~''
(3>>
9Cciik3;;q>+?+?+ABr4   c                     [         R                  " SS0S9n U R                  [        [        5        [        U R                  [        5      S/S-  5        [        SSSS	/SS
9u  p[        R                  " 5       [         R                  " SS9[         R                  " 5       4 HV  n U R                  SSS.S9  U R                  US S US S 5        U R                  USS  5      n[        USS  U5      S:  a  MV   e   g )Nr$   r   class_weightr%         r   g-?gK7A`?)r   
n_featuresweightsr   r   r  )r   r$   r   r   )r   r<   r=   r>   r?   r   rD   r   r	   LogisticRegressionr   
set_paramsr   )rF   X_y_y_preds       r2   test_weightr    s    
''3x
(CGGAqMckk!nqcAg6 	FB 	'')1%	
 	O44C"Tc(#RX&34&)C///r4   	estimator{Gz?r   c                    [         R                  " U 5      n SS/SS/SS/SS/SS/SS//nU R                  SS9  S/S-  nU R                  U[        US	9  U R                  S
S//5      nU[        R                  " S5      :X  d   e/ SQnU R                  U[        US	9  U R                  S
S//5      nUS:  d   e/ SQnU R                  U[        US	9  U R                  S
S//5      nUS:  d   eg )Nr"   r   r#   r%   r$   r6   r7   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   cloner  r=   r?   r   rz   approxr  r>   r   r  s       r2   'test_svm_classifier_sided_sample_weightr     s   

9%I a2r(QGaVaVaV<A) C!GMMM!QmM4((4+7FV]]1%%%% 3MMM!QmM4((4+7FA::4MMM!QmM4((4+7FA::r4   c                    [         R                  " U 5      n SS/SS/SS/SS/SS/SS//nU R                  SS9  S/S-  nU R                  U[        US	9  U R                  S
S//5      nU[        R                  " S5      :X  d   e/ SQnU R                  U[        US	9  U R                  S
S//5      nUS:  d   e/ SQnU R                  U[        US	9  U R                  S
S//5      nUS:  d   eg )Nr"   r   r#   r%   r$   r6   r7   r  r   r   r         ?r  r  )r   r  r  r=   r?   rD   rz   r  r  s       r2   &test_svm_regressor_sided_sample_weightr#  .  s   

9%I a2r(QGaVaVaV<A) C!GMMM!QmM4s}-FV]]3'''' 3MMM!QmM4s}-FC<<4MMM!QmM4s}-FC<<r4   c            
      8   [         R                  " 5       n U R                  [        [        5        U R
                  nU R                  SS9  U R                  [        [        [        R                  " S[        [        5      5      S9  [        XR
                  5        g )Nr   r   r  r   )r   r<   r=   r>   r?   r@   r  rT   r   r   r   )rF   dual_coef_no_weights     r2   $test_svm_equivalence_sample_weight_Cr&  I  s`    
'')CGGAqM..NNSNGGAq		$A 7G8'8r4   zEstimator, err_msgz:Invalid input - all samples have zero or negative weights.zM(Invalid input - all samples have zero or negative weights.|nu is infeasible))r<   r   r   r   r   )idsr   333333ӿzweights-are-zerozweights-are-negativec                     U " SS9n[         R                  " [        US9   UR                  [        [
        US9  S S S 5        g ! , (       d  f       g = fNr6   r7   matchr   rz   r{   r|   r=   r>   r?   )	Estimatorerr_msgr   ests       r2   -test_negative_sample_weights_mask_all_samplesr1  S  s:    * 8
$C	z	11M2 
2	1	1   A
AzClassifier, err_msgzJInvalid input - all samples with positive weights belong to the same classzspecified nu is infeasibler<   r   )r         r   r$   r$   r$   )r$   r$   r$   r   r   r(  zmask-label-1zmask-label-2c                     U " SS9n[         R                  " [        US9   UR                  [        [
        US9  S S S 5        g ! , (       d  f       g = fr*  r-  )
Classifierr/  r   rF   s       r2   .test_negative_weights_svc_leave_just_one_labelr6  m  s:    ( H
%C	z	11M2 
2	1	1r2  zClassifier, modelg6<R?r   gj+?)	when-left
when-rightgioT?zsample_weight, mask_side)r$   r3  r$   r$   r$   r$   r7  )r$   r$   r$   r   r$   r$   r8  zpartial-mask-label-1zpartial-mask-label-2c                 r    U " SS9nUR                  [        [        US9  [        UR                  X   /SS9  g )Nr6   r7   r   MbP?rtol)r=   r>   r?   r   rK   )r5  modelr   	mask_siderF   s        r2   *test_negative_weights_svc_leave_two_labelsr?    s6      H
%CGGAqG.CII 01=r4   r.  )r<   r   r   c                     U " SS9nUR                  [        [        US9  [        R                  " UR
                  5      R                  5       nUS   [        R                  " US   SS9:X  d   eg )Nr6   r7   r   r   r$   r:  )rel)	r=   r>   r?   rT   absrK   r   rz   r  )r.  r   r0  coefs       r2   !test_negative_weight_equal_coeffsrD    s\     8
$CGGAqG.66#))""$D7fmmDG6666r4   c                     SSK Jn   SSKJn  [	        S5      nUR
                  S S 2S S24   UR                  S-   pC[        R                  " [        R                  " UR                  5      [        R                  " US:  5      S   S S S2   5      n[        R                  " XE   5      nU" SXdU   S9n[        R                  " U5      S:X  d   e[        R                  " S	S
9[        R                   " SS9U " 5       4 H  nUR#                  X5   XE   5      R%                  U5      n	UR'                  SS9  UR#                  X5   XE   5      R%                  U5      n
[(        R*                  " XISS9[(        R*                  " XJSS9::  a  M   e   g )Nr   )r  )compute_class_weightrv   r%   r$   balanced)classesrs   r6   r7   r  r  macro)average)sklearn.linear_modelr  sklearn.utilsrF  r3   r-   r+   rT   deletearanger,   whereuniquer   r   r<   r   r=   rD   r  r
   r   )r  rF  r/   r>   rs   
unbalancedrH  class_weightsrF   r  y_pred_balanceds              r2   test_auto_weightrT    sW   7 3BD99QUT[[1_q299QVV,bhhq1uoa.@1.EFJii&G(W*VM99]#q((( 	x 1% 6>>qAJ/''MM
 '!* 	 7;w?O?O@
 
 	
 
r4   lil_containerc                    [         S S n[        R                  " [        5         [        R
                  " 5       R                  [        U5        S S S 5        [        R
                  " 5       [        R                  " US94 H  n[        R                  " [        5      nUR                  S   (       a   e[        R                  " [        R                  " [         S5      R                  5      nUS S 2S4   nUR                  S   (       a   eUR                  S   (       a   eUR                  XE5        [        UR!                  [        5      ["        5        M     [        R
                  " SS9n[        R                  " [        5         UR                  [        [         5        S S S 5        [        R
                  " 5       R                  [        [         5      n[        R                  " [        5         UR!                  U " [        5      5        S S S 5        [        R$                  " [        5      R                  nUR                  [        R&                  " [        U5      [         5        [        R                  " [        5         UR!                  [        5        S S S 5        [        R
                  " 5       nUR                  [        [         5        [        R                  " [        5         UR!                  U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       GN"= f! , (       d  f       N= f! , (       d  f       g = f)Nr#   r  C_CONTIGUOUS)r%   r$   F_CONTIGUOUSrl   r7   )r?   rz   r{   r|   r   r<   r=   r>   r   rT   asfortranarrayflagsascontiguousarraytilerp   r   rD   r}   ry   ro   )rU  r\   Y2rF   XfyfXts          r2   test_bad_inputra    s    
3BB	z	"	a 
# 	3==6HIJq!88N+++!!"''!V"4"6"672Y88N+++88N+++3;;q>;7 K ''
'C	z	"1 
# '')--1
C	z	"M!$% 
# 
!BGGBFF1bM1	z	"A 
# '')CGGAqM	z	"B 
#	"? 
#	"  
#	"
 
#	"
 
#	"
 
#	"s;   *LL0L'L9(M

L
L$'
L69
M

Mc                    [         R                  R                  U 5      nSn[         R                  " [         R                  5      R
                  nX1R                  US4S9-  nUR                  SSUS9n[        R                  " 5       nSn[        R                  " [        US9   UR                  XE5        S S S 5        g ! , (       d  f       g = f)Nr   r%   )r,   r   z2The dual coefficients or intercepts are not finiter+  )rT   r   r   finforZ   maxr   r   r   r<   rz   r{   r|   r=   )r\   r0   r   fmaxr>   rs   rF   msgs           r2   test_svc_nonfinite_paramsrg    s    
))

 2
3CI88BJJ##D{{A{//AAqy)A
'')C
>C	z	- 
.	-	-s   $B??
Ccsr_containerc                     [         R                  " SS9nU " SS/SS//5      n[        R                  " [        SS9   UR                  USS/5        S S S 5        g ! , (       d  f       g = f)Nrl   r7   r$   r   zSparse precomputedr+  )r   r<   rz   r{   	TypeErrorr=   )rh  rF   sparse_grams      r2   test_sparse_precomputedrl    sT    
''
'C!Q!Q 01K	y(<	=aV$ 
>	=	=s   A
A(c                 B   U " / SQ/ SQ/ SQ/ SQ/5      n[         R                  " / SQ5      n[        R                  " SS9nUR	                  X5        UR
                  R                  R                  (       a   eUR                  R                  R                  (       a   eg )N)r   r$   r   r   )r   r   r   r$   )r   r   r$   r   ){Gz?rn  r   g{Gz?r6   r7   )	rT   ry   r   r   r=   rB   r-   r,   r@   )rh  r   r  r=  s       r2   %test_sparse_fit_support_vectors_emptyro    sy     \<|TUGhh/0GGG8$E	IIg%%**////$$)))))r4   losshingesquared_hingepenaltyl1l2dualTFc           	      8   [        SSUS9u  pE[        R                  " XX#S9nX4S:X  d  XU4S:X  d  X4S:X  a@  [        R                  " [
        SU< SU < S	U< 3S
9   UR                  XE5        S S S 5        g UR                  XE5        g ! , (       d  f       g = f)NrS   )r   r  r   rs  rp  rv  r   )rq  rt  )rq  ru  F)rt  Tz'Unsupported set of arguments.*penalty='z.*loss='z.*dual=r+  )r   r   r   rz   r{   r|   r=   )rp  rs  rv  r\   r>   rs   rF   s          r2   test_linearsvc_parametersry    s     0BDA --C 
?*4 $::?l*]]d$

 GGAM
 
 	
 
s   B
Bc                 b   [         R                  " U S9R                  [        [        5      nUR
                  (       d   e[        UR                  [        5      [        5        [        UR                  S/SS9  [         R                  " SSSU S9R                  [        [        5      n[        UR                  [        5      [        5        [         R                  " S	S
U S9R                  [        [        5      n[        UR                  [        5      [        5        [         R                  " S	SS
U S9nUR                  [        [        5        [        UR                  [        5      [        5        UR                  [        5      nUS:  R                  [        5      S-   n[        U[        5        g )Nr  r   r&   rw   rt  rr  Frx  ru  T)rs  rv  r   rq  r$   )r   r   r=   r>   r?   fit_interceptr   rD   rp   r}   r   rC   r   rY   r   )r\   rF   r   ress       r2   test_linearsvcr}  5  s<   
--%7
8
<
<Q
BC s{{1~{3cnnqc1= --'	
 
c!Qi  s{{1~{3 --4>P
Q
U
U	1C s{{1~{3 --7<NC GGAqMs{{1~{3 


"C7

3
!
#CsK(r4   c                 `   [        U 5      n[        R                  " U S9R                  UR                  UR
                  5      n[        R                  " SU S9nUR                  UR                  UR
                  5        UR                  UR                  5      UR                  UR                  5      :H  R                  5       S:  d   eUR                  UR                  :g  R                  5       (       d   e[        UR                  UR                  5      [        R                  " UR                  UR                  5      SS95        [        R                  " UR                  UR                  R                  5      UR                   -   n[#        XCR                  UR                  5      5        g )Nr  crammer_singer)multi_classr   rJ   r$   r   )r3   r   r   r=   r-   r+   rD   rU   rK   allr   rT   r   r   ro   rp   rC   r   )r\   r/   ovr_clfcs_clfdec_funcs        r2   test_linearsvc_crammer_singerr  [  s0   ./Dmm);<@@DKKXG]]$3EF JJtyy$++& OODII&&..*CCIIKcQQQ MMV\\)..0000 tyy!
		&**4995A> vvdii063D3DDHh(@(@(KLr4   c                    [        [        5      n[        R                  " U5      n[        R
                  " U SSS9R                  [        [        5      n[        R
                  " U SSS9R                  [        [        US9n[        UR                  [        5      UR                  [        5      5        [        UR                  UR                  SS5        [        R                  R                  U 5      R                  SSU5      n[        R
                  " U SSS9R                  [        [        US9nUR                  [        5      n[        R                   " [        USS	9n[        R                   " [        USS	9n	[        R
                  " U SSS9R                  X5      n
U
R                  [        5      n[        X{5        [        UR                  U
R                  SS5        g )
Nr     )r   r   r   r   r$   r   r   r   r   )r   r>   rT   r   r   r   r=   r?   r   rD   rp   r   rK   r   r   r   r   )r\   r   r   rF   clf_unitweightr   lsvc_unflatpred1r   r   	lsvc_flatri   s               r2   test_linearsvc_fit_sampleweightr  t  su   AI'')$K
--%7UT
R
V
V	1C ]]'UT	c!Qkc* 
 ~--a0#++a.ACII~33Q?
 II))*<=EEaYWM--'UT	c!Qmc,  "EYYq-a0FYYq-a0F'UT	c&  a Eu$K%%y6Br4   c                     [        SSU S9u  pS H?  n[        R                  " USU S9R                  X5      R	                  X5      nUS:  a  M?   e   g )Nr%   r"  )	n_classes	class_sepr   )TFr  )r{  r  r   rJ   )r   r   r   r=   r   )r\   r>   rs   r{  accs        r2   test_crammer_singer_binaryr    s^    s1CDA 'MM+,/
 SYU1[ 	 Syy 'r4   c                 :   [        U 5      nUR                  UR                     n[        R                  " U S9R                  UR                  U5      n[        UR                  5      [        UR                  5      :X  d   e[        R                  " UR                  UR                  5      U:H  5      S:  d   eUR                  UR                  5      nUR                  [        R                  " US5         n[        XSR                  UR                  5      5        g )Nr  g?r$   )r3   target_namesr+   r   r   r=   r-   setrW   rT   rU   rD   r   r   r   )r\   r/   r+   rF   r   rh   s         r2   test_linearsvc_irisr    s    ./D t{{+F
--%7
8
<
<TYY
OCs||D$5$5 6666773;;tyy)V34s:::


		
*CRYYsA./Dt[[34r4   rv   c           
         SS/SS/SS/SS//n/ SQnU " SSSSS	S
US9nUR                   S:X  d   UR                   5       eUR                  (       d   eSUl         UR                  X#5        [        UR                  SSS9  SUl         UR                  X#5        UR                  nUS:  d   eSUl         UR                  X#5        UR                  n[        XVSS9  g )Nr%   r$   r&   r   r   r$   r$   Trt  rr  Fr   gHz>)r{  rs  rp  rv  r   r   r   r   rS   rw   r   r#   r  )intercept_scalingr{  r=   r   rC   r   )
classifierr\   r>   rs   rF   
intercept1
intercept2s          r2   'test_dense_liblinear_intercept_handlingr    s     Q!Q!Q!Q(AA

'C   A%<s'<'<<% CGGAM15  CGGAMJ?? !CGGAMJja@r4   c                    [        U 5      n[        R                  " 5       R                  UR                  UR
                  5      nUR                  UR                  5      nUR                  R                  5       Ul        UR                  R                  5       Ul	        UR                  UR                  5      n[        X45        SS/SS/SS/SS//n/ SQn[        R                  " 5       R                  XV5      nUR                  U5      nUR                  R                  5       Ul        UR                  R                  5       Ul	        UR                  U5      n[        X45        g )Nr%   r$   r&   r  )r3   r   r   r=   r-   r+   r   rK   copyrC   r   r   )r\   r/   rF   valuesvalues2r>   rs   s          r2   test_liblinear_set_coefr    s   ./D --/

dii
5C""499-F		 CI^^((*CN##DII.Gf. Q!Q!Q!Q(AA
--/

a
#C""1%F		 CI^^((*CN##A&Gv'r4   c                    [        U 5      n[        R                  " SS9R                  UR                  UR
                  5      [        R                  " SS9R                  UR                  UR
                  5      [        R                  " SS9R                  UR                  UR
                  5      [        R                  " SS9R                  UR                  UR
                  5      [        R                  " SS9R                  UR                  5      /nU H  n[        R                  " [        5         UR                  S[        R                  " S5      5        S S S 5        [        R                  " [         ["        45         UR$                  R'                  SS5        S S S 5        M     g ! , (       d  f       NX= f! , (       d  f       M  = f)Nr6   r7   rK   r&   )r   r   r   )r3   r   r<   r=   r-   r+   r   r   r   r   rz   r{   r   __setattr__rT   rN  RuntimeErrorr|   rK   __setitem__)r\   r/   svmsrF   s       r2   test_immutable_coef_propertyr    s#   ./D 	x $$TYY<		"&&tyy$++>x $$TYY<		"&&tyy$++>x(,,TYY7D ]]>*OOGRYYq\2 +]]L*56II!!&!, 76 **66s   5'F.F?.
F<	?
G	c                      SS K n U R                  S5      nU R                  U R                  5       S   S5        [        R
                  " SS9nUR                  [        [        5        U R                  US5        g )Nr   r$   )verbose)	osdupdup2piper   r   r=   r>   r?   )r  stdoutrF   s      r2   test_linearsvc_verboser  
  sY     VVAYFGGBGGIaL! --
"CGGAqM GGFAr4   c                     [        S5      n [        R                  " S SSS9n[        R                  " U5      nUR                  U R                  U R                  5        [        R                  " SSSS9nUR                  U R                  U R                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  U R                  5      UR                  U R                  5      5        [        UR                  U R                  5      UR                  U R                  5      5        g )Nrv   c                 B    [         R                  " XR                  5      $ r(   rn   rq   s     r2   r   5test_svc_clone_with_callable_kernel.<locals>.<lambda>       BFF1ccNr4   r   r   )r8   r   r   r6   )r3   r   r<   r   r  r=   r-   r+   r   r@   rC   r   rD   r   )r/   svm_callable
svm_clonedsvm_builtins       r2   #test_svc_clone_with_callable_kernelr    s    BD 77* %L L)JNN499dkk*'' %K OODIIt{{+j33[5K5KLj33[5K5KLz))$))4k6I6I$))6TU$$TYY/%%dii0r4   c                      [         R                  " S S9n [        R                  " [        5         U R                  [        [        5        S S S 5        g ! , (       d  f       g = f)Nc                     U $ r(    rq   s     r2   r   %test_svc_bad_kernel.<locals>.<lambda>;  s    ar4   r7   )r   r<   rz   r{   r|   r=   r>   r?   )svcs    r2   test_svc_bad_kernelr  :  s5    
''
(C	z	"1 
#	"	"s   A
A"c                 L   [         R                  " S U SS9nSn[        R                  " [        US9   UR                  [        R                  " [        5      [        5        S S S 5        [        R                  " UR                  S:H  5      (       d   eg ! , (       d  f       N9= f)Nc                 B    [         R                  " XR                  5      $ r(   rn   rq   s     r2   r   2test_libsvm_convergence_warnings.<locals>.<lambda>B  r  r4   r%   )r8   r   r   zoSolver terminated early \(max_iter=2\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r+  )r   r<   rz   warnsr   r=   rT   ry   r>   r?   r  n_iter_)r\   awarning_msgs      r2    test_libsvm_convergence_warningsr  @  su    *'	A	:  
(	<	bhhqk1 
=66!))q.!!!! 
=	<s   /B
B#c                  l   Sn [         R                  " 5       n[        R                  " [        SS9   UR                  U 5        S S S 5        [         R                  " 5       n[        R                  " [        SS9   UR                  U 5        S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)Nzfoo!z.*\bSVC\b.*\bnot\b.*\bfitted\br+  z .*\bNuSVR\b.*\bnot\b.*\bfitted\b)r   r<   rz   r{   	ExceptionrD   r   )r>   rF   s     r2   test_unfittedr  O  sv    A
'')C	y(I	JA 
K ))+C	y(K	LA 
M	L	 
K	J 
M	Ls   B9B%
B"%
B3c                 "   [         R                  " SU S9nUR                  [        [        5      R                  [        5      n[         R                  " SU S9nUR                  [        [        5      R                  [        5      n[        X#5        g )Nr$   )r   r   )r   r<   r=   r>   r?   r   r   )r\   r  proba_1proba_2s       r2   !test_consistent_decision_functionr  [  s`    );<AeeAqk++A.G);<AeeAqk++A.Gg/r4   c                    [        U 5      n[        R                  " U SS9nSn[        R                  " [
        US9   UR                  [        [        5        S S S 5        [        UR                  [        5      (       d   eUR                  S:X  d   e[        R                  " U SS9n[        R                  " [
        US9   UR                  UR                  UR                  5        S S S 5        [        UR                  [        5      (       d   eUR                  S:X  d   eg ! , (       d  f       N= f! , (       d  f       NS= f)Nr%   )r   r   z@Liblinear failed to converge, increase the number of iterations.r+  )r3   r   r   rz   r  r   r=   r>   r?   
isinstancer  r   r   r-   r+   )r\   r/   lsvcr  r   s        r2   $test_linear_svm_convergence_warningsr  c  s    ./D ==&81EDTK	(	<A 
= dllC((((<<1==&81ED	(	<DKK( 
=dllC((((<<1 
=	< 
=	<s   D# 'D4#
D14
Ec           	         [         R                  R                  U 5      nUR                  SS5      nUR                  S5      n[        R
                  " SS9[        R                  " SS9[        R                  " 5       4 Hh  nUR                  X#5        [        UR                  U5      [         R                  " X$R                  R                  5       5      UR                  -   5        Mj     g )Nr   r&   r6   r7   )rT   r   r   r   r   r   r   r   r=   r   rD   ro   rK   r   rC   )r\   r0   r>   rs   r   s        r2   test_svr_coef_signr  x  s     ))

 2
3C		"aA		"A 	x 		"
 	!KKNBFF1iioo&783>>I	
r4   c                      [         R                  " SS9n U R                  [        [        5        U R
                  S:X  d   eg )NF)r{  r;   )r   r   r=   r>   r?   rC   )r  s    r2    test_lsvc_intercept_scaling_zeror    s1     ==u-DHHQN??c!!!r4   c                 n   [        U 5      n[        R                  " SS9n[        US5      (       d   eUR	                  UR
                  UR                  5        [        US5      (       d   e[        R                  " SS9n[        US5      (       a   eUR	                  UR
                  UR                  5        [        US5      (       a   eSUl        [        US5      (       d   eSn[        R                  " [        US9   UR                  UR
                  5        S S S 5        g ! , (       d  f       g = f)NTr   r   FzApredict_proba is not available when fitted with probability=Falser+  )r3   r   r<   rV   r=   r-   r+   r   rz   r{   r   r   )r\   r/   Grf  s       r2   test_hasattr_predict_probar    s    ./D
 	D!A1o&&&&EE$))T[[!1o&&&&E"Aq/****EE$))T[[!q/**** AM1o&&&&
MC	~S	1			" 
2	1	1s   D&&
D4c                    S H|  n[        XS9u  p#[        R                  [        R                  4 HJ  n[	        U" SS95      R                  X#5      n[        UR                  U5      5      [        U5      :X  a  MJ   e   M~     g )N)r%   r&   )r  r   r   )r   )r   r   r<   r   r   r=   r   rD   )r\   r  r>   rs   r  rF   s         r2   &test_decision_function_shape_two_classr    sm    	)M''399-I%i&NOSSC s{{1~&#a&000	 . r4   c                     [         R                  " SS/SS/SS/SS//5      n / SQn[         R                  " SS/SS//5      n[         R                  " USS/-  USS/-  USS/-  USS/-  45      nS/S-  S/S-  -   S/S-  -   S/S-  -   n[        R                  " S	S
S9nUR                  X5        UR                  U5      n[        Xd5        UR                  U5      n[        [         R                  " USS9U5        U[        S5      U4   R                  S5      n[         R                  " U5      S:  d   e[         R                  " US S 2S4   US S 2S4   :  5      (       d   eg )Nr$   r#   )r   r$   r%   r&   rS   r   r   r%   r&   r6   r   )r8   r   r   r   )r   r%   r;   )rT   ry   vstackr   r<   r=   rD   r   r   r   r   reshapeminr  )	r   r  base_pointsr   r  rF   r  deci_valpred_class_deci_vals	            r2   test_ovr_decision_functionr    s   hhAQ"bAr7;<GG ((QFRH-.K YY1a& 2q'!2r("1b'!		
F S1WsQw!q(A372F
''5
ACGGG[[ F v&$$V,H ryy2F; #58V#34<<VD 66%&,,, 66%ad+.A!Q$.GGHHHHr4   SVCClassc                     [        US9u  p#U " SSSUS9R                  X#5      n[        R                  " [        SS9   UR
                  " U5        S S S 5        g ! , (       d  f       g = f)Nr  r6   r   T)r8   r   r   r   zbreak_ties must be Falser+  )r   r=   rz   r{   r|   rD   )r  r\   r>   rs   r   s        r2   !test_svc_invalid_break_ties_paramr    s\    #56DA
 %'	
 
c!i  
z)C	DA 
E	D	Ds   A
A'c                    U R                   S:X  a!  [        (       a  [        R                  " S5        [	        USSS9u  p#[
        R                  " USS2S4   R                  5       USS2S4   R                  5       S5      n[
        R                  " USS2S	4   R                  5       USS2S	4   R                  5       S5      n[
        R                  " XE5      u  pg[        S
SUSS9nU " SSS0UD6R                  X#5      n	U	R                  " [
        R                  UR                  5       UR                  5       4   5      n
U	R                  " [
        R                  UR                  5       UR                  5       4   5      n[
        R                   " U
[
        R"                  " US	S9:H  5      (       a   eU " SSS0UD6R                  X#5      n	U	R                  " [
        R                  UR                  5       UR                  5       4   5      n
U	R                  " [
        R                  UR                  5       UR                  5       4   5      n[
        R                   " U
[
        R"                  " US	S9:H  5      (       d   eg)zqTest if predict breaks ties in OVR mode.
Related issue: https://github.com/scikit-learn/scikit-learn/issues/8277
r   zFailing test on 32bit OSr   r%   )r   r   r  Nr   r   r$   rI   g    .Ar   )r8   r   r   r   r   Fr   Tr  )__name__r   rz   xfailr   rT   linspacer  rd  meshgriddictr=   rD   c_r   r   r  r   )r  r\   r>   rs   xsysxxyycommon_paramsr   rh   dvs               r2   test_svc_ovr_tie_breakingr    s   
 G#		
 	/0#5PQRDA	Qq!tW[[]AadGKKM3	7B	Qq!tW[[]AadGKKM3	7B[[ FB' %	M  
 
c!i  ;;ruuRXXZ345D			ruuRXXZ%;<	=Bvvdbii334444
 
 
c!i  ;;ruuRXXZ345D			ruuRXXZ%;<	=B66$"))BQ//0000r4   c                      S/S//SS/p[         R                  " 5       nUR                  X5        [        UR                  S5        g )Nr;   r   r   r$   r   )r   r<   r=   r   _gammar   s      r2   test_gamma_scaler    s9    EC5>Aq6q
'')CGGAM

A&r4   zSVM, params)rs  rp  rv  epsilon_insensitiverp  rv  squared_epsilon_insensitivec                 V   [         R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//[         R                  " S5      S9n[         R                  " / SQ[         R                  " S5      S9n[         R                  " X3/5      n[         R                  " USU-
  /5      n[         R
                  " [        U5      S-  S	9nS
U[        U5      S & [        XVXrS9u  pVnU " US9nUR                  " S0 UD6  UR                  SSS9  [        R                  " U5      R                  X45      n	[        R                  " U5      R                  XVUS9n
S HA  n[        X5      (       d  M  [        X5      " U5      n[        X5      " U5      n[        XSS9  MC     g )Nr$   r&   r%   r   float)r   )r$   r$   r$   r$   r%   r%   r%   r%   r$   r$   r$   r$   r%   r%   r%   r%   r   )r   r   r  r   r  )r   r   r   )rD   r   gư>r;  r  )rT   ry   r   r  hstackr   r   r   r  r   r  r=   rV   getattrr   )r   paramsr\   r>   rs   X2y2r   base_estimatorest_no_weightest_with_weightmethodresult_without_weightresult_with_weights                 r2   &test_linearsvm_liblinear_sample_weightr  %  s    	FFFFFFFFFFFFFFFF!	
$ hhw'	A* 	8	A 
A6	B	Aq1u:	BGG#a&1*-MM#a&(#
BM &89N''%$7JJ~.2218Mjj044
m 5 O 3>**$+M$B1$E!!(!A!!D1DQ	 3r4   Klassc                 p   [         R                  " S/S/S/S/S//5      n[         R                  " UR                  S   5      nU " 5       n[	        US5      (       a   eUR                  X5        UR                  S   UR                  R                  S   :X  d   eUR                  R                  S:X  d   eg )Nr   g)\(?g?gq=
ףp?r$   
n_support_)	rT   ry   rN  r   rV   r=   r
  rB   r,   )r  r>   rs   r0  s       r2   test_n_supportr  c  s    
 	1#vvvs34A
		!''!*A
'CsL))))GGAM>>! 4 4 : :1 ====>>!###r4   c                 "   / SQn[         R                  " SS/SS/SS/SS/SS//5      n[         R                  " / SQ5      nS nU" X5      n[        [         R                  " X"R                  5      U5        U " US9R                  X5      nU " SS9R                  X#5      nU " S	S9R                  XS5      nUR                  X5      UR                  XS5      :X  d   eUR                  X5      UR                  X#5      :X  d   e[        US
5      (       a  [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        g[        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        g)zETest using a custom kernel that is not fed with array-like for floats)zA AABzB BzA Br%   r   r$   )r$   r$   r%   r%   r$   c           	         [        U S   [        5      (       d   e[        U 5      n[        U5      n[        R                  " X#45      n[        U5       H}  n[        XS5       Hk  nX   R                  S5      X   R                  S5      -  XEU4'   XEU4==   X   R                  S5      X   R                  S5      -  -  ss'   XEU4   XFU4'   Mm     M     U$ )Nr   r  r  )r  strr!   rT   zerosr   count)X1r  
n_samples1
n_samples2r   iijjs          r2   string_kernel9test_custom_kernel_not_array_input.<locals>.string_kernelx  s    "Q%%%%%!"%
!"%
HHj-.
#BB+FLL-S0AAb&	b&	RV\\#.c1BBB	"fIb&	 , $
 r4   r7   r6   rl   r   N)rT   ry   r   ro   rp   r=   r   rV   r   r   rD   )	r.  r-   r>   rs   r  r   svc1svc2svc3s	            r2   "test_custom_kernel_not_array_inputr  q  s    +D
1a&1a&1a&1a&1a&9:A
!A
 	d!Arvva~q)M*..t7DH%))!/DM*..q4D::d$**Q"2222::d$**Q"2222t())..t4d6L6LQ6OP..t4d6L6LQ6OP4<<-t||A?4<<-t||A?T*DLLO<T*DLLO<r4   c                     [         R                  " SS9R                  [        [        5      n SU R
                  S'   Sn[        R                  " [        US9   U R                  [        5        SSS5        g! , (       d  f       g= f)zCheck that SVC raises error when internal representation is altered.

Non-regression test for #18891 and https://nvd.nist.gov/vuln/detail/CVE-2020-28975
r6   r7   i@B r   z.The internal representation of SVC was alteredr+  N)
r   r<   r=   r>   r?   
_n_supportrz   r{   r|   rD   )rF   rf  s     r2   -test_svc_raises_error_internal_representationr     sW    
 ''
"
&
&q!
,CCNN1
:C	z	-A 
.	-	-s   A66
Bzestimator, expected_n_iter_typer  )r%   r&   r   c                 >   [        X"US9nUu  pVU " SS9R                  XV5      R                  n[        U5      U:X  d   eU [        R
                  [        R                  4;   a;  [        [        R                  " U5      5      nUR                  X"S-
  -  S-  4:X  d   eg g )N)r  n_informativer   r6   r7   r$   r%   )r   r=   r  typer   r<   r   r   rT   rP  r   )r  expected_n_iter_typer  r\   datasetr>   rs   n_iters           r2   test_n_iter_libsvmr'    s     "CUG DAh'++A199F<////SWWcii((		!%	||	] ;q @BBBB )r4   c           	          [        SU SS[        R                  " [        5      5      nUSL d   e[        SU SS[        R                  " [        5      R                  5      nUSL d   eg )Nautoru  r   FTr   rT   asarrayr>   rp   r  s     r2   test_dual_autor,    sT     $FD$rzz!}MD5==#FD$rzz!}OD4<<r4   c            	      ,   [        SSSS[        R                  " [        5      5      n U SL d   e[        SSSS[        R                  " [        5      5      n U SL d   e[        SSSS[        R                  " [        5      R                  5      n U S	L d   eg )
Nr)  rq  ru  r   Tr  rr  rt  Fr*  )rv  s    r2   test_dual_auto_edge_casesr.    s    #FGT5"**Q-PD4<<#%tUBJJqMD 4<<#ubjjmooD 5==r4   zEstimator, make_datasetC_infinfc                     U" US9u  pEU " US9R                  XE5      nU " SS9R                  XE5      n[        UR                  U5      UR                  U5      5        g)zCheck that we can pass `C=inf` that is equivalent to a very large C value.

Non-regression test for
https://github.com/scikit-learn/scikit-learn/issues/29772
r  r   g    _BN)r=   r   rD   )r.  make_datasetr/  r\   r>   rs   estimator_C_infestimator_C_larges           r2   test_svm_with_infinite_Cr5    s]     %78DA%(,,Q2O!D)--a3%--a0/2I2I!2LMr4   zEstimator, namer   c                     [        5       u  p4[        R                  " [        SS9   U " US9R	                  X45        S S S 5        g ! , (       d  f       g = f)Nz"probability.+parameter.+deprecatedr+  r  )r   rz   r  FutureWarningr=   )r.  namer   r>   rs   s        r2   %test_probability_raises_futurewarningr9    s=      DA	m+O	Pk*..q4 
Q	P	Ps   A
Ar0  c                 F   [        SSSS9u  pU " 5       R                  X5      n [        R                  " [        SS9   U R
                  nSSS5        [        R                  " [        SS9   U R                  nSSS5        g! , (       d  f       N== f! , (       d  f       g= f)	zMTest that accessing probA_ and probB_ raises FutureWarning for SVC and NuSVC.2   rS   r   )r   r"  r   z!Attribute `probA_` was deprecatedr+  Nz!Attribute `probB_` was deprecated)r   r=   rz   r  r7  probA_probB_)r0  r>   rs   _s       r2   %test_svc_nusvc_probA_probB_deprecatedr?    ss     11MDA
%))A/C	m+N	OJJ 
P	m+N	OJJ 
P	O 
P	O	O	Os   B+B
B
B )~__doc__numpyrT   rz   numpy.testingr   r   r   r   sklearnr   r   r	   r
   r   sklearn.datasetsr   r   r   sklearn.exceptionsr   r   sklearn.metricsr   sklearn.metrics.pairwiser   sklearn.model_selectionr   sklearn.multiclassr   sklearn.svmr   r   r   r   r   r   sklearn.svm._classesr   rL  r   r   sklearn.utils.fixesr   r   r    sklearn.utils.validationr!   r>   r?   rp   r}   r3   rG   markthread_unsaferj   r   r   r   r   r   r   r   r   r   filterwarningsr   r   parametrizer<   r   r  r
  r  r   r#  r&  r   r1  r6  r?  rD  rT  ra  rg  rl  ro  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   ndarrayr   r'  r,  r.  r0  r  r5  r9  r?  r  r4   r2   <module>rS     s)	      ? > M M % / 4 2  : 5 I I 1 	"XBx"bAq6Aq6Aq6:"X1v1v* M$ M$`GGTD(+&+RN<9$ 34
 5 
(ED #)) 45&+ 6&+RC004 sww		&DE F4 sww		D8I&JK L49 	NOII	

 
NO	PQ	VW
 	8   S3q6\D6CF?#	34  
3(3  GG	
 
01	 
   45	(  
3&3 	c6]KL	66"266BRST 
   [),>+MN	!78  
>> #''399cii06O   ./	!78  
77"
J .9# :#L .9% :% .9* :* '?!;<T4L1$/ 0 2 =2#)LM2!CH&5  }}$AN(.-$  @"	0*
$" 34# 5#41)IX cggsyy%9: ; cggsyy%9:%1 ;%1P' 	ouMN	otLM	ouMN	gtDE	2DAB	:DIJ	:DIJ.R .Rb ;U";<
$ =
$ sww&89"= :"=J
 %	"**	BJJ	#	C	#	 C		C" /3P!QR S 	gg"#cgg%?@ 2665<"89
N :	

N 	ggu		7+, u65 7	
5 #)) 45 6r4   