
    Ug                     p   d Z ddlZddlZddlmZmZmZmZ ddl	m
Z
mZmZmZmZ ddlmZmZmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0 ddl1m2Z2 ddgddgddgddgddgddggZ3g dZ4ddgddgddggZ5g dZ6 ej7                    Z8 e)d          Z9e9:                    e8j;        j<                  Z=e8j>        e=         e8_>        e8j;        e=         e8_;        d Z?d Z@d ZAd ZBd ZCd ZDd ZEd  ZFd! ZGd" ZHd# ZId$ ZJd% ZKejL        M                    d&ejN        ejO        f          d'             ZPd( ZQd) ZRejL        M                    d* ejN        d+,           ejO                    g          d-             ZSejL        M                    d* ej         d+,           ej#        d+,          g          d.             ZTd/ ZUejL        M                    d0ejN        d1fejO        d2fej         d1fej#        d1fej$        d1fgg d34          ejL        M                    d5dg eVe4          z  d6g eVe4          z  gd7d8g4          d9                         ZWejL        M                    d:ejN        d;fejO        d<fgd=d>g4          ejL        M                    d5g d?g d@gdAdBg4          dC                         ZXejL        M                    dDejN        dEdFgdFdGgdHfejO        dIdIgdIdIgdHfgd=d>g4          ejL        M                    dJg dKdLfg dMdNfgdOdPg4          dQ                         ZYejL        M                    dRejN        ejO        ej#        gg dS4          ejL        M                    d5g dKg dMgdOdPg4          dT                         ZZ e,eU          dV             Z[ejL        M                    dWe0          dX             Z\dY Z]dZ Z^ejL        M                    d[e/          d\             Z_ejL        M                    d[e/          d]             Z`ejL        M                    d^d_d`g          ejL        M                    dadbdcg          ejL        M                    dddedfg          dg                                     Zadh Zbdi Zcdj Zddk Zedl Zfej!        fdmZgdn Zhdo Zidp Zjdq Zkdr Zlds Zmdt Zne,du             Zodv Zpdw Zqdx Zrdy Zsdz Ztd{ ZuejL        M                    d|ejN        ejO        g          d}             ZvejL        M                    d|ejN        ejO        g          d~             Zwd ZxejL        M                    de!dbd`dfdfe!dcd`dedfe!dcd`dfdfe!dcd_dedfe"ddedfe"ddedfe"ddedfg          d             ZyejL        M                    de$e e#f          d             ZzejL        M                    dRejN        ej         g          d             Z{d Z|ejL        M                    dejN        ej}        fejO        ej}        fej         e~fej#        e~fej$        e~fg          ejL        M                    d eddd           eddd           eddd          g          d                         ZejL        M                    d^d`dg          d             Zd ZejL        M                    dejN        efej         efg          ejL        M                    dej         ed          g          d                         ZdS )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UndefinedMetricWarning)f1_score)
rbf_kernel)train_test_split)OneVsRestClassifier)SVR	LinearSVC	LinearSVRNuSVROneClassSVM_libsvm)_validate_dual_parameter)check_random_stateshuffle)ignore_warnings)	_IS_32BITCSR_CONTAINERSLIL_CONTAINERS)_num_samples      )r&   r&   r&   r'   r'   r'      )r&   r'   r'   *   c                     t          j        d                              t          t                    } t          | j        ddgg           t          | j        ddg           t          | j        t          d         t          d         f           t          | j	        dg           t          | 
                    t                    t                     d S )Nlinearkernel      п      ?r&   r(           )r   SVCfitXYr   
dual_coef_support_support_vectors_
intercept_predictclfs    Y/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/svm/tests/test_svm.pytest_libsvm_parametersr=   9   s    
'
"
"
"
&
&q!
,
,Cs~777s|aV,,,s+adAaD\:::s~u---s{{1~~q)))))    c            	         dD ]} t          j        |                               t          j        t          j                  }t          j        |                    t          j                  t          j        k              dk    sJ t          |d          | dk    k    sJ t          |j        t          j        |j                             t          j        t          j        t          j                            t          j                            \	  }}}}}}}}	}
|||||||d}t          j        t          j        fi |}t          j        |t          j        k              dk    sJ t          j        t          j        t          j                            t          j                  d          \	  }}}}}}}}	}
|||||||d}t          j        t          j        fi |ddi}t          j        |t          j        k              dk    sJ t          j        t          j        t          j                            t          j                  d	dd
          }t          j        |t          j        k              dk    sJ t          j        t          j        t          j                            t          j                  d	dd
          }t          ||           d S )N)r+   rbfr,   ?coef_r+   )supportSVnSVsv_coef	interceptprobAprobBgffffff?r-      r   r-   random_seed)r   r1   r2   irisdatatargetnpmeanr9   hasattrr   classes_sortr   astypefloat64cross_validation)kr;   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_irisre   C   s     8 8gQ##DIt{;;ws{{49--<==CCCCsG$$h77777s|RWS\%:%:;;;  	DIt{11"*==>> "$ !% L ?495555D744;&''$.... 	DIt{11"*==hOOO "$ !% L ?49FFFFXFFFD744;&''$....#	4;%%bj111XST  D 744;&''$....
 $	4;%%bj111XST  E tU#####r>   c                  t
   t          j        d          } t          j        t          t          j        t                    j                  }|                     |t                     t          j        t          t          j        t                    j                  }| 	                    |          }t          j        t                    5  | 	                    |j                   d d d            n# 1 swxY w Y   t          | j        ddgg           t          | j        ddg           t          | j        dg           t#          | j        ddg           t          |t$                     t          j        |          }t)          t+          t                              D ]<}| j        D ]2}t          j        t          |         t          |                   |||f<   3=| 	                    |          }t          |t$                     d }t          j        |          } |                     t          j        t                    t                     | 	                    t                    }t          | j        ddgg           t          | j        dg           t#          | j        ddg           t          |t$                     t          j        d          } t          j        d	          }t          j        t,          j        t,          j        j                  }|                     |t,          j                   |                    t,          j        t,          j                   | 	                    |          }t#          | j        |j                   t#          | j        |j                   t#          | j        |j                   t3          t          j        |t,          j        k              d
d           t          j        |          }t)          t+          t,          j                            D ]F}| j        D ]<}t          j        t,          j        |         t,          j        |                   |||f<   =G| 	                    |          }t3          t          j        |t,          j        k              d
d           t          j        |          } |                     t,          j        t,          j                   t3          t          j        |t,          j        k              d
d           d S )Nprecomputedr,   r.   r/   r&   r(   r   c                 6    t          j        | |j                  S NrP   dotTxys     r<   kfuncztest_precomputed.<locals>.kfunc   s    va~~r>   r+   gGz?r'   decimal)r   r1   rP   rk   r3   arrayrl   r2   r4   r9   pytestraises
ValueErrorr   r5   r6   r8   r   true_result
zeros_likerangelenrM   rN   rO   r   rQ   )r;   KKTrc   ijrp   clf2s           r<   test_precomputedr      sM    '
'
'
'C 	q"(1++-  AGGAqMMM	28A;;=	!	!B;;r??D	z	"	"  BD               s~777s|aV,,,s~s+++clQF333t[))) 
r		B3q66]] * * 	* 	*AvadAaD))Bq!tHH	* ;;r??Dt[)))
   '


CGGBHQKK;;q>>Ds~777s~s+++clQF333t[))) '
'
'
'C7(###D
ty$)+&&AGGAt{HHTY$$$;;q>>DclDM:::cndo>>>cndo>>> 344dAFFFF 	aA3ty>>"" 9 9 	9 	9AfTYq\49Q<88AadGG	9 ;;q>>D 344dAFFFF
'


CGGDIt{### 344dAFFFFFFs   C22C69C6c                     t          j                    } t          j        ddd          t          j        ddd          t          j        dd          t          j        d          t          j        d          fD ]H}|                    | j        | j                   |	                    | j        | j                  dk    sJ It          j                                        | j        t          j        t          | j                                       t          j                                        | j        t          j        t          | j                                       d S )	Nr+   皙?      ?)r-   nuC      $@r-   r   r   g{Gz?)r   load_diabetesr   r   r   r   r2   rN   rO   scorerP   onesrz   )diabetesr;   s     r<   test_svrr      s)    %''H	cS111	cT222x4((( @ @ 	x///yy884????? GIIMM(-X]););!<!<===MOOrws8=/A/A'B'BCCCCCr>   c                  H   t          j                    } t          j        d                              | j        | j                  }|                    | j        | j                  }t          j        dd                              | j        | j                  }|                    | j        | j                  }t          t          j                            |j                  t          j                            |j                  dd           t          ||d           d S )N     @@r   r+   r   r&   -C6?r'   )r   r   r   r   r2   rN   rO   r   r   r   rP   linalgnormrB   r   )r   lsvrscore1svrscore2s        r<   test_linearsvrr      s     %''H=3##HM8?CCDZZx77F
'S
)
)
)
-
-hmX_
M
MCYYx}ho66FBINN4:..	sy0I0I1fUUU*****r>   c                     t          j                    } t          | j                  }t	          j        |          }t          j        ddd                              | j	        | j        |          }|
                    | j	        | j                  }t          j        ddd                              | j	        | j                  }|
                    | j	        | j                  }t          t          j                            |j                  t          j                            |j                  dd           t          ||d           t!          d	          }|                    d	d
|          }t          j        ddd                              | j	        | j        |          }	|	
                    | j	        | j        |          }
t	          j        | j	        |d	          }t	          j        | j        |d	          }t          j        ddd                              ||          }|
                    ||          }t          |
|d           d S )Nr   -q=i'  )r   tolmax_itersample_weightr&   r   r'   r   
   axis)r   r   rz   rO   rP   r   r   r   r2   rN   r   r   r   r   rB   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HO$$I')$$K=3EE:::>>xk ?  D ZZx77F]SeeDDDHHx N !!(-AAF
	tz""BINN>3G$H$H!V   *** &a((L ((B	::M-#55AAAEExm F  K xm   F Yx}m!<<<FYxA>>>F???CCFFSSI__VV,,F*****r>   c                      dgdgg} ddg}t          j        d           }|                    | |           t          j        t
                    5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr0   r   g      ?c                 .    t          j        dgg          S )Nr   )rP   rs   rm   s     r<   <lambda>z!test_svr_errors.<locals>.<lambda>,  s    bhw&7&7 r>   r,   )r   r   r2   rt   ru   rv   r9   r3   ro   r;   s      r<   test_svr_errorsr   '  s    
A	c
A '77
8
8
8CGGAqMMM	z	"	"  A                 s   A33A7:A7c                     t          j                                        t                                         t
                    } t          | g d           | j        t          j        d          k    sJ t          j
        dgd           t          j        g dgd           t          j        t                    5   fd             d d d            d S # 1 swxY w Y   d S )N)r&   r%   r%   intpgrh|r(   rq   )      ?r   r   r   c                       j         S ri   )rB   r:   s   r<   r   ztest_oneclass.<locals>.<lambda>=  s	     r>   )r   r   r2   r3   r9   rl   r   dtyperP   r   r8   r5   rt   ru   AttributeError)rc   r;   s    @r<   test_oneclassr   2  s&   
/

CGGAJJJ;;q>>Dt[[[))):&))))))cnvhBBBBcn/K/K/K.LVWXXXX	~	&	&  					                 s   C  C$'C$c                  f   t          j                    } t          d          }d|                    dd          z  }t          j        |dz   |dz
  f         }d|                    dd          z  }t          j        |dz   |dz
  f         }|                    ddd          }t          j        d	d
d	          } |                     |           |                     |          }t	          j	        |dk              dk    sJ |                     |          }t	          j	        |dk              dk    sJ | 
                    |          }t          |dk                                    |dk               | 
                    |          }	t          |	dk                                    |dk               d S )Nr'   333333?d         )r   r'   )lowhighsize皙?r@   )r   r-   gammar&   rA   r%   r   )r   r   r   randnrP   r_uniformr2   r9   rQ   decision_functionr   ravel)
r;   rndr3   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eAE1q5L!G 	ciiAAU1q5!a%< F!'::J /Sc
:
:
:CGGG ++f%%K7;!#$$s****kk*--O7?b())C////))&11M)0022K14DEEE--j99)A-446618LMMMMMr>   c                      ddgddgddgg} t          j        d                              |           }t          |                    ddgg          |                    ddgg          |j        z              d S )Nr&   r'   r   g       @)r   r   r2   r   score_samplesr   offset_)r   r;   s     r<   test_oneclass_score_samplesr   ^  s    1v1v1v&G
/
"
"
"
&
&w
/
/CC:,''Szl++ck9    r>   c                  v   t          j        dd          } |                     t          t                     t          | j        ddgg           t          |                     ddgg          dg           t          j	        ddgg          | _
        t          |                     ddgg          d	g           d S )
Nr+   r   r   r.   r/   皙r&   r0   r'   )r   r1   r2   r3   r4   r   r5   r9   rP   rs   _dual_coef_r:   s    r<   test_tweak_paramsr   g  s     'S
)
)
)CGGAqMMMs~777s{{T4L>22QC888hc
|,,COs{{T4L>22QC88888r>   c            	         t          j        ddd          t          j        dd          fD ]A} |                     t          j        t          j                   |                     t          j                  }t          t          j
        |d          t          j        t          j        j        d                              t          j        t          j        |d          |                     t          j                  k              dk    sJ t!          |                     t          j                  t          j        |                     t          j                            d           Cd S )	NTr   r   )probabilityr   r   )r   r   r&   rA      )r   r1   NuSVCr2   rM   rN   rO   predict_probar   rP   sumr   shaperQ   argmaxr9   r   exppredict_log_proba)r;   prob_predicts     r<   test_probabilityr   v  s'   
 	DqC888	d333 
 
 		4;'''((33!"&q"9"92749?STCU;V;VWWWwryq11S[[5K5KKLLsRRRRdi(("&1F1Fty1Q1Q*R*RTU	
 	
 	
 	

 
r>   c                     t          j        ddd                              t          j        t          j                  } t          j        t          j        | j        j	                  | j
        z   }t          ||                     t          j                             |                     t          t                     t          j        t          | j        j	                  | j
        z   }|                     t                    }t          |                                |                     t                               t          || j        |                     t                    dk                        t&                                        t          j        g d          }t          |                     t                    |d           t          j        dd	d
          } |                     t          t                     t+          t          | j        | j                  }t          j        || j        j	                  | j
        z   }t          |                                |                     t                               d S )Nr+   r   ovo)r-   r   decision_function_shaper   )      gQr   gQ?r   r   r'   r@   r&   )r-   r   r   r   )r   r1   r2   rM   rN   rO   rP   rk   rB   rl   r8   r   r   r3   r4   r9   r   rS   rU   intrs   r   r7   r   r5   )r;   dec
predictionexpectedrbfss        r<   test_decision_functionr     s   
 'S%
H
H
H
L
L	4; C &CIK
(
(3>
9Cc3#8#8#C#CDDD GGAqMMM
&CIK
 
 3>
1CQJciikk3+@+@+C+CDDDCL#"7"7":":Q">!F!Fs!K!KL   x;;;<<Hc33A66!DDD 'a
G
G
GCGGAqMMMa-SY???D
&s~'
(
(3>
9Cciikk3+@+@+C+CDDDDDr>   SVMc                     | dd                               t          j        t          j                  }|                    t          j                  }|j        t          t          j                  dfk    sJ t          |                    t          j                  t          j
        |d                     t          ddd	
          \  }}t          ||d	          \  }}}} | dd                               ||          }|                    |          }|j        t          |          dfk    sJ t          |                    |          t          j
        |d                      | dd                               ||          }|                    |          }|j        t          |          dfk    sJ d S )Nr+   ovrr-   r   r(   r&   r   P   rJ   r   )r   centersr   r   r   r   )r2   rM   rN   rO   r   r   rz   r   r9   rP   r   r   r   )	r   r;   r   r3   ro   r   r   y_trainy_tests	            r<   test_decision_function_shaper     s   
 #Xu
=
=
=
A
A	4; C 

	
*
*C9TY+++++s{{49--ry1/E/E/EFFF AA>>>DAq'711'M'M'M$GVWf
#Xu
=
=
=
A
A'7
S
SC



'
'C9Va(((((s{{6**BIc,B,B,BCCC #Xu
=
=
=
A
A'7
S
SC



(
(C9Wr*******r>   c                     t           j        } t           j        }t          j        dd                              | |          }t          j        | |j        j	                  |j
        z   }t          |                                |                    |                                                      t          j        dd                              | |          }t          | |j        |j                  }t          j        ||j        j	                  |j
        z   }t          |                                |                    |                                                      d S )Nr+   r   r   r@   r&   )r-   r   r   )rM   rN   rO   r   r   r2   rP   rk   rB   rl   r8   r   r   r9   r   r7   r   r5   )r3   ro   regr   r   s        r<   test_svr_predictr     s   
 		AA 'S
)
)
)
-
-a
3
3C
&CIK
 
 3>
1Cciikk3;;q>>+?+?+A+ABBB 'a
(
(
(
,
,Q
2
2Ca-SY???D
&s~'
(
(3>
9Cciikk3;;q>>+?+?+A+ABBBBBr>   c                  j   t          j        ddi          } |                     t          t                     t          |                     t                    dgdz             t          dddd	gd
          \  }}t          j	                    t          j
        d          t          j                    fD ]|} |                     ddd           |                     |d d         |d d                    |                     |dd                    }t          |dd          |          dk    sJ }d S )Nr&   r   class_weightr'         r   g-?gK7A`?)r   
n_featuresweightsr   r   r   )r   r&   r   r   )r   r1   r2   r3   r4   r   r9   r   r	   LogisticRegressionr   
set_paramsr   )r;   X_y_y_preds       r<   test_weightr    s/   
'3x
(
(
(CGGAqMMMckk!nnqcAg666 "uen1  FB
 	'))1%%%		 0 0
 	OO4444C4"TcT(###RX&&344&))C/////0 0r>   	estimator{Gz?r   c                    ddgddgddgddgddgddgg}|                      d           dgdz  }|                     |t          |	           |                     d
dgg          }|t	          j        d          k    sJ g d}|                     |t          |	           |                     d
dgg          }|dk     sJ g d}|                     |t          |	           |                     d
dgg          }|dk    sJ d S )Nr$   r   r%   r'   r&   r+   r,   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r  r2   r4   r   rt   approxr  r3   r   r  s       r<   'test_svm_classifier_sided_sample_weightr    s6    a2r(QGaVaVaV<A))) C!GMMM!QmM444((4+77FV]1%%%%%% 322MMM!QmM444((4+77FA::::444MMM!QmM444((4+77FA::::::r>   c                    ddgddgddgddgddgddgg}|                      d           dgdz  }|                     |t          |	           |                     d
dgg          }|t	          j        d          k    sJ g d}|                     |t          |	           |                     d
dgg          }|dk     sJ g d}|                     |t          |	           |                     d
dgg          }|dk    sJ d S )Nr$   r   r%   r'   r&   r+   r,   r  r   r   r   g      ?r  r  )r  r2   r4   r9   rt   r  r  s       r<   &test_svm_regressor_sided_sample_weightr    s6    a2r(QGaVaVaV<A))) C!GMMM!QmM444s}--FV]3'''''' 322MMM!QmM444s}--FC<<<<444MMM!QmM444s}--FC<<<<<<r>   c            
      ^   t          j                    } |                     t          t                     | j        }|                     d           |                     t          t          t          j        dt          t                                         t          || j                   d S )Nr   r   r  r   )r   r1   r2   r3   r4   r5   r  rP   r   rz   r   )r;   dual_coef_no_weights     r<   $test_svm_equivalence_sample_weight_Cr  &  s}    
'))CGGAqMMM.NNSNGGAq	$A 7 7G888'88888r>   zEstimator, err_msgz:Invalid input - all samples have zero or negative weights.z6(negative dimensions are not allowed|nu is infeasible))r1   r   r   r   r   )idsr   333333ӿzweights-are-zerozweights-are-negativec                      | d          }t          j        t          |          5  |                    t          t
          |           d d d            d S # 1 swxY w Y   d S Nr+   r,   matchr   rt   ru   rv   r2   r3   r4   )	Estimatorerr_msgr   ests       r<   -test_negative_sample_weights_mask_all_samplesr$  0  s    " )8
$
$
$C	z	1	1	1 3 31M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3   #AAAzClassifier, err_msgzJInvalid input - all samples with positive weights belong to the same classzspecified nu is infeasibler1   r   )r         r   r&   r&   r&   )r&   r&   r&   r   r   r  zmask-label-1zmask-label-2c                      | d          }t          j        t          |          5  |                    t          t
          |           d d d            d S # 1 swxY w Y   d S r  r   )
Classifierr"  r   r;   s       r<   .test_negative_weights_svc_leave_just_one_labelr)  F  s    ( *H
%
%
%C	z	1	1	1 3 31M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3r%  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                      | d          }|                     t          t          |           t          |j        ||         gd           d S )Nr+   r,   r   MbP?)rtol)r2   r3   r4   r   rB   )r(  modelr   	mask_sider;   s        r<   *test_negative_weights_svc_leave_two_labelsr1  _  sS      *H
%
%
%CGGAqG...CIi 01======r>   r!  )r1   r   r   c                     | d          }|                     t          t          |           t          j        |j                                                  }|d         t          j        |d         d          k    sJ d S )Nr+   r,   r   r   r&   r-  )rel)	r2   r3   r4   rP   absrB   r   rt   r  )r!  r   r#  coefs       r<   !test_negative_weight_equal_coeffsr6  t  sy     )8
$
$
$CGGAqG...6#)""$$D7fmDG666666666r>   )categoryc                  n   ddl m}  ddlm} t          j        d d d df         t          j        dz   }}t          j        t          j	        |j
                  t          j        |dk              d         d d d                   }t          j        ||                   } |d|||                   }t          j        |          dk    sJ t          j        d	          t          j        d
           |             fD ]}|                    ||         ||                                       |          }|                    d           |                    ||         ||                                       |          }	t)          j        ||d          t)          j        ||	d          k    sJ d S )Nr   )r  )compute_class_weightr'   r&   balanced)classesro   r+   r,   r   r  macro)average)sklearn.linear_modelr  sklearn.utilsr9  rM   rN   rO   rP   deletearanger   whereuniquer   r   r1   r   r2   r9   r  r
   r   )
r  r9  r3   ro   
unbalancedr;  class_weightsr;   r  y_pred_balanceds
             r<   test_auto_weightrG    s    877777 3222229QQQUT[1_qA29QV,,bhq1uooa.@1.EFFJi*&&G((W*VVVM9]##q(((( 	x   1%%% 
 
 :*66>>qAAJ///''jMjM
 
 '!** 	 67;;;w?O@
 @
 @
 
 
 
 
 

 
r>   lil_containerc                    t           d d         }t          j        t                    5  t	          j                                        t          |           d d d            n# 1 swxY w Y   t	          j                    t	          j        d          fD ]}t          j
        t                    }|j        d         rJ t          j        t          j        t           d          j                  }|d d df         }|j        d         rJ |j        d         rJ |                    ||           t          |                    t                    t"                     t	          j        d          }t          j        t                    5  |                    t          t                      d d d            n# 1 swxY w Y   t	          j                                        t          t                     }t          j        t                    5  |                     | t                               d d d            n# 1 swxY w Y   t          j        t                    j        }|                    t          j        t          |          t                      t          j        t                    5  |                    t                     d d d            n# 1 swxY w Y   t	          j                    }|                    t          t                      t          j        t                    5  |                    |           d d d            d S # 1 swxY w Y   d S )	Nr%   r   r   C_CONTIGUOUS)r'   r&   F_CONTIGUOUSrg   r,   )r4   rt   ru   rv   r   r1   r2   r3   r   rP   asfortranarrayflagsascontiguousarraytilerl   r   r9   rw   rs   rk   )rH  Y2r;   XfyfXts         r<   test_bad_inputrT    s    
3B3B	z	"	"  		a               		3=a8889 8 8q!!8N++++!"'!V"4"4"6772Y8N++++8N++++B3;;q>>;7777 '
'
'
'C	z	"	"  1               '))--1

C	z	"	" & &MM!$$%%%& & & & & & & & & & & & & & & 
!BGGBF1bMM1	z	"	"  A               '))CGGAqMMM	z	"	"  B                 sY   -A""A&)A&!F99F= F=$H>>II3KK!K1MMMc                     t           j                            d          } d}t          j        t           j                  j        }||                     |df          z  }|                     dd|          }t          j	                    }d}t          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nr   r   r'   )r   z2The dual coefficients or intercepts are not finiter  )rP   randomRandomStatefinforV   maxr   r   r   r1   rt   ru   rv   r2   )rngr   fmaxr3   ro   r;   msgs          r<   test_svc_nonfinite_paramsr]    s    
)


"
"CI8BJ#Ds{{A{///AAqy))A
'))C
>C	z	-	-	-  1                 s   (CCCc                  :   t          j        dd          } |                     t          t                     |                     t                     t          j        t          j
        t          j                            t          j                  ddd           d S )Nr+   T)r-   r   rJ   r   rK   )r   r1   r2   r3   r4   r   rl   r   rW   rM   rN   rO   rU   rP   rV   r:   s    r<   test_unicode_kernelr_    s    
't
4
4
4CGGAqMMMa	4;%%bj111XST     r>   csr_containerc                     t          j        d          } | ddgddgg          }t          j        t          d          5  |                    |ddg           d d d            d S # 1 swxY w Y   d S )Nrg   r,   r&   r   zSparse precomputedr  )r   r1   rt   ru   	TypeErrorr2   )r`  r;   sparse_grams      r<   test_sparse_precomputedrd    s    
'
'
'
'C-!Q!Q 011K	y(<	=	=	= % %aV$$$% % % % % % % % % % % % % % % % % %s   A((A,/A,c                     | g dg dg dg dg          }t          j        g d          }t          j        d          }|                    ||           |j        j        j        rJ |j        j        j        rJ d S )N)r   r&   r   r   )r   r   r   r&   )r   r   r&   r   ){Gz?rf  r   g{Gz?r+   r,   )	rP   rs   r   r   r2   r7   rN   r   r5   )r`  r   r   r/  s       r<   %test_sparse_fit_support_vectors_emptyrg    s     m\\\<<<|||TUUGh///00GG8$$$E	IIgw%*////$))))))r>   losshingesquared_hingepenaltyl1l2dualTFc           	      h   t          ddd          \  }}t          j        || |d          }| |fdk    s| ||fdk    s||fdk    rUt          j        t
          d|d	| d
|          5  |                    ||           d d d            d S # 1 swxY w Y   d S |                    ||           d S )NrJ   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   rt   ru   rv   r2   )rh  rk  rn  r3   ro   r;   s         r<   test_linearsvc_parametersrq    s%    qqIIIDAq
-dA
N
N
NC	w?**'4 $:::T?l**]Jwwdd$
 
 
 	 	
 GGAqMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1s   +BBBc                     t          j        d                              t          t                    } | j        sJ t          |                     t                    t                     t          | j        dgd           t          j        dddd                              t          t                    } t          |                     t                    t                     t          j        d	d
d                              t          t                    } t          |                     t                    t                     t          j        d	dd
d          } |                     t          t                     t          |                     t                    t                     |                     t                    }|dk                        t                    dz   }t          |t                     d S )Nr   r   r(   rq   rl  rj  Frp  rm  T)rk  rn  r   ri  r&   )r   r   r2   r3   r4   fit_interceptr   r9   rl   rw   r   r8   r   rU   r   )r;   r   ress      r<   test_linearsvcru    s   
-Q
'
'
'
+
+Aq
1
1C s{{1~~{333cnqc1==== -?Q  	c!Qii  s{{1~~{333 -4a
@
@
@
D
DQ
J
JCs{{1~~{333 -7A
N
N
NCGGAqMMMs{{1~~{333 


"
"C7

3

!
#CsK(((((r>   c                  p   t          j        d                              t          j        t          j                  } t          j        dd          }|                    t          j        t          j                   |                     t          j                  |                    t          j                  k                                    dk    sJ | j        |j        k    	                                sJ t          |                    t          j                  t          j        |                    t          j                  d                     t          j        t          j        |j        j                  |j        z   }t#          ||                    t          j                             d S )Nr   r   crammer_singer)multi_classr   rA   r&   r   )r   r   r2   rM   rN   rO   r9   rQ   rB   allr   rP   r   r   rk   rl   r8   r   )ovr_clfcs_clfdec_funcs      r<   test_linearsvc_crammer_singerr}  2  sF   m+++//	4;GGG]'7aHHHF
JJty$+&&& OODI&&&..*C*CCIIKKcQQQQ MV\)..00000 ty!!
	&**4955A>>>   vdi0063DDHh(@(@(K(KLLLLLr>   c                  "   t          t                    } t          j        |           }t	          j        d                              t          t                    }t	          j        ddd                              t          t          |          }t          |	                    t                    |	                    t                               t          |j        |j        dd           t          d          }|                    dd	|           }t	          j        ddd                              t          t          |          }|	                    t                    }t          j        t          |d
          }t          j        t          |d
          }	t	          j        ddd                              ||	          }
|
	                    t                    }t          ||           t          |j        |
j        dd           d S )Nr   r   r     )r   r   r   r   r&   r   r   r   )rz   r3   rP   r   r   r   r2   r4   r   r9   rl   r   rB   r   r   r   )r   r   r;   clf_unitweightr   r   lsvc_unflatpred1r   r   	lsvc_flatrd   s               r<   test_linearsvc_fit_sampleweightr  G  s   AI')$$K
-Q
'
'
'
+
+Aq
1
1C]utLLLPP	1K Q  N
 ~--a00#++a..AAACI~3Q???
 &a((L ((B	::M-QEDIIIMM	1M N  K ""EYq-a000FYq-a000F1%$GGGKK I a  Eue$$$K%y6BBBBBr>   c                      t          dd          \  } }dD ]I}t          j        |dd                              | |                              | |          }|dk    sJ Jd S )Nr'   r   )	n_classesr   )TFrw  )rs  rx  r   rA   )r   r   r   r2   r   )r3   ro   rs  accs       r<   test_crammer_singer_binaryr  j  s    ;;;DAq& 
 
M+,  
 SAYYU1a[[ 	 Syyyyy
 
r>   c                  ^   t           j        t           j                 } t          j        d                              t           j        |           }t          |j                  t          t           j                  k    sJ t          j
        |                    t           j                  | k              dk    sJ |                    t           j                  }t           j        t          j        |d                   }t          ||                    t           j                             d S )Nr   r   g?r&   )rM   target_namesrO   r   r   r2   rN   setrS   rP   rQ   r9   r   r   r   )rO   r;   r   rc   s       r<   test_linearsvc_irisr  {  s     t{+F
-Q
'
'
'
+
+DIv
>
>Cs|D$5 6 6666673;;ty))V344s::::


	
*
*CRYsA../DtS[[3344444r>   c           	         ddgddgddgddgg}g d} | ddddd	d
d          }|j         dk    sJ |j                     |j        sJ d|_         |                    ||           t          |j        dd           d|_         |                    ||           |j        }|dk     sJ d|_         |                    ||           |j        }t          ||d           d S )Nr'   r&   r(   r   r   r&   r&   Trl  rj  Fr   gHz>r   )rs  rk  rh  rn  r   r   r   rJ   rq   r   r%   r  )intercept_scalingrs  r2   r   r8   r   )
classifierr3   ro   r;   
intercept1
intercept2s         r<   'test_dense_liblinear_intercept_handlingr    s"   
Q!Q!Q!Q(AA
*
  C  A%%%s'<%%% CGGAqMMM15555  CGGAqMMMJ???? !CGGAqMMMJj*a@@@@@@r>   c                     t          j                                        t          j        t          j                  } |                     t          j                  }| j                                        | _        | j	                                        | _	        |                     t          j                  }t          ||           ddgddgddgddgg}g d}t          j                                        ||          } |                     |          }| j                                        | _        | j	                                        | _	        |                     |          }t          ||           d S )Nr'   r&   r(   r  )r   r   r2   rM   rN   rO   r   rB   copyr8   r   r   )r;   valuesvalues2r3   ro   s        r<   test_liblinear_set_coefr    s+   
-//

di
5
5C""49--F	  CI^((**CN##DI..Gfg... Q!Q!Q!Q(AA
-//

a
#
#C""1%%F	  CI^((**CN##A&&Gvw'''''r>   c                     t          j        d                              t          j        t          j                  t          j        d                              t          j        t          j                  t          j        d                              t          j        t          j                  t          j        d                              t          j        t          j                  t          j	        d                              t          j                  g} | D ]}t          j        t                    5  |                    dt          j        d                     d d d            n# 1 swxY w Y   t          j        t           t"          f          5  |j                            dd           d d d            n# 1 swxY w Y   d S )Nr+   r,   rB   r(   )r   r   r   )r   r1   r2   rM   rN   rO   r   r   r   r   rt   ru   r   __setattr__rP   rA  RuntimeErrorrv   rB   __setitem__)svmsr;   s     r<   test_immutable_coef_propertyr    s    	x   $$TY<<	"""&&ty$+>>x   $$TY<<	"""&&ty$+>>x(((,,TY77D  - -]>** 	3 	3OOGRYq\\222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3]L*566 	- 	-I!!&!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-- -s$   )E66E:	=E:	!G		G	G	c                  *   dd l } |                     d          }|                     |                                 d         d           t	          j        d          }|                    t          t                     |                     |d           d S )Nr   r&   )verbose)	osdupdup2piper   r   r2   r3   r4   )r  stdoutr;   s      r<   test_linearsvc_verboser    s{    IIIVVAYYFGGBGGIIaL! -
"
"
"CGGAqMMM GGFAr>   c                  `   t          j        d ddd          } t          j        |           }|                    t
          j        t
          j                   t          j        dddd          }|                    t
          j        t
          j                   t          |j	        |j	                   t          |j
        |j
                   t          |                    t
          j                  |                    t
          j                             t          |                    t
          j                  |                    t
          j                  d           t          |                    t
          j                  |                    t
          j                             d S )	Nc                 6    t          j        | |j                  S ri   rj   rm   s     r<   r   z5test_svc_clone_with_callable_kernel.<locals>.<lambda>      BF1acNN r>   Tr   r   )r-   r   r   r   r+   r   rq   )r   r1   r   cloner2   rM   rN   rO   r   r5   r8   r   r9   r   r   )svm_callable
svm_clonedsvm_builtins      r<   #test_svc_clone_with_callable_kernelr    sl    7** %	  L L))JNN49dk***'TSX  K OODIt{+++j3[5KLLLj3[5KLLLz))$)44k6I6I$)6T6TUUU  ++!!$),,   
 $$TY//%%di00    r>   c                      t          j        d           } t          j        t                    5  |                     t          t                     d d d            d S # 1 swxY w Y   d S )Nc                     | S ri    rm   s     r<   r   z%test_svc_bad_kernel.<locals>.<lambda>  s    a r>   r,   )r   r1   rt   ru   rv   r2   r3   r4   )svcs    r<   test_svc_bad_kernelr    s    
'
(
(
(C	z	"	"  1                 s   !AA"%A"c                  D   t          j        d ddd          } d}t          j        t          |          5  |                     t          j        t                    t                     d d d            n# 1 swxY w Y   t          j
        | j        dk              sJ d S )Nc                 6    t          j        | |j                  S ri   rj   rm   s     r<   r   z2test_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   r1   rt   warnsr   r2   rP   rs   r3   r4   ry  n_iter_)awarning_msgs     r<    test_libsvm_convergence_warningsr    s    **1WX	 	 	A	:  
(	<	<	<  	bhqkk1              6!)q.!!!!!!!s   3A66A:=A:c                  x   d} t          j                    }t          j        t          d          5  |                    |            d d d            n# 1 swxY w Y   t          j                    }t          j        t          d          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nzfoo!z.*\bSVC\b.*\bnot\b.*\bfitted\br  z .*\bNuSVR\b.*\bnot\b.*\bfitted\b)r   r1   rt   ru   	Exceptionr9   r   )r3   r;   s     r<   test_unfittedr    s"   A
'))C	y(I	J	J	J  A               )++C	y(K	L	L	L  A                 s#   AAAB//B36B3c                  b   t          j        ddd          } |                     t          t                                        t                    }t          j        ddd          } |                     t          t                                        t                    }t          ||           d S )NTr&   r   )r   r   r   )r   r1   r2   r3   r4   r   r   )r  proba_1proba_2s      r<   test_consistent_probar  "  s    D11===AeeAqkk''**GD11===AeeAqkk''**Ggw/////r>   c                  f   t          j        dd          } d}t          j        t          |          5  |                     t          t                     d d d            n# 1 swxY w Y   t          | j	        t                    sJ | j	        dk    sJ t          j        dd          }t          j        t          |          5  |                    t          j        t          j                   d d d            n# 1 swxY w Y   t          |j	        t                    sJ |j	        dk    sJ d S )Nr   r'   )r   r   z@Liblinear failed to converge, increase the number of iterations.r  )r   r   rt   r  r   r2   r3   r4   
isinstancer  r   r   rM   rN   rO   )lsvcr  r   s      r<   $test_linear_svm_convergence_warningsr  +  s    =a!444DTK	(	<	<	<  A               dlC(((((<1=a!444D	(	<	<	< ) )DK((() ) ) ) ) ) ) ) ) ) ) ) ) ) )dlC(((((<1s#   !A!!A%(A%+C==DDc            	      $   t           j                            d                              dd          } t           j                            d                              d          }t	          j        d          t	          j        d          t	          j                    fD ]m}|                    | |           t          |
                    |           t          j        | |j                                                  |j        z              nd S )N   r   r(      r+   r,   )rP   rV  rW  r   r   r   r   r   r2   r   r9   rk   rB   r   r8   )r3   ro   r   s      r<   test_svr_coef_signr  >  s     		b!!''A..A
	b!!''++A 	x   	""" 
 

 	1!KKNNBF1cioo&7&7883>I	
 	
 	
 	

 
r>   c                      t          j        d          } |                     t          t                     | j        dk    sJ d S )NF)rs  r0   )r   r   r2   r3   r4   r8   )r  s    r<    test_lsvc_intercept_scaling_zeror  O  s@     =u---DHHQNNN?c!!!!!!r>   c                  n   t          j        d          } t          | d          sJ |                     t          j        t          j                   t          | d          sJ t          j        d          } t          | d          rJ |                     t          j        t          j                   t          | d          rJ d| _        t          | d          sJ d}t          j	        t          |          5  |                     t          j                   d d d            d S # 1 swxY w Y   d S )NT)r   r   FzApredict_proba is not available when fitted with probability=Falser  )r   r1   rR   r2   rM   rN   rO   r   rt   ru   r   r   )Gr\  s     r<   test_hasattr_predict_probar  W  sa    	D!!!A1o&&&&&EE$)T[!!!1o&&&&&E"""Aq/*****EE$)T[!!!q/***** AM1o&&&&&
MC	~S	1	1	1 # #		"""# # # # # # # # # # # # # # # # # #s   = D**D.1D.c                  2   dD ]} t          | d          \  }}t          j        t          j        fD ]d}t	           |d                                        ||          }t          |                    |                    t          |          k    sJ ed S )N)r'   r(   r   )r   r   r   )r   )r   r   r1   r   r   r2   rz   r9   )r  r3   ro   r  r;   s        r<   &test_decision_function_shape_two_classr  o  s     1 1	)!<<<1'39- 	1 	1I%ii&N&N&NOOSS1 C s{{1~~&&#a&&00000		11 1r>   c                     t          j        ddgddgddgddgg          } g d}t          j        ddgddgg          }t          j        |ddgz  |ddgz  |ddgz  |ddgz  f          }dgdz  dgdz  z   dgdz  z   dgdz  z   }t          j        d	d
          }|                    | |           |                    |          }t          ||           |                    |          }t          t          j	        |d          |           |t          d          |f                             d          }t          j        |          dk    sJ t          j        |d d df         |d d df         k               sJ d S )Nr&   r%   )r   r&   r'   r(   rJ   r   r   r'   r(   r+   r   r   r   r   )r   r'   r0   )rP   rs   vstackr   r1   r2   r9   r   r   r   ry   reshapeminry  )	r   r   base_pointsr   r   r;   r  deci_valpred_class_deci_vals	            r<   test_ovr_decision_functionr  y  s   hAQ"bAr7;<<GllG (QFRH-..K Y1a& 2q'!2r("1b'!		
 F S1WsQw!q(A372F
'5
A
A
ACGGGW[[  F vv&&&$$V,,H ry222F;;; #588V#34<<VDD 6%&&,,,, 6%aaad+.A!!!Q$.GGHHHHHHHr>   SVCClassc                     t          d          \  }} | dddd                              ||          }t          j        t          d          5   |j        |           d d d            d S # 1 swxY w Y   d S )	Nr)   r   r+   r   T)r-   r   
break_tiesr   zbreak_ties must be Falser  )r   r2   rt   ru   rv   r9   )r  r3   ro   r   s       r<   !test_svc_invalid_break_ties_paramr    s    2&&&DAq
(4VX  	c!Qii  
z)C	D	D	D  A                 s   A00A47A4c                 j   | j         dk    rt          rt          j        d           t	          ddd          \  }}t          j        |dddf                                         |dddf                                         d          }t          j        |ddd	f                                         |ddd	f                                         d          }t          j	        ||          \  }}t          d
ddd          } | dddi|                    ||          } |j        t
          j        |                                |                                f                   }	 |j        t
          j        |                                |                                f                   }
t          j        |	t          j        |
d	          k              rJ  | dddi|                    ||          } |j        t
          j        |                                |                                f                   }	 |j        t
          j        |                                |                                f                   }
t          j        |	t          j        |
d	          k              sJ dS )zyTest 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    rt   xfailr   rP   linspacer  rY  meshgriddictr2   r9   c_r   r   ry  r   )r  r3   ro   xsysxxyycommon_paramsr   rc   dvs              r<   test_svc_ovr_tie_breakingr    sp   
 G##	#
 	/0001qAAADAq	Qqqq!tW[[]]AaaadGKKMM3	7	7B	Qqqq!tW[[]]AaaadGKKMM3	7	7B[R  FBCb%  M (  
  
c!Qii  3;ruRXXZZ3455D		ruRXXZZ%;<	=	=Bvdbi333344444
(  
  
c!Qii  3;ruRXXZZ3455D		ruRXXZZ%;<	=	=B6$")BQ////0000000r>   c                      dgdggddg}} t          j                    }|                    | |           t          |j        d           d S )Nr0   r   r   r&   r   )r   r1   r2   r   _gammar   s      r<   test_gamma_scaler    sK    EC5>Aq6qA
'))CGGAqMMM
A&&&&&r>   zSVM, params)rk  rh  rn  epsilon_insensitiverh  rn  squared_epsilon_insensitivec                    t          j        ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddggt          j        d                    }t          j        g dt          j        d                    }t          j        ||g          }t          j        |d|z
  g          }t          j        t          |          dz  	          }d
|t          |          d <   t          |||d
          \  }}} | d          } |j        di | |                    dd           t          j
        |                              ||          }t          j
        |                              |||          }	dD ]T}
t          ||
          rB t          ||
          |          } t          |	|
          |          }t          ||           Ud S )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   )r9   r   r  )rP   rs   r   r  hstackr   rz   r   r  r   r  r2   rR   getattrr   )r   paramsr3   ro   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    sG    	FFFFFFFFFFFFFFFF!	
$ hw'	 	 	A* 	888	 	 	A 
Aq6		B	Aq1u:		BG#a&&1*---MM#a&&((#BMJJJBMSb)))NN'''''%$777J~..221a88Mj0044
Bm 5  O 3 @ @>6** 	@<gmV<<Q??O @ @ @ C CO->???	@ @r>   Klassc                 N   t          j        dgdgdgdgdgg          }t          j        |j        d                   } |             }t	          |d          rJ |                    ||           |j        d         |j        j        d         k    sJ |j        j        dk    sJ d S )Nr   g)\(?g?gq=
ףp?r&   
n_support_)	rP   rs   rA  r   rR   r2   r  r7   r   )r  r3   ro   r#  s       r<   test_n_supportr    s    
 	1#vvvs344A
	!'!*A
%''CsL)))))GGAqMMM>! 4 :1 =====>!######r>   c                    g d}t          j        ddgddgddgddgddgg          }t          j        g d          }d } |||          }t          t          j        ||j                  |            | |                              ||          } | d                              ||          } | d	                              ||          }|                    ||          |                    ||          k    sJ |                    ||          |                    ||          k    sJ t          |d
          rt          |	                    |          |	                    |                     t          |	                    |          |	                    |                     t          |
                    |          |
                    |                     t          |
                    |          |
                    |                     dS t          |
                    |          |
                    |                     t          |
                    |          |
                    |                     dS )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           	         t          | d         t                    sJ t          |           }t          |          }t          j        ||f          }t          |          D ]}t          ||          D ]}| |                             d          ||                             d          z  |||f<   |||fxx         | |                             d          ||                             d          z  z  cc<   |||f         |||f<   |S )Nr   r  r  )r  strr#   rP   zerosry   count)X1r  
n_samples1
n_samples2r{   iijjs          r<   string_kernelz9test_custom_kernel_not_array_input.<locals>.string_kernel/  s   "Q%%%%%%!"%%
!"%%
Hj*-..
## 	& 	&BB
++ & &rFLL--2S0A0AA"b&	"b&			RV\\#..Bc1B1BBB			b"fI"b&		& r>   r,   r+   rg   r   N)rP   rs   r   rk   rl   r2   r   rR   r   r   r9   )	r!  rN   r3   ro   r  r{   svc1svc2svc3s	            r<   "test_custom_kernel_not_array_inputr  (  s]    +**D
1a&1a&1a&1a&1a&9::A
!!A
 
 
 	dD!!Arva~~q)))9M***..tQ77D9H%%%))!Q//D9M***..q!44D::dA$**Q"2"22222::dA$**Q"2"22222t()) =..t44d6L6LQ6O6OPPP..t44d6L6LQ6O6OPPP4<<--t||A???4<<--t||A?????T**DLLOO<<<T**DLLOO<<<<<r>   c                      t          j        d                              t          t                    } d| j        d<   d}t          j        t          |          5  | 	                    t                     ddd           dS # 1 swxY w Y   dS )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   r1   r2   r3   r4   
_n_supportrt   ru   rv   r9   )r;   r\  s     r<   -test_svc_raises_error_internal_representationr  N  s    
 '
"
"
"
&
&q!
,
,CCN1
:C	z	-	-	-  A                 s   BB
Bzestimator, expected_n_iter_typedataset)r  n_informativer   r   c                 ,   |\  }} | d                               ||          j        }t          |          |k    sJ | t          j        t          j        fv r8t          t          j        |                    }|j	        ||dz
  z  dz  fk    sJ d S d S )Nr+   r,   r&   r'   )
r2   r  typer   r1   r   rz   rP   rC  r   )r  expected_n_iter_typer  r3   ro   n_iterr  s          r<   test_n_iter_libsvmr  [  s    0 DAqYh'''++Aq119F<</////SWci(((	!%%	|	Y] ;q @BBBBB )(BBr>   c           	          t          d| ddt          j        t                              }|du sJ t          d| ddt          j        t                    j                  }|du sJ d S )Nautorm  r   FTr   rP   asarrayr3   rl   r  s     r<   test_dual_autor"  {  s^     $FD$rz!}}MMD5====#FD$rz!}}OOD4<<<<<<r>   c            	      0   t          ddddt          j        t                              } | du sJ t          ddddt          j        t                              } | du sJ t          ddddt          j        t                    j                  } | d	u sJ d S )
Nr  ri  rm  r   Tr  rj  rl  Fr   )rn  s    r<   test_dual_auto_edge_casesr$    s    #FGT5"*Q--PPD4<<<<#%tUBJqMM D 4<<<<#ubjmmo D 5======r>   zEstimator, make_datasetC_infinfc                     ||          \  }} | |                               ||          } | d                               ||          }t          |                    |          |                    |                     dS )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)r2   r   r9   )r!  make_datasetr%  global_random_seedr3   ro   estimator_C_infestimator_C_larges           r<   test_svm_with_infinite_Cr,    s     <%7888DAqi%(((,,Q22O!	D)))--a33%--a00/2I2I!2L2LMMMMMr>   )__doc__numpyrP   rt   numpy.testingr   r   r   r   sklearnr   r   r	   r
   r   sklearn.datasetsr   r   r   sklearn.exceptionsr   r   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._testingr   sklearn.utils.fixesr    r!   r"   sklearn.utils.validationr#   r3   r4   rl   rw   	load_irisrM   rZ  permutationrO   r   permrN   r=   re   r   r   r   r   r   r   r   r   r   r   r   markparametrizer1   r   r   r   r  r  r  r  rz   r$  r)  r1  r6  rG  rT  r]  r_  rd  rg  rq  ru  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$  r&  r  r,  r  r>   r<   <module>rB     s?                    ? > > > > > > > > > > > > > M M M M M M M M M M         
 % $ $ $ $ $ / / / / / / 4 4 4 4 4 4 2 2 2 2 2 2                : 9 9 9 9 9 5 5 5 5 5 5 5 5 2 2 2 2 2 2 I I I I I I I I I I 1 1 1 1 1 1 	"XBx"bAq6Aq6Aq6:"X1v1vii x
t{'((IdO	k$* * *M$ M$ M$`FG FG FGRD D D(+ + +&+ &+ &+R    N N N<  9 9 9
 
 
&E E EB #) 455+ + 65+4C C C,0 0 0. wsw		&DEE  FE2 wsw		D8I8I8I&JKK  LK29 9 9 	NO	LM	NO	PQ	VW 	877  
 
 S33q66\D6CCFF?#	34   
3 3 
 
 3  G	
 
01	 
    4445	(   
3 3  &3 	c6]KKL	66"266BRSST 
    [),>,>,>+MN	!78   
> >  > #'39ci06O6O6O    .../	!78   
7 7  7 0111!
 !
 21!
H .99# # :9#L     .99% % :9% .99* * :9* '?!;<<T4L11$//  0/ 21 =<*) ) )>M M M* C  C  CF  "
5 
5 
5 8;} "A "A "A "AJ( ( (*- - -     B  
" 
" 
"	 	 	 0 0 0  &
 
 
"" " "# # #01 1 1)I )I )IX cgsy%9::  ;: cgsy%9::"1 "1 ;:"1J' ' ' 	ouMMN	otLLM	ouMMN	gtDDE	2DAAB	:DIIJ	:DIIJ ,@ ,@ ,@^ ;U";<<
$ 
$ =<
$ sw&899"= "= :9"=J
 
 
 %	"*	BJ	#	C	#	 	 aqqIIIaqqIIIaqqIII C C 	 	$C /3P!QRR  SR   	g"#cg%?@  2655<<"899
N 
N :9	 

N 
N 
Nr>   