
    ri(                        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jl                  jn                  d        Z8d Z9d Z:d Z;d Z<d Z=d Z>d  Z?d! Z@d" ZAejl                  jn                  d#        ZBd$ ZCejl                  j                  d%ej                  ej                  f      d&        ZGd' ZHd( ZIejl                  j                  d) ej                  d*+       ej                         g      d,        ZJejl                  j                  d) ej>                  d*+       ejD                  d*+      g      d-        ZKd. ZLejl                  j                  d/ej                  d0fej                  d1fej>                  d0fejD                  d0fejF                  d0fgg d23      ejl                  j                  d4dg eMe1      z  d5g eMe1      z  gd6d7g3      d8               ZNejl                  j                  d9ej                  d:fej                  d;fgd<d=g3      ejl                  j                  d4g d>g d?gd@dAg3      dB               ZOejl                  j                  dCej                  dDdEgdEdFgdGfej                  dHdHgdHdHgdGfgd<d=g3      ejl                  j                  dIg dJdKfg dLdMfgdNdOg3      dP               ZPejl                  j                  dQej                  ej                  ejD                  gg dR3      ejl                  j                  d4g dJg dLgdNdOg3      dS               ZQdT ZRejl                  j                  dUe-      dV        ZSdW ZTdX ZUejl                  j                  dYe,      dZ        ZVejl                  j                  dYe,      d[        ZWejl                  j                  d\d]d^g      ejl                  j                  d_d`dag      ejl                  j                  dbdcddg      de                      ZXdf ZYdg ZZdh Z[di Z\dj Z]ej@                  dkfdlZ^dm Z_dn Z`ejl                  jn                  do        Zaejl                  jn                  dp        Zbdq Zcejl                  jn                  dr        Zdds Zeejl                  jn                  ejl                  j                  dt      du               Zgdv Zhdw Zidx Zjdy Zkdz Zld{ Zmejl                  j                  d|ej                  ej                  g      d}        Znejl                  j                  d|ej                  ej                  g      d~        Zod Zpejl                  jn                  ejl                  j                  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jl                  j                  de#ee"f      d        Zrejl                  j                  dQej                  ej>                  g      d        Zsd Ztejl                  j                  dej                  ej                  fej                  ej                  fej>                  evfejD                  evfejF                  evfg      ejl                  j                  dg d      d               Zwejl                  j                  d\d^dg      d        Zxd Zyejl                  j                  dej                  efej>                  efg      ejl                  j                  dej                   e{d      g      d               Z|y)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                  |   |_        |j                  |   |_        |S N)r   	load_irisr   permutationtargetsizedata)random_seedirisrngperms       X/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/svm/tests/test_svm.pyget_iris_datasetr3   0   sV    D
[
)C??4;;++,D		$DI++d#DKK    c                     t        j                  d      j                  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        | j                  t              t               y )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s||aV,s++adAaD\:s~~u-s{{1~q)r4   c           	         t        |       }dD ]  }t        j                  |      j                  |j                  |j
                        }t        j                  |j                  |j                        |j
                  k(        dkD  sJ t        |d      |dk(  k(  rJ  t        j                  t        j                  |j                               t        j                  |j                  |j
                  j                  t        j                              \	  }}}}}}	}
}}||||||	|
d}t        j                  |j                  fi |}t        j                  ||j
                  k(        dkD  sJ t        j                  |j                  |j
                  j                  t        j                        d      \	  }}}}}}	}
}}||||||	|
d}t        j                  |j                  fi |ddi}t        j                  ||j
                  k(        dkD  sJ t        j                   |j                  |j
                  j                  t        j                        d	dd
      }t        j                  ||j
                  k(        dkD  sJ t        j                   |j                  |j
                  j                  t        j                        d	dd
      }t        ||       y )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ggQ##DIIt{{;wws{{499-<=CCCsG$h7778
 s||RWWS\\%:;  	DIIt{{11"**=> "$ !%L ??49955D7744;;&'$... 	DIIt{{11"**=hO "$ !%L ??499FFXFD7744;;&'$...##		4;;%%bjj11XSTD 7744;;&'$...
 $$		4;;%%bjj11XSTE tU#r4   c                  D
   t        j                  d      } t        j                  t        t        j
                  t              j                        }| j                  |t               t        j                  t        t        j
                  t              j                        }| j                  |      }t        j                  t              5  | j                  |j                         d d d        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 ]+  }t        j                  t        |   t        |         |||f<   - > | j                  |      }t        |t$               d }t        j                  |      } | j                  t        j
                  t              t               | j                  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                  ||j0                         |j                  |j.                  |j0                         | j                  |      }t#        | j                  |j                         t#        | j                  |j                         t#        | j                   |j                          t3        t        j4                  ||j0                  k(        dd       t        j&                  |      }t)        t+        |j.                              D ]H  }| j                  D ]7  }t        j                  |j.                  |   |j.                  |         |||f<   9 J | j                  |      }t3        t        j4                  ||j0                  k(        dd       t        j                  |      } | j                  |j.                  |j0                         t3        t        j4                  ||j0                  k(        dd       y # 1 sw Y   .xY w)Nprecomputedr7   r9   r:   r$   r&   r   c                 B    t        j                  | |j                        S r(   rU   dotTxys     r2   kfuncztest_precomputed.<locals>.kfunc   s    vva~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GGAqM	288A;==	!B;;r?D	z	" BDD s~~7s||aV,s~~s+cllQF3t[) 
r	B3q6] * 	*AvvadAaD)Bq!tH	** ;;r?Dt[)
 ''
CGGBHHQK;;q>Ds~~7s~~s+cllQF3t[) ''
'C77(#DBD
tyy$))++&AGGAt{{HHTYY$;;q>DcllDMM:cnndoo>cnndoo> 34dAF 	aA3tyy>" 9 	9AffTYYq\499Q<8AadG	99 ;;q>D 34dAF
''
CGGDIIt{{# 34dAFy s   TT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 ]S  }|j                  | j                  | j                         |j                  | j                  | j                        dkD  rSJ  t        j                         j                  | j                  t        j                  t        | j                                     t        j
                         j                  | j                  t        j                  t        | j                                     y )	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		cT2x4( @ 	x/yy84???@ GGIMM(--X]]);!<=MMOrwws8==/A'BCr4   c                     t        j                         } t        j                  d      j	                  | j
                  | j                        }|j                  | j
                  | j                        }t        j                  dd      j	                  | j
                  | j                        }|j                  | j
                  | j                        }t        t        j                  j                  |j                        t        j                  j                  |j                        dd       t        ||d       y )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##HMM8??CDZZx7F
''S
)
-
-hmmX__
MCYYx}}hoo6FBIINN4::.		syy0I1fU*r4   c                 $   t        j                         }t        |j                        }t	        j
                  |      }t        j                  ddd      j                  |j                  |j                  |      }|j                  |j                  |j                        }t        j                  ddd      j                  |j                  |j                        }|j                  |j                  |j                        }t        t        j                  j                  |j                        t        j                  j                  |j                        dd       t        ||d       t        j                   j#                  |       }|j%                  d	d
|      }	t        j                  ddd      j                  |j                  |j                  |	      }
|
j                  |j                  |j                  |	      }t	        j&                  |j                  |	d	      }t	        j&                  |j                  |	d	      }t        j                  ddd      j                  ||      }|j                  ||      }t        ||d       y )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HOO$I'')$K==3EE:>>xk ? D ZZx7F]]SeeDHHxN !!(--AF
		tzz"BIINN>3G3G$H!V * ))

 2
3CKK2y1M--#55AEExm F K xm  F YYx}}m!<FYYxA>F?CCFFSI__VV,F*r4   c                      dgdgg} ddg}t        j                  d       }|j                  | |       t        j                  t
              5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr;   r   g      ?c                 0    t        j                  dgg      S )Nr   )rU   ry   rr   s     r2   <lambda>z!test_svr_errors.<locals>.<lambda>0  s    bhhw&7 r4   r7   )r   r   r=   rz   r{   r|   rD   r>   rt   rF   s      r2   test_svr_errorsr   +  sb    
A	c
A ''7
8CGGAqM	z	" A  s   A((A1c                     t        j                         j                  t               j	                  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        y # 1 sw Y   y xY w)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GGAJ;;q>Dt[)::&))))cnnvhBcnn/K.LVWX	~	& 	  s   ?CCc                     t        j                         } t        d      }d|j                  dd      z  }t        j
                  |dz   |dz
  f   }d|j                  dd      z  }t        j
                  |dz   |dz
  f   }|j                  ddd      }t        j                  d	d
d	      } | j                  |       | j                  |      }t	        j                  |dk(        dkD  sJ | j                  |      }t	        j                  |dk(        dkD  sJ | j                  |      }t        |dkD  j                         |dk(         | j                  |      }	t        |	dkD  j                         |dk(         y )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eeAE1q5L!G 	ciiAAUU1q5!a%< F!':J //Sc
:CGGG ++f%K77;!#$s***kk*-O77?b()C///))&1M)002K14DE--j9)A-44618LMr4   c                      ddgddgddgg} t        j                  d      j                  |       }t        |j	                  ddgg      |j                  ddgg      |j                  z          y )Nr$   r%   r   g       @)r   r   r=   r   score_samplesr   offset_)r   rF   s     r2   test_oneclass_score_samplesr   c  sl    1v1v1v&G
//
"
&
&w
/CC:,'Szl+ckk9r4   c                  N   t        j                  dd      } | j                  t        t               t        | j                  ddgg       t        | j                  ddgg      dg       t        j                  ddgg      | _
        t        | j                  ddgg      d	g       y )
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GGAqMs~~7s{{T4L>2QC8hhc
|,COs{{T4L>2QC8r4   c           	         t        |       }t        j                  d| d      t        j                  d|       fD ]*  }|j	                  |j
                  |j                         |j                  |j
                        }t        t        j                  |d      t        j                  |j
                  j                  d                t        j                  t        j                  |d      |j                  |j
                        k(        dkD  sJ t!        |j                  |j
                        t        j"                  |j%                  |j
                              d       - y )	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   }  s    ./D 	D/ASI		d1CD 
 			4;;'((3!"&&q"9277499??STCU;VWwwryyq1S[[5KKLsRRRdii("&&1F1Ftyy1Q*RTU	

r4   c                    t        |       }t        j                  ddd      j                  |j                  |j
                        }t        j                  |j                  |j                  j                        |j                  z   }t        ||j                  |j                               |j                  t        t               t        j                  t        |j                  j                        |j                  z   }|j                  t              }t        |j!                         |j                  t                     t        ||j"                  |j                  t              dkD  j%                  t&                        t        j(                  g d      }t        |j                  t              |d       t        j                  dd	d
      }|j                  t        t               t+        t        |j,                  |j.                        }t        j                  ||j0                  j                        |j                  z   }t        |j!                         |j                  t                     y )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
L
L		4;;C &&CIIKK
(3>>
9Cc3#8#8#CD GGAqM
&&CIIKK
 3>>
1CQJciik3+@+@+CDCLL#"7"7":Q">!F!Fs!KL xx;<Hc33A6!D ''a
GCGGAqMa--SYY?D
&&s~~''
(3>>
9Cciik3+@+@+CDr4   SVMc                 0   t        |      } | dd|d      }|j                  |j                  |j                         |j	                  |j                        }|j
                  t        |j                        dfk(  sJ t        |j                  |j                        t        j                  |d             t        dd	|
      \  }}t        |||      \  }}}	}
|j                  ||	       |j	                  |      }|j
                  t        |      d	fk(  sJ t        |j                  |      t        j                  |d              | dd|d      }|j                  ||	       |j	                  |      }|j
                  t        |      dfk(  sJ y )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    sx    ./D %'	N tyy$++.

*
*499
5C99TYY++++~--dii8"))Ca:PQ A<NODAq'7	1-($GVWf w(

*
*6
2C99Va((((~--f5ryy17MN  %'	N w(

*
*7
3C99Wr****r4   c                    t        |       }|j                  }|j                  }t        j                  dd      j                  ||      }t        j                  ||j                  j                        |j                  z   }t        |j                         |j                  |      j                                t        j                  dd      j                  ||      }t        ||j                  |j                         }t        j                  ||j"                  j                        |j                  z   }t        |j                         |j                  |      j                                y )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
3C
&&CIIKK
 3>>
1Cciik3;;q>+?+?+AB ''a
(
,
,Q
2Ca--SYY?D
&&s~~''
(3>>
9Cciik3;;q>+?+?+ABr4   c                     t        j                  ddi      } | j                  t        t               t        | j                  t              dgdz         t        dddd	gd
      \  }}t        j                         t        j                  d      t        j                         fD ]W  } | j                  ddd       | j                  |d d |d d        | j                  |dd        }t        |dd  |      dkD  rWJ  y )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    s    
''3x
(CGGAqMckk!nqcAg6 	FB 	'')1%	 0
 	O44C"Tc(#RX&34&)C///0r4   	estimator{Gz?r   c                    t        j                  |       } ddgddgddgddgddgddgg}| j                  d       dgdz  }| j                  |t        |	       | j                  d
dgg      }|t        j                  d      k(  sJ g d}| j                  |t        |	       | j                  d
dgg      }|dk  sJ g d}| j                  |t        |	       | j                  d
dgg      }|dkD  sJ y )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    s   

9%I a2r(QGaVaVaV<A) C!GMMM!QmM4((4+7FV]]1%%%% 3MMM!QmM4((4+7FA::4MMM!QmM4((4+7FA::r4   c                    t        j                  |       } ddgddgddgddgddgddgg}| j                  d       dgdz  }| j                  |t        |	       | j                  d
dgg      }|t        j                  d      k(  sJ g d}| j                  |t        |	       | j                  d
dgg      }|dk  sJ g d}| j                  |t        |	       | j                  d
dgg      }|dkD  sJ y )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!  +  s   

9%I a2r(QGaVaVaV<A) C!GMMM!QmM4s}-FV]]3'''' 3MMM!QmM4s}-FC<<4MMM!QmM4s}-FC<<r4   c            
      B   t        j                         } | j                  t        t               | j
                  }| j                  d       | j                  t        t        t        j                  dt        t                           t        || j
                         y )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  sb    
'')CGGAqM..NNSNGGAq		$A 7G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  |j                  t        t
        |       d d d        y # 1 sw Y   y xY wNr6   r7   matchr   rz   r{   r|   r=   r>   r?   )	Estimatorerr_msgr   ests       r2   -test_negative_sample_weights_mask_all_samplesr/  P  sC    " 8
$C	z	1 31M23 3 3   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  |j                  t        t
        |       d d d        y # 1 sw Y   y xY wr(  r+  )
Classifierr-  r   rF   s       r2   .test_negative_weights_svc_leave_just_one_labelr4  f  sC    ( H
%C	z	1 31M2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      }|j                  t        t        |       t        |j                  ||   gd       y )Nr6   r7   r   MbP?rtol)r=   r>   r?   r   rK   )r3  modelr   	mask_siderF   s        r2   *test_negative_weights_svc_leave_two_labelsr=    s8      H
%CGGAqG.CIIi 01=r4   r,  )r<   r   r   c                      | d      }|j                  t        t        |       t        j                  |j
                        j                         }|d   t        j                  |d   d      k(  sJ y )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    s\     8
$CGGAqG.66#))""$D7fmmDG6666r4   c                  2   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kD        d   d d d         }t        j                  ||         } |d|||         }t        j                  |      dk(  sJ t        j                  d	
      t        j                   d       |        fD ]  }|j#                  ||   ||         j%                  |      }	|j'                  d       |j#                  ||   ||         j%                  |      }
t)        j*                  ||	d      t)        j*                  ||
d      k  rJ  y )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    sn   7 3BD99QUT[[1_qA299QVV,bhhq1uoa.@1.EFJii*&G(W*VM99]#q((( 	x 1% 
 :*6>>qAJ/''jMjM
 '!* 	 67;w?O?O@
 
 	
 

r4   lil_containerc                 P   t         d d }t        j                  t              5  t	        j
                         j                  t        |       d d d        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 |j                  ||       t        |j!                  t              t"                t	        j
                  d      }t        j                  t              5  |j                  t        t                d d d        t	        j
                         j                  t        t               }t        j                  t              5  |j!                   | t                     d d d        t        j$                  t              j                  }|j                  t        j&                  t        |      t                t        j                  t              5  |j!                  t               d d d        t	        j
                         }|j                  t        t                t        j                  t              5  |j!                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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'    
3BB	z	" 	a 	3==6HIJ 8q!88N+++!!"''!V"4"6"672Y88N+++88N+++B3;;q>;78 ''
'C	z	" 1 '')--1
C	z	" &M!$%& 
!BGGBFF1bM1	z	" A '')CGGAqM	z	" B ?   
& &
 
 s;   )K)3K6L)LL)K36L LLL%c                    t         j                  j                  |       }d}t        j                  t         j                        j
                  }||j                  |df      z  }|j                  dd|      }t        j                         }d}t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   y xY w)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
3CI88BJJ##Ds{{A{//AAqy)A
'')C
>C	z	- 1  s   +CCc                 <   t        |       }t        j                  dd      }|j                  t        t
               |j                  t               t        j                  |j                  |j                  j                  t        j                        ddd       y )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    si    ./D
''t
4CGGAqMa		4;;%%bjj11XSTr4   csr_containerc                     t        j                  d      } | ddgddgg      }t        j                  t        d      5  |j                  |ddg       d d d        y # 1 sw Y   y xY w)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1K	y(<	= %aV$% % %s    AA'c                 2    | g dg dg dg dg      }t        j                  g d      }t        j                  d      }|j	                  ||       |j
                  j                  j                  rJ |j                  j                  j                  rJ y )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{     \<|TUGhh/0GGG8$E	IIgw%%**////$$)))))r4   losshingesquared_hingepenaltyl1l2dualTFc           	      @   t        dd|      \  }}t        j                  || ||      }| |fdk(  s| ||fdk(  s||fdk(  r@t        j                  t
        d|d| d	|
      5  |j                  ||       d d d        y |j                  ||       y # 1 sw Y   y xY w)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    s     0BDAq --d<NC 
w?*'4 $::T?l*]]d$
 	
 GGAqM	 	 	1	 	s   %BBc                 n   t        j                  |       j                  t        t              }|j
                  sJ t        |j                  t              t               t        |j                  dgd       t        j                  ddd|       j                  t        t              }t        |j                  t              t               t        j                  d	d
|       j                  t        t              }t        |j                  t              t               t        j                  d	dd
|       }|j                  t        t               t        |j                  t              t               |j                  t              }|dkD  j                  t              dz   }t        |t               y )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
<
<Q
BC s{{1~{3cnnqc1= --'	
 
c!Qi  s{{1~{3 --4>P
Q
U
U	1C s{{1~{3 --7<NC GGAqMs{{1~{3 


"C7

3
!
#CsK(r4   c                 `   t        |       }t        j                  |       j                  |j                  |j
                        }t        j                  d|       }|j                  |j                  |j
                         |j                  |j                        |j                  |j                        k(  j                         dkD  sJ |j                  |j                  k7  j                         sJ t        |j                  |j                        t        j                  |j                  |j                        d             t        j                  |j                  |j                  j                        |j                   z   }t#        ||j                  |j                               y )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mm);<@@DKKXG]]$3EF JJtyy$++& OODII&&..*CCIIKcQQQ MMV\\)..000 tyy!
		&**4995A> vvdii063D3DDHh(@(@(KLr4   c                    t        t              }t        j                  |      }t	        j
                  | dd      j                  t        t              }t	        j
                  | dd      j                  t        t        |      }t        |j                  t              |j                  t                     t        |j                  |j                  dd       t        j                  j                  |       j                  dd|      }t	        j
                  | dd      j                  t        t        |      }|j                  t              }t        j                   t        |d	      }t        j                   t        |d	      }	t	        j
                  | dd      j                  ||	      }
|
j                  t              }t        ||       t        |j                  |
j                  dd       y )
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  sy   AI'')$K
--%7UT
R
V
V	1C ]]'UT	c!Qkc* 
 ~--a0#++a.ACII~33Q?
 II))*<=EEaYWM--'UT	c!Qmc,  "EYYq-a0FYYq-a0F'UT	c&&  a Eue$K%%y6Br4   c                     t        dd|       \  }}dD ]A  }t        j                  |d|       j                  ||      j	                  ||      }|dkD  rAJ  y )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    si    s1CDAq ' 
MM+,/
 SAYU1a[ 	 Syy
r4   c                 8   t        |       }|j                  |j                     }t        j                  |       j                  |j                  |      }t        |j                        t        |j                        k(  sJ t        j                  |j                  |j                        |k(        dkD  sJ |j                  |j                        }|j                  t        j                  |d         }t        ||j                  |j                               y )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
<
<TYY
OCs||D$5$5 6666773;;tyy)V34s:::


		
*CRYYsA./DtS[[3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|_         |j                  ||       t        |j                  dd       d|_         |j                  ||       |j                  }|dk  sJ d|_         |j                  ||       |j                  }t        ||d       y )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GGAqM15  CGGAqMJ?? !CGGAqMJj*a@r4   c                    t        |       }t        j                         j                  |j                  |j
                        }|j                  |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                  |      }|j                  j                         |_        |j                  j                         |_	        |j                  |      }t        ||       y )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 --/

dii
5C""499-F		 CI^^((*CN##DII.Gfg. Q!Q!Q!Q(AA
--/

a
#C""1%F		 CI^^((*CN##A&Gvw'r4   c                    t        |       }t        j                  d      j                  |j                  |j
                        t        j                  d      j                  |j                  |j
                        t        j                  d      j                  |j                  |j
                        t        j                  d      j                  |j                  |j
                        t        j                  d      j                  |j                        g}|D ]  }t        j                  t              5  |j                  dt        j                  d             d d d        t        j                  t         t"        f      5  |j$                  j'                  dd       d d d         y # 1 sw Y   PxY w# 1 sw Y   xY w)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 $$TYY<		"&&tyy$++>x $$TYY<		"&&tyy$++>x(,,TYY7D  -]]>* 	3OOGRYYq\2	3]]L*56 	-II!!&!,	- 	--	3 	3	- 	-s   >&F3F?3F<	?G	c                      dd l } | j                  d      }| j                  | j                         d   d       t	        j
                  d      }|j                  t        t               | j                  |d       y )Nr   r$   )verbose)	osdupdup2piper   r   r=   r>   r?   )r  stdoutrF   s      r2   test_linearsvc_verboser    sY     VVAYFGGBGGIaL! --
"CGGAqM GGFAr4   c                  :   t        d      } t        j                  d ddd      }t        j                  |      }|j                  | j                  | j                         t        j                  dddd      }|j                  | j                  | j                         t        |j                  |j                         t        |j                  |j                         t        |j                  | j                        |j                  | j                               t        |j                  | j                        |j                  | j                        d	       t        |j                  | j                        |j                  | j                               y )
Nrv   c                 B    t        j                  | |j                        S r(   ro   rr   s     r2   r   z5test_svc_clone_with_callable_kernel.<locals>.<lambda>(      BFF1accN 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  !  s1   BD 77* %	L L)JNN499dkk*'' %	K OODIIt{{+j33[5K5KLj33[5K5KLz))$))4k6I6I$))6TU  +!!$)),
 $$TYY/%%dii0r4   c                      t        j                  d       } t        j                  t              5  | j                  t        t               d d d        y # 1 sw Y   y xY w)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c                 >   t        j                  d d| d      }d}t        j                  t        |      5  |j                  t        j                  t              t               d d d        t        j                  |j                  dk(        sJ y # 1 sw Y   .xY w)Nc                 B    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	:  
(	< 	bhhqk166!))q.!!! s   .BBc                  \   d} t        j                         }t        j                  t        d      5  |j                  |        d d d        t        j                         }t        j                  t        d      5  |j                  |        d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)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 A ))+C	y(K	L A 	  s   B;B"B"B+z-ignore::sklearn.exceptions.ConvergenceWarningc                 0   t        j                  dd|       }|j                  t        t              j                  t              }t        j                  dd|       }|j                  t        t              j                  t              }t        ||       y )NTr$   )r   r   r   )r   r<   r=   r>   r?   r   r   )r]   r  proba_1proba_2s       r2   test_consistent_probar  p  sh     	D1;MNAeeAqk''*GD1;MNAeeAqk''*Ggw/r4   c                 n   t        |       }t        j                  | d      }d}t        j                  t
        |      5  |j                  t        t               d d d        t        |j                  t              sJ |j                  dk(  sJ t        j                  | d      }t        j                  t
        |      5  |j                  |j                  |j                         d d d        t        |j                  t              sJ |j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   CxY w)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EDTK	(	< A dllC(((<<1==&81ED	(	< )DKK()dllC(((<<1 ) )s    D'D+D(+D4c           	         t         j                  j                  |       }|j                  dd      }|j                  d      }t	        j
                  d      t	        j                  d      t	        j                         fD ]h  }|j                  ||       t        |j                  |      t        j                  ||j                  j                               |j                  z          j y )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
3C		"aA		"A 	x 		" 

 	1!KKNBFF1ciioo&783>>I	

r4   c                      t        j                  d      } | j                  t        t               | j
                  dk(  sJ y )NF)r{  r;   )r   r   r=   r>   r?   rC   )r  s    r2    test_lsvc_intercept_scaling_zeror    s1     ==u-DHHQN??c!!!r4   c                 >   t        |       }t        j                  d      }t        |d      sJ |j	                  |j
                  |j                         t        |d      sJ t        j                  d      }t        |d      rJ |j	                  |j
                  |j                         t        |d      rJ d|_        t        |d      sJ d}t        j                  t        |      5  |j                  |j
                         d d d        y # 1 sw Y   y xY w)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    s    ./D
 	D!A1o&&&EE$))T[[!1o&&&E"Aq/***EE$))T[[!q/*** AM1o&&&
MC	~S	1 #			"# # #s   .DDc                    dD ]  }t        ||       \  }}t        j                  t        j                  fD ]L  }t	         |d            j                  ||      }t        |j                  |            t        |      k(  rLJ   y )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	):LM1''399- 	1I%i&NOSS1C s{{1~&#a&000		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
      }|j                  | |       |j                  |      }t        ||       |j                  |      }t        t        j                  |d      |       |t        d      |f   j                  d      }t        j                  |      dkD  sJ t        j                  |d d df   |d d df   k        sJ y )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   hhAQ"bAr7;<GG ((QFRH-.K YY1a& 2q'!2r("1b'!		
F S1WsQw!q(A372F
''5
ACGGGW[[ F vv&$$V,H ryy2F; #58V#34<<VD 66%&,,, 66%ad+.A!Q$.GGHHHr4   SVCClassc                     t        |      \  }} | ddd|      j                  ||      }t        j                  t        d      5   |j
                  |       d d d        y # 1 sw Y   y xY w)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    sj    #56DAq
 %'	
 
c!Qi  
z)C	D A  s   A##A,c                    | j                   dk(  rt        rt        j                  d       t	        |dd      \  }}t        j                  |dddf   j                         |dddf   j                         d      }t        j                  |ddd	f   j                         |ddd	f   j                         d      }t        j                  ||      \  }}t        d
d|d      } | dddi|j                  ||      }	 |	j                  t
        j                  |j                         |j                         f         }
 |	j                  t
        j                  |j                         |j                         f         }t        j                   |
t        j"                  |d	      k(        rJ  | dddi|j                  ||      }	 |	j                  t
        j                  |j                         |j                         f         }
 |	j                  t
        j                  |j                         |j                         f         }t        j                   |
t        j"                  |d	      k(        sJ y)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    s   
 G#	
 	/0#5PQRDAq	Qq!tW[[]AadGKKM3	7B	Qq!tW[[]AadGKKM3	7B[[R FB' %	M  
 
c!Qi  3;;ruuRXXZ345D			ruuRXXZ%;<	=Bvvdbii33444
 
 
c!Qi  3;;ruuRXXZ345D			ruuRXXZ%;<	=B66$"))BQ//000r4   c                      dgdggddg}} t        j                         }|j                  | |       t        |j                  d       y )Nr;   r   r   r$   r   )r   r<   r=   r   _gammar   s      r2   test_gamma_scaler  1  s=    EC5>Aq6qA
'')CGGAqM

A&r4   zSVM, params)rs  rp  rv  epsilon_insensitiverp  rv  squared_epsilon_insensitivec                 x   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 | |j                  dd       t        j                  |      j                  ||      }	t        j                  |      j                  |||      }
dD ]A  }t        ||      s t        |	|      |      } t        |
|      |      }t        ||d       C y )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  :  s    	FFFFFFFFFFFFFFFF!	
$ hhw'	A* 	8	A 
Aq6	B	Aq1u:	BGG#a&1*-MM#a&(#
B,>BM &89NN''%$7JJ~.221a8Mjj044
Bm 5 O 3 R>6*$BGM6$B1$E!!A&!A!!D13EDQ	Rr4   Klassc                 `   t        j                  dgdgdgdgdgg      }t        j                  |j                  d         } |        }t	        |d      rJ |j                  ||       |j                  d   |j                  j                  d   k(  sJ |j                  j                  dk(  sJ y )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4A
		!''!*A
'CsL)))GGAqM>>! 4 4 : :1 ====>>!###r4   c                 2   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                        |        | |      j                  ||      } | d      j                  ||      } | d	      j                  ||      }|j                  ||      |j                  ||      k(  sJ |j                  ||      |j                  ||      k(  sJ t        |d
      rt        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             yt        |j                  |      |j                  |             t        |j                  |      |j                  |             y)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 ]r  }| |   j                  d      ||   j                  d      z  |||f<   |||fxx   | |   j                  d      ||   j                  d      z  z  cc<   |||f   |||f<   t  |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%%%%!"%
!"%
HHj*-.
# 	&BB
+ &rFLL-2S0AA"b&	"b&	RV\\#.Bc1B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rvva~q)M*..tQ7DH%))!Q/DM*..q!4D::dA$**Q"2222::dA$**Q"2222t()..t4d6L6LQ6OP..t4d6L6LQ6OP4<<-t||A?4<<-t||A?T*DLLO<T*DLLO<r4   c                     t        j                  d      j                  t        t              } d| j
                  d<   d}t        j                  t        |      5  | j                  t               ddd       y# 1 sw Y   yxY w)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CNN1
:C	z	- A  s   A::Bzestimator, expected_n_iter_typer  )r%   r&   r   c                 H   t        |||      }|\  }} | d      j                  ||      j                  }t        |      |k(  sJ | t        j
                  t        j                  fv r:t        t        j                  |            }|j                  ||dz
  z  dz  fk(  sJ y y )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h'++Aq199F<////SWWcii((		!%	||	Y] ;q @BBBB )r4   c           	          t        d| ddt        j                  t                    }|du sJ t        d| ddt        j                  t              j                        }|du sJ y )Nautoru  r   FTr   rU   asarrayr>   rq   r  s     r2   test_dual_autor'    sT     $FD$rzz!}MD5==#FD$rzz!}OD4<<r4   c            	          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 y )
Nr$  rq  ru  r   Tr  rr  rt  Fr%  )rv  s    r2   test_dual_auto_edge_casesr)    s    #FGT5"**Q-PD4<<#%tUBJJqMD 4<<#ubjjmooD 5==r4   zEstimator, make_datasetC_infinfc                      ||      \  }} | |      j                  ||      } | d      j                  ||      }t        |j                  |      |j                  |             y)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    sc     %78DAq%(,,Q2O!D)--a3%--a0/2I2I!2L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 % / 4 2  : 5 I I 1 	"XBx"bAq6Aq6Aq6:"X1v1v* M$ M$`GGTD(+&+RN<9" 
 
(ED #)) 45&+ 6&+RC004 wsww			&DE F4 wsww			D8I&JK L49 	NO	LM	NO	PQ	VW 	8  
 S3q6\D6CF?#	34  
3
 3  GG	
 
01	 
   45	(  
3&3 	c6]KL	66"266BRST 
   [),>+MN	!78  
>> #''399cii06O   ./	!78  
77"
J .9# :#L	 .9% :% .9* :* '?!;<T4L1$/ 0 2 =2#)LM2!CH&5  }}$AN(.-$  " # #L " " 	 KL0 M 0*
$"#41)IX cggsyy%9: ; cggsyy%9:%1 ;%1P' 	ouMN	otLM	ouMN	gtDE	2DAB	:DIJ	:DIJ.R .Rb ;U";<
$ =
$ sww&89"= :"=J
 %	"**	BJJ	#	C	#	 C		C" /3P!QR S 	gg"#cgg%?@ 2665<"89
N :	

Nr4   