o
    h                     @   s  d dl Z d dlT d dlmZ d dlmZ e jje jjgZ	g dg dg dgZ
g dg d	g d
gZg dg dg dgZg dg dg dgZg dg dg dgZg dg dg dgZg dg dg dgZg dg dg dgZg dg dg dgZg dg dg dgZg deeegg dgZdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Z d4d5 Z!d6d7 Z"dS )8    N)*)EMPTY)utils)UnbanMoxOpal)Ragavanisred)	UrzaLordHigh	ArtificergoesinfinitewithThopterSword)OB-ARTzI-ART)zB-MONKEYr   zB-COLOR)	B-PERI-PERr   r   r   r   r   B-WEAPONr   )r   B_ARTI_ART)B_MONKEYr   B_COLOR)	B_PERI_PERr   r   r   r   r   B_WEAPONr   )r   r   zE-ART)zS-MONKEYr   zS-COLOR)	r   r   r   E-PERr   r   r   S-WEAPONr!   )r   ARTr"   )MONKEYr   COLOR)	PERr%   r%   r%   r   r   r   WEAPONr&   )	r   r   r   r    r   r   r   r   zE-WEAPON)r   B-MANAzI-MANA)B-CREr   r   )	r(   I-CREr)   r)   r   r   r   r   r   )r   r'   zE-MANA)zS-CREr   r   )	r(   r)   r)   zE-CREr   r   r   S-ARTr*   )NNNc                  C   sB   dd t ttD } t| }dd t ttD }||ksJ d S )Nc                 S      g | ]}d d t | D qS )c                 S      g | ]}|d  |d ffqS r       .0wordr/   r/   Z/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/tests/ner/test_ner_utils.py
<listcomp>       8test_normalize_empty_tags.<locals>.<listcomp>.<listcomp>zipr1   sentencer/   r/   r3   r4      r5   z-test_normalize_empty_tags.<locals>.<listcomp>c                 S   r+   )c                 S   r,   r-   r/   r0   r/   r/   r3   r4      r5   r6   r7   r9   r/   r/   r3   r4      r5   )r8   WORDSNONE_BIOr   normalize_empty_tags	EMPTY_BIO)	sentencesnew_sentencesexpectedr/   r/   r3   test_normalize_empty_tags   s   
rB   c                 C   sF   dd t | |D }tj|dd}dd t | |D }||ks!J d S )Nc                 S      g | ]\}}t t||qS r/   listr8   r1   xyr/   r/   r3   r4      r5   z*check_reprocessed_tags.<locals>.<listcomp>bioes)r?   schemec                 S   rC   r/   rD   rF   r/   r/   r3   r4   "   r5   )r8   r   process_tags)words
input_tagsexpected_tagsr?   retaggedexpected_retaggedr/   r/   r3   check_reprocessed_tags   s   rQ   c                   C   s   t ttt t ttt d S N)rQ   r;   BIO_TAGS
BIOES_TAGSALT_BIO	ALT_BIOESr/   r/   r/   r3   test_process_tags_bio%   s   rW   c                   C      t ttt d S rR   )rQ   r;   r<   
NONE_BIOESr/   r/   r/   r3   test_process_tags_with_none+   s   rZ   c                  G   s   dd t |  D }|S )Nc                 S   r+   )c                 S   s   g | ]}t |qS r/   )tuple)r1   rG   r/   r/   r3   r4   0   s    z)merge_tags.<locals>.<listcomp>.<listcomp>r7   )r1   r?   r/   r/   r3   r4   0   s    zmerge_tags.<locals>.<listcomp>r7   )tagsmerged_tagsr/   r/   r3   
merge_tags/   s   r^   c                  C   s$   t tt} t tt}tt| | d S rR   )r^   rS   rU   rT   rV   rQ   r;   bio_tagsrA   r/   r/   r3   test_combined_tags_bio4      

ra   c                  C   s$   t tt} t tt}tt| | d S rR   )r^   rS   rV   rT   rQ   r;   r_   r/   r/   r3   test_combined_tags_mixed9   rb   rc   c                   C   rX   rR   )rQ   r;   
BASIC_TAGSBASIC_BIOESr/   r/   r/   r3   test_process_tags_basic>   s   rf   c                   C   s   t ttt t ttt dS )z/
    This one should not change, naturally
    N)rQ   r;   rT   re   r/   r/   r/   r3   test_process_tags_bioesA   s   rg   c                    s   |  fddt D S )Nc                    s   g | ]	} D ]}|qqS r/   r/   rF   r\   r/   r3   r4   I       z!run_flattened.<locals>.<listcomp>)rH   )fnr\   r/   rh   r3   run_flattenedH   s   rk   c                   C   sd   t dd tD sJ t dd tD rJ t dd tD r$J t dd tD r0J d S )Nc                 S      g | ]	}|D ]}|qqS r/   r/   r1   rH   rG   r/   r/   r3   r4   L   ri   z"test_check_bio.<locals>.<listcomp>c                 S   rl   r/   r/   rm   r/   r/   r3   r4   M   ri   c                 S   rl   r/   r/   rm   r/   r/   r3   r4   N   ri   c                 S   rl   r/   r/   rm   r/   r/   r3   r4   O   ri   )r   is_bio_schemerS   rT   rd   re   r/   r/   r/   r3   test_check_bioK      ro   c                   C   sd   t dd tD rJ t dd tD rJ t dd tD s$J t dd tD r0J d S )Nc                 S   rl   r/   r/   rm   r/   r/   r3   r4   R   ri   z$test_check_basic.<locals>.<listcomp>c                 S   rl   r/   r/   rm   r/   r/   r3   r4   S   ri   c                 S   rl   r/   r/   rm   r/   r/   r3   r4   T   ri   c                 S   rl   r/   r/   rm   r/   r/   r3   r4   U   ri   )r   is_basic_schemerS   rT   rd   re   r/   r/   r/   r3   test_check_basicQ   rp   rr   c                   C   s(   t dd tD rJ tttt dS )zU
    Check that the methods work if the inputs are underscores instead of dashes
    c                 S   rl   r/   r/   rm   r/   r/   r3   r4   [   ri   z$test_underscores.<locals>.<listcomp>N)r   rq   
BIO_U_TAGSrQ   r;   rT   r/   r/   r/   r3   test_underscoresW   s   rt   c            	      C   sv  g d} g d}g d}g d}g d}g d}g d}t | |}g d}||ks,J t || }g d}||ks<J t | |}g d	}||ksLJ tt t | |}W d
   n1 sbw   Y  tt t | |}W d
   n1 s}w   Y  tt t | |}W d
   n1 sw   Y  tt t | |}W d
   d
S 1 sw   Y  d
S )z:
    Check a few versions of the tag sequence merging
    )r   r   r   B-FOOE-FOOr   )S-FOOr   ru   rv   r   r   )ru   rv   ru   rv   r   r   )r   ru   r   ru   rv   r   )r   ru   r   ru   ru   r   )r   ru   r   ru   I-FOOr   )r   ru   r   ru   rx   rx   )rw   r   r   ru   rv   r   )ru   rv   r   ru   rv   r   N)r   r^   pytestraises
ValueError)	seq1seq2seq3seq_errseq_err2seq_err3seq_err4resultrA   r/   r/   r3   test_merge_tags^   s8   "r   )#ry   stanza.testsstanza.models.common.vocabr   stanza.models.nerr   marktravispipeline
pytestmarkr;   rS   rs   rT   rd   re   rU   rV   r<   rY   r>   rB   rQ   rW   rZ   r^   ra   rc   rf   rg   rk   ro   rr   rt   r   r/   r/   r/   r3   <module>   s<    