
    0Ph                     l   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 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+m,Z,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*+           ejL                    g          d,             ZPejI        J                    d) ej        d*+           ej"        d*+          g          d-             ZQd. ZRejI        J                    d/ejK        d0fejL        d1fej        d0fej"        d0fej#        d0fgg d23          ejI        J                    d4dg eSe1          z  d5g eSe1          z  gd6d7g3          d8                         ZTejI        J                    d9ejK        d:fejL        d;fgd<d=g3          ejI        J                    d4g d>g d?gd@dAg3          dB                         ZUejI        J                    dCejK        dDdEgdEdFgdGfejL        dHdHgdHdHgdGfgd<d=g3          ejI        J                    dIg dJdKfg dLdMfgdNdOg3          dP                         ZVejI        J                    dQejK        ejL        ej"        gg dR3          ejI        J                    d4g dJg dLgdNdOg3          dS                         ZWdT ZXejI        J                    dUe-          dV             ZYdW ZZdX Z[ejI        J                    dYe,          dZ             Z\ejI        J                    dYe,          d[             Z]ejI        J                    d\d]d^g          ejI        J                    d_d`dag          ejI        J                    dbdcddg          de                                     Z^df Z_dg Z`dh Zadi Zbdj Zcej         fdkZddl Zedm Zfdn Zgdo Zhdp Zidq Zjdr ZkejI        l                    ds          dt             Zmdu Zndv Zodw Zpdx Zqdy Zrdz ZsejI        J                    d{ejK        ejL        g          d|             ZtejI        J                    d{ejK        ejL        g          d}             Zud~ ZvejI        J                    de d`d^dddfe dad^dcdfe dad^dddfe dad]dcdfe!ddcdfe!ddcdfe!ddcdfg          d             ZwejI        J                    de#ee"f          d             ZxejI        J                    dQejK        ej        g          d             Zyd ZzejI        J                    dejK        ej{        fejL        ej{        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                    d\d^dg          d             Z~d ZejI        J                    dejK        efej        efg          ejI        J                    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)f1_score)
rbf_kernel)train_test_split)OneVsRestClassifier)SVR	LinearSVC	LinearSVRNuSVROneClassSVM_libsvm)_validate_dual_parameter)check_random_stateshuffle)	_IS_32BITCSR_CONTAINERSLIL_CONTAINERS)_num_samples      )r$   r$   r$   r%   r%   r%      )r$   r%   r%   *   c                     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    Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/svm/tests/test_svm.pytest_libsvm_parametersr;   7   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/   r0   irisdatatargetnpmeanr7   hasattrr   classes_sortr   astypefloat64cross_validation)kr9   libsvm_supportlibsvm_support_vectorslibsvm_n_class_SVlibsvm_sv_coeflibsvm_interceptlibsvm_probAlibsvm_probBlibsvm_fit_statuslibsvm_n_itermodel_paramspredpred2s                 r:   test_libsvm_irisrc   A   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rN   dotTxys     r:   kfuncztest_precomputed.<locals>.kfunc   s    va~~r<   r)   gGz?r%   decimal)r   r/   rN   ri   r1   arrayrj   r0   r2   r7   pytestraises
ValueErrorr   r3   r4   r6   r   true_result
zeros_likerangelenrK   rL   rM   r   rO   )r9   KKTra   ijrn   clf2s           r:   test_precomputedr~      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   r0   rL   rM   scorerN   onesrx   )diabetesr9   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   r0   rL   rM   r   r   r   rN   linalgnormr@   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   rx   rM   rN   r   r   r   r0   rL   r   r   r   r   r@   r   r   randintrepeat)r   	n_samplesunit_weightr   r   lsvr_no_weightr   random_staterandom_weightlsvr_unflatscore3X_flaty_flat	lsvr_flatscore4s                  r:   test_linearsvr_fit_sampleweightr      s     %''H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   )rN   rq   rk   s     r:   <lambda>z!test_svr_errors.<locals>.<lambda>*  s    bhw&7&7 r<   r*   )r   r   r0   rr   rs   rt   r7   r1   rm   r9   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&   ro   )      ?r   r   r   c                       j         S rg   )r@   r8   s   r:   r   ztest_oneclass.<locals>.<lambda>;  s	     r<   )r   r   r0   r1   r7   rj   r   dtyperN   r   r6   r3   rr   rs   AttributeError)ra   r9   s    @r:   test_oneclassr   0  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   randnrN   r_uniformr0   r7   rO   decision_functionr   ravel)
r9   rndr1   X_trainX_test
X_outliersy_pred_testy_pred_outliersdec_func_testdec_func_outlierss
             r:   test_oneclass_decision_functionr   >  s   
/

C
Q

C 	ciiQA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   r0   r   score_samplesr   offset_)r   r9   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$   r.   r%   )r   r/   r0   r1   r2   r   r3   r7   rN   rq   _dual_coef_r8   s    r:   test_tweak_paramsr   e  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/   NuSVCr0   rK   rL   rM   predict_probar   rN   sumr   shaperO   argmaxr7   r   exppredict_log_proba)r9   prob_predicts     r:   test_probabilityr   t  s'   
 	DqC8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/   r0   rK   rL   rM   rN   ri   r@   rj   r6   r   r   r1   r2   r7   r   rQ   rS   intrq   r   r5   r   r3   )r9   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   rH   r   )r   centersr   r   r   r   )r0   rK   rL   rM   r   r   rx   r   r7   rN   r   r   r   )	r   r9   r   r1   rm   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   )rK   rL   rM   r   r   r0   rN   ri   r@   rj   r6   r   r   r7   r   r5   r   r3   )r1   rm   regr   r   s        r:   test_svr_predictr     s   
 		AA 'S
)
)
)
-
-a
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/   r0   r1   r2   r   r7   r   r	   LogisticRegressionr   
set_paramsr   )r9   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  r0   r2   r   rr   approxr  r1   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  r0   r2   r7   rr   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   r/   r0   r1   r2   r3   r  rN   r   rx   r   )r9   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))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   rr   rs   rt   r0   r1   r2   )	Estimatorerr_msgr   ests       r:   -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   r9   s       r:   .test_negative_weights_svc_leave_just_one_labelr'  D  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)r0   r1   r2   r   r@   )r&  modelr   	mask_sider9   s        r:   *test_negative_weights_svc_leave_two_labelsr/  ]  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)	r0   r1   r2   rN   absr@   r   rr   r  )r  r   r!  coefs       r:   !test_negative_weight_equal_coeffsr4  r  sy     )8
$
$
$CGGAqG...6#)""$$D7fmDG666666666r<   c                  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)classesrm   r)   r*   r   r   macro)average)sklearn.linear_modelr  sklearn.utilsr6  rK   rL   rM   rN   deletearanger   whereuniquer   r   r/   r   r0   r7   r  r
   r   )
r  r6  r1   rm   
unbalancedr8  class_weightsr9   r	  y_pred_balanceds
             r:   test_auto_weightrD    s   7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_CONTIGUOUSre   r*   )r2   rr   rs   rt   r   r/   r0   r1   r   rN   asfortranarrayflagsascontiguousarraytilerj   r   r7   ru   rq   ri   )rE  Y2r9   XfyfXts         r:   test_bad_inputrQ    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  )rN   randomRandomStatefinforT   maxr   r   r   r/   rr   rs   rt   r0   )rngr   fmaxr1   rm   r9   msgs          r:   test_svc_nonfinite_paramsrZ    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   rH   r   rI   )r   r/   r0   r1   r2   r   rj   r   rU   rK   rL   rM   rS   rN   rT   r8   s    r:   test_unicode_kernelr\    s    
't
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 )Nre   r*   r$   r   zSparse precomputedr  )r   r/   rr   rs   	TypeErrorr0   )r]  r9   sparse_grams      r:   test_sparse_precomputedra    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?rc  r   g{Gz?r)   r*   )	rN   rq   r   r   r0   r5   rL   r   r3   )r]  r   r   r-  s       r:   %test_sparse_fit_support_vectors_emptyrd    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 )NrH   r   )r   r  r   rh  re  rk  r   )rf  ri  )rf  rj  F)ri  Tz'Unsupported set of arguments.*penalty='z.*loss='z.*dual=r  )r   r   r   rr   rs   rt   r0   )re  rh  rk  r1   rm   r9   s         r:   test_linearsvc_parametersrn    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&   ro   ri  rg  Frm  rj  T)rh  rk  r   rf  r$   )r   r   r0   r1   r2   fit_interceptr   r7   rj   ru   r   r6   r   rS   r   )r9   r   ress      r:   test_linearsvcrr    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   r0   rK   rL   rM   r7   rO   r@   allr   rN   r   r   ri   rj   r6   r   )ovr_clfcs_clfdec_funcs      r:   test_linearsvc_crammer_singerrz  /  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   )rx   r1   rN   r   r   r   r0   r2   r   r7   rj   r   r@   r   r   r   )r   r   r9   clf_unitweightr   r   lsvc_unflatpred1r   r   	lsvc_flatrb   s               r:   test_linearsvc_fit_sampleweightr  D  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   )TFrt  )rp  ru  r   r?   )r   r   r   r0   r   )r1   rm   rp  accs       r:   test_crammer_singer_binaryr  g  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$   )rK   target_namesrM   r   r   r0   rL   setrQ   rN   rO   r7   r   r   r   )rM   r9   r   ra   s       r:   test_linearsvc_irisr  x  s     t{+F
-Q
'
'
'
+
+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$   Tri  rg  Fr   gHz>r   )rp  rh  re  rk  r   r   r   rH   ro   r   r#   r|  )intercept_scalingrp  r0   r   r6   r   )
classifierr1   rm   r9   
intercept1
intercept2s         r:   'test_dense_liblinear_intercept_handlingr    s"   
Q!Q!Q!Q(AA
*
  C  A%%%s'<%%% C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   r0   rK   rL   rM   r   r@   copyr6   r   r   )r9   valuesvalues2r1   rm   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*   r@   r&   )r   r   r   )r   r/   r0   rK   rL   rM   r   r   r   r   rr   rs   r   __setattr__rN   r>  RuntimeErrorrt   r@   __setitem__)svmsr9   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   r0   r1   r2   )r  stdoutr9   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 rg   rh   rk   s     r:   r   z5test_svc_clone_with_callable_kernel.<locals>.<lambda>      BF1acNN r<   Tr   r   )r+   r   r   r   r)   r   ro   )r   r/   r   cloner0   rK   rL   rM   r   r3   r6   r   r7   r   r   )svm_callable
svm_clonedsvm_builtins      r:   #test_svc_clone_with_callable_kernelr    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 rg    rk   s     r:   r   z%test_svc_bad_kernel.<locals>.<lambda>   s    a r<   r*   )r   r/   rr   rs   rt   r0   r1   r2   )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 rg   rh   rk   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   r/   rr   warnsr   r0   rN   rq   r1   r2   rv  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   r/   rr   rs   	Exceptionr7   r   )r1   r9   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z-ignore::sklearn.exceptions.ConvergenceWarningc                  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/   r0   r1   r2   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   rr   r  r   r0   r1   r2   
isinstancer  r   r   rK   rL   rM   )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*   )rN   rS  rT  r   r   r   r   r   r0   r   r7   ri   r@   r   r6   )r1   rm   r   s      r:   test_svr_coef_signr  ;  s     		b!!''A..A
	b!!''++A 	x   	""" 
 

 	1!KKNNBF1cioo&7&7883>I	
 	
 	
 	

 
r<   c                      t          j        d          } |                     t          t                     | j        dk    sJ d S )NF)rp  r.   )r   r   r0   r1   r2   r6   )r  s    r:    test_lsvc_intercept_scaling_zeror  L  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/   rP   r0   rK   rL   rM   r   rr   rs   r   r   )GrY  s     r:   test_hasattr_predict_probar  T  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   r0   rx   r7   )r  r1   rm   r  r9   s        r:   &test_decision_function_shape_two_classr  l  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&   rH   r   r   r%   r&   r)   r   r   r   r   )r   r%   r.   )rN   rq   vstackr   r/   r0   r7   r   r   r   rw   reshapeminrv  )	r   r   base_pointsr   r   r9   r	  deci_valpred_class_deci_vals	            r:   test_ovr_decision_functionr  v  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   r0   rr   rs   rt   r7   )r  r1   rm   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   rr   xfailr   rN   linspacer  rV  meshgriddictr0   r7   c_r   r   rv  r   )r  r1   rm   xsysxxyycommon_paramsr   ra   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 )Nr.   r   r   r$   r   )r   r/   r0   r   _gammar   s      r:   test_gamma_scaler    sK    EC5>Aq6qA
'))CGGAqMMM
A&&&&&r<   zSVM, params)rh  re  rk  epsilon_insensitivere  rk  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   )r7   r   r  )rN   rq   r   r  hstackr   rx   r   r  r   r  r0   rP   getattrr   )r   paramsr1   rm   X2y2r   base_estimatorest_no_weightest_with_weightmethodX_est_no_weightX_est_with_weights                r:   &test_linearsvm_liblinear_sample_weightr    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_)	rN   rq   r>  r   rP   r0   r  r5   r   )r  r1   rm   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!   rN   zerosrw   count)X1r  
n_samples1
n_samples2ry   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)   re   r   N)rN   rq   r   ri   rj   r0   r   rP   r   r   r7   )	r  rL   r1   rm   r  ry   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   r/   r0   r1   r2   
_n_supportrr   rs   rt   r7   )r9   rY  s     r:   -test_svc_raises_error_internal_representationr  K  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%   )
r0   r  typer   r/   r   rx   rN   r@  r   )r  expected_n_iter_typer  r1   rm   n_iterr  s          r:   test_n_iter_libsvmr  X  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autorj  r   FTr   rN   asarrayr1   rj   r  s     r:   test_dual_autor  x  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  rf  rj  r   Tr  rg  ri  Fr  )rk  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)r0   r   r7   )r  make_datasetr"  global_random_seedr1   rm   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__numpyrN   rr   numpy.testingr   r   r   r   sklearnr   r   r	   r
   r   sklearn.datasetsr   r   r   sklearn.exceptionsr   r   sklearn.metricsr   sklearn.metrics.pairwiser   sklearn.model_selectionr   sklearn.multiclassr   sklearn.svmr   r   r   r   r   r   sklearn.svm._classesr   r<  r   r   sklearn.utils.fixesr   r   r    sklearn.utils.validationr!   r1   r2   rj   ru   	load_irisrK   rW  permutationrM   r   permrL   r;   rc   r~   r   r   r   r   r   r   r   r   r   r   markparametrizer/   r   r   r   r
  r  r  r  rx   r"  r'  r/  r4  rD  rQ  rZ  r\  ra  rd  rn  rr  rz  r  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r  ndarrayr   r  r  r!  r#  r  r)  r  r<   r:   <module>r?     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 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!
 !
 !
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  
" 
" 
"	 	 	 KLL0 0 ML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<   