
    g                     R   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j                  ed         ez   ZndZ ej                  e      Z ej                   ed       G d	 d
ej"                               Z ej                   ed       G d dej"                               Zy)z
Unit tests for Senna
    N)environpathsep)Senna)SennaChunkTaggerSennaNERTaggerSennaTaggerSENNAz/usr/share/senna-v3.0zRequires Senna executablec                       e Zd ZdZd Zy)TestSennaPipelinez Unittest for nltk.classify.sennac                     t        t        g d      }dj                         }|j                  |      D cg c]  }|d   |d   |d   |d   f }}g d}| j	                  ||       yc c}w )	zSenna pipeline interface)poschknerz.Dusseldorf is an international business centerwordr   r   r   ))
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tokenresultexpecteds         N/var/www/openai/venv/lib/python3.12/site-packages/nltk/test/unit/test_senna.pytest_senna_pipelinez%TestSennaPipeline.test_senna_pipeline   s     .0EF?EEG "d+
+ 6]E%L%,eE+ 	 

 	*
s   A(N)__name__
__module____qualname____doc__r-        r,   r   r      s
    *+r3   r   c                   "    e Zd ZdZd Zd Zd Zy)TestSennaTaggerzUnittest for nltk.tag.sennac                     t        t              }|j                  dj                               }g d}| j	                  ||       y )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+   s       r,   test_senna_taggerz!TestSennaTagger.test_senna_tagger0   s>    23JPPRS

 	*r3   c                     t        t              }|j                  dj                               }g d}t	        |j                  |d            }g d}| j                  ||       | j                  ||       y )Nr7   )	)r8   r   )r   r   )r:   r   )r;   r   )r<   zB-PP)r   r   )r>   r   )r?   r   )r@   r   NP)
chunk_type))r8   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_2s         r,   test_senna_chunk_taggerz'TestSennaTagger.test_senna_chunk_tagger@   sq    $%:;	==!O!U!U!WX


 	//T/JK


 	:.:.r3   c                     t        t              }|j                  dj                               }g d}|j                  dj                               }g d}| j	                  ||       | j	                  ||       y )Nz#Shakespeare theatre was in London .))ShakespearezB-PER)theatrer   )wasr   inr   )Londonr   rA   r   z!UN headquarters are in NY , USA .))UNzB-ORG)headquartersr   )arer   rT   )NYr   ),r   )USAr   rW   )r   r"   r$   r#   r%   )r&   	nertaggerrK   rL   rM   rN   s         r,   test_senna_ner_taggerz%TestSennaTagger.test_senna_ner_taggerX   so    "#89	==!F!L!L!NO

 ==!D!J!J!LM	

 	:.:.r3   N)r.   r/   r0   r1   rC   rO   r_   r2   r3   r,   r5   r5   ,   s    %+ /0/r3   r5   )r1   unittestosr   r   r   nltk.classifyr   nltk.tagr   r   r	   normpathr"   existssenna_is_installed
skipUnlessTestCaser   r5   r2   r3   r,   <module>ri      s     ! !  B B g)DMM''*:;cA3 T[[!67  ')DE+)) + F+. ')DEC/h'' C/ FC/r3   