U
    e                     @   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k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SennaTaggerZ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   sL   t tdddg}d }dd ||D }ddd	d
ddg}| || 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   Z/var/www/html/assets/scripts/venv/lib/python3.8/site-packages/nltk/test/unit/test_senna.py
<listcomp>   s   z9TestSennaPipeline.test_senna_pipeline.<locals>.<listcomp>)Z
DusseldorfB-NPB-LOCZNNP)isB-VPOVBZ)anr   r   DT)internationalI-NPr   ZJJ)Zbusinessr   r   NN)centerr   r   r   N)r   SENNA_EXECUTABLE_PATHsplittagassertEqual)selfZ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 }dddddddd	d
g	}| || d S )N,What is the airspeed of an unladen swallow ?)WhatZWP)r   r   )ther   )airspeedr   )ofIN)r   r   )unladenr   )swallowr   )?.)r   r   r!   r    r"   )r#   Ztaggerr%   r&   r   r   r   test_senna_tagger0   s    z!TestSennaTagger.test_senna_taggerc              	   C   sd   t t}|d }dddddddd	d
g	}t|j|dd}dddg}| || | || d S )Nr-   )r.   r   )r   r   )r/   r   )r0   r   )r1   zB-PP)r   r   )r3   r   )r4   r   )r5   r   ZNP)Z
chunk_type)r.   0)zthe airspeedz2-3)zan unladen swallowz5-6-7)r   r   r!   r    listZbio_to_chunksr"   )r#   Z	chktaggerresult_1
expected_1result_2
expected_2r   r   r   test_senna_chunk_tagger@   s&    z'TestSennaTagger.test_senna_chunk_taggerc                 C   sd   t t}|d }ddddddg}|d }d	d
ddddddg}| || | || d S )Nz#Shakespeare theatre was in London .)ZShakespearezB-PER)Ztheatrer   )wasr   )inr   )ZLondonr   )r6   r   z!UN headquarters are in NY , USA .)ZUNzB-ORG)Zheadquartersr   )Zarer   )ZNYr   ),r   )ZUSAr   )r   r   r!   r    r"   )r#   Z	nertaggerr:   r;   r<   r=   r   r   r   test_senna_ner_taggerX   s*    	
z%TestSennaTagger.test_senna_ner_taggerN)r(   r)   r*   r+   r7   r>   rB   r   r   r   r   r,   ,   s   r,   )r+   Zunittestosr   r   r   Znltk.classifyr   Znltk.tagr   r   r   normpathr   existsZsenna_is_installedZ
skipUnlessZTestCaser	   r,   r   r   r   r   <module>   s   


