o
    i                     @   s   d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	m
Z
mZ dev r.eed e ZndZeeZeedG d	d
 d
ejZeedG dd dejZdS )z
Unit tests for Senna
    N)environpathsep)Senna)SennaChunkTaggerSennaNERTaggerSennaTaggerSENNAz/usr/share/senna-v3.0zRequires Senna executablec                   @   s   e Zd ZdZdd ZdS )TestSennaPipelinez Unittest for nltk.classify.sennac                 C   sB   t tg d}d }dd ||D }g d}| || dS )zSenna pipeline interface)poschknerz.Dusseldorf is an international business centerc                 S   s(   g | ]}|d  |d |d |d fqS )wordr   r   r    ).0tokenr   r   T/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nltk/test/unit/test_senna.py
<listcomp>   s    z9TestSennaPipeline.test_senna_pipeline.<locals>.<listcomp>))
DusseldorfB-NPB-LOCNNP)isB-VPOVBZ)anr   r   DT)internationalI-NPr   JJ)businessr   r   NN)centerr   r   r"   N)r   SENNA_EXECUTABLE_PATHsplittagassertEqual)selfpipelinesentresultexpectedr   r   r   test_senna_pipeline   s   z%TestSennaPipeline.test_senna_pipelineN)__name__
__module____qualname____doc__r-   r   r   r   r   r
      s    r
   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	TestSennaTaggerzUnittest for nltk.tag.sennac                 C   s.   t t}|d }g d}| || d S )N,What is the airspeed of an unladen swallow ?)	)WhatWP)r   r   )ther   )airspeedr"   )ofIN)r   r   )unladenr"   )swallowr"   )?.)r   r$   r&   r%   r'   )r(   taggerr+   r,   r   r   r   test_senna_tagger0   s   z!TestSennaTagger.test_senna_taggerc                 C   sT   t t}|d }g d}t|j|dd}g d}| || | || d S )Nr3   )	)r4   r   )r   r   )r6   r   )r7   r   )r8   zB-PP)r   r   )r:   r   )r;   r   )r<   r   NP)
chunk_type))r4   0)zthe airspeedz2-3)zan unladen swallowz5-6-7)r   r$   r&   r%   listbio_to_chunksr'   )r(   	chktaggerresult_1
expected_1result_2
expected_2r   r   r   test_senna_chunk_tagger@   s   z'TestSennaTagger.test_senna_chunk_taggerc                 C   sP   t t}|d }g d}|d }g d}| || | || d S )Nz#Shakespeare theatre was in London .))ShakespearezB-PER)theatrer   )wasr   inr   )Londonr   r=   r   z!UN headquarters are in NY , USA .))UNzB-ORG)headquartersr   )arer   rN   )NYr   ),r   )USAr   rQ   )r   r$   r&   r%   r'   )r(   	nertaggerrF   rG   rH   rI   r   r   r   test_senna_ner_taggerX   s   	
z%TestSennaTagger.test_senna_ner_taggerN)r.   r/   r0   r1   r?   rJ   rY   r   r   r   r   r2   ,   s
    r2   )r1   unittestosr   r   r   nltk.classifyr   nltk.tagr   r   r   normpathr$   existssenna_is_installed
skipUnlessTestCaser
   r2   r   r   r   r   <module>   s    


