o
    rZh                     @   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 )wordr   r   r
    ).0tokenr   r   H/var/www/auris/lib/python3.10/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   )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   sP   t t}|d }g d}|d }g d}| || | || 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   r@   )ZNYr   ),r   )ZUSAr   rB   )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>   rD   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    


