
    -ip                     `   S SK r S SKrS SKJr  S SKrS SKrS SKJr  S SK	J
r
  S SKJrJrJr  S SKJrJrJr  S SKJr  \" SS	9u  rr\\R/                  5       -  r\\R1                  5       -  rS
 rS rS r\R8                  R;                  S\5      S 5       r\R8                  R;                  S\\-   5      S 5       rS r \R8                  R;                  S\5      S 5       r!S r"\R8                  R;                  S\5      S 5       r#S r$\R8                  R;                  S\5      S 5       r%\R8                  R;                  S\RL                  \RL                  4\RN                  \RN                  4\(\RN                  4/5      S 5       r)S r*\R8                  R;                  SSS/5      S 5       r+g)     N)StringIO)load_digits)BernoulliRBM)assert_allcloseassert_almost_equalassert_array_equal)CSC_CONTAINERSCSR_CONTAINERSLIL_CONTAINERS)assert_all_finiteT)
return_X_yc                      [         R                  5       n [        SSSSSS9nUR                  U 5        [	        UR                  U 5      R                  5       SSS	9  [        U [         5        g )
N@   皙?
      	   )n_componentslearning_rate
batch_sizen_iterrandom_state      5r   decimal)Xdigitscopyr   fitr   score_samplesmeanr   )Xrbms     X/var/www/html/venv/lib/python3.13/site-packages/sklearn/neural_network/tests/test_rbm.pytest_fitr$      s\    A
sr!RSC GGAJ))!,113UAF q'"    c                     [         R                  5       n [        SSSSS9nU R                  S   n[	        [
        R                  " [        U5      UR                  -  5      5      n[
        R                  " X5      n[        S5       H  nU H  nUR                  U5        M     M     [        UR                  U 5      R                  5       SSS	9  [        U [         5        g )
Nr   r      r   r   r   r   r   r   r   r   r   )r   r   r   shapeintnpceilfloatr   array_splitrangepartial_fitr   r   r    r   )r!   r"   	n_samples	n_batchesbatch_slicesibatchs          r#   test_partial_fitr6   %   s    A
srC 
IBGGE),s~~=>?I>>!/L1X!EOOE" "  ))!,113UAFq'"r%   c                      [         S S n [        SSSSS9nUR                  U 5        UR                  U 5      nUR	                  U 5      n[        X#5        g )Nd         *   r   r   r   r   )r   r   r   	transform_mean_hiddensr   )r!   rbm1Xt1Xt2s       r#   test_transformrB   6   sN    ARAabQDHHQK
..
C


Q
Cs r%   csr_containerc                 T    U " [         S S 5      n[        5       R                  U5        g )N   )r   r   r   )rC   r!   s     r#   test_small_sparserF   A   s$     	gbqk"ANqr%   sparse_containerc                 N   U " [         S S 5      n[         S S R                  5       n[        SSSSS9n[        SSSSS9nUR                  U5        UR                  U5        [	        UR                  U5      R                  5       UR                  U5      R                  5       SS9  g )	Nr8   r   r   r   r   r(   r   r   )r   r   r   r0   r   r   r    )rG   X_sparser!   r?   rbm2s        r#   test_small_sparse_partial_fitrK   H   s    .HAsrD srD 	XQ1""$d&8&8&;&@&@&BAr%   c            	      Z   [         R                  R                  S5      n [        S S n[	        SSSSS9nUR                  U5        UR                  US   5      n[         R                  " [        S5       Vs/ s H  oBR                  US   U 5      PM     snS5      n[        X5SS9  g s  snf )	Nr   r8      r:   r;   r<      r   )r+   randomRandomStater   r   r   r>   r    r/   _sample_hiddensr   )rngr!   r?   hr4   hss         r#   test_sample_hiddensrU   \   s    
))


"CAQ1QRPDHHQK1Q4 A	5:F:a&&qtS1:F	JBq) Gs   7B(csc_containerc                    [         R                  R                  S5      n[         R                  " S/S//5      n[	        SSSUS9nUR                  U5        [        UR                  [         R                  " S/S//5      SS	9  [        UR                  U5      U5        [         R                  R                  S5      nU " S/S//5      n[	        SSSUS9nUR                  U5        [        UR                  [         R                  " S/S//5      SS	9  [        UR                  U5      UR                  5       5        [        UR                  UR                  5        g )
Nr;                 ?rM   r<   gϾT"?g&r?rE   r   )
r+   rO   rP   arrayr   r   r   components_gibbstoarray)rV   rR   r!   r?   rJ   s        r#   test_fit_gibbsr^   h   s    ))


#C
3%# AQ1RcRDHHQK"((ZL:,#?@! 

1q) ))


#Cusen%AQ1RcRDHHQK"((ZL:,#?@! 

1qyy{3(($*:*:;r%   c                      [         n [        SSSSS9nUR                  U 5        UR                  U 5      n[	        U5        UR                  U 5      n[
        R                  " X#:g  R                  SS95      (       d   eg )Nr;   (   r'   r<   rN   )axis)r   r   r   r\   r   r+   allmax)r!   r?   	X_sampled
X_sampled2s       r#   test_gibbs_smokerf      sm     	ARBrPRSDHHQK

1Ii AJ669*//Q/78888r%   lil_containersc                 ~   [         R                  R                  S5      n[         R                  " [         R                  " S5      [         R
                  " S5      /5      n[        SSSUS9nUR                  U5        UR                  U5      S:  R                  5       (       d   eSUl
        UR                  U5      nSUl
        UR                  U " U5      5      n[        XE5        [         R                  " SS9   UR                  [         R                  " S5      S	-  /5        S S S 5        g ! , (       d  f       g = f)
Nr;   i  r   rM   r<   iignore)underr8   )r+   rO   rP   vstackzerosonesr   r   r   rb   r   r   errstatearange)rg   rR   r!   r?   d_scores_scores         r#   test_score_samplesrr      s    
 ))


#C
		288D>2774=12ARAbsSDHHQKq!D(--//// D  #GD  !23G) 
8	$BIIdOc123 
%	$	$s   ;*D..
D<c                      [        SSS9n [        R                  n[        5       [        l         U R	                  [
        5        U[        l        g ! U[        l        f = f)NrM   r   )r   verbose)r   sysstdoutr   r   r   )r"   
old_stdouts     r#   test_rbm_verboserx      s@    
a
,CJCJ 
Z
s   A Ac                 P   [         R                  n[        5       [         l        U " S/S//5      n[        SSSSSS9n UR	                  U5        [         R                  R                  5       n[        R                  " SU5      (       d   e U[         l        g ! U[         l        f = f)	NrX   rY   rM   rN   r;   T)r   r   r   r   rt   zS\[BernoulliRBM\] Iteration 1, pseudo-likelihood = -?(\d)+(\.\d+)?, time = (\d|\.)+s)ru   rv   r   r   r   getvaluerematch)rV   rw   r!   r"   ss        r#   test_sparse_and_verboser~      s     JCJusen%A
1QRC 
JJ!xx! 	
 
 	
 
  
Z
s   AB B%zdtype_in, dtype_outc                     [         S S R                  U 5      n[        SSSSS9nUR                  U5      nUR                  U:X  d+   SR                  UR                  UR                  5      5       eg )Nr8   r9   r:   r;   r<   z(transform dtype: {} - original dtype: {})r   astyper   fit_transformdtypeformat)dtype_in	dtype_outr!   r"   Xts        r#   test_transformer_dtypes_castingr      sp    
 	X&A
B1QR
PC			1	B 88y  "L"S"S
!''#  r%   c                  &   [         S S R                  [        R                  5      n [	        SSSSS9nUR                  U 5      n[         S S R                  [        R                  5      n[	        SSSSS9nUR                  U5      n[        X%SSS9  [        UR                  UR                  SSS9  [        UR                  UR                  S	SS9  [        UR                  UR                  S
SS9  [        UR                  UR                  5        g )Nr8   r9   r:   r;   r<   gư>r   )rtolatolgh㈵>gMbP?)r   r   r+   float64r   r   float32r   intercept_hidden_intercept_visible_r[   
h_samples_)X_64rbm_64Xt_64X_32rbm_32Xt_32s         r#   "test_convergence_dtype_consistencyr      s    4C=

+DraPRSF  &E 4C=

+DraPRSF  &E Eu15  &":":Q !!6#<#<5q F&&(:(:QOF%%v'8'89r%   methodr   r0   c                     Sn[        US9n[        X 5      " [        5        UR                  5       n[	        U5       Vs/ s H  nSU 3PM
     nn[        XS5        gs  snf )z1Check `get_feature_names_out` for `BernoulliRBM`.r   )r   bernoullirbmN)r   getattrr   get_feature_names_outr/   r   )r   r   r"   namesr4   expected_namess         r#   test_feature_names_outr      s^     L
L
1CC!%%'E272EF2EQQC(2ENF~- Gs   A),r{   ru   ior   numpyr+   pytestsklearn.datasetsr   sklearn.neural_networkr   sklearn.utils._testingr   r   r   sklearn.utils.fixesr	   r
   r   sklearn.utils.validationr   r   _minrc   r$   r6   rB   markparametrizerF   rK   rU   r^   rf   rr   rx   r~   r   r   r*   r   r   r    r%   r#   <module>r      s   	 
    ( / 
 O N 6D)
 7;;=  7;;= ##"! .9 : +^n-LM N&	* .9< :<8	9 )>:4 ;40  .9  : . jj"**

BJJ7#rzz9JK	:. E=#9:. ;.r%   