
    Pi+                        d dl Z d dlZd dlmZ d dlZd dl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mZmZ d dlmZ  ed	          \  ZZee                                z  Zee                                z  Zd
 Zd Zd Zej                            de          d             Zej                            deez             d             Zd Z ej                            de          d             Z!d Z"ej                            de          d             Z#ej        j$        d             Z%ej                            de          d             Z&ej                            dej'        ej'        fej(        ej(        fe)ej(        fg          d             Z*d Z+ej                            dddg          d             Z,dS )     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                  "   t                                           } t          ddddd          }|                    |            t	          |                    |                                           dd	           t          | t                      d S )
N@   皙?
      	   )n_componentslearning_rate
batch_sizen_iterrandom_state      5r   decimal)Xdigitscopyr   fitr   score_samplesmeanr   )Xrbms     y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/neural_network/tests/test_rbm.pytest_fitr$      s    A
sr!RS  C GGAJJJ))!,,1133UAFFFF q'"""""    c                     t                                           } t          dddd          }| j        d         }t	          t          j        t          |          |j        z                      }t          j	        | |          }t          d          D ]}|D ]}|                    |           t          |                    |                                           dd	           t          | t                      d S )
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BGE),,s~=>>??I>!Y//L1XX # #! 	# 	#EOOE""""	# ))!,,1133UAFFFFq'"""""r%   c                      t           d d         } t          dddd          }|                    |            |                    |           }|                    |           }t          ||           d S )Nd         *   r   r   r   r   )r   r   r   	transform_mean_hiddensr   )r!   rbm1Xt1Xt2s       r#   test_transformrB   6   sn    ARAabQQQDHHQKKK
..

C


Q

CsC     r%   csr_containerc                 x     | t           d d                   }t                                          |           d S )N   )r   r   r   )rC   r!   s     r#   test_small_sparserF   A   s9     	gbqbk""ANNqr%   sparse_containerc                     | t           d d                   }t           d d                                         }t          dddd          }t          dddd          }|                    |           |                    |           t	          |                    |                                          |                    |                                          d           d S )	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&;&;&@&@&B&BA     r%   c                  r   t           j                            d          t          d d         t	          dddd                                                             d                   } t          j        fdt          d          D             d          }t          | |d	           d S )
Nr   r8      r:   r;   r<   c                 H    g | ]}                     d                    S )r   )_sample_hiddens).0r4   r!   r?   rngs     r#   
<listcomp>z'test_sample_hiddens.<locals>.<listcomp>c   s-    FFFa$&&qtS11FFFr%      r   )
r+   randomRandomStater   r   r   r>   r    r/   r   )hhsr!   r?   rQ   s     @@@r#   test_sample_hiddensrX   \   s    
)


"
"CAQ1QRPPPDHHQKKK1Q4  A	FFFFFF5::FFF	J	JB2q))))))r%   csc_containerc                    t           j                            d          }t          j        dgdgg          }t	          ddd|          }|                    |           t          |j        t          j        dgdgg          d	           t          |                    |          |           t           j                            d          } | dgdgg          }t	          ddd|          }|                    |           t          |j        t          j        dgdgg          d	           t          |                    |          |	                                           t          |j        |j                   d S )
Nr;                 ?rM   r<   gϾT"?g&r?rE   r   )
r+   rT   rU   arrayr   r   r   components_gibbstoarray)rY   rQ   r!   r?   rJ   s        r#   test_fit_gibbsra   h   sl    )


#
#C
3%#  AQ1RcRRRDHHQKKK"(ZL:,#?@@!    

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

1qyy{{333($*:;;;;;r%   c                  2   t           } t          dddd          }|                    |            |                    |           }t	          |           |                    |           }t          j        ||k                        d                    sJ d S )Nr;   (   r'   r<   rS   )axis)r   r   r   r_   r   r+   allmax)r!   r?   	X_sampled
X_sampled2s       r#   test_gibbs_smokeri      s     	ARBrPRSSSDHHQKKK

1Ii   AJ69
*//Q/778888888r%   lil_containersc                    t           j                            d          }t          j        t          j        d          t          j        d          g          }t          ddd|          }|                    |           |                    |          dk     	                                sJ d|_
        |                    |          }d|_
        |                     | |                    }t          ||           t          j        d          5  |                    t          j        d          d	z  g           d d d            d S # 1 swxY w Y   d S )
Nr;   i  r   rM   r<   iignore)underr8   )r+   rT   rU   vstackzerosonesr   r   r   re   r   r   errstatearange)rj   rQ   r!   r?   d_scores_scores         r#   test_score_samplesru      s|   
 )


#
#C
	28D>>274==122ARAbsSSSDHHQKKKq!!D(--///// D  ##GD  !2!233G))) 
8	$	$	$ 4 4BIdOOc123334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   ,EEEc                      t          dd          } t          j        }t                      t          _        	 |                     t
                     |t          _        d S # |t          _        w xY w)NrM   r   )r   verbose)r   sysstdoutr   r   r   )r"   
old_stdouts     r#   test_rbm_verboser{      s[    
a
,
,
,CJCJ 


Z
s   A A-c                      | dgdgg          }t          ddddd          }|                    |           t          j        d|                                j                  sJ d S )	Nr[   r\   rM   rS   r;   T)r   r   r   r   rw   zS\[BernoulliRBM\] Iteration 1, pseudo-likelihood = -?(\d)+(\.\d+)?, time = (\d|\.)+s)r   r   rematch
readouterrout)rY   capsysr!   r"   s       r#   test_sparse_and_verboser      s     	usen%%A
1QR  C GGAJJJ8	 		      r%   zdtype_in, dtype_outc                     t           d d                             |           }t          dddd          }|                    |          }|j        |k    s(J d                    |j        |j                              d S )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      s    
 	X&&A
B1QR
P
P
PC			1		B 8y   "L"S"S
!'# #     r%   c                  ^   t           d d                             t          j                  } t	          dddd          }|                    |           }t           d d                             t          j                  }t	          dddd          }|                    |          }t          ||dd           t          |j        |j        dd           t          |j	        |j	        d	d           t          |j
        |j
        d
d           t          |j        |j                   d S )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      s4   4C4=
++DraPRSSSF  &&E 4C4=
++DraPRSSSF  &&E E5u15555 &":Q    !6#<5q    F&(:QOOOOF%v'899999r%   methodr   r0   c                     d}t          |          } t          ||           t                     |                                }d t	          |          D             }t          ||           dS )z1Check `get_feature_names_out` for `BernoulliRBM`.r   )r   c                     g | ]}d | S )bernoullirbm )rP   r4   s     r#   rR   z*test_feature_names_out.<locals>.<listcomp>   s!    FFFQ(Q((FFFr%   N)r   getattrr   get_feature_names_outr/   r   )r   r   r"   namesexpected_namess        r#   test_feature_names_outr      su     L
L
1
1
1CGC!!!%%''EFF%2E2EFFFN~u-----r%   )-r}   rx   ior   numpyr+   pytestsklearn.datasetsr   sklearn.neural_networkr   sklearn.utils._testingr   r   r   sklearn.utils.fixesr	   r
   r   sklearn.utils.validationr   r   _minrf   r$   r6   rB   markparametrizerF   rK   rX   ra   ri   ru   thread_unsafer{   r   r   r   r*   r   r   r   r   r%   r#   <module>r      s   				 



            ( ( ( ( ( ( / / / / / /         
 O N N N N N N N N N 6 6 6 6 6 6[D)))
 7;;==  7;;== # # ## # #"! ! ! .99  :9 +^n-LMM  NM&	* 	* 	* .99< < :9<8	9 	9 	9 )>::4 4 ;:40       .99  :9  j"*
BJ7#rz9JK  	 : : :. E=#9::. . ;:. . .r%   