Ë
    çÍ:j0y  ã                   ó~   — d Z ddlZddlZ ej                  d«       ddlmZ ddlmZ  G d„ dej                  «      Z	y)z
Unit tests for nltk.tgrep.
é    NÚ	pyparsing)Útgrep)ÚParentedTreec                   ó¾   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y) ÚTestSequenceFunctionsz5
    Class containing unit tests for nltk.tgrep.
    c                 óV   — t        j                  d«      }| j                  |g d¢«       y)z.
        Simple test of tokenization.
        ú%A .. (B !< C . D) | ![<< (E , F) $ G])ÚAú..ú(ÚBú!ú<ÚCú.ÚDú)ú|r   ú[ú<<r   ÚEú,ÚFr   ú$ÚGú]N)r   Útgrep_tokenizeÚassertEqual)ÚselfÚtokenss     ún/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/test/unit/test_tgrep.pyÚtest_tokenize_simplez*TestSequenceFunctions.test_tokenize_simple   s+   € ô ×%Ñ%Ð&MÓNˆØ×ÑØòõ	
ó    c                 ót   — | j                  t        j                  d«      t        j                  d«      «       y)zM
        Test that tokenization handles bytes and strs the same way.
        s%   A .. (B !< C . D) | ![<< (E , F) $ G]r	   N©r   r   r   ©r   s    r!   Útest_tokenize_encodingz,TestSequenceFunctions.test_tokenize_encoding@   s0   € ð 	×ÑÜ× Ñ Ð!IÓJÜ× Ñ Ð!HÓIõ	
r#   c                 óè  — | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d	«      g d
¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d ¢«       | j                  t        j                  d!«      g d"¢«       | j                  t        j                  d#«      g d$¢«       | j                  t        j                  d%«      g d&¢«       | j                  t        j                  d'«      g d(¢«       | j                  t        j                  d)«      g d*¢«       | j                  t        j                  d+«      g d,¢«       | j                  t        j                  d-«      g d.¢«       | j                  t        j                  d/«      g d0¢«       | j                  t        j                  d1«      g d2¢«       | j                  t        j                  d3«      g d4¢«       | j                  t        j                  d5«      g d6¢«       | j                  t        j                  d7«      g d8¢«       | j                  t        j                  d9«      g d:¢«       | j                  t        j                  d;«      g d<¢«       | j                  t        j                  d=«      g d>¢«       | j                  t        j                  d?«      g d@¢«       | j                  t        j                  dA«      g dB¢«       | j                  t        j                  dC«      g dD¢«       | j                  t        j                  dE«      g dF¢«       | j                  t        j                  dG«      g dH¢«       | j                  t        j                  dI«      g dJ¢«       | j                  t        j                  dK«      g dL¢«       | j                  t        j                  dM«      g dN¢«       | j                  t        j                  dO«      g dP¢«       | j                  t        j                  dQ«      g dR¢«       | j                  t        j                  dS«      g dT¢«       | j                  t        j                  dU«      g dV¢«       | j                  t        j                  dW«      g dX¢«       | j                  t        j                  dY«      g dZ¢«       | j                  t        j                  d[«      g d\¢«       | j                  t        j                  d]«      g d^¢«       | j                  t        j                  d_«      g d`¢«       | j                  t        j                  da«      g db¢«       | j                  t        j                  dc«      g dd¢«       | j                  t        j                  de«      g df¢«       | j                  t        j                  dg«      g dh¢«       | j                  t        j                  di«      g dj¢«       | j                  t        j                  dk«      g dl¢«       | j                  t        j                  dm«      g dn¢«       | j                  t        j                  do«      g dp¢«       | j                  t        j                  dq«      g dr¢«       | j                  t        j                  ds«      g dt¢«       | j                  t        j                  du«      g dv¢«       | j                  t        j                  dw«      g dx¢«       | j                  t        j                  dy«      g dz¢«       | j                  t        j                  d{«      g d|¢«       y})~z8
        Test tokenization of basic link types.
        zA<B)r
   r   r   zA>B)r
   ú>r   zA<3B)r
   ú<3r   zA>3B)r
   ú>3r   zA<,B)r
   ú<,r   zA>,B)r
   ú>,r   zA<-3B)r
   ú<-3r   zA>-3B)r
   ú>-3r   zA<-B)r
   ú<-r   zA>-B)r
   ú>-r   zA<'B)r
   ú<'r   zA>'B)r
   ú>'r   zA<:B)r
   ú<:r   zA>:B)r
   ú>:r   zA<<B)r
   r   r   zA>>B)r
   ú>>r   zA<<,B)r
   ú<<,r   zA>>,B)r
   ú>>,r   zA<<'B)r
   ú<<'r   zA>>'B)r
   ú>>'r   zA<<:B)r
   ú<<:r   zA>>:B)r
   ú>>:r   zA.B)r
   r   r   zA,B)r
   r   r   zA..B)r
   r   r   zA,,B)r
   ú,,r   zA$B)r
   r   r   zA$.B)r
   ú$.r   zA$,B)r
   ú$,r   zA$..B)r
   ú$..r   zA$,,B)r
   ú$,,r   zA!<B)r
   r   r   r   zA!>B)r
   r   r)   r   zA!<3B)r
   r   r*   r   zA!>3B)r
   r   r+   r   zA!<,B)r
   r   r,   r   zA!>,B)r
   r   r-   r   zA!<-3B)r
   r   r.   r   zA!>-3B)r
   r   r/   r   zA!<-B)r
   r   r0   r   zA!>-B)r
   r   r1   r   zA!<'B)r
   r   r2   r   zA!>'B)r
   r   r3   r   zA!<:B)r
   r   r4   r   zA!>:B)r
   r   r5   r   zA!<<B)r
   r   r   r   zA!>>B)r
   r   r6   r   zA!<<,B)r
   r   r7   r   zA!>>,B)r
   r   r8   r   zA!<<'B)r
   r   r9   r   zA!>>'B)r
   r   r:   r   zA!<<:B)r
   r   r;   r   zA!>>:B)r
   r   r<   r   zA!.B)r
   r   r   r   zA!,B)r
   r   r   r   zA!..B)r
   r   r   r   zA!,,B)r
   r   r=   r   zA!$B)r
   r   r   r   zA!$.B)r
   r   r>   r   zA!$,B)r
   r   r?   r   zA!$..B)r
   r   r@   r   zA!$,,B)r
   r   rA   r   Nr%   r&   s    r!   Útest_tokenize_link_typesz.TestSequenceFunctions.test_tokenize_link_typesI   sÇ  € ð 	×Ñœ×-Ñ-¨eÓ4²oÔFØ×Ñœ×-Ñ-¨eÓ4²oÔFØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨eÓ4²oÔFØ×Ñœ×-Ñ-¨eÓ4²oÔFØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨eÓ4²oÔFØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨fÓ5Ò7GÔHØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨gÓ6Ò8IÔJØ×Ñœ×-Ñ-¨fÓ5Ò7KÔLØ×Ñœ×-Ñ-¨fÓ5Ò7KÔLØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨fÓ5Ò7KÔLØ×Ñœ×-Ñ-¨fÓ5Ò7KÔLØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨fÓ5Ò7KÔLØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨hÓ7Ò9OÔPØ×Ñœ×-Ñ-¨hÓ7Ò9OÕPr#   c                 ó\  — | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      dg«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d	¢«       | j                  t        j                  d
«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       y)zJ
        Test tokenization of the TGrep2 manual example patterns.
        úNP < PP)ÚNPr   ÚPPú/^NP/úNP << PP . VP)rE   r   rF   r   ÚVPúNP << PP | . VP)rE   r   rF   r   r   rI   úNP !<< PP [> NP | >> VP])rE   r   r   rF   r   r)   rE   r   r6   rI   r   úNP << (PP . VP))rE   r   r   rF   r   rI   r   úNP <' (PP <, (IN < on)))rE   r2   r   rF   r,   r   ÚINr   Úonr   r   úS < (A < B) < C)	ÚSr   r   r
   r   r   r   r   r   úS < ((A < B) < C))rQ   r   r   r   r
   r   r   r   r   r   r   úS < (A < B < C))	rQ   r   r   r
   r   r   r   r   r   zA<B&.C)r
   r   r   ú&r   r   Nr%   r&   s    r!   Útest_tokenize_examplesz,TestSequenceFunctions.test_tokenize_examplesŒ   sh  € ð 	×Ñœ×-Ñ-¨iÓ8Ò:KÔLØ×Ñœ×-Ñ-¨gÓ6¸¸	ÔBØ×ÑÜ× Ñ  Ó1Ò3Pô	
ð 	×ÑÜ× Ñ Ð!2Ó3Ò5Wô	
ð 	×ÑÜ× Ñ Ð!;Ó<ÚIô	
ð 	×ÑÜ× Ñ Ð!2Ó3Ú3ô	
ð 	×ÑÜ× Ñ Ð!:Ó;ÚIô	
ð 	×ÑÜ× Ñ Ð!2Ó3Ú9ô	
ð 	×ÑÜ× Ñ Ð!4Ó5ÚCô	
ð 	×ÑÜ× Ñ Ð!2Ó3Ú9ô	
ð 	×Ñœ×-Ñ-¨hÓ7Ò9WÕXr#   c                 óR   — | j                  t        j                  d«      g d¢«       y)z/
        Test tokenization of quoting.
        z"A<<:B"<<:"A $.. B"<"A>3B"<C)z"A<<:B"r;   z	"A $.. B"r   z"A>3B"r   r   Nr%   r&   s    r!   Útest_tokenize_quotingz+TestSequenceFunctions.test_tokenize_quoting²   s$   € ð 	×ÑÜ× Ñ Ð!?Ó@ÚDõ	
r#   c                 ól  — | j                  t        j                  d«      dg«       | j                  t        j                  d«      dg«       | j                  t        j                  d«      dg«       | j                  t        j                  d«      dg«       | j                  t        j                  d«      ddg«       | j                  t        j                  d«      g d	¢«       | j                  t        j                  d
«      g d¢«       | j                  t        j                  d«      g d¢«       y)z2
        Test tokenization of node names.
        ÚRobertz	/^[Bb]ob/Ú*Ú__zN()úN(r   zN(0,))r\   Ú0r   r   zN(0,0))r\   r]   r   r]   r   zN(0,0,))r\   r]   r   r]   r   r   Nr%   r&   s    r!   Útest_tokenize_nodenamesz-TestSequenceFunctions.test_tokenize_nodenames»   sî   € ð 	×Ñœ×-Ñ-¨hÓ7¸(¸ÔDØ×Ñœ×-Ñ-¨kÓ:¸[¸MÔJØ×Ñœ×-Ñ-¨cÓ2°S°EÔ:Ø×Ñœ×-Ñ-¨dÓ3°d°VÔ<à×Ñœ×-Ñ-¨eÓ4°t¸S°kÔBØ×Ñœ×-Ñ-¨gÓ6Ò8MÔNØ×Ñœ×-Ñ-¨hÓ7Ò9SÔTØ×ÑÜ× Ñ  Ó+Ò-Lõ	
r#   c                 óR   — | j                  t        j                  d«      g d¢«       y)z9
        Test tokenization of macro definitions.
        z4@ NP /^NP/;
@ NN /^NN/;
@NP [!< NP | < @NN] !$.. @NN)ú@rE   rG   ú;r`   ÚNNz/^NN/ra   z@NPr   r   r   rE   r   r   ú@NNr   r   r@   rc   Nr%   r&   s    r!   Útest_tokenize_macrosz*TestSequenceFunctions.test_tokenize_macrosË   s(   € ð 	×ÑÜ× Ñ ØHóòõ		
r#   c                 ól  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j                  d|g«      «      |d   |d   gg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       y)z`
        Test a simple use of tgrep for finding nodes matching a given
        pattern.
        úA(S (NP (DT the) (JJ big) (NN dog)) (VP bit) (NP (DT a) (NN cat)))rb   ©r   é   ©rh   é   úNN|JJ)©r   rj   rg   ri   N©r   Ú
fromstringr   Úlistr   Útgrep_positionsÚtgrep_nodes©r   Útrees     r!   Útest_node_simplez&TestSequenceFunctions.test_node_simpleë   s©   € ô
 ×&Ñ&ØRó
ˆð 	×Ñœœe×3Ñ3°D¸4¸&ÓAÓBÀfÈfÐEUÐDVÔWØ×ÑÜ”×"Ñ" 4¨$¨Ó0Ó1°T¸$±ZÀÀdÁÐ4LÐ3Mô	
ð 	×ÑÜ”×&Ñ& w°°Ó7Ó8Ò;SÐ:Tõ	
r#   c           	      óf  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      t        t	        j
                  d|g«      «      «       | j                  t        t	        j
                  d|g«      «      t        t	        j
                  d|g«      «      «       y)z9Test that the tgrep print operator ' is properly ignored.ú(S (n x) (N x))ÚNz'Nz/[Nn]/z'/[Nn]/N©r   rn   r   ro   r   rp   rr   s     r!   Útest_node_printingz(TestSequenceFunctions.test_node_printingû   s�   € ä×&Ñ&Ð'8Ó9ˆØ×ÑÜ”×&Ñ& s¨T¨FÓ3Ó4Ü”×&Ñ& t¨d¨VÓ4Ó5ô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9Ü”×&Ñ& y°4°&Ó9Ó:õ	
r#   c           	      ó  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      t        t	        j
                  d|g«      «      «       | j                  t        t	        j                  d|g«      «      t        t	        j                  d|g«      «      «       | j                  t        t	        j
                  d|g«      «      t        t	        j
                  d|g«      «      «       y)z]
        Test that tgrep search strings handles bytes and strs the same
        way.
        rf   s   NNrb   s   NN|JJrk   Nrm   rr   s     r!   Útest_node_encodingz(TestSequenceFunctions.test_node_encoding  sÑ   € ô
 ×&Ñ&ØRó
ˆð 	×ÑÜ”×&Ñ& u¨t¨fÓ5Ó6Ü”×&Ñ& u¨t¨fÓ5Ó6ô	
ð 	×ÑÜ”×"Ñ" 5¨4¨&Ó1Ó2Ü”×"Ñ" 4¨$¨Ó0Ó1ô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9Ü”×&Ñ& w°°Ó7Ó8õ	
r#   c                 óø   — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       y)zI
        Test selecting nodes using case insensitive node names.
        rv   ú"N"©rj   zi@"N"©r   Nrx   rr   s     r!   Útest_node_nocasez&TestSequenceFunctions.test_node_nocase  sg   € ô ×&Ñ&Ð'8Ó9ˆØ×Ñœœe×3Ñ3°E¸D¸6ÓBÓCÀtÀfÀXÔNØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÕVr#   c                 ó¾  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      d	gg«       y
)z?
        Test selecting nodes using quoted node names.
        z(N ("N" x) (N" x) ("\" x))r}   © z"\"N\""r   z"N\""r~   z"\"\\\""©rh   Nrx   rr   s     r!   Útest_node_quotedz&TestSequenceFunctions.test_node_quoted$  s¶   € ô ×&Ñ&Ð'DÓEˆØ×Ñœœe×3Ñ3°E¸D¸6ÓBÓCÀrÀdÀVÔLØ×Ñœœe×3Ñ3°KÀ$ÀÓHÓIÈTÈFÈ8ÔTØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°NÀTÀFÓKÓLÐPTÈvÈhÕWr#   c                 ó”   — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       y)ú/
        Test regex matching on nodes.
        ú$(S (NP-SBJ x) (NP x) (NNP x) (VP x))rG   r   r~   Nrx   rr   s     r!   Útest_node_regexz%TestSequenceFunctions.test_node_regex.  sA   € ô ×&Ñ&Ð'MÓNˆð 	×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÕVr#   c                 óú   — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       y)r†   z(S (SBJ x) (SBJ1 x) (NP-SBJ x))z/^SBJ/r   r~   z/SBJ/)r   r~   rƒ   Nrx   rr   s     r!   Útest_node_regex_2z'TestSequenceFunctions.test_node_regex_27  sm   € ô ×&Ñ&Ð'HÓIˆØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÐPTÈÈÔWð 	×ÑÜ”×&Ñ& w°°Ó7Ó8Ò;MÐ:Nõ	
r#   c                 óÆ  — t        j                  d«      }t        t        |j	                  «       «      «      D �ch c]  }|j                  |«      ’Œ }}|j                  «       D �cg c]	  }||vsŒ|‘Œ }}|D ]]  }d|› �}t        t        j                  ||g«      «      }| j                  t        |d   «      d«       | j                  |d   d   |«       Œ_ yc c}w c c}w )zE
        Test matching on nodes based on NLTK tree position.
        r‡   rw   r   rj   N)r   rn   ÚrangeÚlenÚleavesÚleaf_treepositionÚtreepositionsro   r   rp   r   )r   rs   ÚxÚleaf_positionsÚtree_positionsÚpositionÚnode_idrp   s           r!   Útest_node_tree_positionz-TestSequenceFunctions.test_node_tree_positionC  sÖ   € ô ×&Ñ&Ð'MÓNˆä=BÄ3ÀtÇ{Á{Ã}ÓCUÓ=VÖW¸˜$×0Ñ0°Õ3ÐWˆÐWØ%)×%7Ñ%7Ó%9ÖU ¸QÀnÒ=Tš!ÐUˆÐUØ&ò 	>ˆHØ˜(˜�nˆGÜ"¤5×#8Ñ#8¸À4À&Ó#IÓJˆOØ×ÑœS °Ñ!3Ó4°aÔ8Ø×Ñ˜_¨QÑ/°Ñ2°HÕ=ñ		>ùò XùÚUs   ºCÁ&	CÁ0Cc           	      óø   — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|gd«      «      g g«       y)zS
        Test node name matching with the search_leaves flag set to False.
        ú(S (A (T x)) (B (N x)))r‘   ©r   r   r   ©rj   r   r   FNrx   rr   s     r!   Útest_node_noleavesz(TestSequenceFunctions.test_node_noleavesQ  sn   € ô ×&Ñ&Ð'@ÓAˆØ×ÑÜ”×&Ñ& s¨T¨FÓ3Ó4¸	À9Ð7MÐ6Nô	
ð 	×Ñœœe×3Ñ3°C¸$¸ÀÓGÓHÈ2È$ÕOr#   c                 óÂ	  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d	|g«      «      d
gg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      dd
gg«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d «      }| j                  t        t	        j
                  d!|g«      «      dgg«       | j                  t        t	        j
                  d"|g«      «      g d#¢g«       t        j                  d$«      }| j                  t        t	        j
                  d%|g«      «      g d&¢g«       | j                  t        t	        j
                  d'|g«      «      g d(¢g«       y))*zC
        Test matching nodes based on dominance relations.
        r˜   z* < Tr   z	* < T > Sz* !< T)r‚   ©r   r   r™   r~   ©rj   r   rš   z
* !< T > Sr~   z* > Ar�   z* > Brž   z* !> B)r‚   r   r�   r™   r~   rš   z* !> B >> S)r   r�   r~   z* >> S)r   r�   r~   rž   z* >>, Sz* >>' Sz* << Tr‚   z* <<' Tz* <<1 Nz* !<< T)r�   r™   r~   rž   rš   z(S (A (T x)) (B (T x) (N x )))z* <: Tz* !<: T)r‚   r�   r™   r~   rž   rš   )rj   rj   )rj   rj   r   z* !<: T > Sz(S (T (A x) (B x)) (T (C x)))z* >: Tz* !>: T)r‚   r   r�   r™   rl   ©r   rj   r   r~   rš   z=(S (A (B (C (D (E (T x)))))) (A (B (C (D (E (T x))) (N x)))))z* <<: T)r   r�   r™   ©r   r   r   r   ©r   r   r   r   r   ©rj   r   r   r   )rj   r   r   r   r   z* >>: A)r�   r™   r    r¡   )r   r   r   r   r   r   rž   rš   Nrx   rr   s     r!   Útests_rel_dominancez)TestSequenceFunctions.tests_rel_dominance[  s+  € ô ×&Ñ&Ð'@ÓAˆØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈÀxÔPØ×Ñœœe×3Ñ3°KÀ$ÀÓHÓIÈTÈFÈ8ÔTØ×ÑÜ”×&Ñ& x°$°Ó8Ó9Ú=Ð>ô	
ð 	×Ñœœe×3Ñ3°LÀ4À&ÓIÓJÈdÈVÈHÔUØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈÀzÔRØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈÀzÔRØ×ÑÜ”×&Ñ& x°$°Ó8Ó9Ú;Ð<ô	
ð 	×ÑÜ”×&Ñ& }°t°fÓ=Ó>ÒAUÐ@Vô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9Ú)Ð*ô	
ð 	×ÑÜ”×&Ñ& y°4°&Ó9Ó:¸dÀF¸^Ð<Lô	
ð 	×ÑÜ”×&Ñ& y°4°&Ó9Ó:¸dÀF¸^Ð<Lô	
ð 	×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ"ÈdÈÈÔUØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×ÑÜ”×&Ñ& y°4°&Ó9Ó:Ú9Ð:ô	
ô ×&Ñ&Ð'GÓHˆØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÔVØ×ÑÜ”×&Ñ& y°4°&Ó9Ó:ÚPÐQô	
ð 	×Ñœœe×3Ñ3°MÀDÀ6ÓJÓKÈtÈfÈXÔVÜ×&Ñ&Ð'FÓGˆØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ&ÈÈ
ÔSØ×ÑÜ”×&Ñ& y°4°&Ó9Ó:ÚNÐOô	
ô ×&Ñ&ØNó
ˆð 	×ÑÜ”×&Ñ& y°4°&Ó9Ó:òð
ô	
ð 	×ÑÜ”×&Ñ& y°4°&Ó9Ó:òð
õ	
r#   c                 ó¢   — t        j                  d«      }| j                  t        j                  t
        t        j                  d|g«      «       y)zC
        Test error handling of undefined tgrep operators.
        r˜   z* >>> SN)r   rn   ÚassertRaisesr   ÚTgrepExceptionro   rp   rr   s     r!   Útest_bad_operatorz'TestSequenceFunctions.test_bad_operator²  s?   € ô ×&Ñ&Ð'@ÓAˆØ×ÑÜ× Ñ ¤$¬×(=Ñ(=¸iÈ$ÈÓ(Põ	
r#   c                 ó  — t        j                  d«      }d}| j                  t        t	        j
                  ||g«      «      ddgg«       d}| j                  t        t	        j
                  ||g«      «      ddgg«       y)z`
        Test that comments are correctly filtered out of tgrep search
        strings.
        z(S (NN x) (NP x) (NN x))z=
        @ NP /^NP/;
        @ NN /^NN/;
        @NN
        r   rƒ   zg
        # macros
        @ NP /^NP/;
        @ NN /^NN/;

        # search string
        @NN
        Nrx   )r   rs   Úsearch1Úsearch2s       r!   Útest_commentsz#TestSequenceFunctions.test_comments»  s{   € ô
 ×&Ñ&Ð'AÓBˆðˆð
 	×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÔVðˆð 	×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÕVr#   c                 ó$  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       y	)
z7
        Test matching sister nodes in a tree.
        ú(S (A x) (B x) (C x))z* $. Br   z* $.. Bz* $, Brƒ   z* $,, Bz* $ BNrx   rr   s     r!   Útest_rel_sister_nodesz+TestSequenceFunctions.test_rel_sister_nodesÑ  sß   € ô ×&Ñ&Ð'>Ó?ˆØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°G¸d¸VÓDÓEÈÈtÈÀ~ÕVr#   c                 ó˜  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d	|g«      «      dgg«       | j                  t        t	        j
                  d
|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       y)zP
        Test matching nodes based on their index in their parent node.
        r­   z* >, Sr   z* >1 Sz* >2 Sr~   z* >3 Srƒ   z* >' Sz* >-1 Sz* >-2 Sz* >-3 SzE(S (D (A x) (B x) (C x)) (E (B x) (C x) (A x)) (F (C x) (A x) (B x)))z* <, Az* <1 Az* <2 Az* <3 Az* <' Az* <-1 Az* <-2 Az* <-3 ANrx   rr   s     r!   Útests_rel_indexed_childrenz0TestSequenceFunctions.tests_rel_indexed_childrenÜ  sª  € ô ×&Ñ&Ð'>Ó?ˆØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRÜ×&Ñ&ØVó
ˆð 	×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°H¸t¸fÓEÓFÈ$ÈÈÔQØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRØ×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÕRr#   c                 ó^  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d	|g«      «      g d
¢g«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      g d¢g«       | j                  t        t	        j
                  d|g«      «      g d¢g«       y)zD
        Test matching nodes based on precedence relations.
        zV(S (NP (NP (PP x)) (NP (AP x))) (VP (AP (X (PP x)) (Y (AP x)))) (NP (RC (NP (AP x)))))z* . X)r   rl   rŸ   z* . Yrš   r¢   z* .. X)r   r�   r™   rl   rŸ   z* .. Y)r   r�   r™   rl   rŸ   rš   r¢   z* , X©rj   r   rj   ©rj   r   rj   r   z* , Y)rƒ   ©rh   r   ©rh   r   r   ©rh   r   r   r   z* ,, X)r²   r³   rƒ   r´   rµ   r¶   z* ,, YNrx   rr   s     r!   Útest_rel_precedencez)TestSequenceFunctions.test_rel_precedenceõ  s‰  € ô ×&Ñ&ð&ó
ˆð
 	×ÑÜ”×&Ñ& w°°Ó7Ó8Ò;TÐ:Uô	
ð 	×ÑÜ”×&Ñ& w°°Ó7Ó8¸IÀ|Ð;TÐ:Uô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9Ú9Ð:ô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9ÚRÐSô	
ð 	×ÑÜ”×&Ñ& w°°Ó7Ó8¸IÀ|Ð;TÐ:Uô	
ð 	×ÑÜ”×&Ñ& w°°Ó7Ó8Ú4Ð5ô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9ÚMÐNô	
ð 	×ÑÜ”×&Ñ& x°$°Ó8Ó9Ú4Ð5õ	
r#   c                 óÜ  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       t        j                  d	«      }| j                  t        t	        j
                  d
|g«      «      ddgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      dgg«       y)zA
        Test the Basic Examples from the TGrep2 manual.
        z(S (NP (AP x)) (NP (PP x)))rD   r~   z$(S (NP x) (VP x) (NP (PP x)) (VP x))rH   rƒ   z6(S (NP (AP x)) (NP (PP x)) (NP (DET x) (NN x)) (VP x))rJ   zX(S (NP (NP (PP x)) (NP (AP x))) (VP (AP (NP (PP x)) (NP (AP x)))) (NP (RC (NP (AP x)))))rK   rl   r²   z:(S (NP (AP (PP x) (VP x))) (NP (AP (PP x) (NP x))) (NP x))rL   r   ze(S (NP (DET a) (NN cat) (PP (IN on) (NP x))) (NP (DET a) (NN cat) (PP (IN on) (NP x)) (PP x)) (NP x))rM   z;(S (S (C x) (A (B x))) (S (C x) (A x)) (S (D x) (A (B x))))rP   z/(S (S (A (B x) (C x))) (S (S (C x) (A (B x)))))rR   rS   Nrx   rr   s     r!   Útest_examplesz#TestSequenceFunctions.test_examples  sC  € ô ×&Ñ&Ð'DÓEˆà×Ñœœe×3Ñ3°IÀ¸vÓFÓGÈ4È&ÈÔRä×&Ñ&Ð'MÓNˆð 	×Ñœœe×3Ñ3°OÀdÀVÓLÓMÐQUÐPVÈxÔXä×&Ñ&ØGó
ˆð
 	×ÑÜ”×&Ñ&Ð'8¸4¸&ÓAÓBÀdÈDÀ\ÀNô	
ô ×&Ñ&ð&ó
ˆð 	×ÑÜ”×&Ñ&Ð'AÀDÀ6ÓJÓKØ�iÐ Ð!ô	
ô
 ×&Ñ&ØKó
ˆð 	×ÑÜ”×&Ñ&Ð'8¸4¸&ÓAÓBÀdÀVÀHô	
ô ×&Ñ&ðó
ˆð 	×ÑÜ”×&Ñ&Ð'@À4À&ÓIÓJÈdÈVÈHô	
ô ×&Ñ&ØLó
ˆð
 	×ÑÜ”×&Ñ&Ð'8¸4¸&ÓAÓBÀdÀVÀHô	
ô ×&Ñ&Ø=ó
ˆð
 	×ÑÜ”×&Ñ&Ð':¸T¸FÓCÓDÈÀvÀhô	
ð
 	×ÑÜ”×&Ñ&Ð'8¸4¸&ÓAÓBÀdÀVÀHõ	
r#   c                 ó  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        j                  t        t	        j
                  d|g«      «       y)z8
        Test defining and using tgrep2 macros.
        zi(VP (VB sold) (NP (DET the) (NN heiress)) (NP (NN deed) (PREP to) (NP (DET the) (NN school) (NN house))))z+@ NP /^NP/;
@ NN /^NN/;
@NP !< @NP !$.. @NNr~   )rh   rh   z,@ NP /^NP/;
@ NN /^NN/;
@CNP !< @NP !$.. @NNN)r   rn   r   ro   r   rp   r¥   r¦   rr   s     r!   Útest_use_macrosz%TestSequenceFunctions.test_use_macrosk  sƒ   € ô ×&Ñ&ð6ó
ˆð
 	×ÑÜÜ×%Ñ%ØCÀdÀVóóð
 �Fˆ^Ðô	
ð 	×ÑÜ× Ñ ÜÜ×!Ñ!Ø@À4À&óõ	
r#   c                 ó    — | j                  t        j                  d«      g d¢«       | j                  t        j                  d«      g d¢«       y)z#Test tokenization of labeled nodes.ú!S < @SBJ < (@VP < (@VB $.. @OBJ)))rQ   r   ú@SBJr   r   ú@VPr   r   ú@VBr@   ú@OBJr   r   z%S < @SBJ=s < (@VP=v < (@VB $.. @OBJ)))rQ   r   r¾   ú=Úsr   r   r¿   rÂ   Úvr   r   rÀ   r@   rÁ   r   r   Nr%   r&   s    r!   Útest_tokenize_node_labelsz/TestSequenceFunctions.test_tokenize_node_labels…  sH   € à×ÑÜ× Ñ Ð!DÓEòô	
ð$ 	×ÑÜ× Ñ Ð!HÓIòõ	
r#   c                 óR   — | j                  t        j                  d«      g d¢«       y)z(Test tokenization of segmented patterns.z0S < @SBJ=s < (@VP=v < (@VB $.. @OBJ)) : =s .. =v)rQ   r   r¾   rÂ   rÃ   r   r   r¿   rÂ   rÄ   r   r   rÀ   r@   rÁ   r   r   ú:z=sr   z=vNr%   r&   s    r!   Ú test_tokenize_segmented_patternsz6TestSequenceFunctions.test_tokenize_segmented_patterns°  s$   € à×ÑÜ× Ñ Ð!SÓTòõ	
r#   c           	      ó  — d}t        j                  d«      }t        j                  d«      }|j                  d«      d   dz   }d}| j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      t	        t        j                  ||g«      «      «       | j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      d   «       | j                  t	        t        j                  ||g«      «      t	        t        j                  ||g«      «      «       y)	zN
        Test labeled nodes.

        Test case from Emily M. Bender.
        zã
            # macros
            @ SBJ /SBJ/;
            @ VP /VP/;
            @ VB /VB/;
            @ VPoB /V[PB]/;
            @ OBJ /OBJ/;

            # 1 svo
            S < @SBJ=s < (@VP=v < (@VB $.. @OBJ)) : =s .. =vz2(S (NP-SBJ I) (VP (VB eat) (NP-OBJ (NNS apples))))z2(S (VP (VB eat) (NP-OBJ (NNS apples))) (NP-SBJ I))z

r   r½   z-S < (/.*SBJ/ $.. (/VP/ < (/VB/ $.. /.*OBJ/)))N)	r   rn   ÚsplitÚ
assertTruero   r   rp   r   ÚassertFalse)r   ÚsearchÚsent1Úsent2Úsearch_firsthalfÚsearch_rewrites         r!   Útest_labeled_nodesz(TestSequenceFunctions.test_labeled_nodesÍ  s³  € ð	@ˆô ×'Ñ'Ø@ó
ˆô ×'Ñ'Ø@ó
ˆð "Ÿ<™<¨Ó/°Ñ2Ð5XÑXÐØHˆà�‰œœU×2Ñ2Ð3CÀeÀWÓMÓNÈqÑQÔRØ�‰œœU×2Ñ2°6¸E¸7ÓCÓDÀQÑGÔHØ�‰œœU×2Ñ2°>ÀEÀ7ÓKÓLÈQÑOÔPØ×ÑÜ”×&Ñ& v°¨wÓ7Ó8Ü”×&Ñ& ~¸°wÓ?Ó@ô	
ð 	�‰œœU×2Ñ2Ð3CÀeÀWÓMÓNÈqÑQÔRØ×Ñœœe×3Ñ3°F¸U¸GÓDÓEÀaÑHÔIØ×Ñœœe×3Ñ3°NÀUÀGÓLÓMÈaÑPÔQØ×ÑÜ”×&Ñ& v°¨wÓ7Ó8Ü”×&Ñ& ~¸°wÓ?Ó@õ	
r#   c                 óø   — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      dgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       y)zm
        Test that multiple (3 or more) conjunctions of node relations are
        handled properly.
        z'((A (B b) (C c)) (A (B b) (C c) (D d)))z(A < B < C < D)r~   z(A < B < C)r   Nrx   )r   Úsents     r!   Útest_multiple_conjsz)TestSequenceFunctions.test_multiple_conjsõ  sr   € ô
 ×&Ñ&Ð'PÓQˆð 	×ÑÜ”×&Ñ&Ð'8¸4¸&ÓAÓBÀdÀVÀHô	
ð 	×ÑÜ”×&Ñ& }°t°fÓ=Ó>À$ÈÀÀõ	
r#   c                 ó`  — t        j                  d«      }| j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       | j                  t        t	        j
                  d|g«      «      ddgg«       y)zp
        Test that semicolons at the end of a tgrep2 search string won't
        cause a parse failure.
        rf   rb   rg   ri   zNN;zNN;;Nrx   rr   s     r!   Útest_trailing_semicolonz-TestSequenceFunctions.test_trailing_semicolon  s    € ô
 ×&Ñ&ØRó
ˆð 	×Ñœœe×3Ñ3°D¸4¸&ÓAÓBÀfÈfÐEUÐDVÔWØ×Ñœœe×3Ñ3°E¸D¸6ÓBÓCÀvÈvÐFVÐEWÔXØ×ÑÜ”×&Ñ& v°¨vÓ6Ó7¸6À6Ð:JÐ9Kõ	
r#   N)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r'   rB   rU   rW   r^   rd   rt   ry   r{   r€   r„   rˆ   rŠ   r–   r›   r£   r§   r«   r®   r°   r·   r¹   r»   rÅ   rÈ   rÒ   rÕ   r×   r‚   r#   r!   r   r      s­   „ ñò
òB
òAQòF$YòL
ò
ò 
ò@
ò 

ò
ò*WòXòWò

ò>òPòU
òn
òWò,	WòSò2%
òNM
ò^
ò4)
òV
ò:&
òP
ó
r#   r   )
rÛ   ÚunittestÚpytestÚimportorskipÚnltkr   Ú	nltk.treer   ÚTestCaser   r‚   r#   r!   ú<module>râ      s>   ðñó
 ã ð €× Ñ �KÔ  å Ý "ôv
˜H×-Ñ-õ v
r#   