o
    h                     @   sv   d Z ddlmZ ddlZddlmZ ddlmZ ejj	ejj
gZdddZd	d
 Zdd Zdd Zdd Zdd ZdS )z1
Tests specifically for the MultilingualPipeline
    )defaultdictN)MultilingualPipeline)TEST_MODELS_DIRTc                 K   s^  d}g d}d d}| sd}d}g d}d d}|sd}d	|v r-tdtd d
|}	nddiddid}
tdtd |
d|}	||g}|	|}|d jdksRJ t|d jdks]J dd |d jd jD |ksnJ |d jd  |ks{J t|d jdksJ |d jdksJ dd |d jd jD |ksJ |d jd  |ksJ d S )NzThis is an English sentence.)ThisisanEnglishsentence.
)z('This', 5, 'nsubj')z('is', 5, 'cop')z('an', 5, 'det')z('English', 5, 'amod')z('sentence', 0, 'root')z('.', 5, 'punct') u   C'est une phrase française.)zC'estunephraseu
   françaiser
   )z("C'", 4, 'nsubj')z('est', 4, 'cop')z('une', 4, 'det')z('phrase', 0, 'root')u   ('française', 4, 'amod')z('.', 4, 'punct')lang_configs)	model_dirdownload_method
processorstokenize,pos,lemma,depparse)enfr)r   r   r   r   r      c                 S      g | ]}|j qS  text.0xr   r   `/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/tests/langid/test_multilingual.py
<listcomp>5       z-run_multilingual_pipeline.<locals>.<listcomp>r   c                 S   r   r   r   r   r   r   r   r    :   r!   r   )joinr   r   langlen	sentenceswordsdependencies_string)en_has_dependenciesfr_has_dependencieskwargsenglish_textenglish_wordsenglish_deps_goldfrench_textfrench_wordsfrench_deps_goldnlpr   docsr   r   r   run_multilingual_pipeline   s4   

""r3   c                   C   s
   t   dS )z-
    Basic test of multilingual pipeline
    Nr3   r   r   r   r   test_multilingual_pipeline>   s   
r5   c                   C   s   t dd dS )z$
    Test with the cache size 1
    r   )max_cache_sizeNr4   r   r   r   r   &test_multilingual_pipeline_small_cacheD   s   r7   c                  C   s   dddii} t d| d dS )z5
    Test with only tokenize for the EN pipeline
    r   r   tokenizeF)r(   r   Nr4   r   r   r   r   test_multilingual_configK   s   r:   c                   C   s<   t ddi dd t dddddiidd t ddi dd d	S )
z8
    Test loading an available subset of processors
    Fr8   )r(   r)   r   r   Tr   r   r   ztokenize,zzzzzzzzzzNr4   r   r   r   r   $test_multilingual_processors_limitedU   s   r;   c                  C   sD   t dd } tdd| d t dd } ddi| d< td	d| d d
S )zO
    Test that you can pass in a defaultdict for the lang_configs argument
    c                   S   
   t ddS Nr8   )r   dictr   r   r   r   <lambda>c      
 z)test_defaultdict_config.<locals>.<lambda>F)r(   r)   r   c                   S   r<   r=   r>   r   r   r   r   r@   f   rA   r   r   r   TN)r   r3   r9   r   r   r   test_defaultdict_config_   s
   rB   )TT)__doc__collectionsr   pyteststanza.pipeline.multilingualr   stanza.testsr   markpipelinetravis
pytestmarkr3   r5   r7   r:   r;   rB   r   r   r   r   <module>   s    
/

