
    -i8                        S r SSKJr  SSKrSSKrSSKJr  SSKJ	r	J
r
JrJrJrJrJrJrJrJrJrJr  SSKJrJrJr  SSKJrJrJrJr  \R<                  R?                  S5      RA                  SSS	5      r!\R<                  R?                  S5      RA                  SSS
5      r"S\!RF                  l$        S\"RF                  l$        \	" SS9\" SS9-   r%\	" SS9\	" SS9\" SS9S\	" SSS9-  S\	" SS9-  \%S\	" SS/S9-  S\" SSS9-  S\" SSS9-  S\" SSS9-  S\" SSS9-  S\" SS/SS9-  S\" SS/SS9-  S\" SS/SS9-  \" SSS9\" SSS9\" SS9\" SS9S-  \	" S/S9\" S/S9/r&\ H!  r'\'S ;   a  M  \&RQ                  \" S!\'S"95        M#     \RR                  RU                  S#\&5      S$ 5       r+\RR                  RU                  S#\& V s/ s H  n \," U \\45      (       a  M  U PM     sn 5      S% 5       r-\RR                  RU                  S#\& V s/ s H  n U \%:w  d  M  U PM     sn 5      S& 5       r.\RR                  RU                  S#\&5      S' 5       r/S( r0S) r1\RR                  RU                  S#\& V s/ s H  o Re                  5       (       d  M  U PM     sn 5      S* 5       r3\RR                  RU                  S#\&5      S+ 5       r4S, r5S- r6\RR                  RU                  S#\&5      S. 5       r7\RR                  RU                  S#\&5      S/ 5       r8S0 r9\RR                  RU                  S#\&5      S1 5       r:\RR                  RU                  S#\&5      S2 5       r;\RR                  RU                  S#\&5      S3 5       r<S4 r=gs  sn f s  sn f s  sn f )5z+Testing for kernels for Gaussian processes.    )	signatureN)clone)RBFCompoundKernelConstantKernel
DotProductExponentiationExpSineSquaredKernelOperatorMaternPairwiseKernelRationalQuadraticWhiteKernel_approx_fprime)PAIRWISE_KERNEL_FUNCTIONSeuclidean_distancespairwise_kernels)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equal   )      )   r   F       @length_scale      @noise_level)      ?r   )length_scale_boundsg      $@)constant_valuegQ?fixed)r   r#   r"   )r   nu      ?      @      @)r   alpha)r   periodicity)sigma_0r   )additive_chi2chi2      ?)gammametrickernelc                 x  ^  [        T 5      m T " [        SS9u  pUR                  S   [        R                  S   :X  d   eUR                  S   [        R                  S   :X  d   eUR                  S   T R                  R                  S   :X  d   eU 4S jn[	        T R                  US5      n[        X$S5        g )	NTeval_gradientr   r   r   c                 @   > TR                  U 5      nU" [        SS9nU$ )NFr4   )clone_with_thetaX)thetakernel_cloneKr2   s      ^/var/www/html/venv/lib/python3.13/site-packages/sklearn/gaussian_process/tests/test_kernels.pyeval_kernel_for_theta3test_kernel_gradient.<locals>.eval_kernel_for_thetaT   s$    ..u5%0    绽|=   )r   r8   shaper9   r   r   )r2   r;   
K_gradientr=   K_gradient_approxs   `    r<   test_kernel_gradientrE   J   s     6]F1D1MAA!''!*,,,A!''!*,,,A&,,"4"4Q"7777
 'v||5JER
q9r?   c                    [        U 5      n U R                  nU " [        SS9u  p#[        U R                  R
                  5      R                  R                  5       nU Vs/ s H   oUR                  S:w  d  M  UR                  PM"     nn[        S [        S U5      5      n[        S U R                   5       5      [        U5      :X  d   e[        U R                  5       H6  u  pX   [        R                  " [!        X	R                  5      5      :X  a  M6   e   [        U R                  5       GH)  u  pU R#                  5       n
SXR                  S-   '   U R                  nU" S0 U
D6nU" [        SS9u  p-UR$                  S	   UR                  R$                  S	   S
-   :X  d   eUR$                  S   UR$                  S   S
-   :X  d   eUS	:  a2  US U UR                  S U :X  d   e['        USS U24   USS U24   5        US
-   [)        U R                  5      :  d  M  XS
-   S  UR                  US  :X  d   e['        USUS
-   S 24   USUS 24   5        GM,     [        U R                  5       H  u  p[        R                  " S5      X'   Xl        [+        [!        X	R                  5      S5        [-        X	R                  S5        [+        U R                  U   [        R                  " S5      5        M     g s  snf )NTr4   selfc                      U S[        S5      *  $ )Nr   _bounds)lenss    r<   <lambda>#test_kernel_theta.<locals>.<lambda>q   s    !AY(r?   c                 $    U R                  S5      $ )NrI   )endswithrK   s    r<   rM   rN   q   s    1::i;Pr?   c              3   8   #    U  H  oR                   v   M     g 7fN)name).0hyperparameters     r<   	<genexpr>$test_kernel_theta.<locals>.<genexpr>s   s     P9O~""9Os   r%   rI   r   r   r   .*   +    )r   r9   r8   r   	__class____init__
parametersvaluesrS   mapfiltersethyperparameters	enumeratenploggetattr
get_paramsrB   r   rJ   r   setattr)r2   r9   _rC   	init_signpargs
theta_varsirU   paramskernel_class
new_kernelK_gradient_news                 r<   test_kernel_thetars   ^   s    6]FLLE1D1MA &**334??FFHI%:Iq6)9FAFFID:(&1PRV*WJ P9O9OPPTWU    'v'='=>x266'&2E2E"FGGGG ? 'v'='=>""$29""Y./''!+F+
 'q={{1~!1!1!7!7!:Q!>>>>"n&:&:1&=&AAAAq5!9
 0 0! 4444z#rr'2N374KLq53v--..Q>Z%5%5ab%9999z#q1uw,7QR9PQ! ?& 'v'='=>66":GF,?,?@"E++R0FLLORVVBZ8 ?C ;s    K=7K=c                 l    [        U 5      n U " [        5      nU " [        [        5      n[        XS5        g Nr   )r   r8   r   )r2   K_autoK_crosss      r<   test_auto_vs_crossrx      s+     6]FAYFQlG+r?   c                     [        U 5      n [        R                  " U " [        5      5      nU R                  [        5      n[	        XS5        g ru   )r   rd   diagr8   r   )r2   K_call_diagK_diags      r<   test_kernel_diagr}      s4    6]F''&)$K[[^FQ/r?   c                      [        [        S5      S-   " [        5      S[        S5      -   " [        5      5        [        S[        S5      -  " [        5      [        S5      S-  " [        5      5        g )Nr   r/   r   )r   r   r8   rZ   r?   r<    test_kernel_operator_commutativer      sN     SC+cCHna-@A s3x+c#hna-@Ar?   c                  8   S[        SS/5      -  n U " [        5      n[        R                  5       nUS S 2S4==   S-  ss'   S[        S5      " U5      -  n[        X5        [        R                  5       nUS S 2S4==   S-  ss'   S[        S5      " U5      -  n[        X5        U R                  [
        R                  " S5      -   U l        [        U R                  [
        R                  " / SQ5      5        [        U R                  R                  S	S
/5        g )Nr   r"   r   r   rA   r   r   )g      @r/   r)   r/   r)   )
r   r8   copyr   r9   rd   re   r   k2r   )r2   r;   X1K1X2K2s         r<   test_kernel_anisotropicr      s    3Sz?"Fq	A	
Bq!tHMH	s3x|	B	
Bq!tHMH	s3x|	B <<"&&)+FLv||RVVO%<=vyy--Sz:r?   c                     [        U 5      n U " [        [        S-   5      n[        US   [        R                  " U5      5        g )Nr   )r   r   )r   r8   r   rd   rz   )r2   r;   s     r<   test_kernel_stationaryr      s3     6]Fq!a%A$,r?   c                 B   [        U 5      n [        U [        5      (       a&  U R                  U R                  R                  :X  d   e[        U [
        5      (       aD  U R                  U R                  R                  =(       d    U R                  R                  :X  d   eg g rR   )r   
isinstancer	   requires_vector_inputr2   r   k1r   r2   s    r<   test_kernel_input_typer      s|    6]F&.))++v}}/R/RRRR&.))++II++Nvyy/N/N
 	
 
 *r?   c                      [        [        SS9/5      n U R                  (       a   e[        [        SS9[        SS9/5      n U R                  (       d   eg )Nr   r    r   r   )r   r   r   r   r   s    r<   test_compound_kernel_input_typer      sK    [S9:;F++++[S93C;PQRF''''r?   c                     [        [        U 5      [        U5      -   5       H8  nUR                  S5      (       d  M  [        X5      n[        X5      nX4:X  a  M8   e   g )Nhyperparameter_)ra   dir
startswithrf   )kernel1kernel2attrattr_value1attr_value2s        r<   check_hyperparameters_equalr      sN    CL3w</0??,--!'0K!'0K---	 1r?   c                     [        U 5      n [        U 5      nX:X  d   e[        U 5      [        U5      :w  d   eU R                  5       UR                  5       :X  d   e[        X5        g rR   )r   idrg   r   )r2   kernel_cloneds     r<   test_kernel_cloner      se    6]F&MM """f:M**** -":":"<<<<  6r?   c                    [        U 5      n Sn[        U 5      nU R                  5       n[        [        4nSU;   a  [	        X5      (       d  US   n[
        R                  " U5      (       a  US   US'   XS'   OU/S-  US'   US-  US'   UR                  " S0 UD6  [        U5      nUR                  5       UR                  5       :X  d   e[        U5      [        U5      :w  d   e[        X&5        g g g )N)gh㈵>g     j@r   r   r#   r   rZ   )
r   rg   r
   r   r   rd   iterable
set_paramsr   r   )r2   boundsr   ro   isotropic_kernelsr   kernel_cloned_clones          r<   "test_kernel_clone_after_set_paramsr   
  s    6]F F&MM F'):;
6(M(Mn-;;|$$%1!_F>",2()&2^a%7F>",2QJF()  *6*#M2"--/=3K3K3MMMM%&"]*;;;;#MG )Nr?   c                     [        SSS9" [        5      n [        [        R                  " U 5      [        R
                  " [        R                  S   5      5        [        R                  " [        [        [        SS9* 5      n[        SSS9" [        5      n [        X5        [        SS9" [        5      n[        [        R                  SS9" [        5      n [        X5        [        X5        S	nS
 H8  n[        USS9" [        5      n[        XC-   SS9" [        5      n[        XV5        M:     Sn[        USS9" [        5      n[        SS9" [        5      n[        XVSS9  g )Nr'   r/   )r&   r   r   F)squaredr"   r   r@   )r"   r'   r(   d   r   )decimal)r   r8   r   rd   rz   onesrB   expr   r   infr   )r;   K_absexpK_rbftinyr&   r   r   larges           r<   test_matern_kernelr   (  s   #C(+Abggaj"''!''!**=>vv*1a??@H#C(+Aa*S!!$E"&&s+A.Aa'A Dr,Q/rys3A6!") 
 E	5s	+A	.B	#	q	!Bba0r?   c                     [        U 5      n U [        :w  a%  U " [        5      n[        [        U S9n[	        X5        U " [        [
        5      n[        [        [
        U S9n[	        X5        g )N)r1   )r   kernel_rbf_plus_whiter8   r   r   Y)r2   r   r   s      r<   test_kernel_versus_pairwiser   E  sX    6]F && AYa/!") 
1B	!Qv	.Bb%r?   c           	         [        U 5      n SnU R                  5       nU R                   H  n[        S[	        UR
                  5      5      (       a  UR
                  S:X  a  M9  UR                  nUS:  aA  [        [        R                  " U R                  XU-    5      X#R                     5        X-  nM  [        [        R                  " U R                  U   5      X#R                     5        US-  nM     SnSnU R                   H  n[        S[	        UR
                  5      5      (       a  UR
                  S:X  a  M9  UR                  nUS:  a[  U R                  " S0 UR                  U/U-  0D6  [        [        R                  " U R                  XU-    5      U/U-  5        X-  nM  U R                  " S0 UR                  U0D6  [        [        R                  " U R                  U   5      U5        US-  nM     g )Nr   stringr%   r   
   rZ   )r   rg   rb   r   typer   
n_elementsr   rd   r   r9   rS   r   )r2   indexro   rU   sizevalues         r<   test_set_get_paramsr   X  s   6]F E F 00h^%:%: ;<<$$/((!8v||EDL9:FCVCV<W MEv||E*+V4G4G-H QJE 1  EE 00h^%:%: ;<<$$/((!8F!4!4ugn EFv||EDL9:UGdN ME=!4!4e <=v||E': ;UCQJE 1r?   c                 0    [        U 5      n [        U 5        g rR   )r   reprr   s    r<   test_repr_kernelsr     s    6]F 	Lr?   c                      [        SS/S9n Sn[        R                  " [        US9   U " [        5        S S S 5        g ! , (       d  f       g = f)Nr/   r   zeRationalQuadratic kernel only supports isotropic version, please use a single scalar for length_scale)match)r   pytestraisesAttributeErrorr8   )r2   messages     r<   test_rational_quadratic_kernelr     s=    S#J7F	" 
 
~W	5q	 
6	5	5s	   =
A)>__doc__inspectr   numpyrd   r   sklearn.baser    sklearn.gaussian_process.kernelsr   r   r   r   r	   r
   r   r   r   r   r   r   sklearn.metrics.pairwiser   r   r   sklearn.utils._testingr   r   r   r   randomRandomStatenormalr8   r   flags	writeabler   kernelsr1   appendmarkparametrizerE   r   rs   rx   r}   r   r   is_stationaryr   r   r   r   r   r   r   r   r   r   r   r   s   0r<   <module>r      s   1
        
  II!##Aq&1II!##Aq&1   -0LL SJ'$'#4W
==#3
#C:
&&&d
@@&cc
**&cc
**&cc
**&sCjS
11&sCjS
11&sCjS
113c25ssq cU
), (F**NN>F;< ( 7+: ,:&  F6NN#CD 	/9/9d  F** 	,, 7+0 ,0B;* GFG&/C/C/EvGF-- 7+
 ,
(. 7+7 ,7" 7+H ,H:1: 7+& ,&$ 7+' ,'T 7+ ,W	vn Gs$   
M:
"M:

M?
M?
2N
N
