o
    h                     @   s   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 ddlmZmZmZ d	d
 Zdd Zdd Zdd ZdS )z<
A few tests of the utils module for the sentiment datasets
    N)data)SentimentDatum)WVType)process_utils)TEST_MODELS_DIR)
train_filedev_file	test_filec                 C   sD   t |tjd}| d }t|| t |tjd}||ks J dS )zJ
    Test that writing a single list of items to an output file works
       zfoo.jsonN)r   read_datasetr   OTHERr   
write_list)tmp_pathr   	train_setdataset_file
train_copy r   f/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/tests/classifiers/test_process_utils.pytest_write_list   s
   r   c           
      C   s   dd |||fD }t || d g d}t| }t|t|ks$J t||D ]\}}t| | tj	d}	|	|ks=J q)dS )z>
    Test that writing all three parts of a dataset works
    c                 S   s   g | ]
}t |tjd qS )r
   )r   r   r   r   ).0filenamer   r   r   
<listcomp>#   s    z&test_write_dataset.<locals>.<listcomp>en_test)zen_test.train.jsonzen_test.dev.jsonzen_test.test.jsonr
   N)
r   write_datasetoslistdirsortedzipr   r   r   r   )
r   r   r   r	   datasetexpected_filesdataset_filesr   expectedwrittenr   r   r   test_write_dataset   s   
r#   c                 C   s   | d }t |ddd}|d |d W d   n1 s w   Y  tjdtd	dd
}ddd}tj|ddd||d}t|dksFJ |tdg ddtdg ddgksZJ dS )z@
    Test the basic operation of the read_snippets function
    foo.csvwutf-8encodingzFOO	This is a test	happy
z"FOO	This is a second sentence	sad
Nentokenizedir
processorsdownload_methodr   r
   )happysad   nlpThisisatest	sentimenttextr5   r6   r7   secondsentence	openwritestanzaPipeliner   r   read_snippetslenr   r   r   foutr3   mappingsnippetsr   r   r   test_read_snippets.   s   

rJ   c                 C   s   | d }t |ddd}|d |d |d W d   n1 s%w   Y  tjd	td
dd}dddd}tj|ddd	||d}t|dksLJ |tdg ddtdg ddtdg ddgksgJ dS )zV
    Test what happens when multiple columns are combined for the sentiment value
    r$   r%   r&   r'   zFOO	This is a test	happy	foo
z&FOO	This is a second sentence	sad	bar
z%FOO	This is a third sentence	sad	foo
Nr)   r*   r+   r   r
   r1   ))r/   foo)r0   bar)r0   rK   )r1      r2   rM   r4   r9   r<   )r5   r6   r7   thirdr>   r?   rF   r   r   r   test_read_snippets_two_columns@   s   

rO   )__doc__r   pytestrB   stanza.models.classifiersr   stanza.models.classifiers.datar   stanza.models.classifiers.utilsr   stanza.utils.datasets.sentimentr   stanza.testsr   "stanza.tests.classifiers.test_datar   r   r	   r   r#   rJ   rO   r   r   r   r   <module>   s    