§
    ¨éUgt  ã            
       ó
  — d Z ddlZddl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mZ ddlmZ ddlmZ dd	lmZmZmZmZ d
„ Z ej        g d¢¦  «        j        Z ej        g d¢¦  «        j        Z ee¦  «                              ¦   «         Z! edd¬¦  «        Z" ed¬¦  «        e" edd¬¦  «         edd¦  «         edd¬¦  «        z   edd¦  «         edd¬¦  «        z   edd¦  «        z    edd¦  «         edd¬¦  «        z   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-ej%         &                    de#¦  «        d„ ¦   «         Z.ej%         &                    de#¦  «        d „ ¦   «         Z/ej%         &                    de#¦  «        d!„ ¦   «         Z0d"„ Z1ej%         &                    de#¦  «        ej%         &                    d#e! ej2        ej3        d         ej4        ¬$¦  «        g¦  «        d%„ ¦   «         ¦   «         Z5d&„ Z6d'„ Z7ej%         &                    de#¦  «        d(„ ¦   «         Z8d)„ Z9d*„ Z:ej%         &                    de$¦  «        d+„ ¦   «         Z;d,„ Z<ej%         &                    de#¦  «        d-„ ¦   «         Z=d.„ Z>d/„ Z?d0„ Z@ej%         &                    de#¦  «        d1„ ¦   «         ZAd2„ ZBej%         &                    d3d4 ejC        d5¦  «        ieDd6f eejE         ejE        f¬7¦  «        d8d9œeDd:fg¦  «        d;„ ¦   «         ZFd<„ ZGd=„ ZHej%         &                    d>d?d@g¦  «        ej%         &                    dAg dB¢¦  «        dC„ ¦   «         ¦   «         ZIej%         &                    d>d?d@g¦  «        ej%         &                    dAg dB¢¦  «        dD„ ¦   «         ¦   «         ZJej%         &                    dAg dE¢¦  «        ej%         &                    dFdGdHg¦  «        dI„ ¦   «         ¦   «         ZKej%         &                    dAg dE¢¦  «        dJ„ ¦   «         ZLdK„ ZM G dL„ dMe¦  «        ZNdN„ ZOdS )Oz'Testing for Gaussian process regressioné    N)Úapprox_fprime)ÚConvergenceWarning)ÚGaussianProcessRegressor)ÚRBFÚ
DotProductÚExpSineSquaredÚWhiteKernel)ÚConstantKernel)ÚMiniSeqKernel)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_lessc                 ó0   — | t          j        | ¦  «        z  S )N)ÚnpÚsin)Úxs    úf/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/gaussian_process/tests/test_gpr.pyÚfr   #   s   € Ø�rŒv�a‰yŒy‰=Ðó    )ç      ð?g      @g      @g      @g      @g       @)ç       @g      @g      @g      @g      @r   Úfixed©Úlength_scaleÚlength_scale_bounds©r   )çü©ñÒMbP?ç     @�@©ç{®Gáz„?ç      Y@çñhãˆµøä>)r#   r"   çš™™™™™¹?c                 ó(   — g | ]}|t           k    ¯|‘ŒS © )Úfixed_kernel)Ú.0Úkernels     r   ú
<listcomp>r*   6   s"   € ÐLÐLÐL °V½|Ò5KÐ5K�VÐ5KÐ5KÐ5Kr   r)   c                 óV  — t           j        dk    rt          j        d¦  «         t	          | ¬¦  «                             t          t          ¦  «        }|                     t          d¬¦  «        \  }}t          |t          ¦  «         t          t          j        |¦  «        d¦  «         d S )Nì        ú#This test may fail on 32 bit Python©r)   T©Ú
return_covç        )ÚsysÚmaxsizeÚpytestÚxfailr   ÚfitÚXÚyÚpredictr   r   Údiag)r)   ÚgprÚy_predÚy_covs       r   Útest_gpr_interpolationr>   9   s‰   € å
„{�eÒÐÝŒÐ:Ñ;Ô;Ð;õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CØ—K’K¥¨d�KÑ3Ô3�M€FˆEå˜¥Ñ"Ô"Ð"Ý�œ ™œ¨Ñ,Ô,Ð,Ð,Ð,r   c            	      ó  — t          d¬¦  «        } g d¢}t          j        g d¢¦  «        }t          | ¬¦  «                             ||¦  «        }|                     |d¬¦  «        \  }}t           | |d¬¦  «        d	                              ¦   «         d	t          j        t          |¦  «        ¦  «        z
                       ¦   «         ¦  «         t          ||¦  «         t          t          j
        |¦  «        d
¦  «         d S )Nr   )Úbaseline_similarity_bounds)ÚAÚBÚC)é   é   é   r.   Tr/   ©Úeval_gradientrD   r1   )r   r   Úarrayr   r6   r9   r   ÚravelÚeyeÚlenr:   )r)   r7   r8   r;   r<   r=   s         r   Ú!test_gpr_interpolation_structuredrM   F   sí   € å°gÐ>Ñ>Ô>€FØˆˆ€AÝ
Œ���ÑÔ€AÝ
"¨&Ð
1Ñ
1Ô
1×
5Ò
5°a¸Ñ
;Ô
;€CØ—K’K ¨d�KÑ3Ô3�M€FˆEåØˆˆq Ð%Ñ%Ô% aÔ(×.Ò.Ñ0Ô0°1µr´v½cÀ!¹f¼f±~´~Ñ3E×2LÒ2LÑ2NÔ2Nñô ð õ ˜ Ñ"Ô"Ð"Ý�œ ™œ¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó$  — t           j        dk    rt          j        d¦  «         t	          | ¬¦  «                             t          t          ¦  «        }|                     |j	        j
        ¦  «        |                     | j
        ¦  «        k    sJ ‚d S )Nr,   r-   r.   )r2   r3   r4   r5   r   r6   r7   r8   Úlog_marginal_likelihoodÚkernel_Útheta©r)   r;   s     r   Útest_lml_improvingrS   U   s�   € å
„{�eÒÐÝŒÐ:Ñ;Ô;Ð;õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CØ×&Ò& s¤{Ô'8Ñ9Ô9¸C×<WÒ<WØŒñ=ô =ò ð ð ð ð ð r   c                 óô   — t          | ¬¦  «                             t          t          ¦  «        }|                     |j        j        ¦  «        t          j        |                     ¦   «         ¦  «        k    sJ ‚d S )Nr.   )	r   r6   r7   r8   rO   rP   rQ   r4   ÚapproxrR   s     r   Útest_lml_precomputedrV   a   su   € õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CØ×&Ò& s¤{Ô'8Ñ9Ô9½V¼]Ø×#Ò#Ñ%Ô%ñ>ô >ò ð ð ð ð ð r   c                 ó$  — t          | ¬¦  «                             t          t          ¦  «        }t	          j        |j        j        j        t          j	        ¬¦  «        }| 
                    |d¬¦  «         t          |j        j        |d¦  «         d S )Nr.   ©ÚdtypeF)Úclone_kernelé   )r   r6   r7   r8   r   ÚonesrP   rQ   ÚshapeÚfloat64rO   r   )r)   r;   Úinput_thetas      r   Útest_lml_without_cloning_kernelr`   j   sx   € õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CÝ”'˜#œ+Ô+Ô1½¼ÐDÑDÔD€Kà×Ò ¸%ÐÑ@Ô@Ð@Ý˜œÔ)¨;¸Ñ:Ô:Ð:Ð:Ð: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   rD   )r   r6   r7   r8   rO   rP   rQ   r   ÚallÚabsÚbounds)r)   r;   ÚlmlÚlml_gradients       r   Útest_converged_to_local_maximumrh   t   sÅ   € õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€Cà×3Ò3°C´KÔ4EÀtÑLÔLÑ€CˆåŒ6Ý	Œ�Ñ	Ô	 Ò	$ØŒ;Ô ¤Ô 2°1°1°1°a°4Ô 8Ò8ñ	:àŒ;Ô ¤Ô 2°1°1°1°a°4Ô 8Ò8ñ	:ñô ð ð ð ð ð r   c                 ó²  — t          | ¬¦  «                             t          t          ¦  «        }|j        j        }t          j        |j        j        j	        ¦  «        j
        }d}||t          j        |d d …df         ¦  «         df<   t          |d d …df         |j        j        |z   ¦  «         t          |j        j        |d d …df         |z   ¦  «         d S )Nr.   ç»½×Ùß|Û=rD   r   )r   r6   r7   r8   rP   re   r   ÚfinforQ   rY   ÚmaxÚisfiniter   )r)   r;   re   Úmax_Útinys        r   Útest_solution_inside_boundsrp   ‚   sÇ   € õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CàŒ[Ô€FÝŒ8�C”KÔ%Ô+Ñ,Ô,Ô0€DØ€DØ,0€F�BŒK˜˜q˜q˜q !˜tœÑ%Ô%Ð% qÐ(Ñ)å�f˜Q˜Q˜Q ˜T”l C¤KÔ$5¸Ñ$<Ñ=Ô=Ð=Ý�c”kÔ'¨°°°°1°¬¸Ñ)<Ñ=Ô=Ð=Ð=Ð=r   c                 óô   ‡— t          | ¬¦  «                             t          t          ¦  «        Š‰                     | j        d¦  «        \  }}t          | j        ˆfd„d¦  «        }t          ||d¦  «         d S )Nr.   Tc                 ó0   •— ‰                      | d¦  «        S )NF)rO   )rQ   r;   s    €r   ú<lambda>z#test_lml_gradient.<locals>.<lambda>—   s   ø€  C×$?Ò$?ÀÀuÑ$MÔ$M€ r   rj   rF   )r   r6   r7   r8   rO   rQ   r   r   )r)   rf   rg   Úlml_gradient_approxr;   s       @r   Útest_lml_gradientru   �   s   ø€ õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€Cà×3Ò3°F´LÀ$ÑGÔGÑ€CˆÝ'ØŒÐMÐMÐMÐMÈuñô Ðõ ˜Ð&9¸1Ñ=Ô=Ð=Ð=Ð=r   c                 óŠ  — t          | ¬¦  «        }|                     t          d¬¦  «        \  }}t          |dd¦  «         t	          |j        j        ¦  «        dk    rBt          t          j        |¦  «        t          j	        | j        d         ¦  «        d¦  «         d S t          t          j        |¦  «        dd¦  «         d S )Nr.   Tr/   r   é   rD   )
r   r9   r7   r   rL   r)   rQ   r   r:   Úexp)r)   r;   Úy_meanr=   s       r   Ú
test_priorrz   �   s§   € õ #¨&Ð
1Ñ
1Ô
1€Cà—K’K¥¨d�KÑ3Ô3�M€FˆEå˜  1Ñ%Ô%Ð%Ý
ˆ3Œ:ÔÑÔ˜qÒ Ð å�BœG E™NœN­B¬F°6´<À´?Ñ,CÔ,CÀQÑGÔGÐGÐGÐGå�BœG E™NœN¨A¨qÑ1Ô1Ð1Ð1Ð1r   c                 ó&  — t          | ¬¦  «                             t          t          ¦  «        }|                     t
          d¬¦  «        \  }}|                     t
          d¦  «        }t          |t          j	        |d¦  «        d¦  «         t          t          j
        |¦  «        t          j
        |¦  «                             ¦   «         z  t          j        |d¦  «        t          j
        |¦  «                             ¦   «         z  d¦  «         d S )Nr.   Tr/   ià“ rD   )r   r6   r7   r8   r9   ÚX2Úsample_yr   r   Úmeanr:   rl   Úvar)r)   r;   ry   r=   Úsampless        r   Útest_sample_statisticsr�   ¬   sÛ   € õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€Cà—K’K¥¨t�KÑ4Ô4�M€FˆEà�lŠl�2˜vÑ&Ô&€Gõ ˜¥¤¨°Ñ 3Ô 3°QÑ7Ô7Ð7ÝÝ
Œ�‰Œ�œ ™œ×+Ò+Ñ-Ô-Ñ-Ý
Œˆw˜ÑÔ�RœW U™^œ^×/Ò/Ñ1Ô1Ñ1Ø	ñô ð ð ð r   c                  óÊ   — t          d¦  «        } t          | d ¬¦  «                             t          t          ¦  «        }t          j        |j        j        ¦  «        dk    sJ ‚d S )Nr   ©r)   Ú	optimizer)	r   r   r6   r7   r8   r   rx   rP   rQ   rR   s     r   Útest_no_optimizerr…   ¾   sU   € å�‰XŒX€FÝ
"¨&¸DÐ
AÑ
AÔ
A×
EÒ
EÅaÍÑ
KÔ
K€CÝŒ6�#”+Ô#Ñ$Ô$¨Ò+Ð+Ð+Ð+Ð+Ð+r   ÚtargetrX   c                 óŽ  — t           j        dk    rt          j        d¦  «         t	          | ¬¦  «                             t          t          ¦  «        }|                     t          d¬¦  «        \  }}|                     t          d¬¦  «        \  }}t          t          j        t          j        |¦  «        ¦  «        |¦  «         d S )Nr,   r-   r.   Tr/   ©Ú
return_std)r2   r3   r4   r5   r   r6   r7   r8   r9   r|   r   r   Úsqrtr:   )r)   r†   r;   ry   r=   Úy_stds         r   Útest_predict_cov_vs_stdrŒ   Å   sž   € õ „{�eÒÐÝŒÐ:Ñ;Ô;Ð;õ #¨&Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CØ—K’K¥¨t�KÑ4Ô4�M€FˆEØ—K’K¥¨t�KÑ4Ô4�M€FˆEÝ�œ¥¤¨¡¤Ñ/Ô/°Ñ7Ô7Ð7Ð7Ð7r   c                  ó²  — t           j                             d¦  «        } |                      ddd¦  «        }|d d …df         d|d d …df         z  z   }t	          ddg¦  «        }t          |¬¦  «                             ||¦  «        }t          j        |j        j	        d         ¦  «        t          j        |j        j	        d         ¦  «        dz  k    sJ ‚d S )	Nr   éÿÿÿÿrD   )é2   rE   r$   r   r.   rw   )
r   ÚrandomÚRandomStateÚuniformr   r   r6   rx   rP   rQ   )Úrngr7   r8   r)   r;   s        r   Útest_anisotropic_kernelr”   Ò   sÇ   € õ
 Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�B˜˜7Ñ#Ô#€AØ	ˆ!ˆ!ˆ!ˆQˆ$Œ�#˜˜!˜!˜!˜Q˜$œ‘-Ñ€Aå�#�s�‰_Œ_€FÝ
"¨&Ð
1Ñ
1Ô
1×
5Ò
5°a¸Ñ
;Ô
;€CÝŒ6�#”+Ô# AÔ&Ñ'Ô'­"¬&°´Ô1BÀ1Ô1EÑ*FÔ*FÈÑ*JÒJÐJÐJÐJÐJÐJr   c                  óú  — d\  } }t           j                             d¦  «        }|                     | |¦  «        dz  dz
  }t          j        |¦  «                             d¬¦  «        t          j        d|z  ¦  «                             d¬¦  «        z   |                     d| ¬¦  «        z   }t          d	d
¦  «        t          d	g|z  dg|z  ¬¦  «        z  t          dd¬¦  «        z   }t           j
         }t          d¦  «        D ]u}t          ||d¬¦  «                             ||¦  «        }|                     |j        j        ¦  «        }	|	|t          j        t           j        ¦  «        j        z
  k    sJ ‚|	}Œvd S )N)é   rE   r   rE   rD   ©ÚaxisrF   r$   )ÚscaleÚsizer   r    )rb   r"   r   r#   )r#   ç      $@)Únoise_levelÚnoise_level_boundsrw   )r)   Ún_restarts_optimizerÚrandom_state)r   r�   r‘   Úrandnr   ÚsumÚnormalrC   r   r	   ÚinfÚranger   r6   rO   rP   rQ   rk   Úfloat32Úeps)
Ú	n_samplesÚ
n_featuresr“   r7   r8   r)   Úlast_lmlrž   Úgprf   s
             r   Útest_random_startsr«   à   s‹  € ð "Ñ€IˆzÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�)˜ZÑ(Ô(¨1Ñ,¨qÑ0€Aå
Œˆq‰	Œ	�Š˜1ˆÑÔÝ
Œ&��Q‘‰-Œ-×
Ò
 Ð
Ñ
#Ô
#ñ	$à
�*Š*˜3 Yˆ*Ñ
/Ô
/ñ	0ð õ ˆs�KÑ Ô ¥3Ø�U˜ZÑ'¸k¸]ÈZÑ=Wð$ñ $ô $ñ å ¸ÐEÑEÔEñF€Fõ ”ˆw€HÝ % a¡¤ð ð ÐÝ%ØØ!5Øð
ñ 
ô 
÷ Š#ˆa�‰)Œ)ð	 	ð
 ×(Ò(¨¬Ô)9Ñ:Ô:ˆØ�X¥¤­¬Ñ 4Ô 4Ô 8Ñ8Ò8Ð8Ð8Ð8Øˆˆðð r   c                 ó¾  — t          j        t          ¦  «        }t          j        t          ¦  «        }t          |z
  |z  }t	          | ¬¦  «        }|                     t          |¦  «         t	          | d¬¦  «        }|                     t          t          ¦  «         |                     t          d¬¦  «        \  }}||z  |z   }||z  }|                     t          d¬¦  «        \  }}	t          ||¦  «         t          ||	¦  «         |                     t          d¬¦  «        \  }
}||dz  z  }|                     t          d¬¦  «        \  }
}t          ||¦  «         dS )a  
    Test normalization of the target values in GP

    Fitting non-normalizing GP on normalized y and fitting normalizing GP
    on unnormalized y should yield identical results. Note that, here,
    'normalized y' refers to y that has been made zero mean and unit
    variance.

    r.   T©r)   Únormalize_yrˆ   r/   rE   N)
r   r~   r8   Ústdr   r6   r7   r9   r|   r   )r)   ry   r‹   Úy_normr;   Úgpr_normr<   Ú
y_pred_stdÚy_pred_normÚy_pred_std_normÚ_r=   Ú
y_cov_norms                r   Útest_y_normalizationr·   û   sD  € õ ŒW•Q‰ZŒZ€FÝŒF•1‰IŒI€EÝ�&‰j˜EÑ!€Fõ #¨&Ð
1Ñ
1Ô
1€CØ‡G‚G�AˆvÑÔÐõ (¨vÀ4ÐHÑHÔH€HØ‡L‚L••AÑÔÐð Ÿš¥R°D˜Ñ9Ô9Ñ€FˆJØ�e‰^˜fÑ$€FØ˜eÑ#€JØ#+×#3Ò#3µBÀ4Ð#3Ñ#HÔ#HÑ €K�å˜ Ñ,Ô,Ð,Ý˜
 OÑ4Ô4Ð4à�{Š{�2¨$ˆ{Ñ/Ô/�H€A€uØ�E˜1‘HÑ€EØ×$Ò$¥R°DÐ$Ñ9Ô9�M€A€zå˜˜zÑ*Ô*Ð*Ð*Ð*r   c                  ót  — dt           z  } ddi}t          di |¤Ž}t          |d¬¦  «        }|                     t          | ¦  «         |                     t          d¬¦  «        \  }}t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||d	d
¬¦  «         t          ||dd
¬¦  «         dS )a–  
    Here we test that, when noramlize_y=True, our GP can produce a
    sensible fit to training data whose variance is significantly
    larger than unity. This test was made in response to issue #15612.

    GP predictions are verified against predictions that were made
    using GPy which, here, is treated as the 'gold standard'. Note that we
    only investigate the RBF kernel here, as that is what was used in the
    GPy implementation.

    The following code can be used to recreate the GPy data:

    --------------------------------------------------------------------------
    import GPy

    kernel_gpy = GPy.kern.RBF(input_dim=1, lengthscale=1.)
    gpy = GPy.models.GPRegression(X, np.vstack(y_large), kernel_gpy)
    gpy.optimize()
    y_pred_gpy, y_var_gpy = gpy.predict(X2)
    y_pred_std_gpy = np.sqrt(y_var_gpy)
    --------------------------------------------------------------------------
    é
   r   r   Tr­   rˆ   )gÀÆy(ŸV.@gV],±ü;Àg6çž}~¨CÀgåHÂW-@g¸Æ ×KQ@)gØ¼G‰'@gùsár‚§@g{Üu>5ä?g÷	ÚÃâàà?gÐ.[Â“ë?gìQ¸…ë±?r   )ÚrtolÚatolg333333Ã?Nr&   )
r8   r   r   r6   r7   r9   r|   r   rI   r   )Úy_largeÚ
RBF_paramsr)   r;   r<   r²   Ú
y_pred_gpyÚy_pred_std_gpys           r   Útest_large_variance_yrÀ   #  sÜ   € ð2 •1‰f€Gð ! #Ð&€JÝÐÐ�:ÐÐ€FÝ
"¨&¸dÐ
CÑ
CÔ
C€CØ‡G‚G�AˆwÑÔÐØŸš¥R°D˜Ñ9Ô9Ñ€FˆJõ ”ØKÐKÐKñô €Jõ
 ”XØDÐDÐDñô €Nõ �F˜J¨T¸Ð:Ñ:Ô:Ð:õ
 �J °TÀÐBÑBÔBÐBÐBÐBr   c                  óp  — t          j        t          t          dz  f¦  «        j        } t	          d¬¦  «        }t          |d d¬¦  «        }|                     t          t          ¦  «         t          |d d¬¦  «        }|                     t          | ¦  «         |                     t          d¬¦  «        \  }}|                     t          d¬¦  «        \  }}|                     t          d¬¦  «        \  }}	|                     t          d¬¦  «        \  }}
t          ||d d …d	f         ¦  «         t          ||d d …d
f         dz  ¦  «         t          | j        d
         ¦  «        D ]2}t          ||d|f         ¦  «         t          |	|
d|f         ¦  «         Œ3|                     t          d¬¦  «        }|                     t          d¬¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚t          ||d d …d	d d …f         ¦  «         t          D ]§}t          |d¬¦  «        }|                     t          t          ¦  «         t          |d¬¦  «        }|                     t          t          j        t          t          f¦  «        j        ¦  «         t          |j        j        |j        j        d¦  «         Œ¨d S )NrE   r   r   F)r)   r„   r®   Trˆ   r/   r   rD   .r¹   ©r§   )rw   r¹   )rw   rE   r¹   r­   é   )r   Úvstackr8   ÚTr   r   r6   r7   r9   r|   r   r¤   r]   r}   ÚkernelsrP   rQ   )Úy_2dr)   r;   Úgpr_2dÚ	y_pred_1dÚy_std_1dÚ	y_pred_2dÚy_std_2drµ   Úy_cov_1dÚy_cov_2dr†   Úy_sample_1dÚy_sample_2ds                 r   Útest_y_multioutputrÑ   Z  s€  € åŒ9•a�˜Q™�ZÑ Ô Ô"€Dõ ˜cÐ"Ñ"Ô"€Få
"¨&¸DÈeÐ
TÑ
TÔ
T€CØ‡G‚G�A�q�M„M€Må%¨V¸tÐQVÐWÑWÔW€FØ
‡J‚J�q�$ÑÔÐàŸ+š+¥b°T˜+Ñ:Ô:Ñ€IˆxØ Ÿ.š.­¸˜.Ñ=Ô=Ñ€IˆxØ—+’+�b¨T�+Ñ2Ô2�K€A€xØ—.’.¥°�.Ñ5Ô5�K€A€xå˜	 9¨Q¨Q¨Q°¨T¤?Ñ3Ô3Ð3Ý˜	 9¨Q¨Q¨Q°¨T¤?°QÑ#6Ñ7Ô7Ð7õ ˜œ
 1œÑ&Ô&ð =ð =ˆÝ˜H h¨s°F¨{Ô&;Ñ<Ô<Ð<Ý˜H h¨s°F¨{Ô&;Ñ<Ô<Ð<Ð<à—,’,�r¨R�,Ñ0Ô0€KØ—/’/¥"°�/Ñ3Ô3€KàÔ Ò'Ð'Ð'Ð'ØÔ 
Ò*Ð*Ð*Ð*å˜ [°°°°A°q°q°q°Ô%9Ñ:Ô:Ð:õ ð Hð HˆÝ&¨fÀ$ÐGÑGÔGˆØ�Š••1‰Œˆå)°ÀTÐJÑJÔJˆØ�
Š
•1•b”i¥¥A Ñ'Ô'Ô)Ñ*Ô*Ð*å˜CœKÔ-¨v¬~Ô/CÀQÑGÔGÐGÐGðHð Hr   c                 óò   — d„ }t          | |¬¦  «        }|                     t          t          ¦  «         |                     |j        j        ¦  «        |                     |j        j        ¦  «        k    sJ ‚d S )Nc                 ó|  — t           j                             d¦  «        }| | |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 )Nr   FrG   r�   éþÿÿÿrD   )r   r�   r‘   r¤   Ú
atleast_1dr’   ÚmaximumÚminimum)	Úobj_funcÚinitial_thetare   r“   Ú	theta_optÚfunc_minrµ   rQ   r   s	            r   r„   z(test_custom_optimizer.<locals>.optimizerŒ  sÔ   € ÝŒi×#Ò# AÑ&Ô&ˆØ+¨X¨XØ¨ð.
ñ .
ô .
�8ˆ	õ �r‘”ð 	/ð 	/ˆAÝ”MØ—’�BœJ r¨6°!°!°!°Q°$¬<Ñ8Ô8½"¼*ÀQÈÈqÈqÈqÐRSÈtÌÑ:UÔ:UÑVÔVñô ˆEð �˜¨eÐ4Ñ4Ô4ˆAØ�8Š|ˆ|Ø&+¨Q˜8�	øØ˜(Ð"Ð"r   rƒ   )r   r6   r7   r8   rO   rP   rQ   r)   )r)   r„   r;   s      r   Útest_custom_optimizerrÜ   ˆ  s„   € ð#ð #ð #õ #¨&¸IÐ
FÑ
FÔ
F€CØ‡G‚G�A�q�M„M€Mà×&Ò& s¤{Ô'8Ñ9Ô9¸C×<WÒ<WØŒ
Ôñ=ô =ò ð ð ð ð ð r   c                  ó’  — t          j        d¦  «                             dd¦  «        } t          j        d¦  «        }t	          ¦   «         }t          |d¬¦  «        }d|z  }t          j        t           j        j	        t          j        |¦  «        ¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   é   rŽ   r1   ©r)   Úalphaz—The kernel, %s, is not returning a positive definite matrix. Try gradually increasing the 'alpha' parameter of your GaussianProcessRegressor estimator.©Úmatch)r   ÚarangeÚreshaper\   r   r   r4   ÚraisesÚlinalgÚLinAlgErrorÚreÚescaper6   )r7   r8   r)   r;   Úmessages        r   Útest_gpr_correct_error_messagerì   ¢  sö   € Ý
Œ	�"‰Œ×Ò˜a Ñ$Ô$€AÝ
Œ�‰
Œ
€AÝ‰\Œ\€FÝ
"¨&¸Ð
<Ñ
<Ô
<€Cð	.ð 17ñ	7ð õ 
Œ•r”yÔ,µB´I¸gÑ4FÔ4FÐ	GÑ	GÔ	Gð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB<Â<C ÃC c                 óÌ  — t          | d¬¦  «        }t          | d¬¦  «        }t          j        t          t          d         f¦  «        }t          j        t
          t
          d         dz   f¦  «        }|                     ||¦  «         t          j        t          t          d         dz   f¦  «        }t          j        t
          t
          d         dz   f¦  «        }|                     ||¦  «         t          j        ddd¦  «        d d …d f         }|                     |d¬	¦  «        \  }}|                     |d¬	¦  «        \  }}	t          ||¦  «         t          ||	¦  «         d S )
Nr!   rà   r   rD   gVçž¯Ò<r¹   éd   Trˆ   )
r   r   rÄ   r7   Úhstackr8   r6   Úlinspacer9   r   )
r)   Úgpr_equal_inputsÚgpr_similar_inputsÚX_Úy_ÚX_testÚy_pred_equalÚy_std_equalÚy_pred_similarÚy_std_similars
             r   Útest_duplicate_inputrú   ±  s@  € õ 0°vÀTÐJÑJÔJÐÝ1¸ÀtÐLÑLÔLÐå	Œ•A•q˜”t�9Ñ	Ô	€BÝ	Œ•A•q˜”t˜a‘x�=Ñ	!Ô	!€BØ×Ò˜˜RÑ Ô Ð å	Œ•A•q˜”t˜e‘|Ð$Ñ	%Ô	%€BÝ	Œ•A•q˜”t˜a‘x�=Ñ	!Ô	!€BØ×Ò˜2˜rÑ"Ô"Ð"åŒ[˜˜B Ñ$Ô$ Q Q Q¨ WÔ-€FØ 0× 8Ò 8¸ÈDÐ 8Ñ QÔ QÑ€L�+Ø$6×$>Ò$>¸vÐRVÐ$>Ñ$WÔ$WÑ!€N�Må˜ nÑ5Ô5Ð5Ý˜ ]Ñ3Ô3Ð3Ð3Ð3r   c                  óÀ  — t          dd¬¦  «        t          dd¬¦  «        z  } t          ¦   «         }|                     t          d¬¦  «        \  }}|                     t          d¬¦  «        \  }}t          | ¬¦  «        }|                     t          d¬¦  «        \  }}|                     t          d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )	Nr   r   )Úconstant_value_bounds©r   Trˆ   r/   r.   )rC   r   r   r9   r7   r   )Údefault_kernelÚgpr1rµ   Úy_std1Úy_cov1Úgpr2Úy_std2Úy_cov2s           r   Útest_no_fit_default_predictr  Ç  sÖ   € å�s°'Ð:Ñ:Ô:½SØ ð>ñ >ô >ñ €Nõ $Ñ%Ô%€DØ—’�Q¨4�Ñ0Ô0�I€A€vØ—’�Q¨4�Ñ0Ô0�I€A€vå#¨>Ð:Ñ:Ô:€DØ—’�Q¨4�Ñ0Ô0�I€A€vØ—’�Q¨4�Ñ0Ô0�I€A€vå˜f fÑ-Ô-Ð-Ý˜f fÑ-Ô-Ð-Ð-Ð-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 )Nr#   r   rý   r.   z²The 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.râ   ©r�   r   g     jø@T)ÚrecordÚalwaysrE   r   zµThe 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.rD   z·The 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   r›   r"   r   z±The optimal value found for dimension 0 of parameter length_scale is close to the specified lower bound 10.0. Decreasing the bound and calling fit again may find a better value.z±The optimal value found for dimension 1 of parameter length_scale is close to the specified lower bound 10.0. Decreasing the bound and calling fit again may find a better value.)r   r   r4   Úwarnsr   r6   r7   r8   r	   ÚwarningsÚcatch_warningsÚsimplefilterrL   Ú
issubclassÚcategoryrë   Úargsr   Útile)	r)   r;   Úwarning_messageÚ
kernel_sumÚgpr_sumr  ÚX_tileÚkernel_dimsÚgpr_dimss	            r   Útest_warning_boundsr  Ø  s¶  € Ý d¨D \Ð2Ñ2Ô2€FÝ
"¨&Ð
1Ñ
1Ô
1€Cð	ð õ 
ŒÕ(°Ð	@Ñ	@Ô	@ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ °°t°Ð=Ñ=Ô=ÅØ  #˜JðAñ Aô Añ €Jõ '¨jÐ9Ñ9Ô9€GÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð 
°ÝÔ˜hÑ'Ô'Ð'Ø�Š•A•qÑÔÐå�6‰{Œ{˜aÒÐÐÐå˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1õ ˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1ð 1ð%
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ4 ŒW•Q˜‰]Œ]€FÝ C¨ :ÀCÈÀ:ÐNÑNÔN€KÝ'¨{Ð;Ñ;Ô;€Hå	Ô	 ¨Ð	-Ñ	-Ô	-ð 
°ÝÔ˜hÑ'Ô'Ð'Ø�Š�V�QÑÔÐå�6‰{Œ{˜aÒÐÐÐå˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1õ ˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1ð 1ð%
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s8   Á !A-Á-A1Á4A1ÃC
FÆFÆ FÇ8CKËKËKc                  ó¶   — dt          d¬¦  «        z  } t          ddd¬¦  «        }| |z   }t          |¬¦  «                             t          t
          ¦  «         d S )Ng     ˆ£@g      I@r   r   r   )r   ÚperiodicityÚperiodicity_boundsr.   )r   r   r   r6   r7   r8   )Úk1Úk2r)   s      r   Ú%test_bound_check_fixed_hyperparameterr  !  sf   € ð 
•3 DÐ)Ñ)Ô)Ñ	)€BÝ	Ø c¸gð
ñ 
ô 
€Bð �"‰W€FÝ FÐ+Ñ+Ô+×/Ò/µµ1Ñ5Ô5Ð5Ð5Ð5r   c                 óÊ  — t          j        t          j        d         t           j        ¬¦  «        }t          | d¬¦  «        }|                     t          |¦  «         |j        t          j	        d¦  «        k    sJ ‚| 
                    t          d¬¦  «        \  }}t          ||¦  «         t          t          j        |¦  «        dd¬	¦  «         t          j        d         d
}}t           j                             d¦  «        }t          j        |                     |df¬¦  «        t          j        |dfd
¬¦  «        gd¬¦  «        }|                     t          |¦  «         | 
                    t          d¬¦  «        \  }	}
t          |	dd…df         d
¦  «         t          t          j        |
d         ¦  «        dd¬	¦  «         |	j        ||fk    sJ ‚|
j        |||fk    sJ ‚dS )a  Check that the std. dev. is affected to 1 when normalizing a constant
    feature.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/18318
    NaN where affected to the target when scaling due to null std. dev. with
    constant target.
    r   rX   Tr­   r   r/   r1   g•Ö&è.>)r»   rE   rD   )rš   )r]   Ú
fill_valuer—   N).rD   )r   r\   r7   r]   r^   r   r6   Ú_y_train_stdr4   rU   r9   r   r:   r�   r‘   Úconcatenater¢   Úfull)r)   Ú
y_constantr;   r<   r=   r§   Ú	n_targetsr“   r8   ÚY_predÚY_covs              r   Útest_constant_targetr(  -  s¾  € õ ”�œ œ­2¬:Ð6Ñ6Ô6€Jå
"¨&¸dÐ
CÑ
CÔ
C€CØ‡G‚G�AˆzÑÔÐØÔ�vœ}¨SÑ1Ô1Ò1Ð1Ð1Ð1à—K’K¥¨d�KÑ3Ô3�M€FˆEÝ�F˜JÑ'Ô'Ð'å•B”G˜E‘N”N C¨dÐ3Ñ3Ô3Ð3õ œ7 1œ: qˆy€IÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ
Œà�JŠJ˜Y¨˜NˆJÑ+Ô+ÝŒG˜9 a˜.°QÐ7Ñ7Ô7ð	
ð ð	ñ 	ô 	€Að ‡G‚G�Aˆq�M„M€MØ—K’K¥¨d�KÑ3Ô3�M€FˆEå�F˜1˜1˜1˜a˜4”L !Ñ$Ô$Ð$Ý•B”G˜E &œMÑ*Ô*¨C°dÐ;Ñ;Ô;Ð;àŒ<˜I yÐ1Ò1Ð1Ð1Ð1ØŒ;˜9 i°Ð;Ò;Ð;Ð;Ð;Ð;Ð;r   c            	      ó^  — t          dd¦  «        t          ddgd¦  «        z  t          d¬¦  «        z   } t          | dd¬	¦  «        }t	          j        d
d
gddgdd
gd
dgddgddgg¦  «        }t	          j        dgdgdgdgdgdgg¦  «        }|                     ||¦  «         t	          j        ddgddgddgddgg¦  «        }|                     |d¬¦  «        \  }}|                     |d¬¦  «        \  }}t          |t	          j	        t	          j
        |¦  «        ¦  «        d¬¦  «         dS )a
  Check the consistency between the returned std. dev. and the covariance.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19936
    Inconsistencies were observed when the kernel cannot be inverted (or
    numerically stable).
    gTã¥ l+A)gê-�™—q=g   ¢”mBgë‹„¶œz‚@gØG§®\·”@r#   )rœ   r   N)r)   rá   r„   r1   g6²§ô~Éø?g6²§ô~Éè¿g6²§ô~Éø¿g6²§ô~Éè?g6‡´$}ˆí½g±NøÕ­Àg¼Hx­@gR•|=Ùô¿gd-Ói¼¸õ¿gžŸ^ L
@gÖz°Þûþ¿gÖz°Þûþ?Trˆ   r/   )rº   )rC   r   r	   r   r   rI   r6   r9   r   rŠ   Údiagonal)	r)   r;   ÚX_trainÚy_trainrõ   Úpred1r¯   Úpred2Úcovs	            r   Ú2test_gpr_consistency_std_cov_non_invertible_kernelr0  V  s…  € õ ˆ}˜mÑ,Ô,­sØ	˜Ð&¨ñ0ô 0ñ å Ð%Ñ%Ô%ñ&€Fõ #¨&¸ÀTÐ
JÑ
JÔ
J€CÝŒhà�#ˆJØ˜Ð%Ø˜#ÐØ�+ÐØ˜Ð$Ø˜*Ð%ð	
ñ	ô 	€Gõ ŒhàÐØÐØˆOØÐØÐØˆOð	
ñ	ô 	€Gð ‡G‚GˆG�WÑÔÐÝŒXà˜+Ð&Ø˜Ð%Ø˜*Ð%Ø˜Ð$ð		
ñô €Fð —’˜V°�Ñ5Ô5�J€Eˆ3Ø—’˜V°�Ñ5Ô5�J€Eˆ3Ý�C�œ¥¤¨SÑ!1Ô!1Ñ2Ô2¸Ð>Ñ>Ô>Ð>Ð>Ð>r   zparams, TypeError, err_msgrá   rî   zCalpha must be a scalar or an array with same number of entries as yr  rE   )r)   rž   z#requires that all bounds are finitec                 ó¼   — 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   r4   ræ   r6   r7   r8   )ÚparamsÚ	TypeErrorÚerr_msgr;   s       r   Útest_gpr_fit_errorr5  ƒ  s¡   € õ( #Ð
,Ð
, VÐ
,Ð
,€CÝ	Œ�y¨Ð	0Ñ	0Ô	0ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   £!AÁAÁAc                  ó  — t          t          ¦   «         ¬¦  «                             t          t          ¦  «        } d}t          j        t          |¬¦  «        5  |                      d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z7Check that we raise the proper error in the LML method.r.   z.Gradient can only be evaluated for theta!=Nonerâ   TrG   N)	r   r   r6   r7   r8   r4   ræ   Ú
ValueErrorrO   ©r;   r4  s     r   Útest_gpr_lml_errorr9  œ  s»   € å
"­#©%¬%Ð
0Ñ
0Ô
0×
4Ò
4µQ½Ñ
:Ô
:€Cà>€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 8ð 8Ø×#Ò#°$Ð#Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   ÁA<Á<B ÂB c                  ó   — t          t          ¦   «         ¬¦  «                             t          t          ¦  «        } d}t          j        t          |¬¦  «        5  |                      t          dd¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z4Check that we raise the proper error during predict.r.   z9At most one of return_std or return_cov can be requested.râ   T)r0   r‰   N)	r   r   r6   r7   r8   r4   ræ   ÚRuntimeErrorr9   r8  s     r   Útest_gpr_predict_errorr<  ¥  s¼   € å
"­#©%¬%Ð
0Ñ
0Ô
0×
4Ò
4µQ½Ñ
:Ô
:€CàI€GÝ	Œ•|¨7Ð	3Ñ	3Ô	3ð 9ð 9Ø�Š•A $°4ˆÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s   ÁBÂBÂ
Br®   TFr%  )NrD   r¹   c                 óþ  — t           j                             d¦  «        }d\  }}}|f}|�||fz   }|f}|�|dk    r||fz   }|                     ||¦  «        }|                     ||¦  «        }	 |j        |Ž }
t	          | ¬¦  «        }|                     ||
¦  «         |                     |	d¬¦  «        \  }}|                     |	d¬¦  «        \  }}|j        |k    sJ ‚|j        |k    sJ ‚|j        |f|z   k    sJ ‚dS )	a´  Check the shapes of y_mean, y_std, and y_cov in single-output
    (n_targets=None) and multi-output settings, including the edge case when
    n_targets=1, where the sklearn convention is to squeeze the predictions.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/17394
    https://github.com/scikit-learn/scikit-learn/issues/18065
    https://github.com/scikit-learn/scikit-learn/issues/22174
    éÒ  )rß   é	   r[   NrD   ©r®   Trˆ   r/   )r   r�   r‘   r    r   r6   r9   r]   )r®   r%  r“   r¨   Ún_samples_trainÚn_samples_testÚy_train_shapeÚy_test_shaper+  rõ   r,  Úmodelr<   r‹   rµ   r=   s                   r   Útest_predict_shapesrF  ®  s4  € õ Œ)×
Ò
 Ñ
%Ô
%€Cà29Ñ/€J� à$Ð&€MØÐØ%¨¨Ñ4ˆð #Ð$€LØÐ ¨Q¢ Ø# y lÑ2ˆà�iŠi˜¨Ñ4Ô4€GØ�YŠY�~ zÑ2Ô2€FØˆcŒi˜Ð'€Gå$°Ð=Ñ=Ô=€EØ	‡I‚Iˆg�wÑÔÐà—M’M &°T�MÑ:Ô:�M€FˆEØ�}Š}˜V°ˆ}Ñ5Ô5�H€A€uàŒ<˜<Ò'Ð'Ð'Ð'ØŒ;˜,Ò&Ð&Ð&Ð&ØŒ;˜>Ð+¨lÑ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó�  — t           j                             d¦  «        }d\  }}d}d}|f}|�||fz   }|�|dk    r|||f}n||f}|                     ||¦  «        }	|                     ||¦  «        }
 |j        |Ž }t	          | ¬¦  «        }|                     |	|¦  «         |                     |
|¬¦  «        }|j        |k    sJ ‚dS )	a&  Check the shapes of y_samples in single-output (n_targets=0) and
    multi-output settings, including the edge case when n_targets=1, where the
    sklearn convention is to squeeze the predictions.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/22175
    r>  )rß   r?  r[   rw   NrD   r@  rÂ   )r   r�   r‘   r    r   r6   r}   r]   )r®   r%  r“   r¨   rA  Ún_samples_X_testÚn_samples_y_testrC  rD  r+  rõ   r,  rE  Ú	y_sampless                 r   Útest_sample_y_shapesrK  Ö  sý   € õ Œ)×
Ò
 Ñ
%Ô
%€Cà"&Ñ€J�àÐàÐà$Ð&€MØÐØ%¨¨Ñ4ˆð Ð ¨Q¢ Ø(¨)Ð5EÐFˆˆà(Ð*:Ð;ˆà�iŠi˜¨Ñ4Ô4€GØ�YŠYÐ'¨Ñ4Ô4€FØˆcŒi˜Ð'€Gå$°Ð=Ñ=Ô=€Eð 
‡I‚Iˆg�wÑÔÐà—’˜vÐ1A�ÑBÔB€IØŒ?˜lÒ*Ð*Ð*Ð*Ð*Ð*r   )NrD   rE   rF   r§   rD   rw   c                 óp  — t           j                             d¦  «        }|                     dd¦  «        }|                     d| �| nd¦  «        }t	          | ¬¦  «        }|                     ||¬¦  «        j        }|                     ||¦  «         |                     ||¬¦  «        j        }||k    sJ ‚dS )zJCheck the output shape of `sample_y` is consistent before and after `fit`.é   r¹   rF   NrD   ©r%  rÂ   )r   r�   r‘   r    r   r}   r]   r6   )r%  r§   r“   r7   r8   rE  Úshape_before_fitÚshape_after_fits           r   Útest_sample_y_shape_with_priorrQ    s±   € õ Œ)×
Ò
 Ñ
%Ô
%€Cà�	Š	�"�aÑÔ€AØ�	Š	�" 9Ð#8�i�i¸aÑ@Ô@€Aå$¨yÐ9Ñ9Ô9€EØ—~’~ a°9�~Ñ=Ô=ÔCÐØ	‡I‚Iˆa��O„O€OØ—n’n Q°)�nÑ<Ô<ÔB€OØ˜Ò.Ð.Ð.Ð.Ð.Ð.r   c                 ó0  — t           j                             d¦  «        }d}|                     |d¦  «        }|                     || �| nd¦  «        }t	          | ¬¦  «        }|                     |d¬¦  «        \  }}|                     |d¬	¦  «        \  }}	|                     ||¦  «         |                     |d¬¦  «        \  }
}|                     |d¬	¦  «        \  }}|j        |
j        k    sJ ‚|j        |j        k    sJ ‚|	j        |j        k    sJ ‚dS )
z<Check the output shape of `predict` with prior distribution.rM  r¹   rF   NrD   rN  Tr/   rˆ   )r   r�   r‘   r    r   r9   r6   r]   )r%  r“   Ún_sampler7   r8   rE  Ú
mean_priorÚ	cov_priorrµ   Ú	std_priorÚ	mean_postÚcov_postÚstd_posts                r   Útest_predict_shape_with_priorrZ    s  € õ Œ)×
Ò
 Ñ
%Ô
%€Cà€HØ�	Š	�(˜AÑÔ€AØ�	Š	�(¨Ð)>˜I˜IÀAÑFÔF€Aå$¨yÐ9Ñ9Ô9€EØ!ŸMšM¨!¸˜MÑ=Ô=Ñ€J�	Ø—=’= ¨t�=Ñ4Ô4�L€A€yà	‡I‚Iˆa��O„O€OØŸ-š-¨°d˜-Ñ;Ô;Ñ€IˆxØ—-’- ¨d�-Ñ3Ô3�K€A€xàÔ˜yœÒ.Ð.Ð.Ð.ØŒ?˜hœnÒ,Ð,Ð,Ð,ØŒ?˜hœnÒ,Ð,Ð,Ð,Ð,Ð,r   c                  óP  — t           j                             d¦  «        } |                      dd¦  «        }|                      dd¦  «        }t	          d¬¦  «        }t          j        t          d¬¦  «        5  |                     ||¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
zmCheck that an error is raised when the number of targets seen at fit is
    inconsistent with n_targets.
    r   r¹   rF   rE   rD   rN  z!The number of targets seen in `y`râ   N)	r   r�   r‘   r    r   r4   ræ   r7  r6   )r“   r7   r8   rE  s       r   Útest_n_targets_errorr\  ,  sÚ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�"�aÑÔ€AØ�	Š	�"�aÑÔ€Aå$¨qÐ1Ñ1Ô1€EÝ	Œ•zÐ)LÐ	MÑ	MÔ	Mð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á7BÂBÂ"Bc                   ó   — e Zd ZdZd„ ZdS )ÚCustomKernelz¼
    A custom kernel that has a diag method that returns the first column of the
    input matrix X. This is a helper for the test to check that the input
    matrix X is not mutated.
    c                 ó   — |d d …df         S )Nr   r&   )Úselfr7   s     r   r:   zCustomKernel.diag@  s   € Ø����A�Œwˆr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r&   r   r   r^  r^  9  s-   € € € € € ðð ðð ð ð ð r   r^  c                  ó  — t          t          ¦   «         ¬¦  «                             t          t          ¦  «        } t          j        t          ¦  «        }|                      t          d¬¦  «        \  }}t          t          |¦  «         dS )zä
    Check that the input X is not modified by the predict method of the
    GaussianProcessRegressor when setting return_std=True.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24340
    r.   Trˆ   N)
r   r^  r6   r7   r8   r   Úcopyr|   r9   r   )r;   ÚX2_copyrµ   s      r   Ú#test_gpr_predict_input_not_modifiedrh  D  sd   € õ #­,©.¬.Ð
9Ñ
9Ô
9×
=Ò
=½aÅÑ
CÔ
C€CåŒg•b‰kŒk€GØ�;Š;•r dˆ;Ñ+Ô+�D€A€qå•B˜Ñ Ô Ð Ð Ð r   )Prd  ré   r2   r  Únumpyr   r4   Úscipy.optimizer   Úsklearn.exceptionsr   Úsklearn.gaussian_processr   Ú sklearn.gaussian_process.kernelsr   r   r   r	   r
   rC   Ú4sklearn.gaussian_process.tests._mini_sequence_kernelr   Úsklearn.utils._testingr   r   r   r   r   Ú
atleast_2drÅ   r7   r|   rJ   r8   r'   rÆ   Únon_fixed_kernelsÚmarkÚparametrizer>   rM   rS   rV   r`   rh   rp   ru   rz   r�   r…   r\   r]   r^   rŒ   r”   r«   r·   rÀ   rÑ   rÜ   rì   rú   r  r  r  r(  r0  Úzerosr7  r£   r5  r9  r<  rF  rK  rQ  rZ  r\  r^  rh  r&   r   r   ú<module>ru     s  ðØ -Ð -ð 
€	€	€	Ø 
€
€
€
Ø €€€à Ð Ð Ð Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð OÐ NÐ NÐ NÐ NÐ Nðð ð ð ð ð ð ð ð ð ð ð ðð ð ð €B„MÐ0Ð0Ð0Ñ1Ô1Ô3€Ø€R„]Ð,Ð,Ð,Ñ-Ô-Ô/€Ø€A€a�D„D‡J‚J�L„L€àˆs ¸ÐAÑAÔA€à€C�SÐÑÔØØ€C�S¨kÐ:Ñ:Ô:Ø€A€cˆ;ÑÔ˜#˜#¨3ÀKÐPÑPÔPÑPØ€A€cˆ;ÑÔ˜#˜#¨3ÀKÐPÑPÔPÑPØ€aˆˆkÑÔñà€A€cˆ;ÑÔ˜#˜#¨3ÀKÐPÑPÔPÑPØ€aˆˆkÑÔñð	€ð MÐL¨'ÐLÑLÔLÐ ð „×Ò˜ 7Ñ+Ô+ð	-ð 	-ñ ,Ô+ð	-ð-ð -ð -ð „×Ò˜Ð#4Ñ5Ô5ðð ñ 6Ô5ðð „×Ò˜ 7Ñ+Ô+ðð ñ ,Ô+ðð „×Ò˜ 7Ñ+Ô+ð;ð ;ñ ,Ô+ð;ð „×Ò˜Ð#4Ñ5Ô5ð
ð 
ñ 6Ô5ð
ð „×Ò˜Ð#4Ñ5Ô5ð
>ð 
>ñ 6Ô5ð
>ð „×Ò˜ 7Ñ+Ô+ð	>ð 	>ñ ,Ô+ð	>ð „×Ò˜ 7Ñ+Ô+ð2ð 2ñ ,Ô+ð2ð „×Ò˜ 7Ñ+Ô+ðð ñ ,Ô+ðð",ð ,ð ,ð „×Ò˜ 7Ñ+Ô+Ø„×Ò˜ A w r¤w¨q¬w°q¬zÀÄÐ'LÑ'LÔ'LÐ#MÑNÔNð8ð 8ñ OÔNñ ,Ô+ð8ðKð Kð Kðð ð ð6 „×Ò˜ 7Ñ+Ô+ð$+ð $+ñ ,Ô+ð$+ðN4Cð 4Cð 4Cðn+Hð +Hð +Hð\ „×Ò˜Ð#4Ñ5Ô5ðð ñ 6Ô5ðð2ð ð ð „×Ò˜ 7Ñ+Ô+ð4ð 4ñ ,Ô+ð4ð*.ð .ð .ð"F
ð F
ð F
ðR	6ð 	6ð 	6ð „×Ò˜ 7Ñ+Ô+ð%<ð %<ñ ,Ô+ð%<ðP*?ð *?ð *?ðZ „×ÒØ ð �h�b”h˜s‘m”mÐ$ØØQð	
ð &˜+¸2¼6¸'À2Ä6Ð9JÐKÑKÔKØ()ðð ð Ø1ð	
ðñô ð$ð ñ%ô ð$ð8ð 8ð 8ð9ð 9ð 9ð „×Ò˜¨¨u¨Ñ6Ô6Ø„×Ò˜ m m mÑ4Ô4ð#;ð #;ñ 5Ô4ñ 7Ô6ð#;ðL „×Ò˜¨¨u¨Ñ6Ô6Ø„×Ò˜ m m mÑ4Ô4ð++ð ++ñ 5Ô4ñ 7Ô6ð++ð\ „×Ò˜ o o oÑ6Ô6Ø„×Ò˜ q¨! fÑ-Ô-ð/ð /ñ .Ô-ñ 7Ô6ð/ð „×Ò˜ o o oÑ6Ô6ð-ð -ñ 7Ô6ð-ð*
ð 
ð 
ðð ð ð ð �1ñ ô ð ð!ð !ð !ð !ð !r   