
    /ii(                     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Z3d Z4d Z5ej6        j7        d             Z8d Z9d Z:d Z;d Z<d Z=d Z>d  Z?d! Z@d" ZAej6        j7        d#             ZBd$ ZCej6        D                    d%ejE        ejF        f          d&             ZGd' ZHd( ZIej6        D                    d) ejE        d*+           ejF                    g          d,             ZJej6        D                    d) ej        d*+           ej"        d*+          g          d-             ZKd. ZLej6        D                    d/ejE        d0fejF        d1fej        d0fej"        d0fej#        d0fgg d23          ej6        D                    d4dg eMe1          z  d5g eMe1          z  gd6d7g3          d8                         ZNej6        D                    d9ejE        d:fejF        d;fgd<d=g3          ej6        D                    d4g d>g d?gd@dAg3          dB                         ZOej6        D                    dCejE        dDdEgdEdFgdGfejF        dHdHgdHdHgdGfgd<d=g3          ej6        D                    dIg dJdKfg dLdMfgdNdOg3          dP                         ZPej6        D                    dQejE        ejF        ej"        gg dR3          ej6        D                    d4g dJg dLgdNdOg3          dS                         ZQdT ZRej6        D                    dUe-          dV             ZSdW ZTdX ZUej6        D                    dYe,          dZ             ZVej6        D                    dYe,          d[             ZWej6        D                    d\d]d^g          ej6        D                    d_d`dag          ej6        D                    dbdcddg          de                                     ZXdf ZYdg ZZdh Z[di Z\dj Z]ej         dkfdlZ^dm Z_dn Z`ej6        j7        do             Zaej6        j7        dp             Zbdq Zcej6        j7        dr             Zdds Zeej6        j7        ej6        f                    dt          du                         Zgdv Zhdw Zidx Zjdy Zkdz Zld{ Zmej6        D                    d|ejE        ejF        g          d}             Znej6        D                    d|ejE        ejF        g          d~             Zod Zpej6        j7        ej6        D                    de 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                         Zqej6        D                    de#ee"f          d             Zrej6        D                    dQejE        ej        g          d             Zsd Ztej6        D                    dejE        eju        fejF        eju        fej        evfej"        evfej#        evfg          ej6        D                    dg d          d                         Zwej6        D                    d\d^dg          d             Zxd Zyej6        D                    dejE        efej        efg          ej6        D                    dejz         e{d          g          d                         Z|d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                    }t          |           }|                    |j        j                  }|j        |         |_        |j        |         |_        |S N)r   	load_irisr   permutationtargetsizedata)random_seedirisrngperms       `/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/svm/tests/test_svm.pyget_iris_datasetr3   0   sS    D
[
)
)C??4;+,,D	$DI+d#DKK    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    r2   test_libsvm_parametersrG   9   s    
'
"
"
"
&
&q!
,
,Cs~777s|aV,,,s+adAaD\:::s~u---s{{1~~q)))))r4   c           	      0   t          |           }dD ]}t          j        |                              |j        |j                  }t          j        |                    |j                  |j        k              dk    sJ t          |d          |dk    k    sJ t          |j        t          j        |j                             t          j        |j        |j                            t          j                            \	  }}}}}}	}
}}||||||	|
d}t          j        |j        fi |}t          j        ||j        k              dk    sJ t          j        |j        |j                            t          j                  d          \	  }}}}}}	}
}}||||||	|
d}t          j        |j        fi |ddi}t          j        ||j        k              dk    sJ t          j        |j        |j                            t          j                  d	dd
          }t          j        ||j        k              dk    sJ t          j        |j        |j                            t          j                  d	dd
          }t          ||           d S )N)r6   rbfr7   ?coef_r6   )supportSVnSVsv_coef	interceptprobAprobBgffffff?r8      r   r8   r.   )r3   r   r<   r=   r-   r+   npmeanrD   hasattrr   classes_sortr   astypefloat64cross_validation)global_random_seedr/   krF   libsvm_supportlibsvm_support_vectorslibsvm_n_class_SVlibsvm_sv_coeflibsvm_interceptlibsvm_probAlibsvm_probBlibsvm_fit_statuslibsvm_n_itermodel_paramspredpred2s                   r2   test_libsvm_irisrk   E   s    .//D 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#####r4   c                  
   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-          d
          }t          j        |j        |j        j                  }|                     ||j                   |                    |j        |j                   | 	                    |          }t#          | j        |j                   t#          | j        |j                   t#          | j        |j                   t3          t          j        ||j        k              dd           t          j        |          }t)          t+          |j                            D ]<}| j        D ]2}t          j        |j        |         |j        |                   |||f<   3=| 	                    |          }t3          t          j        ||j        k              dd           t          j        |          } |                     |j        |j                   t3          t          j        ||j        k              dd           d S )Nprecomputedr7   r9   r:   r$   r&   r   c                 6    t          j        | |j                  S r(   rU   dotTxys     r2   kfuncztest_precomputed.<locals>.kfunc   s    va~~r4   r6   *   gGz?r%   decimal)r   r<   rU   rp   r>   arrayrq   r=   r?   rD   pytestraises
ValueErrorr   r@   rA   rC   r   true_result
zeros_likerangelenr3   r-   r+   r   rV   )	rF   KKTri   ijru   clf2r/   s	            r2   test_precomputedr      sZ    '
'
'
'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B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 )	Nr6   皙?      ?)r8   nuC      $@r8   r   r   g{Gz?)r   load_diabetesr   r   r   r   r=   r-   r+   scorerU   onesr   )diabetesrF   s     r2   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Cr4   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   r6   r   r$   -C6?r%   )r   r   r   r   r=   r-   r+   r   r   r   rU   linalgnormrK   r   )r   lsvrscore1svrscore2s        r2   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*****r4   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          j                            |           }|                    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   r   r+   rU   r   r   r   r=   r-   r   r   r   r   rK   r   randomRandomStaterandintrepeat)r]   r   	n_samplesunit_weightr   r   lsvr_no_weightr   r0   random_weightlsvr_unflatscore3X_flaty_flat	lsvr_flatscore4s                   r2   test_linearsvr_fit_sampleweightr     s'    %''H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   *** )

 2
3
3CKK2y11M-#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*****r4   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   )rU   ry   rr   s     r2   <lambda>z!test_svr_errors.<locals>.<lambda>0  s    bhw&7&7 r4   r7   )r   r   r=   rz   r{   r|   rD   r>   rt   rF   s      r2   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&   rw   )      ?r   r   r   c                       j         S r(   )rK   rE   s   r2   r   ztest_oneclass.<locals>.<lambda>A  s	     r4   )r   r   r=   r>   rD   rq   r   dtyperU   r   rC   r@   rz   r{   AttributeError)ri   rF   s    @r2   test_oneclassr   6  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highr,   皙?rI   )r   r8   gammar$   rJ   r#   r   )r   r   r   randnrU   r_uniformr=   rD   rV   decision_functionr   ravel)
rF   rndr>   X_trainX_test
X_outliersy_pred_testy_pred_outliersdec_func_testdec_func_outlierss
             r2   test_oneclass_decision_functionr   E  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Mr4   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   rF   s     r2   test_oneclass_score_samplesr   c  s    1v1v1v&G
/
"
"
"
&
&w
/
/CC:,''Szl++ck9    r4   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 )
Nr6   r   r   r9   r:   皙r$   r;   r%   )r   r<   r=   r>   r?   r   r@   rD   rU   ry   _dual_coef_rE   s    r2   test_tweak_paramsr   l  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8r4   c           	         t          |           }t          j        d| d          t          j        d|           fD ]}|                    |j        |j                   |                    |j                  }t          t          j
        |d          t          j        |j        j        d                              t          j        t          j        |d          |                    |j                  k              dk    sJ t!          |                    |j                  t          j        |                    |j                            d            d S )	NTr   )probabilityrandom_stater   )r   r   r$   r   rJ      )r3   r   r<   NuSVCr=   r-   r+   predict_probar   rU   sumr   shaperV   argmaxrD   r   exppredict_log_proba)r]   r/   rF   prob_predicts       r2   test_probabilityr   }  s9    .//D 	D/ASIII	d1CDDD 
 
 		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	
 	
 	
 	

 
r4   c                    t          |           }t          j        ddd                              |j        |j                  }t          j        |j        |j        j	                  |j
        z   }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 )Nr6   r   ovo)r8   r   decision_function_shaper   )      gQr   gQ?r   r   r%   rI   r$   )r8   r   r   r   )r3   r   r<   r=   r-   r+   rU   rp   rK   rq   rC   r   r   r>   r?   rD   r   rX   rZ   intry   r   rB   r   r@   )r]   r/   rF   dec
predictionexpectedrbfss          r2   test_decision_functionr     s   .//D
 '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Dr4   SVMc                 p   t          |          } | dd|d          }|                    |j        |j                   |                    |j                  }|j        t          |j                  dfk    sJ t          |                    |j                  t          j
        |d                     t          dd	|
          \  }}t          |||          \  }}}	}
|                    ||	           |                    |          }|j        t          |          d	fk    sJ t          |                    |          t          j
        |d                      | dd|d          }|                    ||	           |                    |          }|j        t          |          dfk    sJ d S )Nr6   ovrT)r8   r   r   
break_tiesr&   r$   r   P   rS   )r   centersr   r   r   r   )r3   r=   r-   r+   r   r   r   r   rD   rU   r   r   r   )r   r]   r/   linear_ovr_svmr   r>   rt   r   r   y_trainy_testlinear_ovo_svms               r2   test_decision_function_shaper    s    .//DS %'	  N ty$+...

*
*49
5
5C9TY+++++~--di88")Ca:P:P:PQQQ A<NOOODAq'7	1-( ( ($GVWf w(((

*
*6
2
2C9Va(((((~--f55ry17M7M7MNNN S %'	  N w(((

*
*7
3
3C9Wr*******r4   c                    t          |           }|j        }|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 )Nr6   r   r   rI   r$   )r8   r   r   )r3   r-   r+   r   r   r=   rU   rp   rK   rq   rC   r   r   rD   r   rB   r   r@   )r]   r/   r>   rt   regr   r   s          r2   test_svr_predictr    s     .//D	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Br4   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>   r?   r   rD   r   r	   LogisticRegressionr   
set_paramsr   )rF   X_y_y_preds       r2   test_weightr    s2   
'3x
(
(
(CGGAqMMMckk!nnqcAg666 	  FB 	'))1%%%		 0 0
 	OO4444C4"TcT(###RX&&344&))C/////0 0r4   	estimator{Gz?r   c                 0   t          j        |           } 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$   r6   r7   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   cloner  r=   r?   r   rz   approxr  r>   r   r  s       r2   'test_svm_classifier_sided_sample_weightr    sE   
9%%I 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::::::r4   c                 0   t          j        |           } 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$   r6   r7   r  r   r   r         ?r  r  )r   r  r  r=   r?   rD   rz   r  r  s       r2   &test_svm_regressor_sided_sample_weightr!  +  sE   
9%%I 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<<<<<<r4   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>   r?   r@   r  rU   r   r   r   )rF   dual_coef_no_weights     r2   $test_svm_equivalence_sample_weight_Cr$  F  s}    
'))CGGAqMMM.NNSNGGAq	$A 7 7G888'88888r4   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 Nr6   r7   matchr   rz   r{   r|   r=   r>   r?   )	Estimatorerr_msgr   ests       r2   -test_negative_sample_weights_mask_all_samplesr/  P  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   rF   s       r2   .test_negative_weights_svc_leave_just_one_labelr4  f  s    ( *H
%
%
%C	z	1	1	1 3 31M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3r0  zClassifier, modelg6<R?r   gj+?)	when-left
when-rightgioT?zsample_weight, mask_side)r$   r1  r$   r$   r$   r$   r5  )r$   r$   r$   r   r$   r$   r6  zpartial-mask-label-1zpartial-mask-label-2c                      | d          }|                     t          t          |           t          |j        ||         gd           d S )Nr6   r7   r   MbP?rtol)r=   r>   r?   r   rK   )r3  modelr   	mask_siderF   s        r2   *test_negative_weights_svc_leave_two_labelsr=    sS      *H
%
%
%CGGAqG...CIi 01======r4   r,  )r<   r   r   c                     | d          }|                     t          t          |           t          j        |j                                                  }|d         t          j        |d         d          k    sJ d S )Nr6   r7   r   r   r$   r8  )rel)	r=   r>   r?   rU   absrK   r   rz   r  )r,  r   r.  coefs       r2   !test_negative_weight_equal_coeffsrB    sy     )8
$
$
$CGGAqG...6#)""$$D7fmDG666666666r4   c                  x   ddl m}  ddlm} t	          d          }|j        d d d df         |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_weightrv   r%   r$   balanced)classesrt   r6   r7   r   r
  macro)average)sklearn.linear_modelr  sklearn.utilsrD  r3   r-   r+   rU   deletearanger,   whereuniquer   r   r<   r   r=   rD   r  r
   r   )r  rD  r/   r>   rt   
unbalancedrF  class_weightsrF   r  y_pred_balanceds              r2   test_auto_weightrR    s   777777 322222BD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@
 @
 @
 
 
 
 
 

 
r4   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        |          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   C_CONTIGUOUS)r%   r$   F_CONTIGUOUSrm   r7   )r?   rz   r{   r|   r   r<   r=   r>   r   rU   asfortranarrayflagsascontiguousarraytilerq   r   rD   r}   ry   rp   )rS  r]   Y2rF   XfyfXts          r2   test_bad_inputr_    s    
3B3B	z	"	"  		a               		3=6HIIIJ 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}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)  )rU   r   r   finfor[   maxr   r   r   r<   rz   r{   r|   r=   )r]   r0   r   fmaxr>   rt   rF   msgs           r2   test_svc_nonfinite_paramsre    s    
)

 2
3
3CI8BJ#Ds{{A{///AAqy))A
'))C
>C	z	-	-	-  1                 s   (CCCc                 D   t          |           }t          j        dd          }|                    t          t
                     |                    t                     t          j	        |j
        |j                            t          j                  ddd           d S )Nr6   T)r8   r   rS   r   rT   )r3   r   r<   r=   r>   r?   r   rq   r   r\   r-   r+   rZ   rU   r[   )r]   r/   rF   s      r2   test_unicode_kernelrg    s    .//D
't
4
4
4CGGAqMMMa	4;%%bj111XST     r4   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 )Nrm   r7   r$   r   zSparse precomputedr)  )r   r<   rz   r{   	TypeErrorr=   )rh  rF   sparse_grams      r2   test_sparse_precomputedrl    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?rn  r   g{Gz?r6   r7   )	rU   ry   r   r   r=   rB   r-   r,   r@   )rh  r   r  r;  s       r2   %test_sparse_fit_support_vectors_emptyro    s     m\\\<<<|||TUUGh///00GG8$$$E	IIgw%*////$))))))r4   losshingesquared_hingepenaltyl1l2dualTFc           	      h   t          dd|          \  }}t          j        || ||          }| |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 )NrS   )r   r  r   rs  rp  rv  r   )rq  rt  )rq  ru  F)rt  Tz'Unsupported set of arguments.*penalty='z.*loss='z.*dual=r)  )r   r   r   rz   r{   r|   r=   )rp  rs  rv  r]   r>   rt   rF   s          r2   test_linearsvc_parametersry    s9    0B  DAq -d<N  C 
w?**'4 $:::T?l**]Jwwdd$
 
 
 	 	
 GGAqMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1s   +BBBc                    t          j        |                               t          t                    }|j        sJ t          |                    t                    t                     t          |j        dgd           t          j        ddd|                               t          t                    }t          |                    t                    t                     t          j        d	d
|                               t          t                    }t          |                    t                    t                     t          j        d	dd
|           }|                    t          t                     t          |                    t                    t                     |                    t                    }|dk                        t                    dz   }t          |t                     d S )Nr   r   r&   rw   rt  rr  Frx  ru  T)rs  rv  r   rq  r$   )r   r   r=   r>   r?   fit_interceptr   rD   rq   r}   r   rC   r   rZ   r   )r]   rF   r   ress       r2   test_linearsvcr}  :  s   
-%7
8
8
8
<
<Q
B
BC s{{1~~{333cnqc1==== -'	  
 
c!Qii  s{{1~~{333 -4>P
Q
Q
Q
U
U	1 C s{{1~~{333 -7<N  C GGAqMMMs{{1~~{333 


"
"C7

3

!
#CsK(((((r4   c                 *   t          |           }t          j        |                               |j        |j                  }t          j        d|           }|                    |j        |j                   |                    |j                  |                    |j                  k                                    dk    sJ |j        |j        k    	                                sJ t          |                    |j                  t          j        |                    |j                  d                     t          j        |j        |j        j                  |j        z   }t#          ||                    |j                             d S )Nr   crammer_singer)multi_classr   rJ   r$   r   )r3   r   r   r=   r-   r+   rD   rV   rK   allr   rU   r   r   rp   rq   rC   r   )r]   r/   ovr_clfcs_clfdec_funcs        r2   test_linearsvc_crammer_singerr  `  s^   .//Dm);<<<@@DKXXG]$3E  F 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Lr4   c                 B   t          t                    }t          j        |          }t	          j        | dd                              t          t                    }t	          j        | dd                              t          t          |          }t          |	                    t                    |	                    t                               t          |j        |j        dd           t          j                            |                               dd|          }t	          j        | dd                              t          t          |          }|	                    t                    }t          j        t          |d	          }t          j        t          |d	          }	t	          j        | dd                              ||	          }
|
	                    t                    }t          ||           t          |j        |
j        dd           d S )
Nr     )r   r   r   r   r$   r   r   r   r   )r   r>   rU   r   r   r   r=   r?   r   rD   rq   r   rK   r   r   r   r   )r]   r   r   rF   clf_unitweightr   lsvc_unflatpred1r   r   	lsvc_flatrj   s               r2   test_linearsvc_fit_sampleweightr  y  s   AI')$$K
-%7UT
R
R
R
V
V	1 C ]'UT  	c!Qkc** 
 ~--a00#++a..AAACI~3Q???
 I))*<==EEaYWWM-'UT  	c!Qmc,,  ""EYq-a000FYq-a000F'UT  	c&&  a  Eue$$$K%y6BBBBBr4   c                     t          dd|           \  }}dD ]I}t          j        |d|                               ||                              ||          }|dk    sJ Jd S )Nr%   r   )	n_classes	class_sepr   )TFr  )r{  r  r   rJ   )r   r   r   r=   r   )r]   r>   rt   r{  accs        r2   test_crammer_singer_binaryr    s    s1C  DAq ' 
 
M+,/  
 SAYYU1a[[ 	 Syyyyy
 
r4   c                 ,   t          |           }|j        |j                 }t          j        |                               |j        |          }t          |j                  t          |j                  k    sJ t          j
        |                    |j                  |k              dk    sJ |                    |j                  }|j        t          j        |d                   }t          ||                    |j                             d S )Nr   g?r$   )r3   target_namesr+   r   r   r=   r-   setrX   rU   rV   rD   r   r   r   )r]   r/   r+   rF   r   ri   s         r2   test_linearsvc_irisr    s    .//D t{+F
-%7
8
8
8
<
<TY
O
OC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4r4   rv   c           	         ddgddgddgddgg}g 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$   Trt  rr  Fr   gHz>)r{  rs  rp  rv  r   r   r   r   rS   rw   r   r#   r  )intercept_scalingr{  r=   r   rC   r   )
classifierr]   r>   rt   rF   
intercept1
intercept2s          r2   '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@@@@@@r4   c                    t          |           }t          j                                        |j        |j                  }|                    |j                  }|j                                        |_        |j	                                        |_	        |                    |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  )r3   r   r   r=   r-   r+   r   rK   copyrC   r   r   )r]   r/   rF   valuesvalues2r>   rt   s          r2   test_liblinear_set_coefr    s;   .//D -//

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'''''r4   c                 r   t          |           }t          j        d                              |j        |j                  t          j        d                              |j        |j                  t          j        d                              |j        |j                  t          j        d                              |j        |j                  t          j	        d                              |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 )Nr6   r7   rK   r&   )r   r   r   )r3   r   r<   r=   r-   r+   r   r   r   r   rz   r{   r   __setattr__rU   rL  RuntimeErrorr|   rK   __setitem__)r]   r/   svmsrF   s       r2   test_immutable_coef_propertyr    s   .//D 	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$   #)EE	E	F++F/	2F/	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>   r?   )r  stdoutrF   s      r2   test_linearsvc_verboser    s}     IIIVVAYYFGGBGGIIaL! -
"
"
"CGGAqMMM GGFAr4   c                     t          d          } t          j        d ddd          }t          j        |          }|                    | j        | j                   t          j        dddd          }|                    | j        | j                   t          |j	        |j	                   t          |j
        |j
                   t          |                    | j                  |                    | j                             t          |                    | j                  |                    | j                  d	           t          |                    | j                  |                    | j                             d S )
Nrv   c                 6    t          j        | |j                  S r(   ro   rr   s     r2   r   z5test_svc_clone_with_callable_kernel.<locals>.<lambda>(      BF1acNN r4   Tr   r   )r8   r   r   r   r6   r   rw   )r3   r   r<   r   r  r=   r-   r+   r   r@   rC   r   rD   r   r   )r/   svm_callable
svm_clonedsvm_builtins       r2   #test_svc_clone_with_callable_kernelr  !  s{   BD 7** %	  L L))JNN49dk***' %	  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    r4   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 r(    rr   s     r2   r   z%test_svc_bad_kernel.<locals>.<lambda>I  s    a r4   r7   )r   r<   rz   r{   r|   r=   r>   r?   )svcs    r2   test_svc_bad_kernelr  H  s    
'
(
(
(C	z	"	"  1                 s   !AA"%A"c                 D   t          j        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 r(   ro   rr   s     r2   r   z2test_libsvm_convergence_warnings.<locals>.<lambda>S  r  r4   Tr%   )r8   r   r   r   zoSolver terminated early \(max_iter=2\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r)  )r   r<   rz   warnsr   r=   rU   ry   r>   r?   r  n_iter_)r]   awarning_msgs      r2    test_libsvm_convergence_warningsr  P  s    **'		 	 	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<   rz   r{   	ExceptionrD   r   )r>   rF   s     r2   test_unfittedr  a  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|           }|                    t          t                                        t                    }t          j        dd|           }|                    t          t                                        t                    }t          ||           d S )NTr$   )r   r   r   )r   r<   r=   r>   r?   r   r   )r]   r  proba_1proba_2s       r2   test_consistent_probar  p  s     	D1;MNNNAeeAqkk''**GD1;MNNNAeeAqkk''**Ggw/////r4   c                 p   t          |           }t          j        | 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          }t          j        t
          |          5  |                    |j        |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   z@Liblinear failed to converge, increase the number of iterations.r)  )r3   r   r   rz   r  r   r=   r>   r?   
isinstancer  r   r   r-   r+   )r]   r/   lsvcr  r   s        r2   $test_linear_svm_convergence_warningsr  z  s   .//D =&81EEEDTK	(	<	<	<  A               dlC(((((<1=&81EEED	(	<	<	< ) )DK((() ) ) ) ) ) ) ) ) ) ) ) ) ) )dlC(((((<1s$   !A00A47A4!DD	Dc           	         t           j                            |           }|                    dd          }|                    d          }t	          j        d          t	          j        d          t	          j                    fD ]m}|                    ||           t          |
                    |          t          j        ||j                                                  |j        z              nd S )Nr   r&   r6   r7   )rU   r   r   r   r   r   r   r   r=   r   rD   rp   rK   r   rC   )r]   r0   r>   rt   r   s        r2   test_svr_coef_signr    s     )

 2
3
3C		"aA		"A 	x   	""" 
 

 	1!KKNNBF1cioo&7&7883>I	
 	
 	
 	

 
r4   c                      t          j        d          } |                     t          t                     | j        dk    sJ d S )NF)r{  r;   )r   r   r=   r>   r?   rC   )r  s    r2    test_lsvc_intercept_scaling_zeror    s@     =u---DHHQNNN?c!!!!!!r4   c                 Z   t          |           }t          j        d          }t          |d          sJ |                    |j        |j                   t          |d          sJ t          j        d          }t          |d          rJ |                    |j        |j                   t          |d          rJ d|_        t          |d          sJ d}t          j	        t          |          5  |                    |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)  )r3   r   r<   rW   r=   r-   r+   r   rz   r{   r   r   )r]   r/   Grd  s       r2   test_hasattr_predict_probar    so   .//D
 	D!!!A1o&&&&&EE$)T[!!!1o&&&&&E"""Aq/*****EE$)T[!!!q/***** AM1o&&&&&
MC	~S	1	1	1 # #		"""# # # # # # # # # # # # # # # # # #s   8D  D$'D$c                 2   dD ]}t          ||           \  }}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   rD   )r]   r  r>   rt   r  rF   s         r2   &test_decision_function_shape_two_classr    s     1 1	):LMMM1'39- 	1 	1I%ii&N&N&NOOSS1 C s{{1~~&&#a&&00000		11 1r4   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&   rS   r   r   r%   r&   r6   r   )r8   r   r   r   )r   r%   r;   )rU   ry   vstackr   r<   r=   rD   r   r   r   r   reshapeminr  )	r   r  base_pointsr   r  rF   r  deci_valpred_class_deci_vals	            r2   test_ovr_decision_functionr    s   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Hr4   SVCClassc                     t          |          \  }} | ddd|                              ||          }t          j        t          d          5   |j        |           d d d            d S # 1 swxY w Y   d S )Nr   r6   r   T)r8   r   r   r   zbreak_ties must be Falser)  )r   r=   rz   r{   r|   rD   )r  r]   r>   rt   r   s        r2   !test_svc_invalid_break_ties_paramr    s    #5666DAq
( %'	  
 
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          \  }}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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  Nr   r   r$   rI   g    .Ar   )r8   r   r   r   r   Fr   Tr  )__name__r   rz   xfailr   rU   linspacer  rb  meshgriddictr=   rD   c_r   r   r  r   )r  r]   r>   rt   xsysxxyycommon_paramsr   ri   dvs               r2   test_svc_ovr_tie_breakingr    su   
 G##	#
 	/000#5PQRRRDAq	Qqqq!tW[[]]AaaadGKKMM3	7	7B	Qqqq!tW[[]]AaaadGKKMM3	7	7B[R  FB' %	  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0r4   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      r2   test_gamma_scaler  1  sK    EC5>Aq6qA
'))CGGAqMMM
A&&&&&r4   zSVM, params)rs  rp  rv  epsilon_insensitiverp  rv  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          ||||          \  }}} | |          } |j        di | |                    dd           t          j
        |                              ||          }	t          j
        |                              |||          }
dD ]V}t          ||          rD t          |	|          |          } t          |
|          |          }t          ||d           Wd 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   )rD   r   gư>r9  r  )rU   ry   r   r  hstackr   r   r   r  r   r  r=   rW   getattrr   )r   paramsr]   r>   rt   X2y2r   base_estimatorest_no_weightest_with_weightmethodresult_without_weightresult_with_weights                 r2   &test_linearsvm_liblinear_sample_weightr  :  sY    	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,>  BM S&8999NN'''''%$777J~..221a88Mj0044
Bm 5  O 3 R R>6** 	R$BGM6$B$B1$E$E!!A&!A!A!!D!D13EDQQQQ	R Rr4   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_)	rU   ry   rL  r   rW   r=   r  rB   r,   )r  r>   rt   r.  s       r2   test_n_supportr  x  s    
 	1#vvvs344A
	!'!*A
%''CsL)))))GGAqMMM>! 4 :1 =====>!######r4   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!   rU   zerosr   count)X1r  
n_samples1
n_samples2r   iijjs          r2   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&		& r4   r7   r6   rm   r   N)rU   ry   r   rp   rq   r=   r   rW   r   r   rD   )	r,  r-   r>   rt   r  r   svc1svc2svc3s	            r2   "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<<<<<r4   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
    r6   r7   i@B r   z.The internal representation of SVC was alteredr)  N)
r   r<   r=   r>   r?   
_n_supportrz   r{   r|   rD   )rF   rd  s     r2   -test_svc_raises_error_internal_representationr    s    
 '
"
"
"
&
&q!
,
,CCN1
:C	z	-	-	-  A                 s   BB
Bzestimator, expected_n_iter_typer  )r%   r&   r   c                 P   t          |||          }|\  }} | 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 )N)r  n_informativer   r6   r7   r$   r%   )r   r=   r  typer   r<   r   r   rU   rN  r   )r  expected_n_iter_typer  r]   datasetr>   rt   n_iters           r2   test_n_iter_libsvmr"    s     "9CU  G DAqYh'''++Aq119F<</////SWci(((	!%%	|	Y] ;q @BBBBB )(BBr4   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autoru  r   FTr   rU   asarrayr>   rq   r  s     r2   test_dual_autor'    s^     $FD$rz!}}MMD5====#FD$rz!}}OOD4<<<<<<r4   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$  rq  ru  r   Tr  rr  rt  Fr%  )rv  s    r2   test_dual_auto_edge_casesr)    s    #FGT5"*Q--PPD4<<<<#%tUBJqMM D 4<<<<#ubjmmo D 5======r4   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)r=   r   rD   )r,  make_datasetr*  r]   r>   rt   estimator_C_infestimator_C_larges           r2   test_svm_with_infinite_Cr0    s     <%7888DAqi%(((,,Q22O!	D)))--a33%--a00/2I2I!2L2LMMMMMr4   )}__doc__numpyrU   rz   numpy.testingr   r   r   r   sklearnr   r   r	   r
   r   sklearn.datasetsr   r   r   sklearn.exceptionsr   r   sklearn.metricsr   sklearn.metrics.pairwiser   sklearn.model_selectionr   sklearn.multiclassr   sklearn.svmr   r   r   r   r   r   sklearn.svm._classesr   rJ  r   r   sklearn.utils.fixesr   r   r    sklearn.utils.validationr!   r>   r?   rq   r}   r3   rG   markthread_unsaferk   r   r   r   r   r   r   r   r   r   r   r   parametrizer<   r   r  r  r  r  r!  r$  r   r/  r4  r=  rB  rR  r_  re  rg  rl  ro  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r  ndarrayr   r"  r'  r)  r+  r  r0  r  r4   r2   <module>rD     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  * * * M$ M$ M$`GG GG GGTD D D(+ + +&+ &+ &+R    N N N<  9 9 9" 
 
 
(E E ED #) 455&+ &+ 65&+RC C C00 0 04 wsw		&DEE  FE4 wsw		D8I8I8I&JKK  LK4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"
 "
 "
J .99# # :9#L  	 	 	 .99% % :9% .99* * :9* '?!;<<T4L11$//  0/ 21 =<2#) #) #)LM M M2!C !C !CH  &5 5 5  }$A $A $A $AN( ( (.- - -$   " # # #L   " " " 	 	 	 KLL0 0 ML 0  *
 
 
$" " "# # #41 1 1)I )I )IX cgsy%9::  ;: cgsy%9::%1 %1 ;:%1P' ' ' 	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 .R .R  .Rb ;U";<<
$ 
$ =<
$ sw&899"= "= :9"=J
 
 
 %	"*	BJ	#	C	#	 	 II C C	 	 	C" /3P!QRR  SR   	g"#cg%?@  2655<<"899
N 
N :9	 

N 
N 
Nr4   