
    c                          d 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 ddlmZmZ  G d d	ej        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)matutils)MmCorpus)lsimodel)basetmtests)datapathget_tmpfilec                   P    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 ZdS )TestLsiModelc                     t          t          d                    | _        t          j        | j        d          | _        d S )Nztestcorpus.mm   )
num_topics)r   r   corpusr   LsiModelmodelselfs    9lib/python3.11/site-packages/gensim/test/test_lsimodel.pysetUpzTestLsiModel.setUp   s6    x8899&t{qAAA


    c                 4   | j         }t          j                            t	          j        | j        | j        j                  d          \  }}}|                     t          j
        |dd         |j        j                             t          | j                  d         }||         }t	          j        |d          }t          j        ddg          }|                     t          j
        t!          |          t!          |                               dS ) Test lsi[vector] transformation.Ffull_matricesNr   r   GYEF0?)r   scipylinalgsvdr   corpus2denser   	num_terms
assertTruenpallclose
projectionslistsparse2fullarrayabs	r   r   ur%   vtdoctransformedvecexpecteds	            r   test_transformzTestLsiModel.test_transform   s     
 <##H$9$+t{G\$]$]mr#ss1bAbqbE5+;+=>>??? 4;"Cj";228Z566CHHc(mm<<=====r   c                 2   t          j        | j        dt          j                  }t
          j                            t          j	        | j        | j        j
                  d          \  }}}|                     t          j        |dd         |j        j                             |                     |j        j        j        t          j                   |                     |j        j        j        t          j                   t%          | j                  d         }||         }t          j        |d          }t          j        ddg          }|                     t          j        t+          |          t+          |          d	
                     dS )r   r   )r   dtypeFr   Nr   r   r   h㈵>atol)r   r   r   r"   float32r   r   r   r   r   r    r!   r#   r$   r%   assertEqualr+   r3   r&   r'   r(   r)   r*   s	            r   test_transform_float32z#TestLsiModel.test_transform_float32/   s>    !$+!2:NNN <##H$9$+t{G\$]$]mr#ss1bAbqbE5+;+=>>???)+12:>>>)+12:>>> 4;"Cj";228Z566CHHc(mm%HHHIIIIIr   c                 H   | j         }t          j        d || j                 D                       }t          j        ddgddgddgdd	gd
dgddgddgddgddgg	          }|                     t          j        t          |          t          |                               dS )z Test lsi[corpus] transformation.c                 8    g | ]}t          j        |d           S )r   )r   r'   ).0r-   s     r   
<listcomp>z6TestLsiModel.test_corpus_transform.<locals>.<listcomp>E   s%    TTT#-c155TTTr   g̎;BY?gQ@0?ghC2 @g畀ڿg/_?gev?g&R?o?g䠄?g9?gIq^ѿgQ?g^߿g-l?g˴Àg /?gM0`g
?gN)r   r"   vstackr   r(   r!   r#   r)   )r   r   gotr0   s       r   test_corpus_transformz"TestLsiModel.test_corpus_transformB   s    
iTTt{ASTTTUU8$%$#$%%%%

 
 
 	CHHc(mm<<=====r   c                 J   t          | j                  }|d         }t          j        |d          }t          j        d |j        d          }|                    |d         g           ||         }t          j        ||j                  }t          j
        g d          }|                     t          j        t          |          t          |          d                     |                    |dd         d	
           ||         }t          j        ||j                  }t          j
        g d          }|                     t          j        t          |          t          |          d                     |                    |dd                     t          j        ||         |j                  }t          j        ||         |j                  }	|                     t          j        t          |          t          |	          d                     d S )Nr      )r   r   )r   id2wordr   )gz        rD   rD   rD   gư>r5      r   )	chunksize)g+GgwFҿgсY_,gK ?g}.?r4   )r&   r   r   r   rC   add_documentsr   r'   r   r"   r(   r!   r#   r)   )
r   r   r-   model2r   r.   r/   r0   vec1vec2s
             r   test_online_transformz"TestLsiModel.test_online_transformS   s   dk""Qi "&Q???!v~RSTTT 	VAYK((( Cj";0@AA8===>>CHHc(mm$GGGHHH 	F1Q3K1555 Cj";0@AA8[[[\\CHHc(mm$GGGHHH 	F122J''' #E#J0@AA#F3K1BCCCIIs4yytDDDEEEEEr   c                 6   t          d          }| j        }|                    |           t          j                            |          }|                     |j        |j                   |                     t          j
        |j        j        |j        j                             |                     t          j
        |j        j        |j        j                             g }|                     t          j
        ||         ||                              d S )Ngensim_models_lsi.tstr   r   saver   r   loadr8   r   r!   r"   r#   r$   r+   r%   r   fnamer   rH   tstvecs        r   test_persistencezTestLsiModel.test_persistencew   s    344


5"''..)6+<===E$4$68I8KLLMMME$4$68I8KLLMMME&M6&>BBCCCCCr   c                 :   t          d          }| j        }|                    |           t          j                            |d           }|                     |j        |j                   |                     t          j
        |j        j        |j        j                             |                     t          j
        |j        j        |j        j                             g }|                     t          j
        ||         ||                              d S )Ngensim_models_lsi.tst.gzmmaprN   rQ   s        r   test_persistence_compressedz(TestLsiModel.test_persistence_compressed   s    677


5"''D'99)6+<===E$4$68I8KLLMMME$4$68I8KLLMMME&M6&>BBCCCCCr   c                    t          d          }| j        }|                    |d           t          j                            |d          }|                     |j        |j                   |                     t          |j
        j        t          j                             |                     t          |j
        j        t          j                             |                     t          j        |j
        j        |j
        j                             |                     t          j        |j
        j        |j
        j                             g }|                     t          j        ||         ||                              d S )NrM   r   	sep_limitrrW   )r   r   rO   r   r   rP   r8   r   r!   
isinstancer$   r+   r"   memmapr%   r#   rQ   s        r   test_large_mmapzTestLsiModel.test_large_mmap   s5   344
 	

5A
&&& "''C'88)6+<===
6#4#6	BBCCC
6#4#6	BBCCCE$4$68I8KLLMMME$4$68I8KLLMMME&M6&>BBCCCCCr   c                 `    t          d          }| j        }|                    |d           d S )NrV   r   r[   )r   r   rO   assertRaisesIOErrorr   r   rP   )r   rR   r   s      r   test_large_mmap_compressedz'TestLsiModel.test_large_mmap_compressed   s6    677
 	

5A
&&& 	r   c                     |                      | j        j        d           |                      | j        j        | j        j                   d S )N	   )r8   r   docs_processedr   num_docsr   s    r   test_docs_processedz TestLsiModel.test_docs_processed   sC    2A6662DK4HIIIIIr   c                 Z   | j                                         }t          | j         j                  }|D ]u}|                     t          |t          j                             |                     |j	        t          j
                   |                     ||j        d                    vd S )Nr   )r   
get_topicslenrC   r!   r^   r"   ndarrayr8   r3   float64shape)r   topics
vocab_sizetopics       r   test_get_topicszTestLsiModel.test_get_topics   s    &&((+,,
 	9 	9EOOJubj99:::U["*555ZQ8888	9 	9r   N)__name__
__module____qualname__r   r1   r9   r@   rK   rT   rY   r`   rd   ri   rs    r   r   r
   r
      s        B B B> > >"J J J&> > >""F "F "FH	D 	D 	D	D 	D 	DD D D"L L LJ J J9 9 9 9 9r   r
   __main__z)%(asctime)s : %(levelname)s : %(message)s)formatlevel)__doc__loggingunittestnumpyr"   scipy.linalgr   gensimr   gensim.corpora.mmcorpusr   gensim.modelsr   gensim.testr   gensim.test.utilsr   r   TestCaseTestBaseTopicModelr
   rt   basicConfigDEBUGmainrw   r   r   <module>r      s   
                 , , , , , , " " " " " " # # # # # # 3 3 3 3 3 3 3 3]9 ]9 ]9 ]9 ]98$k&D ]9 ]9 ]9D z GJRYR_````HMOOOOO r   