
    -i                        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r3\Rh                  " 5       r5\(" S5      r6\6Ro                  \5Rp                  Rr                  5      r:\5Rv                  \:   \5l;        \5Rp                  \:   \5l8        S r<S r=S r>S r?S r@S rAS rBS rCS  rDS! rES" rFS# rGS$ rH\R                  R                  S%\R                  \R                  45      S& 5       rMS' rNS( rO\R                  R                  S)\R                  " S*S+9\R                  " 5       /5      S, 5       rP\R                  R                  S)\R>                  " S*S+9\RD                  " S*S+9/5      S- 5       rQS. rR\R                  R                  S/\R                  S04\R                  S14\R>                  S04\RD                  S04\RF                  S04// S2QS39\R                  R                  S4S/\S" \15      -  S5/\S" \15      -  /S6S7/S39S8 5       5       rT\R                  R                  S9\R                  S:4\R                  S;4/S<S=/S39\R                  R                  S4/ S>Q/ S?Q/S@SA/S39SB 5       5       rU\R                  R                  SC\R                  SDSE/SESF/SG.4\R                  SHSH/SHSH/SG.4/S<S=/S39\R                  R                  SI/ SJQSK4/ SLQSM4/SNSO/S39SP 5       5       rV\R                  R                  SQ\R                  \R                  \RD                  // SRQS39\R                  R                  S4/ SJQ/ SLQ/SNSO/S39SS 5       5       rWST rX\R                  R                  SU\-5      SV 5       rYSW rZSX r[\R                  R                  SY\,5      SZ 5       r\\R                  R                  SY\,5      S[ 5       r]\R                  R                  S\S]S^/5      \R                  R                  S_S`Sa/5      \R                  R                  SbScSd/5      Se 5       5       5       r^Sf r_Sg r`Sh raSi rbSj rc\R@                  4Sk jrdSl reSm rfSn rgSo rhSp riSq rjSr rk\R                  R                  Ss5      St 5       rmSu rnSv roSw rpSx rqSy rrSz rs\R                  R                  S{\R                  \R                  /5      S| 5       rt\R                  R                  S{\R                  \R                  /5      S} 5       ruS~ rv\R                  R                  S\ S`S^SdS.4\ SaS^ScS.4\ SaS^SdS.4\ SaS]ScS.4\!SScS.4\!SScS.4\!SScS.4/5      S 5       rw\R                  R                  S\#\\"45      S 5       rx\R                  R                  SQ\R                  \R>                  /5      S 5       ryS rz\R                  R                  S\R                  \R                  4\R                  \R                  4\R>                  \|4\RD                  \|4\RF                  \|4/5      \R                  R                  S\" SSSS9\" SSSS9\" SSSS9/5      S 5       5       r}\R                  R                  S\S^S/5      S 5       r~S r\R                  R                  S\R                  \4\R>                  \4/5      \R                  R                  S\GR                   \" S5      /5      S 5       5       rg)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                  " 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    M/var/www/html/venv/lib/python3.13/site-packages/sklearn/svm/tests/test_svm.pytest_libsvm_parametersr;   7   s    
''
"
&
&q!
,Cs~~7s||aV,s++adAaD\:s~~u-s{{1~q)    c            	      N   S H  n [         R                  " U S9R                  [        R                  [        R
                  5      n[        R                  " UR                  [        R                  5      [        R
                  :H  5      S:  d   e[        US5      U S:H  :X  a  M   e   [        WR                  [        R                  " UR                  5      5        [        R                  " [        R                  [        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                  " [        R                  40 UD6n[        R                  " U[        R
                  :H  5      S:  d   e[        R                  " [        R                  [        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                  " [        R                  40 UDSS0D6n[        R                  " U[        R
                  :H  5      S:  d   e[        R                   " [        R                  [        R
                  R                  [        R                  5      S	SS
S9n[        R                  " U[        R
                  :H  5      S:  d   e[        R                   " [        R                  [        R
                  R                  [        R                  5      S	SS
S9n[        X5        g )N)r)   rbfr*   ?coef_r)   )supportSVnSVsv_coef	interceptprobAprobBgffffff?r+      r   r+   random_seed)r   r/   r0   irisdatatargetnpmeanr7   hasattrr   classes_sortr   astypefloat64cross_validation)kr9   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                 r:   test_libsvm_irisrc   A   sk    ggQ##DIIt{{;wws{{499-<=CCCsG$h777 
 s||RWWS\\%:;  	DIIt{{11"**=> "$ !%L ??49955D7744;;&'$... 	DIIt{{11"**=hO "$ !%L ??499FFXFD7744;;&'$...##		4;;%%bjj11XSTD 7744;;&'$...
 $$		4;;%%bjj11XSTE t#r<   c                  
   [         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[        R                  " [,        R.                  [,        R.                  R                  5      nU R                  U[,        R0                  5        UR                  [,        R.                  [,        R0                  5        U R                  U5      n[#        U R                  UR                  5        [#        U R                  UR                  5        [#        U R                   UR                   5        [3        [        R4                  " U[,        R0                  :H  5      S
SS9  [        R&                  " U5      n[)        [+        [,        R.                  5      5       HS  nU R                   H@  n[        R                  " [,        R.                  U   [,        R.                  U   5      XU4'   MB     MU     U R                  U5      n[3        [        R4                  " U[,        R0                  :H  5      S
SS9  [         R                  " US9n U R                  [,        R.                  [,        R0                  5        [3        [        R4                  " U[,        R0                  :H  5      S
SS9  g ! , (       d  f       GNZ= f)Nprecomputedr*   r,   r-   r$   r&   r   c                 B    [         R                  " XR                  5      $ NrN   dotTxys     r:   kfunctest_precomputed.<locals>.kfunc   s    vva~r<   r)   gGz?r%   decimal)r   r/   rN   ri   r1   arrayrj   r0   r2   r7   pytestraises
ValueErrorr   r3   r4   r6   r   true_result
zeros_likerangelenrK   rL   rM   r   rO   )r9   KKTra   ijrn   clf2s           r:   test_precomputedr      sQ    ''
'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
tyy$))++&AGGAt{{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Fw 
#	"s   T??
U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 )	Nr)   皙?      ?)r+   nuC      $@r+   r   r   g{Gz?)r   load_diabetesr   r   r   r   r0   rL   rM   scorerN   onesry   )diabetesr9   s     r:   test_svrr      s     %%'H		cS1		cT2x4( 	x/yy84??? GGIMM(--X]]);!<=MMOrwws8==/A'BCr<   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   r)   r   r$   -C6?r%   )r   r   r   r   r0   rL   rM   r   r   r   rN   linalgnormr@   r   )r   lsvrscore1svrscore2s        r:   test_linearsvrr      s     %%'H==3##HMM8??CDZZx7F
''S
)
-
-hmmX__
MCYYx}}hoo6FBIINN4::.		syy0I1fU*r<   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        [        XFS5        [!        S	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   ry   rM   rN   r   r   r   r0   rL   r   r   r   r   r@   r   r   randintrepeat)r   	n_samplesunit_weightr   r   lsvr_no_weightr   random_staterandom_weightlsvr_unflatscore3X_flaty_flat	lsvr_flatscore4s                  r:   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 * &a(L ((B	:M--#55AEExm F K xm  F YYx}}m!<FYYxA>F?CCFSI__V,F*r<   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   )rN   rr   rk   s     r:   <lambda>!test_svr_errors.<locals>.<lambda>*  s    bhhw&7r<   r*   )r   r   r0   rs   rt   ru   r7   r1   rm   r9   s      r:   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&   rp   )      ?r   r   r   c                     > T R                   $ rg   )r@   r8   s   r:   r   test_oneclass.<locals>.<lambda>;  s	    r<   )r   r   r0   r1   r7   rj   r   dtyperN   r   r6   r3   rs   rt   AttributeError)ra   r9   s    @r:   test_oneclassr   0  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highsize皙?r>   )r   r+   gammar$   r?   r#   r   )r   r   r   randnrN   r_uniformr0   r7   rO   decision_functionr   ravel)
r9   rndr1   X_trainX_test
X_outliersy_pred_testy_pred_outliersdec_func_testdec_func_outlierss
             r:   test_oneclass_decision_functionr   >  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Mr<   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   r0   r   score_samplesr   offset_)r   r9   s     r:   test_oneclass_score_samplesr   \  sl    1v1v1v&G
//
"
&
&w
/CC:,'Szl+ckk9r<   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 )
Nr)   r   r   r,   r-   皙r$   r.   r%   )r   r/   r0   r1   r2   r   r3   r7   rN   rr   _dual_coef_r8   s    r:   test_tweak_paramsr   e  s     ''S
)CGGAqMs~~7s{{T4L>2QC8hhc
|,COs{{T4L>2QC8r<   c            	         [         R                  " SSSS9[         R                  " SSS94 GHM  n U R                  [        R
                  [        R                  5        U R                  [        R
                  5      n[        [        R                  " US5      [        R                  " [        R
                  R                  S   5      5        [        R                  " [        R                  " US5      U R                  [        R
                  5      :H  5      S:  d   e[!        U R                  [        R
                  5      [        R"                  " U R%                  [        R
                  5      5      S5        GMP     g )	NTr   r   )probabilityr   r   )r   r   r$   r?      )r   r/   NuSVCr0   rK   rL   rM   predict_probar   rN   sumr   shaperO   argmaxr7   r   exppredict_log_proba)r9   prob_predicts     r:   test_probabilityr   t  s    
 	DqC8		d3 			4;;'((3!"&&q"9277499??STCU;VWwwryyq1S[[5KKLsRRRdii("&&1F1Ftyy1Q*RTU	
r<   c                     [         R                  " SSSS9R                  [        R                  [        R
                  5      n [        R                  " [        R                  U R                  R                  5      U R                  -   n[        XR                  [        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        [        X R"                  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                  " X@R0                  R                  5      U R                  -   n[        UR!                  5       U R                  [        5      5        g )Nr)   r   ovo)r+   r   decision_function_shaper   )      gQr   gQ?r   r   r%   r>   r$   )r+   r   r   r   )r   r/   r0   rK   rL   rM   rN   ri   r@   rj   r6   r   r   r1   r2   r7   r   rQ   rS   intrr   r   r5   r   r3   )r9   dec
predictionexpectedrbfss        r:   test_decision_functionr     s   
 ''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Dr<   SVMc                    U " SSS9R                  [        R                  [        R                  5      nUR	                  [        R                  5      nUR
                  [        [        R                  5      S4:X  d   e[        UR                  [        R                  5      [        R                  " USS95        [        SSS	S
9u  p4[        X4S	S9u  pVpxU " SSS9R                  XW5      n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S9R                  XW5      nUR	                  U5      nUR
                  [        U5      S4:X  d   eg )Nr)   ovrr+   r   r&   r$   r   P   rH   r   )r   centersr   r   r   r   )r0   rK   rL   rM   r   r   ry   r   r7   rN   r   r   r   )	r   r9   r   r1   rm   r   r   y_trainy_tests	            r:   test_decision_function_shaper     sF   
 Xu
=
A
A		4;;C 

		
*C99TYY++++s{{499-ryy1/EF AA>DA'71'M$GW
Xu
=
A
A'
SC



'C99Va((((s{{6*BIIc,BC Xu
=
A
A'
SC



(C99Wr****r<   c                     [         R                  n [         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                  " XBR"                  R                  5      UR                  -   n[        UR                  5       UR                  U 5      R                  5       5        g )Nr)   r   r   r>   r$   )r+   r   r   )rK   rL   rM   r   r   r0   rN   ri   r@   rj   r6   r   r   r7   r   r5   r   r3   )r1   rm   regr   r   s        r:   test_svr_predictr     s    
 			AA ''S
)
-
-a
3C
&&IIKK
 3>>
1Cciik3;;q>+?+?+AB ''a
(
,
,Q
2Ca--SYY?D
&&~~''
(3>>
9Cciik3;;q>+?+?+ABr<   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/   r0   r1   r2   r   r7   r   r	   LogisticRegressionr   
set_paramsr   )r9   X_y_y_preds       r:   test_weightr    s    
''3x
(CGGAqMckk!nqcAg6 "uen1FB
 	'')1%	
 	O44C"Tc(#RX&34&)C///r<   	estimator{Gz?r   c                    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$   r)   r*   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r	  r0   r2   r   rs   approxr  r1   r   r  s       r:   'test_svm_classifier_sided_sample_weightr    s     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::r<   c                    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$   r)   r*   r  r   r   r   g      ?r  r  )r	  r0   r2   r7   rs   r  r  s       r:   &test_svm_regressor_sided_sample_weightr  
  s     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<<r<   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/   r0   r1   r2   r3   r	  rN   r   ry   r   )r9   dual_coef_no_weights     r:   $test_svm_equivalence_sample_weight_Cr  $  s`    
'')CGGAqM..NNSNGGAq		$A 7G8'8r<   zEstimator, err_msgz:Invalid input - all samples have zero or negative weights.z6(negative dimensions are not allowed|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Nr)   r*   matchr   rs   rt   ru   r0   r1   r2   )	Estimatorerr_msgr   ests       r:   -test_negative_sample_weights_mask_all_samplesr%  .  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   r9   s       r:   .test_negative_weights_svc_leave_just_one_labelr*  D  s:    ( H
%C	z	11M2 
2	1	1r&  zClassifier, modelg6<R?r   gj+?)	when-left
when-rightgioT?zsample_weight, mask_side)r$   r'  r$   r$   r$   r$   r+  )r$   r$   r$   r   r$   r$   r,  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 )Nr)   r*   r   MbP?)rtol)r0   r1   r2   r   r@   )r)  modelr   	mask_sider9   s        r:   *test_negative_weights_svc_leave_two_labelsr2  ]  s6      H
%CGGAqG.CII 01=r<   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 )Nr)   r*   r   r   r$   r.  )rel)	r0   r1   r2   rN   absr@   r   rs   r  )r"  r   r$  coefs       r:   !test_negative_weight_equal_coeffsr7  r  s\     8
$CGGAqG.66#))""$D7fmmDG6666r<   c                     SSK Jn   SSKJn  [        R
                  S S 2S S24   [        R                  S-   p2[        R                  " [        R                  " UR                  5      [        R                  " US:  5      S   S S S2   5      n[        R                  " X4   5      nU" SXSU   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#                  X$   X4   5      R%                  U5      nUR'                  SS9  UR#                  X$   X4   5      R%                  U5      n	[(        R*                  " X8SS9[(        R*                  " X9SS9::  a  M   e   g )Nr   )r  )compute_class_weightr%   r$   balanced)classesrm   r)   r*   r   r  macro)average)sklearn.linear_modelr  sklearn.utilsr9  rK   rL   rM   rN   deletearanger   whereuniquer   r   r/   r   r0   r7   r	  r
   r   )
r  r9  r1   rm   
unbalancedr;  class_weightsr9   r  y_pred_balanceds
             r:   test_auto_weightrG    sM   7 3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@
 
 	
 
r<   lil_containerc                    [         S S n[        R                  " [        5         [        R
                  " 5       R                  [        U5        S S S 5        [        R
                  " 5       [        R                  " S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                  X45        [        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   r   C_CONTIGUOUS)r%   r$   F_CONTIGUOUSre   r*   )r2   rs   rt   ru   r   r/   r0   r1   r   rN   asfortranarrayflagsascontiguousarraytilerj   r   r7   rv   rr   ri   )rH  Y2r9   XfyfXts         r:   test_bad_inputrT    s    
3BB	z	"	a 
# 	3==a89q!88N+++!!"''!V"4"6"672Y88N+++88N+++3;;q>;7 : ''
'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                  S5      n Sn[         R                  " [         R                  5      R
                  nX R                  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                  X45        S S S 5        g ! , (       d  f       g = f)Nr   r   r%   )r   z2The dual coefficients or intercepts are not finiter  )rN   randomRandomStatefinforT   maxr   r   r   r/   rs   rt   ru   r0   )rngr   fmaxr1   rm   r9   msgs          r:   test_svc_nonfinite_paramsr]    s    
))


"CI88BJJ##D{{A{//AAqy)A
'')C
>C	z	- 
.	-	-s   $B??
Cc                  .   [         R                  " SSS9n U R                  [        [        5        U R                  [        5        [        R                  " [        R                  [        R                  R                  [        R                  5      SSSS9  g )Nr)   T)r+   r   rH   r   rI   )r   r/   r0   r1   r2   r   rj   r   rU   rK   rL   rM   rS   rN   rT   r8   s    r:   test_unicode_kernelr_    s^    
''t
4CGGAqMa		4;;%%bjj11XSTr<   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)Nre   r*   r$   r   zSparse precomputedr  )r   r/   rs   rt   	TypeErrorr0   )r`  r9   sparse_grams      r:   test_sparse_precomputedrd    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?rf  r   g{Gz?r)   r*   )	rN   rr   r   r   r0   r5   rL   r   r3   )r`  r   r   r0  s       r:   %test_sparse_fit_support_vectors_emptyrg    sy     \<|TUGhh/0GGG8$E	IIg%%**////$$)))))r<   losshingesquared_hingepenaltyl1l2dualTFc           	      :   [        SSSS9u  p4[        R                  " XUS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                  X45        S S S 5        g UR                  X45        g ! , (       d  f       g = f)NrH   r   )r   r  r   rk  rh  rn  r   )ri  rl  )ri  rm  F)rl  Tz'Unsupported set of arguments.*penalty='z.*loss='z.*dual=r  )r   r   r   rs   rt   ru   r0   )rh  rk  rn  r1   rm   r9   s         r:   test_linearsvc_parametersrq    s     qqIDA
--A
NC	?*4 $::?l*]]d$

 GGAM
 
 	
 
s   B
Bc                  b   [         R                  " SS9R                  [        [        5      n U R
                  (       d   e[        U R                  [        5      [        5        [        U R                  S/SS9  [         R                  " SSSSS9R                  [        [        5      n [        U R                  [        5      [        5        [         R                  " S	S
SS9R                  [        [        5      n [        U R                  [        5      [        5        [         R                  " S	SS
S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&   rp   rl  rj  Frp  rm  T)rk  rn  r   ri  r$   )r   r   r0   r1   r2   fit_interceptr   r7   rj   rv   r   r6   r   rS   r   )r9   r   ress      r:   test_linearsvcru    s*   
--Q
'
+
+Aq
1C s{{1~{3cnnqc1= --?Q	c!Qi  s{{1~{3 --4a
@
D
DQ
JCs{{1~{3 --7A
NCGGAqMs{{1~{3 


"C7

3
!
#CsK(r<   c                     [         R                  " SS9R                  [        R                  [        R
                  5      n [         R                  " SSS9nUR                  [        R                  [        R
                  5        U R                  [        R                  5      UR                  [        R                  5      :H  R                  5       S:  d   eU R                  UR                  :g  R                  5       (       d   e[        UR                  [        R                  5      [        R                  " UR                  [        R                  5      SS95        [        R                  " [        R                  UR                  R                  5      UR                   -   n[#        X!R                  [        R                  5      5        g )Nr   r   crammer_singer)multi_classr   r?   r$   r   )r   r   r0   rK   rL   rM   r7   rO   r@   allr   rN   r   r   ri   rj   r6   r   )ovr_clfcs_clfdec_funcs      r:   test_linearsvc_crammer_singerr}  /  s   mm+//		4;;GG]]'7aHF
JJtyy$++& OODII&&..*CCIIKcQQQ MMV\\)..0000 tyy!
		&**4995A> vvdii063D3DDHh(@(@(KLr<   c                     [        [        5      n [        R                  " U 5      n[        R
                  " SS9R                  [        [        5      n[        R
                  " SSSS9R                  [        [        US9n[        UR                  [        5      UR                  [        5      5        [        UR                  UR                  SS5        [        S5      nUR                  SS	U 5      n[        R
                  " S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
                  " S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   )ry   r1   rN   r   r   r   r0   r2   r   r7   rj   r   r@   r   r   r   )r   r   r9   clf_unitweightr   r   lsvc_unflatpred1r   r   	lsvc_flatrb   s               r:   test_linearsvc_fit_sampleweightr  D  sg   AI'')$K
--Q
'
+
+Aq
1C]]utLPP	1K Q N
 ~--a0#++a.ACII~33Q?
 &a(L ((B	:M--QEDIMM	1M N K "EYYq-a0FYYq-a0F1%$GKKI a Eu$K%%y6Br<   c                      [        SSS9u  pS H?  n[        R                  " USSS9R                  X5      R	                  X5      nUS:  a  M?   e   g )Nr%   r   )	n_classesr   )TFrw  )rs  rx  r   r?   )r   r   r   r0   r   )r1   rm   rs  accs       r:   test_crammer_singer_binaryr  g  sV    ;DA&MM+,
 SYU1[ 	 Syy 'r<   c                  d   [         R                  [         R                     n [        R                  " SS9R                  [         R                  U 5      n[        UR                  5      [        [         R                  5      :X  d   e[        R                  " UR                  [         R                  5      U :H  5      S:  d   eUR                  [         R                  5      n[         R                  [        R                  " US5         n[        X1R                  [         R                  5      5        g )Nr   r   g?r$   )rK   target_namesrM   r   r   r0   rL   setrQ   rN   rO   r7   r   r   r   )rM   r9   r   ra   s       r:   test_linearsvc_irisr  x  s     t{{+F
--Q
'
+
+DIIv
>Cs||D$5$5 6666773;;tyy)V34s:::


		
*CRYYsA./Dt[[34r<   c           
         SS/SS/SS/SS//n/ SQnU " SSSSS	S
S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[        XESS9  g )Nr%   r$   r&   r   r   r$   r$   Trl  rj  Fr   gHz>r   )rs  rk  rh  rn  r   r   r   rH   rp   r   r#   r  )intercept_scalingrs  r0   r   r6   r   )
classifierr1   rm   r9   
intercept1
intercept2s         r:   '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@r<   c                     [         R                  " 5       R                  [        R                  [        R
                  5      n U R                  [        R                  5      nU R                  R                  5       U l        U R                  R                  5       U l	        U R                  [        R                  5      n[        X5        SS/SS/SS/SS//n/ SQn[         R                  " 5       R                  X45      n U R                  U5      nU R                  R                  5       U l        U R                  R                  5       U l	        U R                  U5      n[        X5        g )Nr%   r$   r&   r  )r   r   r0   rK   rL   rM   r   r@   copyr6   r   r   )r9   valuesvalues2r1   rm   s        r:   test_liblinear_set_coefr    s   
--/

dii
5C""499-F		 CI^^((*CN##DII.Gf. Q!Q!Q!Q(AA
--/

a
#C""1%F		 CI^^((*CN##A&Gv'r<   c                     [         R                  " SS9R                  [        R                  [        R
                  5      [         R                  " SS9R                  [        R                  [        R
                  5      [         R                  " SS9R                  [        R                  [        R
                  5      [         R                  " SS9R                  [        R                  [        R
                  5      [         R                  " SS9R                  [        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)Nr)   r*   r@   r&   )r   r   r   )r   r/   r0   rK   rL   rM   r   r   r   r   rs   rt   r   __setattr__rN   rA  RuntimeErrorru   r@   __setitem__)svmsr9   s     r:   test_immutable_coef_propertyr    s    	x $$TYY<		"&&tyy$++>x $$TYY<		"&&tyy$++>x(,,TYY7D ]]>*OOGRYYq\2 +]]L*56II!!&!, 76 **66s   'GG
G	
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   r0   r1   r2   )r  stdoutr9   s      r:   test_linearsvc_verboser    sW    VVAYFGGBGGIaL! --
"CGGAqM GGFAr<   c                  h   [         R                  " S SSSS9n [        R                  " U 5      nUR	                  [
        R                  [
        R                  5        [         R                  " SSSSS9nUR	                  [
        R                  [
        R                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  [
        R                  5      UR                  [
        R                  5      5        [        UR                  [
        R                  5      UR                  [
        R                  5      SS9  [        UR                  [
        R                  5      UR                  [
        R                  5      5        g )	Nc                 B    [         R                  " XR                  5      $ rg   rh   rk   s     r:   r   5test_svc_clone_with_callable_kernel.<locals>.<lambda>      BFF1ccNr<   Tr   r   )r+   r   r   r   r)   r   rp   )r   r/   r   cloner0   rK   rL   rM   r   r3   r6   r   r7   r   r   )svm_callable
svm_clonedsvm_builtins      r:   #test_svc_clone_with_callable_kernelr    s%    77* %	L L)JNN499dkk*''TSXK OODIIt{{+j33[5K5KLj33[5K5KLz))$))4k6I6I$))6TU  +!!$)),
 $$TYY/%%dii0r<   c                      [         R                  " S S9n [        R                  " [        5         U R                  [        [        5        S S S 5        g ! , (       d  f       g = f)Nc                     U $ rg    rk   s     r:   r   %test_svc_bad_kernel.<locals>.<lambda>   s    ar<   r*   )r   r/   rs   rt   ru   r0   r1   r2   )svcs    r:   test_svc_bad_kernelr    s5    
''
(C	z	"1 
#	"	"s   A
A"c                  N   [         R                  " S SS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      $ rg   rh   rk   s     r:   r   2test_libsvm_convergence_warnings.<locals>.<lambda>  r  r<   Tr   r%   )r+   r   r   r   zoSolver terminated early \(max_iter=2\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r  )r   r/   rs   warnsr   r0   rN   rr   r1   r2   ry  n_iter_)awarning_msgs     r:    test_libsvm_convergence_warningsr    sv    *1WX	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/   rs   rt   	Exceptionr7   r   )r1   r9   s     r:   test_unfittedr    sv    A
'')C	y(I	JA 
K ))+C	y(K	LA 
M	L	 
K	J 
M	Ls   B9B%
B"%
B3z-ignore::sklearn.exceptions.ConvergenceWarningc                  &   [         R                  " SSSS9n U R                  [        [        5      R                  [        5      n[         R                  " SSSS9n U R                  [        [        5      R                  [        5      n[        X5        g )NTr$   r   )r   r   r   )r   r/   r0   r1   r2   r   r   )r  proba_1proba_2s      r:   test_consistent_probar    sb    D11=AeeAqk''*GD11=AeeAqk''*Gg/r<   c                     [         R                  " S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                  " SSS9n[        R                  " [        US9   UR                  [        R                  [        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   r   z@Liblinear failed to converge, increase the number of iterations.r  )r   r   rs   r  r   r0   r1   r2   
isinstancer  r   r   rK   rL   rM   )lsvcr  r   s      r:   $test_linear_svm_convergence_warningsr  (  s     ==a!4DTK	(	<A 
= dllC((((<<1==a!4D	(	<DKK( 
=dllC((((<<1 
=	< 
=	<s   D 5/D1 
D.1
D?c            	         [         R                  R                  S5      R                  SS5      n [         R                  R                  S5      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 )N   r   r&      r)   r*   )rN   rV  rW  r   r   r   r   r   r0   r   r7   ri   r@   r   r6   )r1   rm   r   s      r:   test_svr_coef_signr  ;  s     			b!''A.A
		b!''+A 	x 		"
 	!KKNBFF1iioo&783>>I	
r<   c                      [         R                  " SS9n U R                  [        [        5        U R
                  S:X  d   eg )NF)rs  r.   )r   r   r0   r1   r2   r6   )r  s    r:    test_lsvc_intercept_scaling_zeror  L  s1     ==u-DHHQN??c!!!r<   c                     [         R                  " SS9n [        U S5      (       d   eU R                  [        R
                  [        R                  5        [        U S5      (       d   e[         R                  " SS9n [        U S5      (       a   eU R                  [        R
                  [        R                  5        [        U S5      (       a   eSU l        [        U S5      (       d   eSn[        R                  " [        US9   U R                  [        R
                  5        S S S 5        g ! , (       d  f       g = f)NT)r   r   FzApredict_proba is not available when fitted with probability=Falser  )r   r/   rP   r0   rK   rL   rM   r   rs   rt   r   r   )Gr\  s     r:   test_hasattr_predict_probar  T  s     	D!A1o&&&&EE$))T[[!1o&&&&E"Aq/****EE$))T[[!q/**** AM1o&&&&
MC	~S	1			" 
2	1	1s    D//
D=c                  
   S H}  n [        U S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   r0   ry   r7   )r  r1   rm   r  r9   s        r:   &test_decision_function_shape_two_classr  l  so    	)!<''399-I%i&NOSSC s{{1~&#a&000	 . r<   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&   rH   r   r   r%   r&   r)   r   r   r   r   )r   r%   r.   )rN   rr   vstackr   r/   r0   r7   r   r   r   rx   reshapeminry  )	r   r   base_pointsr   r   r9   r  deci_valpred_class_deci_vals	            r:   test_ovr_decision_functionr  v  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Hr<   SVCClassc                     [        SS9u  pU " SSSSS9R                  X5      n[        R                  " [        SS9   UR
                  " U5        S S S 5        g ! , (       d  f       g = f)	Nr'   r   r)   r   T)r+   r   
break_tiesr   zbreak_ties must be Falser  )r   r0   rs   rt   ru   r7   )r  r1   rm   r   s       r:   !test_svc_invalid_break_ties_paramr    sW    2&DA
4VX	c!i  
z)C	DA 
E	D	Ds   A
A'c                    U R                   S:X  a!  [        (       a  [        R                  " S5        [	        S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                  " X45      u  pV[        S
SS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   r  Nr   r$   r>   g    .Ar'   r   )r+   r   r   r   r  Fr   Tr  )__name__r   rs   xfailr   rN   linspacer  rY  meshgriddictr0   r7   c_r   r   ry  r   )r  r1   rm   xsysxxyycommon_paramsr   ra   dvs              r:   test_svc_ovr_tie_breakingr    s   
 G#		
 	/01qADA	Qq!tW[[]AadGKKM3	7B	Qq!tW[[]AadGKKM3	7B[[ FBCb%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0r<   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/   r0   r   _gammar   s      r:   test_gamma_scaler    s9    EC5>Aq6q
'')CGGAM

A&r<   zSVM, params)rk  rh  rn  epsilon_insensitiverh  rn  squared_epsilon_insensitivec                 Z   [         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                  " X"/5      n[         R                  " USU-
  /5      n[         R
                  " [        U5      S-  S	9nS
U[        U5      S & [        XEUS
S9u  pEnU " SS9nUR                  " S0 UD6  UR                  SSS9  [        R                  " U5      R                  X#5      n[        R                  " U5      R                  XEUS9n	S HB  n
[        Xz5      (       d  M  [        X5      " U5      n[        X5      " U5      n[        X5        MD     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   r   )r7   r   r  )rN   rr   r   r  hstackr   ry   r   r	  r   r  r0   rP   getattrr   )r   paramsr1   rm   X2y2r   base_estimatorest_no_weightest_with_weightmethodX_est_no_weightX_est_with_weights                r:   &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JBMb)N''%$7JJ~.2218Mjj044
m 5 O 3>**%m<Q?O ' @ CO?	 3r<   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_)	rN   rr   rA  r   rP   r0   r  r5   r   )r  r1   rm   r$  s       r:   test_n_supportr    s    
 	1#vvvs34A
		!''!*A
'CsL))))GGAM>>! 4 4 : :1 ====>>!###r<   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!   rN   zerosrx   count)X1r  
n_samples1
n_samples2rz   iijjs          r:   string_kernel9test_custom_kernel_not_array_input.<locals>.string_kernel,  s    "Q%%%%%!"%
!"%
HHj-.
#BB+FLL-S0AAb&	b&	RV\\#.c1BBB	"fIb&	 , $
 r<   r*   r)   re   r   N)rN   rr   r   ri   rj   r0   r   rP   r   r   r7   )	r"  rL   r1   rm   r  rz   svc1svc2svc3s	            r:   "test_custom_kernel_not_array_inputr  %  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<r<   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
r)   r*   i@B r   z.The internal representation of SVC was alteredr  N)
r   r/   r0   r1   r2   
_n_supportrs   rt   ru   r7   )r9   r\  s     r:   -test_svc_raises_error_internal_representationr  K  sW    
 ''
"
&
&q!
,CCNN1
:C	z	-A 
.	-	-s   A66
Bzestimator, expected_n_iter_typedataset)r  n_informativer   r   c                 *   Uu  p4U " SS9R                  X45      R                  n[        U5      U:X  d   eU [        R                  [        R
                  4;   a;  [        [        R                  " U5      5      nUR                  XfS-
  -  S-  4:X  d   eg g )Nr)   r*   r$   r%   )
r0   r  typer   r/   r   ry   rN   rC  r   )r  expected_n_iter_typer  r1   rm   n_iterr  s          r:   test_n_iter_libsvmr!  X  s    0 DAh'++A199F<////SWWcii((		!%	||	] ;q @BBBB )r<   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autorm  r   FTr   rN   asarrayr1   rj   r  s     r:   test_dual_autor&  x  sT     $FD$rzz!}MD5==#FD$rzz!}OD4<<r<   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#  ri  rm  r   Tr  rj  rl  Fr$  )rn  s    r:   test_dual_auto_edge_casesr(    s    #FGT5"**Q-PD4<<#%tUBJJqMD 4<<#ubjjmooD 5==r<   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)r0   r   r7   )r"  make_datasetr)  global_random_seedr1   rm   estimator_C_infestimator_C_larges           r:   test_svm_with_infinite_Cr0    s]     %78DA%(,,Q2O!D)--a3%--a0/2I2I!2LMr<   )__doc__numpyrN   rs   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   r?  r   r   sklearn.utils.fixesr   r   r    sklearn.utils.validationr!   r1   r2   rj   rv   	load_irisrK   rZ  permutationrM   r   permrL   r;   rc   r   r   r   r   r   r   r   r   r   r   r   markparametrizer/   r   r   r   r  r  r  r  ry   r%  r*  r2  r7  rG  rT  r]  r_  rd  rg  rq  ru  r}  r  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r  ndarrayr   r!  r&  r(  r*  r  r0  r  r<   r:   <module>rF     s      ? > M M % / 4 2  : 5 I I 1 	"XBx"bAq6Aq6Aq6:"X1v1v 
t{{''(IIdO	kk$*M$`FGRD(+&+RN<9
&EB #)) 45+ 6+4C,0. sww		&DE F2 sww		D8I&JK L29 	NO	LM	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!
H .9# :#L .9% :% .9* :* '?!;<T4L1$/ 0 2 =*)>M* CF"
5 8;}} "AJ(*- B
"	 KL0 M0&
""#01)IX cggsyy%9: ; cggsyy%9:"1 ;"1J' 	ouMN	otLM	ouMN	gtDE	2DAB	:DIJ	:DIJ,@,@^ ;U";<
$ =
$ sww&89"= :"=J
 %	"**	BJJ	#	C	#	 aqqIaqqIaqqIC	$C /3P!QR S 	gg"#cgg%?@ 2665<"89
N :	

Nr<   