
     hҹ                        d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ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 dd
lmZmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl"m(Z( ddl)m*Z* ddl)m+Z+m,Z, ddl-m.Z. ddlm/Z/ ddgddgddgddgddgddggZ0g dZ1ddgddgddggZ2g dZ3 ej4                    Z5 e#d          Z6e67                    e5j8        j9                  Z:e5j;        e:         e5_;        e5j8        e:         e5_8        d Z<d Z=d Z>d  Z?d! Z@d" ZAd# ZBd$ ZCd% ZDd& ZEd' ZFd( ZGd) ZHejI        J                    d*ejK        ejL        f          d+             ZMd, ZNd- ZOejI        J                    d. ejK        d/0           ejL                    g          d1             ZPejI        J                    d. ej        d/0           ej        d/0          g          d2             ZQd3 ZRejI        J                    d4ejK        d5fejL        d6fej        d5fej        d5fej        d5fgg d78          ejI        J                    d9dg eSe1          z  d:g eSe1          z  gd;d<g8          d=                         ZTejI        J                    d>ejK        d?fejL        d@fgdAdBg8          ejI        J                    d9g dCg dDgdEdFg8          dG                         ZUejI        J                    dHejK        dIdJgdJdKgdLfejL        dMdMgdMdMgdLfgdAdBg8          ejI        J                    dNg dOdPfg dQdRfgdSdTg8          dU                         ZVejI        J                    dVejK        ejL        ej        gg dW8          ejI        J                    d9g dOg dQgdSdTg8          dX                         ZW e%e,Y          dZ             ZXd[ ZYd\ ZZd] Z[d^ Z\d_ Z]ejI        J                    d`dadbg          ejI        J                    dcdddeg          ejI        J                    dfdgdhg          di                                     Z^dj Z_dk Z`dl Zadm Zbdn Zcej        fdoZddp Zedq Zfdr Zgds Zhdt Zidu Zjdv Zke%dw             Zldx Zmdy Zndz Zod{ Zpd| Zqd} ZrejI        J                    d~ejK        ejL        g          d             ZsejI        J                    d~ejK        ejL        g          d             Ztd ZuejI        J                    dedddbdhdfededbdgdfededbdhdfededadgdfeddgdfeddgdfeddgdfg          d             ZvejI        J                    deeef          d             ZwejI        J                    dVejK        ej        g          d             Zxd ZyejI        J                    dejK        ejz        fejL        ejz        fej        e{fej        e{fej        e{fg          ejI        J                    d eddd           eddd           eddd          g          d                         Z|ejI        J                    deeeg          d             Z}dS )zr
Testing for Support Vector Machine module (sklearn.svm)

TODO: remove hard coded numerical results when possible
    N)assert_array_equalassert_array_almost_equal)assert_almost_equal)assert_allclose)sparse)svmlinear_modeldatasetsmetricsbase)	LinearSVCOneClassSVMSVRNuSVR	LinearSVR)train_test_split)make_classification
make_blobs)f1_score)
rbf_kernel)check_random_state)ignore_warnings)_num_samples)shuffle)ConvergenceWarning)NotFittedErrorUndefinedMetricWarning)OneVsRestClassifier)_libsvm      )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    V/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/svm/tests/test_svm.pytest_libsvm_parametersr9   /   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   r-   r.   irisdatatargetnpmeanr5   hasattrr   classes_sortr   astypefloat64cross_validation)kr7   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                 r8   test_libsvm_irisra   9   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rL   dotTxys     r8   kfuncztest_precomputed.<locals>.kfunc   s    va~~r:   r'   gGz?r#   decimal)r   r-   rL   rg   r/   arrayrh   r.   r0   r5   pytestraises
ValueErrorr   r1   r2   r4   r   true_result
zeros_likerangelenrI   rJ   rK   r   rM   )r7   KKTr_   ijrl   clf2s           r8   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   r.   rJ   rK   scorerL   onesrv   )diabetesr7   s     r8   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   r.   rJ   rK   r   r   r   rL   linalgnormr>   r   )r   lsvrscore1svrscore2s        r8   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   rv   rK   rL   r   r   r   r.   rJ   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                  r8   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 )Nr,   r   g      ?c                 .    t          j        dgg          S )Nr   )rL   ro   ri   s     r8   <lambda>z!test_svr_errors.<locals>.<lambda>"  s    bhw&7&7 r:   r(   )r   r   r.   rp   rq   rr   r5   r/   rk   r7   s      r8   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$   rm   )      ?r   r   r   c                       j         S re   )r>   r6   s   r8   r   ztest_oneclass.<locals>.<lambda>3  s	     r:   )r   r   r.   r/   r5   rh   r   dtyperL   r   r4   r1   rp   rq   AttributeError)r_   r7   s    @r8   test_oneclassr   (  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"   r=   r!   r   )r   r   r   randnrL   r_uniformr.   r5   rM   decision_functionr   ravel)
r7   rndr/   X_trainX_test
X_outliersy_pred_testy_pred_outliersdec_func_testdec_func_outlierss
             r8   test_oneclass_decision_functionr   6  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   r.   r   score_samplesr   offset_)r   r7   s     r8   test_oneclass_score_samplesr   T  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"   r,   r#   )r   r-   r.   r/   r0   r   r1   r5   rL   ro   _dual_coef_r6   s    r8   test_tweak_paramsr   ]  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"   r=      )r   r-   NuSVCr.   rI   rJ   rK   predict_probar   rL   sumr   shaperM   argmaxr5   r   exppredict_log_proba)r7   prob_predicts     r8   test_probabilityr   l  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   r-   r.   rI   rJ   rK   rL   rg   r>   rh   r4   r   r   r/   r0   r5   r   rO   rQ   intro   r   r3   r   r1   )r7   dec
predictionexpectedrbfss        r8   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   rF   r   )r   centersr   r   r   r   )r.   rI   rJ   rK   r   r   rv   r   r5   rL   r   r   r   )	r   r7   r   r/   rk   r   r   y_trainy_tests	            r8   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   )rI   rJ   rK   r   r   r.   rL   rg   r>   rh   r4   r   r   r5   r   r3   r   r1   )r/   rk   regr   r   s        r8   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   r-   r.   r/   r0   r   r5   r   r	   LogisticRegressionr   
set_paramsr   )r7   X_y_y_preds       r8   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  r.   r0   r   rp   approxr	  r/   r   r  s       r8   '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  r.   r0   r5   rp   r  r  s       r8   &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   r-   r.   r/   r0   r1   r  rL   r   rv   r   )r7   dual_coef_no_weights     r8   $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))r-   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   rp   rq   rr   r.   r/   r0   )	Estimatorerr_msgr   ests       r8   -test_negative_sample_weights_mask_all_samplesr   &  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 infeasibler-   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   r7   s       r8   .test_negative_weights_svc_leave_just_one_labelr%  <  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)r.   r/   r0   r   r>   )r$  modelr   	mask_sider7   s        r8   *test_negative_weights_svc_leave_two_labelsr-  S  sS      *H
%
%
%CGGAqG...CIi 01======r:   r  )r-   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)	r.   r/   r0   rL   absr>   r   rp   r  )r  r   r  coefs       r8   !test_negative_weight_equal_coeffsr2  h  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)classesrk   r'   r(   r   r   macro)average)sklearn.linear_modelr  sklearn.utilsr5  rI   rJ   rK   rL   deletearanger   whereuniquer   r   r-   r   r.   r5   r  r   r   )
r  r5  r/   rk   
unbalancedr7  class_weightsr7   r  y_pred_balanceds
             r8   test_auto_weightrC  x  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:   c                     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%          j        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_CONTIGUOUSrc   r(   )r0   rp   rq   rr   r   r-   r.   r/   r   rL   asfortranarrayflagsascontiguousarraytilerh   r   r5   rs   r   
lil_matrixro   rg   )Y2r7   XfyfXts        r8   test_bad_inputrP    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	"	" * *F%a(()))* * * * * * * * * * * * * * * 
!BGGBF1bMM1	z	"	"  A               '))CGGAqMMM	z	"	"  B                 sY   -A""A&)A&!F99F= F=-III<K##K'*K':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  )rL   randomRandomStatefinforR   maxr   r   r   r-   rp   rq   rr   r.   )rngr   fmaxr/   rk   r7   msgs          r8   test_svc_nonfinite_paramsrY    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   rF   r   rG   )r   r-   r.   r/   r0   r   rh   r   rS   rI   rJ   rK   rQ   rL   rR   r6   s    r8   test_unicode_kernelr[    s    
't
4
4
4CGGAqMMMa	4;%%bj111XST     r:   c                      t          j        d          } t          j        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 )Nrc   r(   r"   r   zSparse precomputedr  )r   r-   r   
csr_matrixrp   rq   	TypeErrorr.   )r7   sparse_grams     r8   test_sparse_precomputedr`    s    
'
'
'
'C#aVaV$455K	y(<	=	=	= % %aV$$$% % % % % % % % % % % % % % % % % %s   A11A58A5c                     t          j        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?rb  r   g{Gz?r'   r(   )r   r]  rL   ro   r   r   r.   r3   rJ   r   r1   )r   r   r+  s      r8   %test_sparse_fit_support_vectors_emptyrc    s    	|||\\\<<<@ G 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 )NrF   r   )r   r  r   rg  rd  rj  r   )re  rh  )re  ri  F)rh  Tz'Unsupported set of arguments.*penalty='z.*loss='z.*dual=r  )r   r   r   rp   rq   rr   r.   )rd  rg  rj  r/   rk   r7   s         r8   test_linearsvc_parametersrm    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$   rm   rh  rf  Frl  ri  T)rg  rj  r   re  r"   )r   r   r.   r/   r0   fit_interceptr   r5   rh   rs   r   r4   r   rQ   r   )r7   r   ress      r8   test_linearsvcrq    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   r=   r"   r   )r   r   r.   rI   rJ   rK   r5   rM   r>   allr   rL   r   r   rg   rh   r4   r   )ovr_clfcs_clfdec_funcs      r8   test_linearsvc_crammer_singerry  &  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   )rv   r/   rL   r   r   r   r.   r0   r   r5   rh   r   r>   r   r   r   )r   r   r7   clf_unitweightr   r   lsvc_unflatpred1r   r   	lsvc_flatr`   s               r8   test_linearsvc_fit_sampleweightr  ;  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   )TFrs  )ro  rt  r   r=   )r   r   r   r.   r   )r/   rk   ro  accs       r8   test_crammer_singer_binaryr  ]  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"   )rI   target_namesrK   r   r   r.   rJ   setrO   rL   rM   r5   r   r   r   )rK   r7   r   r_   s       r8   test_linearsvc_irisr  n  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"   Trh  rf  Fr   gHz>r   )ro  rg  rd  rj  r   r   r   rF   rm   r   r!   r{  )intercept_scalingro  r.   r   r4   r   )
classifierr/   rk   r7   
intercept1
intercept2s         r8   '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   r.   rI   rJ   rK   r   r>   copyr4   r   r   )r7   valuesvalues2r/   rk   s        r8   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(   r>   r$   )r   r   r   )r   r-   r.   rI   rJ   rK   r   r   r   r   rp   rq   r   __setattr__rL   r=  RuntimeErrorrr   r>   __setitem__)svmsr7   s     r8   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   r.   r/   r0   )r  stdoutr7   s      r8   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 re   rf   ri   s     r8   r   z5test_svc_clone_with_callable_kernel.<locals>.<lambda>      BF1acNN r:   Tr   r   )r)   r   r   r   r'   r   rm   )r   r-   r   cloner.   rI   rJ   rK   r   r1   r4   r   r5   r   r   )svm_callable
svm_clonedsvm_builtins      r8   #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 re    ri   s     r8   r   z%test_svc_bad_kernel.<locals>.<lambda>  s    a r:   r(   )r   r-   rp   rq   rr   r.   r/   r0   )svcs    r8   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 re   rf   ri   s     r8   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   r-   rp   warnsr   r.   rL   ro   r/   r0   ru  n_iter_)awarning_msgs     r8    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   r-   rp   rq   	Exceptionr5   r   )r/   r7   s     r8   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   r-   r.   r/   r0   r   r   )r  proba_1proba_2s      r8   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   rp   r  r   r.   r/   r0   
isinstancer  r   r   rI   rJ   rK   )lsvcr  r   s      r8   $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(   )rL   rR  rS  r   r   r   r   r   r.   r   r5   rg   r>   r   r4   )r/   rk   r   s      r8   test_svr_coef_signr  1  s     		b!!''A..A
	b!!''++Ax(((#)8*D*D*DcmooV 
 
1!KKNNBF1cioo&7&7883>I	
 	
 	
 	

 
r:   c                      t          j        d          } |                     t          t                     | j        dk    sJ d S )NF)ro  r,   )r   r   r.   r/   r0   r4   )r  s    r8    test_lsvc_intercept_scaling_zeror  >  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   r-   rN   r.   rI   rJ   rK   r   rp   rq   r   r   )GrX  s     r8   test_hasattr_predict_probar  F  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   r-   r   r   r.   rv   r5   )r  r/   rk   r	  r7   s        r8   &test_decision_function_shape_two_classr  ^  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$   rF   r   r   r#   r$   r'   r   r   r   r   )r   r#   r,   )rL   ro   vstackr   r-   r.   r5   r   r   r   ru   reshapeminru  )	r   r   base_pointsr   r   r7   r  deci_valpred_class_deci_vals	            r8   test_ovr_decision_functionr  h  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   r.   rp   rq   rr   r5   )r  r/   rk   r   s       r8   !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                    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   r   r#   )r   r   r  Nr   r"   r<   g    .Ar%   r   )r)   r   r   r   r  Fr   Tr  )r   rL   linspacer  rU  meshgriddictr.   r5   c_r   r   ru  r   )r  r/   rk   xsysxxyycommon_paramsr   r_   dvs              r8   test_svc_ovr_tie_breakingr    sJ   
 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 )Nr,   r   r   r"   r   )r   r-   r.   r   _gammar   s      r8   test_gamma_scaler    sK    EC5>Aq6qA
'))CGGAqMMM
A&&&&&r:   zSVM, params)rg  rd  rj  epsilon_insensitive)rd  rj  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   )r5   r   r  )rL   ro   r   r  hstackr   rv   r   r  r   r  r.   rN   getattrr   )r   paramsr/   rk   X2y2r   base_estimatorest_no_weightest_with_weightmethodX_est_no_weightX_est_with_weights                r8   &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_)	rL   ro   r=  r   rN   r.   r  r3   r   )r  r/   rk   r  s       r8   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   rL   zerosru   count)X1r  
n_samples1
n_samples2rw   iijjs          r8   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'   rc   r   N)rL   ro   r   rg   rh   r.   r   rN   r   r   r5   )	r  rJ   r/   rk   r  rw   svc1svc2svc3s	            r8   "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   r-   r.   r/   r0   
_n_supportrp   rq   rr   r5   )r7   rX  s     r8   -test_svc_raises_error_internal_representationr  6  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#   )
r.   r  typer   r-   r   rv   rL   r?  r   )r	  expected_n_iter_typer  r/   rk   n_iterr  s          r8   test_n_iter_libsvmr  C  s    0 DAqYh'''++Aq119F<</////SWci(((	!%%	|	Y] ;q @BBBBB )(BBr:   c                     |             }t          j                    5  t          j        dt                     |                    t
          t                     d d d            n# 1 swxY w Y   d}t          j        t          t          j
        |                    5  t          |d           d d d            d S # 1 swxY w Y   d S )NerrorzRAttribute `class_weight_` was deprecated in version 1.2 and will be removed in 1.4r  class_weight_)warningscatch_warningssimplefilterFutureWarningr.   r/   r0   rp   r  reescaper  )r  r7   rX  s      r8   "test_svm_class_weights_deprecationr   d  s2   
%''C		 	"	"  g}5551              	  
m29S>>	:	:	: & &_%%%& & & & & & & & & & & & & & & & & &s#   ;A%%A),A)B==CC)~__doc__r  r  numpyrL   rp   numpy.testingr   r   r   r   scipyr   sklearnr   r	   r
   r   r   sklearn.svmr   r   r   r   r   sklearn.model_selectionr   sklearn.datasetsr   r   sklearn.metricsr   sklearn.metrics.pairwiser   r;  r   sklearn.utils._testingr   sklearn.utils.validationr   r   sklearn.exceptionsr   r   r   sklearn.multiclassr   r   r/   r0   rh   rs   	load_irisrI   rV  permutationrK   r   permrJ   r9   ra   r|   r   r   r   r   r   r   r   r   r   r   markparametrizer-   r   r   r   r  r  r  r  rv   r   r%  r-  r2  rC  rP  rY  r[  r`  rc  rm  rq  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ndarrayr   r  r   r  r:   r8   <module>r5     s/   
  				      G G G G G G G G - - - - - - ) ) ) ) ) )       > > > > > > > > > > > > > > E E E E E E E E E E E E E E 4 4 4 4 4 4 < < < < < < < < $ $ $ $ $ $ / / / / / / , , , , , , 2 2 2 2 2 2 1 1 1 1 1 1 ! ! ! ! ! ! 1 1 1 1 1 1 E E E E E E E E 2 2 2 2 2 2        	"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# # #L    % % %	* 	* 	* '?!;<<T4L11$//  0/ 21 =<,) ) )>M M M*C C CD  "
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 ;:1<' ' ' 	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 3{";<<
& 
& =<
& 
& 
&r:   