Ë
    íì�ió+  ã                   óÒ  — 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j0                  ddd«      «      j2                  Z ej.                  g d¢«      j2                  Z ej8                   ee«      j;                  «       dkD  e¬«      Z ee«      j;                  «       Z  ejB                  ejD                  e¬«      Z#de#e dk  <   de#e dk\  e dk  z  <   de#e dkD  <    edd¬«      Z$ ed¬«      e$ edd¬«       edd«       edd¬«      z  gZ%e%D � cg c]
  } | e$k7  sŒ	| ‘Œ c} Z&ejN                  jQ                  de%«      d„ «       Z)d„ Z*ejN                  jQ                  de&«      d„ «       Z+ejN                  jQ                  de%«      d„ «       Z,ejN                  jQ                  de%«      d„ «       Z-ejN                  jQ                  de&«      d „ «       Z.ejN                  jQ                  de%«      d!„ «       Z/d"„ Z0ejN                  jQ                  de&«      d#„ «       Z1ejN                  jQ                  de%«      d$„ «       Z2ejN                  jQ                  de%«      d%„ «       Z3d&„ Z4ejN                  jQ                  d'd ed«      ie5d(fg«      d)„ «       Z6ejN                  jQ                  de%«      d*„ «       Z7d+„ Z8d,„ Z9yc c} w )-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    úŒ/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/sklearn/gaussian_process/tests/test_gpc.pyÚfr      s   € Ü�6‰6�!‹9Ðó    é
   é   )ç       @g      @g      @g      @g      @©ÚdtypegffffffÖ¿é   gffffffÖ?é   ç      ð?Úfixed©Úlength_scaleÚlength_scale_boundsgš™™™™™¹?)r   )çü©ñÒMbP?ç     @�@©g{®Gáz„?ç      Y@Úkernelc                 óÄ   — t        | ¬«      j                  t        t        «      }t	        |j                  t        «      |j                  t        «      d d …df   dk\  «       y )N©r$   r   ç      à?)r   ÚfitÚXÚyr   ÚpredictÚpredict_proba©r$   Úgpcs     r   Útest_predict_consistentr/   2   sF   € ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€CÜ�s—{‘{¤1“~ s×'8Ñ'8¼Ó';ºA¸q¸DÑ'AÀSÑ'HÕIr   c                  óò   — g d¢} t        j                  g d¢«      }t        d¬«      }t        |¬«      j	                  | |«      }t        |j                  | «      |j                  | «      d d …df   dk\  «       y )N©ÚAÚABÚB©TFTr   ©Úbaseline_similarity_boundsr&   r   r'   )r   Úarrayr
   r   r(   r   r+   r,   ©r)   r*   r$   r.   s       r   Ú"test_predict_consistent_structuredr:   9   sb   € â€AÜ
�‰Ò$Ó%€AÜ°gÔ>€FÜ
#¨6Ô
2×
6Ñ
6°q¸!Ó
<€CÜ�s—{‘{ 1“~ s×'8Ñ'8¸Ó';ºA¸q¸DÑ'AÀSÑ'HÕIr   c                 óÒ   — t        | ¬«      j                  t        t        «      }|j	                  |j
                  j                  «      |j	                  | j                  «      kD  sJ ‚y )Nr&   )r   r(   r)   r*   Úlog_marginal_likelihoodÚkernel_Úthetar-   s     r   Útest_lml_improvingr?   B   sV   € ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€CØ×&Ñ& s§{¡{×'8Ñ'8Ó9¸C×<WÑ<WØ�‰ó=ò ð ñ r   c                 óÈ   — t        | ¬«      j                  t        t        «      }t	        |j                  |j                  j                  «      |j                  «       d«       y )Nr&   é   )r   r(   r)   r*   r   r<   r=   r>   r-   s     r   Útest_lml_precomputedrB   K   sI   € ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€CÜØ×#Ñ# C§K¡K×$5Ñ$5Ó6¸×8SÑ8SÓ8UÐWXõr   c                 ó:  — t        | ¬«      j                  t        t        «      }t	        j
                  |j                  j                  j                  t        j                  ¬«      }|j                  |d¬«       t        |j                  j                  |d«       y )Nr&   r   F)Úclone_kernelrA   )r   r(   r)   r*   r   Úonesr=   r>   ÚshapeÚfloat64r<   r   )r$   r.   Úinput_thetas      r   Útest_lml_without_cloning_kernelrI   T   sh   € ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€CÜ—'‘'˜#Ÿ+™+×+Ñ+×1Ñ1¼¿¹ÔD€Kà×Ñ ¸%ÐÔ@Ü˜Ÿ™×)Ñ)¨;¸Õ:r   c                 óÌ  — t        | ¬«      j                  t        t        «      }|j	                  |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 ‚y )Nr&   Tç-Cëâ6?r   r   )r   r(   r)   r*   r<   r=   r>   r   ÚallÚabsÚbounds)r$   r.   ÚlmlÚlml_gradients       r   Útest_converged_to_local_maximumrQ   ^   s·   € ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€Cà×3Ñ3°C·K±K×4EÑ4EÀtÓLÑ€Cˆä�6‰6Ü	�‰�Ó	 Ñ	$Ø�;‰;×Ñ §¡× 2Ñ 2²1°a°4Ñ 8Ñ8ñ	:à�;‰;×Ñ §¡× 2Ñ 2²1°a°4Ñ 8Ñ8ñ	:ôð ñ r   c                 óÚ   ‡— t        | ¬«      j                  t        t        «      Š‰j	                  | j
                  d«      \  }}t        | j
                  ˆfd„d«      }t        ||d«       y )Nr&   Tc                 ó(   •— ‰j                  | d«      S )NF)r<   )r>   r.   s    €r   ú<lambda>z#test_lml_gradient.<locals>.<lambda>s   s   ø€  C×$?Ñ$?ÀÀuÓ$M€ r   g»½×Ùß|Û=é   )r   r(   r)   r*   r<   r>   r   r   )r$   rO   rP   Úlml_gradient_approxr.   s       @r   Útest_lml_gradientrW   l   s]   ø€ ô $¨6Ô
2×
6Ñ
6´q¼!Ó
<€Cà×3Ñ3°F·L±LÀ$ÓGÑ€CˆÜ'Ø�‰ÓMÈuóÐô ˜Ð&9¸1Õ=r   c                 ó˜  — d\  }}t         j                  j                  | «      }|j                  ||«      dz  dz
  }t        j                  |«      j                  d¬«      t        j                  d|z  «      j                  d¬«      z   dkD  }t        dd«      t        d	g|z  d
g|z  ¬«      z  }t         j                   }t        d«      D ]|  }t        ||| ¬«      j                  ||«      }	|	j                  |	j                  j                  «      }
|
|t        j                  t         j                   «      j"                  z
  kD  sJ ‚|
}Œ~ y )N)é   r   r   r   )ÚaxisrU   r   r   r"   r    )rK   r#   r   é   )r$   Ún_restarts_optimizerÚrandom_state)r   ÚrandomÚRandomStateÚrandnr   ÚsumÚCr   ÚinfÚranger   r(   r<   r=   r>   ÚfinfoÚfloat32Úeps)Úglobal_random_seedÚ	n_samplesÚ
n_featuresÚrngr)   r*   r$   Úlast_lmlr\   ÚgprO   s              r   Útest_random_startsrn   y   s/  € ð "Ñ€IˆzÜ
�)‰)×
Ñ
Ð 2Ó
3€CØ�	‰	�)˜ZÓ(¨1Ñ,¨qÑ0€AÜ	�‰�‹�‰˜AˆÓ	¤§¡¨¨A©£×!2Ñ!2¸Ð!2Ó!:Ñ	:¸aÑ?€Aäˆs�KÓ ¤3Ø�V˜jÑ(¸{¸mÈjÑ>Xô$ñ €Fô —‘ˆw€HÜ % a£ò ÐÜ&ØØ!5Ø+ô
÷ ‰#ˆa�‹)ð	 	ð
 ×(Ñ(¨¯©×)9Ñ)9Ó:ˆØ�X¤§¡¬¯©Ó 4× 8Ñ 8Ñ8Ò8Ð8Ð8Ø‰ñr   c                 óä   ‡— ˆfd„}t        | |¬«      }|j                  t        t        «       |j	                  |j
                  j                  «      |j	                  | j                  «      k\  sJ ‚y )Nc                 ó`  •— t         j                  j                  ‰	«      }| | |d¬«      }}t        d«      D ]q  }t        j                  |j                  t        j                  d|d d …df   «      t        j                  d|d d …df   «      «      «      } | |d¬«      }||k  sŒn||}}Œs ||fS )NF)Úeval_gradientr   éþÿÿÿr   r   )r   r^   r_   rd   Ú
atleast_1dÚuniformÚmaximumÚminimum)
Úobj_funcÚinitial_thetarN   rk   Ú	theta_optÚfunc_minÚ_r>   r   rh   s
            €r   Ú	optimizerz(test_custom_optimizer.<locals>.optimizer”   s¯   ø€ Ü�i‰i×#Ñ#Ð$6Ó7ˆàÙ�]°%Ô8ð ˆ	ô �r“ò 	/ˆAÜ—M‘MØ—‘œBŸJ™J r¨6²!°Q°$©<Ó8¼"¿*¹*ÀQÈÊqÐRSÈtÉÓ:UÓVóˆEñ ˜¨eÔ4ˆAØ�8‹|Ø&+¨Q˜8‘	ð	/ð ˜(Ð"Ð"r   )r$   r|   )r   r(   r)   Úy_mcr<   r=   r>   )r$   rh   r|   r.   s    `  r   Útest_custom_optimizerr~   �   s`   ø€ ô#ô $¨6¸YÔ
G€CØ‡G�GŒAŒtÔà×&Ñ&Ø�‰×Ñóà	×	$Ñ	$ V§\¡\Ó	2ò3ð 3ñ 3r   c                 ó  — t        | ¬«      }|j                  t        t        «       |j	                  t
        «      }t        |j                  d«      d«       |j                  t
        «      }t        t        j                  |d«      |«       y )Nr&   r   )r   r(   r)   r}   r,   ÚX2r   ra   r+   r   r   Úargmax)r$   r.   Úy_probÚy_preds       r   Útest_multi_classr„   «   s`   € ô $¨6Ô
2€CØ‡G�GŒAŒtÔà×ÑœrÓ"€FÜ˜Ÿ
™
 1› qÔ)à�[‰[œ‹_€FÜ”r—y‘y ¨Ó+¨VÕ4r   c                 ó
  — t        | ¬«      }|j                  t        t        «       t        | d¬«      }|j                  t        t        «       |j	                  t
        «      }|j	                  t
        «      }t        ||«       y )Nr&   r   )r$   Ún_jobs)r   r(   r)   r}   r,   r€   r   )r$   r.   Úgpc_2r‚   Úy_prob_2s        r   Útest_multi_class_n_jobsr‰   ¸   s`   € ô $¨6Ô
2€CØ‡G�GŒAŒtÔä%¨V¸AÔ>€EØ	‡I�IŒa”Ôà×ÑœrÓ"€FØ×"Ñ"¤2Ó&€HÜ˜ Õ)r   c                  ó8  — t        ddg¬«      } t        | ¬«      }d}t        j                  t        |¬«      5  |j                  t        t        «       d d d «       t        ddg¬«      t        dd	g¬«      z   }t        |¬«      }t        j                  d
¬«      5 }t        j                  d«       |j                  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 «       t#        j$                  t        d«      }t        ddgddg¬«      }t        |¬«      }t        j                  d
¬«      5 }t        j                  d«       |j                  |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 «       y # 1 sw Y   �Œ%xY w# 1 sw Y   �Œ*xY w# 1 sw Y   y xY w)Ngñhãˆµøä>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.©Úmatch)Únoise_level_boundsr!   g     jø@T)ÚrecordÚalwaysr   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.r   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   g      $@r#   r   z²The 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.z²The 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$   r.   Úwarning_messageÚ
kernel_sumÚgpc_sumrŽ   ÚX_tileÚkernel_dimsÚgpc_dimss	            r   Útest_warning_boundsr¡   Æ   s‚  € Ü d¨D \Ô2€FÜ
#¨6Ô
2€Cð	ð ô 
�‰Ô(°Ô	@ñ Ø�‰””1Œ÷ô °°t°Ô=ÄØ  #˜JôAñ €Jô (¨zÔ:€GÜ	×	 Ñ	 ¨Ô	-ð 
°Ü×Ñ˜hÔ'Ø�‰”A”qÔä�6‹{˜aÒÐÐä˜& ™)×,Ñ,Ô.@ÔAÐAÐAà�1‰I×Ñ×"Ñ" 1Ñ%ð *1ò 1ð	
ð1ô ˜& ™)×,Ñ,Ô.@ÔAÐAÐAà�1‰I×Ñ×"Ñ" 1Ñ%ð *1ò 1ð	
ñ1÷%
ô4 �W‰W”Q˜‹]€FÜ C¨ :ÀCÈÀ:ÔN€KÜ(°Ô<€Hä	×	 Ñ	 ¨Ô	-ð 
°Ü×Ñ˜hÔ'Ø�‰�VœQÔä�6‹{˜aÒÐÐä˜& ™)×,Ñ,Ô.@ÔAÐAÐAà�1‰I×Ñ×"Ñ" 1Ñ%ð *1ò 1ð	
ð1ô ˜& ™)×,Ñ,Ô.@ÔAÐAÐAà�1‰I×Ñ×"Ñ" 1Ñ%ð *1ò 1ð	
ñ1÷%
ð 
÷Kñ ú÷
ñ 
ú÷<
ð 
ús%   ¸I6ÂC JÆ0B<JÉ6J ÊJÊJzparams, error_type, err_msgz!kernel cannot be a CompoundKernelc                 ó¦   — t        di | ¤Ž}t        j                  ||¬«      5  |j                  t        t
        «       ddd«       y# 1 sw Y   yxY w)z0Check that expected error are raised during fit.r‹   N© )r   r�   Úraisesr(   r)   r*   )ÚparamsÚ
error_typeÚerr_msgr.   s       r   Útest_gpc_fit_errorr¨     sA   € ô $Ñ
- fÑ
-€CÜ	�‰�z¨Ô	1ñ Ø�‰””1Œ÷÷ ñ ús   £AÁAc                 ó  — t        | ¬«      }|j                  t        t        «       |j	                  t        «      \  }}|j
                  t        j
                  d   fk(  sJ ‚|j
                  t        j
                  d   fk(  sJ ‚y)ú>Checks that the latent mean and variance have the right shape.r&   r   N)r   r(   r)   r*   Úlatent_mean_and_variancerF   )r$   r.   Úlatent_meanÚlatent_variances       r   Ú'test_gpc_latent_mean_and_variance_shaper®      sn   € ô $¨6Ô
2€CØ‡G�GŒAŒq„Mð $'×#?Ñ#?ÄÓ#BÑ €K�Ø×Ñ¤§¡¨¡ Ò-Ð-Ð-Ø× Ñ ¤Q§W¡W¨Q¡Z MÒ1Ð1Ñ1r   c                  óê   — t        t        «       ¬«      } | j                  t        t        «       t        j                  t        d¬«      5  | j                  t        «       ddd«       y# 1 sw Y   yxY w)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«   )r.   s    r   ÚAtest_gpc_latent_mean_and_variance_complain_on_more_than_2_classesr±   ,  sW   € ä
#¬3«5Ô
1€CØ‡G�GŒAŒtÔô 
�‰Üð6ô
ñ (ð
 	×$Ñ$¤QÔ'÷(÷ (ñ (ús   Á
A)Á)A2c                  ó¬   — g d¢} t        j                  g d¢«      }t        d¬«      }t        |¬«      j	                  | |«      }|j                  | «       y )Nr1   r5   r   r6   r&   )r   r8   r
   r   r(   r«   r9   s       r   Ú9test_latent_mean_and_variance_works_on_structured_kernelsr³   :  sE   € Ú€AÜ
�‰Ò$Ó%€AÜ°gÔ>€FÜ
#¨6Ô
2×
6Ñ
6°q¸!Ó
<€Cà× Ñ  Õ#r   ):Ú__doc__r’   Únumpyr   r�   Úscipy.optimizer   Úsklearn.exceptionsr   Úsklearn.gaussian_processr   Ú sklearn.gaussian_process.kernelsr   r   r   r	   rb   Ú4sklearn.gaussian_process.tests._mini_sequence_kernelr
   Úsklearn.utils._testingr   r   r   Ú
atleast_2dÚlinspaceÚTr)   r€   r8   ÚravelÚintr*   ÚfXÚemptyrF   r}   Úfixed_kernelÚkernelsÚnon_fixed_kernelsÚmarkÚparametrizer/   r:   r?   rB   rI   rQ   rW   rn   r~   r„   r‰   r¡   r°   r¨   r®   r±   r³   r&   s   0r   ú<module>rÈ      s(  ðÙ 1ó
 ã Û Ý (å 1Ý >÷ñ õ
õ Oß Jòð €B‡M�M�+�"—+‘+˜a  RÓ(Ó)×+Ñ+€Ø€R‡]�]Ò,Ó-×/Ñ/€Ø€B‡H�H‰Qˆq‹T�Z‰Z‹\˜AÑ SÔ)€Ù€qƒT‡Z�Zƒ\€Ø€r‡x�x�—‘˜sÔ#€Ø€€Rˆ%�ZÑ Ø$%€€bˆE�k�b˜4‘iÑ Ñ !Ø€€Rˆ$�Y�ñ  ¸ÔA€á�SÔØÙ�S¨kÔ:Ù€cˆ;Ó™#¨3ÀKÔPÑPð	€ð +2ÖL °V¸|Ó5K’VÒLÐ ð ‡�×Ñ˜ 7Ó+ñJó ,ðJòJð ‡�×Ñ˜Ð#4Ó5ñó 6ðð ‡�×Ñ˜ 7Ó+ñó ,ðð ‡�×Ñ˜ 7Ó+ñ;ó ,ð;ð ‡�×Ñ˜Ð#4Ó5ñ
ó 6ð
ð ‡�×Ñ˜ 7Ó+ñ	>ó ,ð	>òð. ‡�×Ñ˜Ð#4Ó5ñ3ó 6ð3ð4 ‡�×Ñ˜ 7Ó+ñ	5ó ,ð	5ð ‡�×Ñ˜ 7Ó+ñ
*ó ,ð
*òF
ðR ‡�×ÑØ!ð ‘~ aÓ(Ð)ØØ/ð	
ðó	ñó	ðð ‡�×Ñ˜ 7Ó+ñ2ó ,ð2ò(ó$ùòW Ms   Å 
K$ÅK$