a
    Kb                     @   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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   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 )Zwordr   r   r
    ).0tokenr   r   8lib/python3.9/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 }g d}| || 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   sT   t t}|d }g d}t|j|dd}g d}| || | || d S )Nr,   )	)r-   r   )r   r   )r.   r   )r/   r   )r0   zB-PP)r   r   )r2   r   )r3   r   )r4   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   sP   t t}|d }g d}|d }g d}| || | || d S )Nz#Shakespeare theatre was in London .))ZShakespearezB-PER)Ztheatrer   )Zwasr   inr   )ZLondonr   r5   r   z!UN headquarters are in NY , USA .))ZUNzB-ORG)Zheadquartersr   )Zarer   r>   )ZNYr   ),r   )ZUSAr   r@   )r   r   r    r   r!   )r"   Z	nertaggerr9   r:   r;   r<   r   r   r   test_senna_ner_taggerX   s    	
z%TestSennaTagger.test_senna_ner_taggerN)r'   r(   r)   r*   r6   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   


