
    Pi+                        d Z ddlZddlZddl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 ddlmZ ddlmZ dd	lmZmZ d
 Z ej         ej        ddd                    j        Z ej        g d          j        Z ej         ee                                          dk    e          Z ee                                          Z  ej!        ej"        e          Z#de#e dk     <   de#e dk    e dk     z  <   de#e dk    <    edd          Z$ ed          e$ edd           edd           edd          z  gZ%d e%D             Z&ej'        (                    de%          d             Z)d Z*ej'        (                    de&          d             Z+ej'        (                    de%          d             Z,ej'        (                    de%          d              Z-ej'        (                    de&          d!             Z.ej'        (                    de%          d"             Z/d# Z0ej'        (                    de&          d$             Z1ej'        (                    de%          d%             Z2ej'        (                    de%          d&             Z3d' Z4ej'        (                    d(d ed          ie5d)fg          d*             Z6ej'        (                    de%          d+             Z7d, Z8d- Z9dS ).z+Testing for Gaussian process classification    N)approx_fprime)ConvergenceWarning)GaussianProcessClassifier)RBFCompoundKernelWhiteKernel)ConstantKernel)MiniSeqKernel)assert_almost_equalassert_array_equalc                 *    t          j        |           S )N)npsin)xs    {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/gaussian_process/tests/test_gpc.pyfr      s    6!99    
      )       @g      @g      @g      @g      @dtypegffffffֿ   gffffff?         ?fixedlength_scalelength_scale_boundsg?)r   )MbP?     @@g{Gz?      Y@c                 (    g | ]}|t           k    |S  )fixed_kernel).0kernels     r   
<listcomp>r)   /   s"    LLLV|5K5KV5K5K5Kr   r(   c                     t          |                               t          t                    }t	          |                    t                    |                    t                    d d df         dk               d S )Nr(   r         ?)r   fitXyr   predictpredict_probar(   gpcs     r   test_predict_consistentr4   2   sd     $6
2
2
2
6
6q!
<
<Cs{{1~~s'8'8';';AAAqD'AS'HIIIIIr   c                  *   g d} t          j        g d          }t          d          }t          |                              | |          }t          |                    |           |                    |           d d df         dk               d S )NAABBTFTr   baseline_similarity_boundsr+   r   r,   )r   arrayr
   r   r-   r   r0   r1   r.   r/   r(   r3   s       r   "test_predict_consistent_structuredr?   9   s    A
$$$%%Ag>>>F
#6
2
2
2
6
6q!
<
<Cs{{1~~s'8'8';';AAAqD'AS'HIIIIIr   c                     t          |                               t          t                    }|                    |j        j                  |                    | j                  k    sJ d S )Nr+   )r   r-   r.   r/   log_marginal_likelihoodkernel_thetar2   s     r   test_lml_improvingrD   B   so     $6
2
2
2
6
6q!
<
<C&&s{'899C<W<W= =      r   c                     t          |                               t          t                    }t	          |                    |j        j                  |                                d           d S )Nr+      )r   r-   r.   r/   r   rA   rB   rC   r2   s     r   test_lml_precomputedrG   K   sg     $6
2
2
2
6
6q!
<
<C##CK$5668S8S8U8UWX    r   c                 $   t          |                               t          t                    }t	          j        |j        j        j        t          j	                  }|
                    |d           t          |j        j        |d           d S )Nr+   r   F)clone_kernelrF   )r   r-   r.   r/   r   onesrB   rC   shapefloat64rA   r   )r(   r3   input_thetas      r   test_lml_without_cloning_kernelrN   T   sx     $6
2
2
2
6
6q!
<
<C'#++1DDDK%@@@);:::::r   c                    t          |                               t          t                    }|                    |j        j        d          \  }}t          j        t          j	        |          dk     |j        j        |j        j
        d d df         k    z  |j        j        |j        j
        d d df         k    z            sJ d S )Nr+   T-C6?r   r   )r   r-   r.   r/   rA   rB   rC   r   allabsbounds)r(   r3   lmllml_gradients       r   test_converged_to_local_maximumrV   ^   s     $6
2
2
2
6
6q!
<
<C33CK4EtLLC6				$; 2111a4 88	:; 2111a4 88	:      r   c                     t          |                               t          t                                        | j        d          \  }}t          | j        fdd          }t          ||d           d S )Nr+   Tc                 0                         | d          S )NF)rA   )rC   r3   s    r   <lambda>z#test_lml_gradient.<locals>.<lambda>s   s    C$?$?u$M$M r   g|=   )r   r-   r.   r/   rA   rC   r   r   )r(   rT   rU   lml_gradient_approxr3   s       @r   test_lml_gradientr\   l   s     $6
2
2
2
6
6q!
<
<C33FL$GGC'MMMMu  &91=====r   c                    d\  }}t           j                            |           }|                    ||          dz  dz
  }t          j        |                              d          t          j        d|z                                d          z   dk    }t          dd          t          d	g|z  d
g|z            z  }t           j         }t          d          D ]u}t          |||                               ||          }	|	                    |	j        j                  }
|
|t          j        t           j                  j        z
  k    sJ |
}vd S )N)   r   r   r   )axisrZ   r   r   r"   r    )rP   r#   r      )r(   n_restarts_optimizerrandom_state)r   randomRandomStaterandnr   sumCr   infranger   r-   rA   rB   rC   finfofloat32eps)global_random_seed	n_samples
n_featuresrngr.   r/   r(   last_lmlra   gprT   s              r   test_random_startsrs   y   s[    "Iz
)

 2
3
3C		)Z((1,q0A	A		A!2!2!2!:!:	:a?AsK  3Vj({mj>X$ $ $ F wH %a  &!5+
 
 
 #a))	 	
 (()9::X 4 4 888888 r   c                     fd}t          | |          }|                    t          t                     |                    |j        j                  |                    | j                  k    sJ d S )Nc                 ~   t           j                            	          }| | |d          }}t          d          D ]{}t          j        |                    t          j        d|d d df                   t          j        d|d d df                                       } | |d          }||k     r||}}|||fS )NF)eval_gradientr   r   r   )r   rc   rd   ri   
atleast_1duniformmaximumminimum)
obj_funcinitial_thetarS   rp   	theta_optfunc_min_rC   r   rm   s
            r   	optimizerz(test_custom_optimizer.<locals>.optimizer   s    i##$677H]%888 	 r 	/ 	/AMBJr6!!!Q$<88"*QqqqRSt:U:UVV E e444A8||&+Q8	(""r   )r(   r   )r   r-   r.   y_mcrA   rB   rC   )r(   rm   r   r3   s    `  r   test_custom_optimizerr      s    # # # # # $6Y
G
G
GCGGAt&& 		$	$V\	2	23 3 3 3 3 3r   c                 Z   t          |           }|                    t          t                     |                    t
                    }t          |                    d          d           |                    t
                    }t          t          j        |d          |           d S )Nr+   r   )r   r-   r.   r   r1   X2r   rf   r0   r   r   argmax)r(   r3   y_proby_preds       r   test_multi_classr      s     $6
2
2
2CGGAtr""F

1q)))[[__Fry++V44444r   c                 P   t          |           }|                    t          t                     t          | d          }|                    t          t                     |                    t
                    }|                    t
                    }t          ||           d S )Nr+   r   )r(   n_jobs)r   r-   r.   r   r1   r   r   )r(   r3   gpc_2r   y_prob_2s        r   test_multi_class_n_jobsr      s     $6
2
2
2CGGAt%VA>>>E	IIar""F""2&&H)))))r   c                     t          ddg          } t          |           }d}t          j        t          |          5  |                    t          t                     d d d            n# 1 swxY w Y   t          ddg          t          dd	g          z   }t          |          }t          j
        d
          5 }t          j        d           |                    t          t                     t          |          dk    sJ t          |d         j        t                    sJ |d         j        j        d         dk    sJ t          |d         j        t                    sJ |d         j        j        d         dk    sJ 	 d d d            n# 1 swxY w Y   t#          j        t          d          }t          ddgddg          }t          |          }t          j
        d
          5 }t          j        d           |                    |t                     t          |          dk    sJ t          |d         j        t                    sJ |d         j        j        d         dk    sJ t          |d         j        t                    sJ |d         j        j        d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Ngh㈵>r    )r   r+   zThe optimal value found for dimension 0 of parameter length_scale is close to the specified upper bound 0.001. Increasing the bound and calling fit again may find a better value.match)noise_level_boundsr!   g     j@T)recordalwaysr   r   zThe optimal value found for dimension 0 of parameter k1__noise_level is close to the specified upper bound 0.001. Increasing the bound and calling fit again may find a better value.r   zThe optimal value found for dimension 0 of parameter k2__length_scale is close to the specified lower bound 1000.0. Decreasing the bound and calling fit again may find a better value.r   r   g      $@r#   r   zThe optimal value found for dimension 0 of parameter length_scale is close to the specified upper bound 100.0. Increasing the bound and calling fit again may find a better value.zThe optimal value found for dimension 1 of parameter length_scale is close to the specified upper bound 100.0. Increasing the bound and calling fit again may find a better value.)r   r   pytestwarnsr   r-   r.   r/   r   warningscatch_warningssimplefilterlen
issubclasscategorymessageargsr   tile)	r(   r3   warning_message
kernel_sumgpc_sumr   X_tilekernel_dimsgpc_dimss	            r   test_warning_boundsr      s   dD\222F
#6
2
2
2C	  
(	@	@	@  1               t=== #JA A A J (z:::G		 	-	-	- 
h'''Aq6{{a&),.@AAAAA1I"1% *1 1 1 1 1 &),.@AAAAA1I"1% *1 1 1 1 1 1%
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 WQ]]FC:C:NNNK(<<<H		 	-	-	- 
h'''VQ6{{a&),.@AAAAA1I"1% *1 1 1 1 1 &),.@AAAAA1I"1% *1 1 1 1 1 1%
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s8    !A--A14A1C
FF F8CKKKzparams, error_type, err_msgz!kernel cannot be a CompoundKernelc                     t          di | }t          j        ||          5  |                    t          t
                     ddd           dS # 1 swxY w Y   dS )z0Check that expected error are raised during fit.r   Nr%   )r   r   raisesr-   r.   r/   )params
error_typeerr_msgr3   s       r   test_gpc_fit_errorr     s     $
-
-f
-
-C	z	1	1	1  1                 s   !AAAc                    t          |           }|                    t          t                     |                    t                    \  }}|j        t          j        d         fk    sJ |j        t          j        d         fk    sJ dS )>Checks that the latent mean and variance have the right shape.r+   r   N)r   r-   r.   r/   latent_mean_and_variancerK   )r(   r3   latent_meanlatent_variances       r   'test_gpc_latent_mean_and_variance_shaper      s}     $6
2
2
2CGGAqMMM $'#?#?#B#B K---- QWQZM111111r   c                     t          t                                } |                     t          t                     t          j        t          d          5  |                     t                     ddd           dS # 1 swxY w Y   dS )r   r+   zdReturning the mean and variance of the latent function f is only supported for binary classificationr   N)	r   r   r-   r.   r   r   r   
ValueErrorr   )r3   s    r   Atest_gpc_latent_mean_and_variance_complain_on_more_than_2_classesr   ,  s    
#355
1
1
1CGGAt 
6
 
 
 ( (
 	$$Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   B  BBc                      g d} t          j        g d          }t          d          }t          |                              | |          }|                    |            d S )Nr6   r:   r   r;   r+   )r   r=   r
   r   r-   r   r>   s       r   9test_latent_mean_and_variance_works_on_structured_kernelsr   :  sm    A
$$$%%Ag>>>F
#6
2
2
2
6
6q!
<
<C  #####r   ):__doc__r   numpyr   r   scipy.optimizer   sklearn.exceptionsr   sklearn.gaussian_processr    sklearn.gaussian_process.kernelsr   r   r   r	   rg   4sklearn.gaussian_process.tests._mini_sequence_kernelr
   sklearn.utils._testingr   r   r   
atleast_2dlinspaceTr.   r   r=   ravelintr/   fXemptyrK   r   r&   kernelsnon_fixed_kernelsmarkparametrizer4   r?   rD   rG   rN   rV   r\   rs   r   r   r   r   r   r   r   r   r   r%   r   r   <module>r      s   1 1
       ( ( ( ( ( ( 1 1 1 1 1 1 > > > > > >         
      O N N N N N J J J J J J J J   BM+"+aR(())+R],,,--/BHQQqTTZZ\\AS)))QqTTZZ\\rxs###R%Z $%bEkb4i  !R$Y sAAACSCSk:::Ac;##3KPPPP	 ML'LLL  7++J J ,+JJ J J #455  65 7++  ,+ 7++; ; ,+; #455
 
 65
 7++	> 	> ,+	>  . #4553 3 6534 7++	5 	5 ,+	5 7++
* 
* ,+
*F
 F
 F
R ! ~~a(()/	
	 	 	 	 7++2 2 ,+2( ( ($ $ $ $ $r   