
    >[g8                     \   d Z ddlmZ ddlZddlZddlmZ ddlm	Z	m
Z
mZmZmZmZmZ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mZmZ ej<                  j?                  d      jA                  ddd	      Z!ej<                  j?                  d      jA                  ddd
      Z"de!jF                  _$        de"jF                  _$         e	d       ed      z   Z% e	d       e	d       ed      d e	dd      z  d e	d      z  e%d e	ddg      z  d edd      z  d edd      z  d edd      z  d edd      z  d eddgd      z  d eddgd      z  d eddgd      z   edd       edd       ed       ed      dz   e	dg       edg      gZ&eD ]   Z'e'd v re&jQ                   ed!e'"             " ejR                  jU                  d#e&      d$        Z+ejR                  jU                  d#e&D  cg c]  }  e,| eef      s|  c}       d%        Z-ejR                  jU                  d#e&D  cg c]	  } | e%k7  r|  c}       d&        Z.ejR                  jU                  d#e&      d'        Z/d( Z0d) Z1ejR                  jU                  d#e&D  cg c]  } | je                         s|  c}       d*        Z3ejR                  jU                  d#e&      d+        Z4d, Z5d- Z6ejR                  jU                  d#e&      d.        Z7ejR                  jU                  d#e&      d/        Z8d0 Z9ejR                  jU                  d#e&      d1        Z:ejR                  jU                  d#e&      d2        Z;ejR                  jU                  d#e&      d3        Z<d4 Z=yc c} w c c} w c c} w )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                 z    t                  t        d      \  }}|j                  d   t        j                  d   k(  sJ |j                  d   t        j                  d   k(  sJ |j                  d    j                  j                  d   k(  sJ  fd}t	         j                  |d      }t        ||d       y )	NTeval_gradientr   r   r   c                 F    j                  |       } |t        d      }|S )NFr4   )clone_with_thetaX)thetakernel_cloneKr2   s      f/var/www/html/bid-api/venv/lib/python3.12/site-packages/sklearn/gaussian_process/tests/test_kernels.pyeval_kernel_for_thetaz3test_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_gradientrD   J   s     6]F1D1MAzA!''!*,,,A!''!*,,,A&,,"4"4Q"7777
 'v||5JER
$5q9r>   c                    t        |       } | j                  } | t        d      \  }}t        | j                  j
                        j                  j                         }|D cg c]  }|j                  dk7  s|j                    }}t        d t        d |            }t        d | j                  D              t        |      k(  sJ t        | j                        D ]6  \  }}	||   t        j                  t!        | |	j                              k(  r6J  t        | j                        D ](  \  }}	| j#                         }
d|
|	j                  dz   <   | j                  } |di |
} |t        d      \  }}|j$                  d	   |j                  j$                  d	   d
z   k(  sJ |j$                  d   |j$                  d   d
z   k(  sJ |d	kD  r1|d | |j                  d | k(  sJ t'        |dd |f   |dd |f          |d
z   t)        | j                        k  s||d
z   d  |j                  |d  k(  sJ t'        |d|d
z   d f   |d|d f          + t        | j                        D ]  \  }}	t        j                  d      ||<   || _        t+        t!        | |	j                        d       t-        | |	j                  d       t+        | j                  |   t        j                  d              y c c}w )NTr4   selfc                      | dt        d        S )Nr   _bounds)lenss    r<   <lambda>z#test_kernel_theta.<locals>.<lambda>q   s    !AY(r>   c                 $    | j                  d      S )NrH   )endswithrJ   s    r<   rL   z#test_kernel_theta.<locals>.<lambda>q   s    1::i;Pr>   c              3   4   K   | ]  }|j                     y wN)name).0hyperparameters     r<   	<genexpr>z$test_kernel_theta.<locals>.<genexpr>s   s     P9O~~""9Os   r%   rH   r   r   r   .*   +    )r   r9   r8   r   	__class____init__
parametersvaluesrQ   mapfiltersethyperparameters	enumeratenploggetattr
get_paramsrA   r   rI   r   setattr)r2   r9   _rB   	init_signpargs
theta_varsirS   paramskernel_class
new_kernelK_gradient_news                 r<   test_kernel_thetarp   ^   s    6]FLLE1D1MAz &**334??FFHI%:Iq6)9AFFID:(&1PRV*WJ P9O9OPPTWU    'v'='=>>Qx266'&.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":aGFN,?,?@"E++R0FLLORVVBZ8 ?C ;s   $K:9K:c                 n    t        |       }  | t              } | t        t              }t        ||d       y Nr   )r   r8   r   )r2   K_autoK_crosss      r<   test_auto_vs_crossru      s-     6]FAYFQlG+r>   c                     t        |       } t        j                   | t                    }| j                  t              }t	        ||d       y rr   )r   ra   diagr8   r   )r2   K_call_diagK_diags      r<   test_kernel_diagrz      s6    6]F''&)$K[[^FVQ/r>   c                      t         t        d      dz   t               dt        d      z   t                     t         dt        d      z  t               t        d      dz  t                     y )Nr   r/   r   )r   r   r8   rW   r>   r<    test_kernel_operator_commutativer|      sV     SC+ncCHna-@A s3x+nc#hna-@Ar>   c                  8   dt        ddg      z  }  | t              }t        j                         }|d d dfxx   dz  cc<   d t        d      |      z  }t        ||       t        j                         }|d d dfxx   dz  cc<   d t        d      |      z  }t        ||       | j                  t        j                  d      z   | _        t        | j                  t        j                  g d             t        | j                  j                  d	d
g       y )Nr   r"   r   r   r@   r   r   )g      @r/   r)   r/   r)   )
r   r8   copyr   r9   ra   rb   r   k2r   )r2   r;   X1K1X2K2s         r<   test_kernel_anisotropicr      s    3Sz?"Fq	A	
Bq!tHMH	xs3x|	B2	
Bq!tHMH	xs3x|	B2 <<"&&)+FLv||RVVO%<=vyy--Sz:r>   c                     t        |       }  | t        t        dz         }t        |d   t        j                  |             y )Nr   )r   r   )r   r8   r   ra   rw   )r2   r;   s     r<   test_kernel_stationaryr      s3     6]Fq!a%A$,r>   c                     t        |       } t        | t              r%| j                  | j                  j                  k(  sJ t        | t
              r>| j                  | j                  j                  xs | j                  j                  k(  sJ y y rP   )r   
isinstancer	   requires_vector_inputr2   r   k1r   r2   s    r<   test_kernel_input_typer      sv    6]F&.)++v}}/R/RRRR&.)++II++Nvyy/N/N
 	
 
 *r>   c                      t        t        d      g      } | j                  rJ t        t        d      t        d      g      } | j                  sJ y )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                     t        t        |       t        |      z         D ]3  }|j                  d      st        | |      }t        ||      }||k(  r3J  y )Nhyperparameter_)r^   dir
startswithrc   )kernel1kernel2attrattr_value1attr_value2s        r<   check_hyperparameters_equalr      sQ    CL3w</0??,-!'40K!'40K+---	 1r>   c                     t        |       } t        |       }| |k(  sJ t        |       t        |      k7  sJ | j                         |j                         k(  sJ t        | |       y rP   )r   idrd   r   )r2   kernel_cloneds     r<   test_kernel_cloner      si    6]F&MM ]"""f:M**** -":":"<<<<  6r>   c                    t        |       } d}t        |       }| j                         }t        t        f}d|v rt	        | |      s|d   }t        j                  |      r|d   |d<   ||d<   n|gdz  |d<   |dz  |d<    |j                  di | t        |      }|j                         |j                         k(  sJ t        |      t        |      k7  sJ t        ||       y y y )N)gh㈵>g     j@r   r   r#   r   rW   )
r   rd   r
   r   r   ra   iterable
set_paramsr   r   )r2   boundsr   rl   isotropic_kernelsr   kernel_cloned_clones          r<   "test_kernel_clone_after_set_paramsr   
  s   6]F F&MM F'):;
6;L(Mn-;;|$%1!_F>",2F()&2^a%7F>",2QJF()   *6*#M2"--/=3K3K3MMMM%&"]*;;;;#M3FG )Nr>   c                      t        dd      t              } t        t        j                  |       t        j
                  t        j                  d                t        j                  t        t        t        d             } t        dd      t              } t        | |        t        d      t              } t        t        j                  d      t              } t        | |       t        | |       d	}d
D ]?  } t        |d      t              } t        ||z   d      t              }t        ||       A d} t        |d      t              } t        d      t              }t        ||d       y )Nr'   r/   )r&   r   r   F)squaredr"   r   r?   )r"   r'   r(   d   r   )decimal)r   r8   r   ra   rw   onesrA   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*!CS!!$E+"&&s+A.Aa'Au D,Vr,Q/3VrDys3A6!"b) 
 E	+5s	+A	.B	#	q	!Bb"a0r>   c                     t        |       } | t        k7  r) | t              }t        t        |       }t	        ||        | t        t
              }t        t        t
        |       }t	        ||       y )N)r1   )r   kernel_rbf_plus_whiter8   r   r   Y)r2   r   r   s      r<   test_kernel_versus_pairwiser   E  s\    6]F && AYa/!"b) 
1B	!Qv	.Bb"%r>   c           	         t        |       } d}| j                         }| j                  D ]  }t        dt	        |j
                              r|j
                  dk(  r2|j                  }|dkD  rBt        t        j                  | j                  |||z          ||j                            ||z  }t        t        j                  | j                  |         ||j                            |dz  } d}d}| j                  D ]  }t        dt	        |j
                              r|j
                  dk(  r2|j                  }|dkD  r[ | j                  di |j                  |g|z  i t        t        j                  | j                  |||z          |g|z         ||z  } | j                  di |j                  |i t        t        j                  | j                  |         |       |dz  } y )Nr   stringr%   r   
   rW   )r   rd   r_   r   typer   
n_elementsr   ra   r   r9   rQ   r   )r2   indexrl   rS   sizevalues         r<   test_set_get_paramsr   X  s   6]F E F 00h^%:%: ;<$$/((!8v||EEDL9:F>CVCV<W TMEv||E*+VN4G4G-H QJE 1  EE 00h^%:%: ;<$$/((!8FF!4!4ugn EFv||EEDL9:UGdN TMEF=!4!4e <=v||E': ;UCQJE 1r>   c                 0    t        |       } t        |        y rP   )r   reprr   s    r<   test_repr_kernelsr     s    6]F 	Lr>   c                      t        ddg      } d}t        j                  t        |      5   | t               d d d        y # 1 sw Y   y xY w)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A)>__doc__inspectr   numpyra   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parametrizerD   r   rp   ru   rz   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&v/C/C/EvGF-- 7+
 ,
(. 7+7 ,7" 7+H ,H:1: 7+& ,&$ 7+' ,'T 7+ ,W	vn Gs   N
N$
N)
5N)
