
    ri>                     .	   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZmZmZ  ej<                  d
dgddgdd
gddgddgddgg      Zg dZ  ej<                  ddgddgddgg      Z!g dZ" ej<                  g dg dg dg dg dg      Z#g dZ$ ej<                  g dg dg dg      Z%g dZ& ejN                         Z(ejR                  jU                  d       Z+e+jY                  e(jZ                  j\                        Z/e(j`                  e/   e(_0        e(jZ                  e/   e(_-         eddd       \  Z1Z2d Z3ejh                  jj                  eejh                  jm                  dee e!ge#e$e%ge1dd e2dd e1dd ge(j`                  e(jZ                  e(j`                  gg      ejh                  jm                  d g d!      ejh                  jm                  d"eez         d#                                    Z7ejh                  jm                  d$e      d%        Z8ejh                  jm                  d&e      d'        Z9eejh                  jm                  d$e      ejh                  jm                  d g d(      d)                      Z:ejh                  jm                  d$e      d*        Z;ejh                  jm                  d&e      d+        Z<ejh                  jm                  d, e=ee            d-        Z>ejh                  jm                  d$e      d.        Z?ejh                  jm                  d$e      d/        Z@ejh                  jm                  d&e      d0        ZAd1 ZBejh                  jm                  dede!ge#de%ge1dd de1dd ge(j`                  de(j`                  gg      ejh                  jm                  d g d!      ejh                  jm                  d"eez         ed2                             ZCejh                  jm                  d$e      d3        ZDejh                  jm                  d&e      d4        ZEejh                  jm                  d&e      d5        ZFejh                  jj                  d6        ZGy)7    N)sparse)basedatasetslinear_modelsvm)load_digits
make_blobsmake_classification)ConvergenceWarning)test_svm)assert_allcloseassert_array_almost_equalassert_array_equalignore_warningsskip_if_32bit)safe_sparse_dot)CSR_CONTAINERSDOK_CONTAINERSLIL_CONTAINERS      )r   r   r   r   r   r      )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   )r   r   r   )r   r   r   d   
   )	n_samplescentersrandom_statec                 r   t        j                  |       }| j                  |j                         |       t	        j
                  |      r|j                         }n|}|j                  ||       t	        j
                  |j                        sJ t	        j
                  |j                        sJ t        | j                  |j                  j                                t        | j                  |j                  j                                | j                  dk(  rOt	        j
                  |j                        sJ t        | j                  |j                  j                                t        | j                  |j                         t        | j                  |      |j                  |             t        | j                  |      |j                  |             t        | j                  |      |j                  |             t        | t         j"                        rd}n:t%        | d      r,t        | j'                  |      |j'                  |      d       d}t	        j
                  |      r6t)        j*                  t,        |      5  | j                  |       d d d        y y # 1 sw Y   y xY w)Nlinearz>cannot use sparse input in 'OneClassSVM' trained on dense datapredict_proba   decimalz6cannot use sparse input in 'SVC' trained on dense datamatch)r   clonefittoarrayr   issparsesupport_vectors_
dual_coef_r   kernelcoef_r   support_predictdecision_function
isinstancer   OneClassSVMhasattrr"   pytestraises
ValueError)	dense_svmX_trainy_trainX_test
sparse_svmX_test_densemsgs          [/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/svm/tests/test_sparse.pycheck_svm_model_equalrA   4   s    I&JMM'//#W-v~~'NN7G$??:66777??:00111I..
0K0K0S0S0UVI((**?*?*G*G*IJ8#z//000!)//:3C3C3K3K3MNI&&
(;(;<I%%l3Z5G5G5OP##L1:3O3OPV3W ##L1$$\2 )S__-N9o.%''5((0
 Gv]]:S1 	&f%	& 	& 	& 	&s   J--J6zX_train, y_train, X_testP   r.   )r!   polyrbfsigmoidsparse_containerc                 d     ||       } t        j                  d|ddd      }t        || ||       y)z3Check that sparse SVC gives the same result as SVC.r   Tr   ovo)gammar.   probabilityr   decision_function_shapeN)r   SVCrA   r:   r;   r<   r.   rF   clfs         r@   test_svcrO   a   s;     w'G
'' %C #w8    csr_containerc                     t        d      \  }}  |dd       }|d d |d d }}t        dd      }  |      }t        j                  ddd	
      j	                  ||      j
                  }t        j                  ddd	
      j	                  ||      }|j
                  }t        ||j                         fi |  fd}	 |	|      }
 |	|      }|
j                  rJ |j                  rJ t        j                  ddd	
      j	                  |
|      }|j
                  }t        |j                         |j                         fi | t        |j                  |      |j                  |      fi | y )NT)
return_X_y2   r   g-q=g+=)rtolatolr!   r   )r.   rJ   r   c                 \   g }g }t        dt        | j                              D ]e  }t        | j                  |dz
  |dz     }|j	                  | j
                  |   d d d          |j	                  | j                  |   d d d          g  ||| j                  f| j                        S )Nr   r   )shape)rangelenindptrsliceextenddataindicesrX   )Xnew_datanew_indicesi	row_slicerQ   s        r@   scramble_indicesz/test_unsorted_indices.<locals>.scramble_indices   s    q#ahh-( 	;AqxxAA67IOOAFF9-dd34qyy3DbD9:	; hQXX>aggNNrP   )
r   dictr   rL   r)   r/   r   r*   has_sorted_indicesr"   )rQ   r`   yr<   tolsX_sparse
coef_dense
sparse_svccoef_sortedre   X_sparse_unsortedX_test_unsortedunsorted_svccoef_unsorteds   `             r@   test_unsorted_indicesrr   |   sx   
 $'DAq1R9%FSb61Sb6qAU'DQHxTBFFq!LRR  dKOO!J ""KJ 3 3 5>>O )2&v.O 3333111177(1MQQ1L !&&MM))+[-@-@-BKdK  1  ( rP   lil_containerc                    d } | t               }t        j                  d      j                  |t              }t        j                  |      j                  |t              }t        |j                  |      |j                  |             y )Nc                 .    t        | |j                        S N)r   Txrh   s     r@   kfuncz*test_svc_with_custom_kernel.<locals>.kfunc   s    q!##&&rP   r!   r.   r`   r   rL   r)   Yr   r1   )rs   rz   X_spclf_lin	clf_mylins        r@   test_svc_with_custom_kernelr      sg    ' DggX&**43Gu%))$2Iwt,i.?.?.EFrP   )r!   rC   rD   c                     | t         j                        }t        j                  |      j	                  |t         j
                        }t        j                  |      j	                  t         j                  t         j
                        }t        |j                  |j                  j                                t        |j                  |j                  j                                t        |j                  t         j                        |j                  |             |dk(  r/t        |j                  |j                  j                                y y )Nr{   r!   )irisr^   r   rL   r)   targetr   r,   r*   r-   r1   r/   )rQ   r.   iris_data_spsp_clfrN   s        r@   test_svc_irisr      s    
 !+LWWF#''dkkBF
''
 
$
$TYY
<CC((&*A*A*I*I*KLCNNF$5$5$=$=$?@CKK		*FNN<,HI		6<<#7#7#9: rP   c                 n    | t         j                        }t        j                  ddd      }|j	                  |t         j
                        }t        ||j                  j                        |j                  z   }t        ||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(              j#                                   t        j*                  g d      }t-        |j                  t              |d       y )	Nr!   皙?rH   )r.   CrK   r   )      gQr   gQ?      ?r   r   r$   )r   r^   r   rL   r)   r   r   r/   rw   
intercept_r   r2   r`   r}   npdotr1   ravelclasses_astypeintarrayr   )rQ   r   svcrN   dec
predictionexpecteds          r@   test_sparse_decision_functionr      s$    !+L
''S%
HC
'',
,C
,		
4s~~
ECC..|<= GGAqM
&&CIIKK
 3>>
1CQJCIIK!6!6q!9:CLL#"7"7":Q">!F!Fs!K!Q!Q!ST xx;<Hc33A6!LrP   c                 H   t        j                         } | t              }t        d d }t	        j
                  t              5  |j                  ||       d d d        |j                  |t               t        |j                  t              t               y # 1 sw Y   CxY w)Nr   )r   rL   r`   r}   r6   r7   r8   r)   r   r1   rw   true_result)rs   rN   r~   Y2s       r@   
test_errorr      su     '')CD	
3BB	z	" b GGD!s{{1~{3	 s   BB!zlil_container, dok_containerc                     | t               } |t              }t        j                  d      j	                  t         t
              }t        j                  d      j	                  |t
              }|j                  sJ t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  t               |j                  |             |j	                  t        t               |j	                  |t               t        |j                  |j                  d       t        |j                  |j                  d       y )Nr   r   r#   r$   )r`   X2r   	LinearSVCr)   r}   fit_interceptr   r/   r   r   r1   r   )rs   dok_containerr~   X2_sprN   r   s         r@   test_linearsvcr      s    
 D"E
--Q
'
+
+Aq
1C]]*..tQ7FciiqAcnnf.?.?KCKKNFNN4$89GGBO
JJubciiqAcnnf.?.?KrP   c                     | t         j                        }t        j                  d      j	                  |t         j
                        }t        j                  d      j	                  t         j                  t         j
                        }|j                  |j                  k(  sJ t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  t         j                        |j                  |             t        j                  |j                  |      d      }t        ||j                  t         j                               |j                          t!        ||j                  |             |j                          t!        ||j                  |             y )Nr   r   r   r$   )axis)r   r^   r   r   r)   r   r   r   r/   r   r   r1   r   argmaxr2   sparsifyr   )rQ   r   r   rN   preds        r@   test_linearsvc_irisr     s'    !+L]]*..|T[[IF
--Q
'
+
+DIIt{{
CC 4 4444ciiqAcnnf.?.?KCKK		*FNN<,HI 99V--l;!DDD#++dii01 LLNtS[[67
OOtV^^L9:rP   c                    t        ddddgd      \  }} | |      }t        j                         t        j                  d      t        j
                         fD ]b  }|j                  ddi	       |j                  |d d
 |d d
        |j                  |d
d        }t        j                  ||d
d  k(        dk\  rbJ  y )N   r   g-?gK7A`?r   )r   
n_featuresweightsr   r      )class_weight      )r
   r   LogisticRegressionr   r   rL   
set_paramsr)   r1   r   sum)rQ   X_y_rN   y_preds        r@   test_weightr   '  s     !#u~AFB 
r	B'')1%	 0
 	QF+4C"Tc(#RX&vvf34()R///0rP   c                 J    | t               }t        j                         }|j                  |t               t        |j                  t         d   g      dg       dgdz  dgdz  z   }|j                  |t        |       t        |j                  t         d   g      dg       y )Nr   r   r   r   r   )sample_weight       @r|   )rs   r~   rN   r   s       r@   test_sample_weightsr   :  s     D
'')CGGD!s{{AaD6*SE2EAIq(MGGD!=G1s{{AaD6*SE2rP   c                  J    t        j                  t        j                         y rv   )r   'test_dense_liblinear_intercept_handlingr   r    rP   r@   (test_sparse_liblinear_intercept_handlingr   H  s    44S]]CrP   c                 ^     ||       } t        j                  d|      }t        || ||       y )Nr   )rI   r.   )r   r4   rA   rM   s         r@   test_sparse_oneclasssvmr   M  s,     w'G
//&
1C#w8rP   c                    t        j                  g d      }t        j                  g dt         j                        }t        j                  dgdz  dgdz  z   dgd	z  z   d
gdz  z   t         j                        } | |||f      }t        j                  g d      }t        j                  d      j                  |j                         |      }t        j                  d      j                  |j                         |      }t        |j                  |j                  j                                t        |j                  |j                  j                                y )N)g!FO?gJ:o?g[?g?)   r   #      )dtyper      r       r   &   r#   r   )Pr           r   r   r   r   r   r   r   r   r   r   r   r   r   r         @r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r{   )r   r   int32r   rL   r)   r*   tocoor   r,   r-   )rQ   r^   r_   r[   r`   rh   rN   r   s           r@   test_sparse_realdatar   a  s   
 88ABD hh~RXX6GXXqcAgb(A383qcAg=RXXNFtWf-.A
Q	
S	Aj ''
"
&
&qyy{A
6CWWH%))!'')Q7Fs++V-D-D-L-L-NOs~~v'8'8'@'@'BCrP   c                    t        j                  dd dd      }t        j                  |      } | t              }|j                  |t               |j                  |      }|j                  |       t        j                  dd dd      }|j                  t        t              j                  t              }t        ||       y )Nr   c                      | |j                   z  S rv   rw   rx   s     r@   <lambda>z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    QSS rP   Tr   )r   r.   rJ   r   c                 B    t        j                  | |j                        S rv   )r   r   rw   rx   s     r@   r   z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    133 rP   )
r   rL   r   r(   r`   r)   r}   r1   r"   r   )rs   abr~   r   r9   
pred_denses          r@   *test_sparse_svc_clone_with_callable_kernelr     s     	!0dQRSA

1ADEE$N99T?DOOD
/TPQI q!$,,Q/Jz4(rP   c                     t        j                  dd ddd      }d}t        j                  t        |      5  |j                   | t              t               d d d        y # 1 sw Y   y xY w)Nr   c                      | |j                   z  S rv   r   rx   s     r@   r   ztest_timeout.<locals>.<lambda>  s    QSS rP   Tr   )r   r.   rJ   r   max_iterzoSolver terminated early \(max_iter=1\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r&   )r   rL   r6   warnsr   r)   r`   r}   )rs   spwarning_msgs      r@   test_timeoutr     s`    	
(dUV
B	:  
(	< $
}Q#$ $ $s   !A##A,c                     t        j                  ddd      } t        t              5  | j	                  t
        t              j                  t
              }d d d        t        j                  ddd      } t        t              5  | j	                  t
        t              j                  t
              }d d d        t               y # 1 sw Y   txY w# 1 sw Y   "xY w)NTr   r   )rJ   r   r   )category)	r   rL   r   r   r)   r`   r}   r"   r   )r   proba_1proba_2s      r@   test_consistent_probar     s    D11=A	"4	5 /%%1+++A./D11=A	"4	5 /%%1+++A./GW%/ // /s   .C
.C
CC)Hnumpyr   r6   scipyr   sklearnr   r   r   r   sklearn.datasetsr   r	   r
   sklearn.exceptionsr   sklearn.svm.testsr   sklearn.utils._testingr   r   r   r   r   sklearn.utils.extmathr   sklearn.utils.fixesr   r   r   r   r`   r}   rw   r   r   r   T2true_result2	load_irisr   randomRandomStaterngpermutationr   sizepermr^   X_blobsy_blobsrA   markthread_unsafeparametrizerO   rr   r   r   r   r   zipr   r   r   r   r   r   r   r   r   r   r   rP   r@   <module>r      s      5 5 I I 1 &  2  BHHr2hR2r(QFQFQFCDBHHr2hAA'( RXX RXX|Y	23xiiA
t{{''(IIdO	kk$RaH (&Z 	
Aq		R	"ws|WRS\2	DKK+	 #GH+^n-LM9 N I  9 .9. :.b .9G :G .9#<=; > : ; .9M :M6 .9
4 :
4 "C$GLL, .9; :;2 .90 :0$ .9
3 :
3D
 	
D!	T2	"tWRS\*	D$))$	 #GH+^n-LM9  N I9 .9gD :gDT .9) :)& .9	$ :	$ & &rP   