
    c                         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 ddlmZmZ  G d d	ej                  Zed
k    r( ej        dej                    ej                     dS dS )zN
Automated tests for checking transformation algorithms (the models package).
    N)
csr_matrix)issparse)mmcorpus)	normmodel)datapathget_tmpfilec                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestNormModelc                    t          j        t          d                    | _        t	          | j                  d         | _        t          j        | j        d          | _        t          j        | j        d          | _	        d S )Nztestcorpus.mm   l1)norml2)
r   MmCorpusr   corpuslistdocr   	NormModelmodel_l1model_l2selfs    :lib/python3.11/site-packages/gensim/test/test_normmodel.pysetUpzTestNormModel.setUp   sj    '(A(ABB $$Q'!+DKdCCC!+DKdCCC    c                     | j                             | j                  }g d}|                     t	          j        ||                     dS )z&Test tuple input for l1 transformation))         ?)   g      ?)   r   N)r   	normalizer   
assertTruenpallcloser   
normalizedexpecteds      r   test_tupleInput_l1z TestNormModel.test_tupleInput_l1!   sH    ],,TX66
333J99:::::r   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          |||ffd          }| j                            |          }|                     t          |                     t          j        g dg dg dg          }|                     t          j        |                                |                     d	S )
z2Test sparse csr matrix input for l1 transformationr   r   r      r+   r+   r   r+   r+   r   r   r+   r   r+   r      r      r   r   shapeg!K,a?        g!K,a?r4   r4   gvi&$I?g>[a?gy?g0$I?N)	r#   arrayr   r   r!   r"   r   r$   toarrayr   rowcoldatasparse_matrixr&   r'   s          r   test_sparseCSRInput_l1z$TestNormModel.test_sparseCSRInput_l1'   s    h)))**h)))**x***++"D3*#5VDDD],,];;
 	,,--- 8888 4 4 4 D D DF G G 	J$6$6$8$8(CCDDDDDr   c                    t          j        g dg dg dg          }| j                            |          }|                     t          |t           j                             t          j        g dg dg dg          }|                     t          j        ||                     |                     t          d | j        g d           d	S )
z/Test for np ndarray input for l1 transformationr   r   r+   r   r   r   r.   r   r/   r3   r5   r6   c                 ,    |                      |          S Nr!   modelr   s     r   <lambda>z9TestNormModel.test_numpyndarrayInput_l1.<locals>.<lambda>M       9M9M r   r   r+   r   N)
r#   r7   r   r!   r"   
isinstancendarrayr$   assertRaises
ValueErrorr   ndarray_matrixr&   r'   s       r   test_numpyndarrayInput_l1z'TestNormModel.test_numpyndarrayInput_l18   s    IIIIII#
  
 ],,^<<
 	
:rz::;;; 8'''   000
  
 	J99::: 	*&M&Mt}^g^g^ghhhhhr   c                     | j                             | j                  }g d}|                     t	          j        ||                     dS )z&Test tuple input for l2 transformation))r   ?,p ?)r   g?,p ?)r    rS   N)r   r!   r   r"   r#   r$   r%   s      r   test_tupleInput_l2z TestNormModel.test_tupleInput_l2O   sH    ],,TX66
^^^J99:::::r   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          |||ffd          }| j                            |          }|                     t          |                     t          j        g dg dg dg          }|                     t          j        |                                |                     d	S )
z2Test sparse csr matrix input for l2 transformationr*   r,   r-   r0   r1   gxJ
ֺ?r4   gZ"
?r4   r4   gW ?g
?gS?gW ?N)	r#   r7   r   r   r!   r"   r   r$   r8   r9   s          r   test_sparseCSRInput_l2z$TestNormModel.test_sparseCSRInput_l2U   s    h)))**h)))**x***++"D3*#5VDDD],,];;
 	,,--- 8(((   ///
  
 	J$6$6$8$8(CCDDDDDr   c                    t          j        g dg dg dg          }| j                            |          }|                     t          |t           j                             t          j        g dg dg dg          }|                     t          j        ||                     |                     t          d | j        g d           d	S )
z/Test for np ndarray input for l2 transformationr@   rA   rB   rV   rW   rX   c                 ,    |                      |          S rD   rE   rF   s     r   rH   z9TestNormModel.test_numpyndarrayInput_l2.<locals>.<lambda>~   rI   r   rJ   N)
r#   r7   r   r!   r"   rK   rL   r$   rM   rN   rO   s       r   test_numpyndarrayInput_l2z'TestNormModel.test_numpyndarrayInput_l2i   s    IIIIII#
  
 ],,^<<
 	
:rz::;;; 8(((   ///
  
 	J99::: 	*&M&Mt}^g^g^ghhhhhr   c                 ^    |                      t          t          j        | j        d           dS )z1Test if error messages raised on unsupported norml0N)rM   rN   r   r   r   r   s    r   	test_initzTestNormModel.test_init   s'    *i&94;MMMMMr   c                    t          d          }t          j        | j                  }|                    |           t          j                            |          }|                     |j        |j        k               g }|                     t          j	        |
                    |          |
                    |                               d S )Nzgensim_models.tstr   r   r   r   saveloadr"   normsr#   r$   r!   r   fnamerG   model2tstvecs        r   test_persistencezTestNormModel.test_persistence   s    /00#DK00

5$))%00v|3444EOOF$;$;V=M=Mf=U=UVVWWWWWr   c                    t          d          }t          j        | j                  }|                    |           t          j                            |d           }|                     |j        |j        k               g }|                     t          j	        |
                    |          |
                    |                               d S )Nzgensim_models.tst.gz)mmapra   re   s        r   test_persistence_compressedz)TestNormModel.test_persistence_compressed   s    233#DK00

5$))%d);;v|3444EOOF$;$;V=M=Mf=U=UVVWWWWWr   N)__name__
__module____qualname__r   r(   r>   rQ   rT   rY   r\   r_   ri   rl    r   r   r
   r
      s        D D D; ; ;E E E"i i i.; ; ;E E E(i i i.N N NX X XX X X X Xr   r
   __main__z)%(asctime)s : %(levelname)s : %(message)s)formatlevel)__doc__loggingunittestnumpyr#   scipy.sparser   r   gensim.corporar   gensim.modelsr   gensim.test.utilsr   r   TestCaser
   rm   basicConfigDEBUGmainrp   r   r   <module>r      s   
       # # # # # # ! ! ! ! ! ! # # # # # # # # # # # # 3 3 3 3 3 3 3 3~X ~X ~X ~X ~XH% ~X ~X ~XB z GJRYR_````HMOOOOO r   