Ë
    çÍ:jÃ•  ã                   óè   — d Z ddlmZmZ ddlZddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ d„ Zej&                  j)                   e«        d¬	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Zy)zC
Unit tests for nltk.tokenize.
See also nltk/test/tokenize.doctest
é    )ÚListÚTupleN)ÚLegalitySyllableTokenizerÚStanfordSegmenterÚSyllableTokenizerÚTreebankWordTokenizerÚTweetTokenizerÚpunktÚsent_tokenizeÚword_tokenize)ÚCharTokenizer)ÚTreebankWordDetokenizerc                  ó|   — 	 t        «       } | j                  d«       | j                  d«       y# t        $ r Y yw xY w)NÚarÚzhTF)r   Údefault_configÚLookupError)Úsegs    úq/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/test/unit/test_tokenize.pyÚload_stanford_segmenterr      s@   € ðÜÓ!ˆØ×Ñ˜4Ô Ø×Ñ˜4Ô ØøÜò Ùðús   ‚,/ ¯	;º;z/NLTK was unable to find stanford-segmenter.jar.)Úreasonc                   ó¦  — e Zd Zd„ Zej
                  j                  ddg d¢g d¢ffdg d¢g d¢ffd	g d
¢g d
¢ffdg d¢g d¢ffdg d¢g d¢ffdg d¢g d¢ffdg d¢g d¢ffdg d¢g d¢ffg«      dedee	e   e	e   f   fd„«       Z
d„ Zd„ Zd„ Zed„ «       Ze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ej
                  j                  d.g d/¢«      dPd1„«       Zd2„ Zej
                  j                  d3d4g d5¢fd6g d7¢fd8d8gfd9d9gfd:d;d<gfd=d>d?gfd@g dA¢fdBdCd<gfdDdEd<gfdFg dG¢fdHg dG¢fdIdJdKgfg«      dLedMe	e   fdN„«       Z dQdO„Z!y0)RÚTestTokenizec                 óZ   — t        dd¬«      }d}|j                  |«      }g d¢}||k(  sJ ‚y)zW
        Test TweetTokenizer using words with special and accented characters.
        T)Ústrip_handlesÚ
reduce_lenuA   @myke: Let's test these words: resumÃ© EspaÃ±a MÃ¼nchen franÃ§ais)
ú:zLet'sÚtestÚtheseÚwordsr   u   resumÃ©u   EspaÃ±au   MÃ¼nchenu	   franÃ§aisN©r	   Útokenize)ÚselfÚ	tokenizerÚs9ÚtokensÚexpecteds        r   Útest_tweet_tokenizerz!TestTokenize.test_tweet_tokenizer)   s<   € ô
 #°À$ÔGˆ	ØPˆØ×#Ñ# BÓ'ˆò
ˆð ˜Ò!Ð!Ñ!ó    ztest_input, expectedsz#My text 0106404243030 is great text)ÚMyÚtextÚ01064042430Ú30ÚisÚgreatr+   )r*   r+   Ú0106404243030r.   r/   r+   zMy ticket id is 1234543124123)r*   ÚticketÚidr.   Ú12345431241Ú23)r*   r1   r2   r.   Ú1234543124123z<@remy: This is waaaaayyyy too much for you!!!!!! 01064042430)r   ÚThisr.   ÚwaaayyyÚtooÚmuchÚforÚyouú!r<   r<   r,   z*My number is 06-46124080, except it's not.)	r*   Únumberr.   z06-46124080ú,Úexceptúit'sÚnotú.z+My number is 601-984-4813, except it's not.)	r*   r=   r.   z601-984-4813r>   r?   r@   rA   rB   )
r*   r=   r.   z601-984-Ú4813r>   r?   r@   rA   rB   z/My number is (393)  928 -3010, except it's not.)	r*   r=   r.   ú(393)  928 -3010r>   r?   r@   rA   rB   )r*   r=   r.   ú(Ú393ú)Ú928ú-Ú3010r>   r?   r@   rA   rB   z1The product identification number is 48103284512.)ÚTheÚproductÚidentificationr=   r.   Ú
4810328451Ú2rB   )rK   rL   rM   r=   r.   Ú48103284512rB   z(My favourite substraction is 240 - 1353.)r*   Ú	favouriteÚsubstractionr.   z
240 - 1353rB   )r*   rQ   rR   r.   Ú240rI   Ú1353rB   Ú
test_inputÚ	expectedsc                 ó|   — t        ddg|«      D ]+  \  }}t        dd|¬«      }|j                  |«      }||k(  rŒ+J ‚ y)a¦  
        Test `match_phone_numbers` in TweetTokenizer.

        Note that TweetTokenizer is also passed the following for these tests:
            * strip_handles=True
            * reduce_len=True

        :param test_input: The input string to tokenize using TweetTokenizer.
        :type test_input: str
        :param expecteds: A 2-tuple of tokenized sentences. The first of the two
            tokenized is the expected output of tokenization with `match_phone_numbers=True`.
            The second of the two tokenized lists is the expected output of tokenization
            with `match_phone_numbers=False`.
        :type expecteds: Tuple[List[str], List[str]]
        TF)r   r   Úmatch_phone_numbersN)Úzipr	   r"   )r#   rU   rV   rX   r'   r$   Ú	predicteds          r   Útest_tweet_tokenizer_expandedz*TestTokenize.test_tweet_tokenizer_expanded?   sX   € ôH .1°$¸°À	Ó-Jò 	)Ñ)Ð Ü&Ø"ØØ$7ôˆIð
 "×*Ñ*¨:Ó6ˆIØ Ó(Ð(Ð(ñ	)r)   c                 óL   — t        «       }|j                  d«      }|g d¢k(  sJ ‚y)ú3
        Test SyllableTokenizer tokenizer.
        Újustification)ÚjusÚtiÚfiÚcaÚtionN©r   r"   )r#   r$   r&   s      r   Ú+test_sonority_sequencing_syllable_tokenizerz8TestTokenize.test_sonority_sequencing_syllable_tokenizer  s+   € ô &Ó'ˆ	Ø×#Ñ# OÓ4ˆØÒ:Ò:Ð:Ñ:r)   c                 óT   — t        «       }ddz  }|j                  |«      }||gk(  sJ ‚y)r]   Ú9i'  Nrd   )r#   r$   r+   r&   s       r   Útest_syllable_tokenizer_numbersz,TestTokenize.test_syllable_tokenizer_numbers  s5   € ô &Ó'ˆ	Ø�U‰{ˆØ×#Ñ# DÓ)ˆØ˜$˜ÒÐÑr)   c                 óz   — ddl m} d}t        |j                  «       «      }|j                  |«      }|g d¢k(  sJ ‚y)z;
        Test LegalitySyllableTokenizer tokenizer.
        r   )r    Ú	wonderful)ÚwonÚderÚfulN)Únltk.corpusr    r   r"   )r#   r    Ú	test_wordr$   r&   s        r   Ú*test_legality_principle_syllable_tokenizerz7TestTokenize.test_legality_principle_syllable_tokenizer  s;   € õ 	&àˆ	Ü-¨e¯k©k«mÓ<ˆ	Ø×#Ñ# IÓ.ˆØÒ.Ò.Ð.Ñ.r)   c                 óª   — t        «       }|j                  d«       d}|j                  |j                  «       «      }|j                  «       g d¢k(  sJ ‚y)zN
        Test the Stanford Word Segmenter for Arabic (default config)
        r   un   ÙŠØ¨Ø­Ø« Ø¹Ù„Ù… Ø§Ù„Ø­Ø§Ø³ÙˆØ¨ Ø§Ø³ØªØ®Ø¯Ø§Ù… Ø§Ù„Ø­ÙˆØ³Ø¨Ø© Ø¨Ø¬Ù…ÙŠØ¹ Ø§Ø´ÙƒØ§Ù„Ù‡Ø§ Ù„Ø­Ù„ Ø§Ù„Ù…Ø´ÙƒÙ„Ø§Øª)u   ÙŠØ¨Ø­Ø«u   Ø¹Ù„Ù…u   Ø§Ù„Ø­Ø§Ø³ÙˆØ¨u   Ø§Ø³ØªØ®Ø¯Ø§Ù…u   Ø§Ù„Ø­ÙˆØ³Ø¨Ø©u   Ø¨u   Ø¬Ù…ÙŠØ¹u
   Ø§Ø´ÙƒØ§Ù„u   Ù‡Ø§u   Ù„u   Ø­Ù„u   Ø§Ù„Ù…Ø´ÙƒÙ„Ø§ØªN©r   r   ÚsegmentÚsplit©r#   r   ÚsentÚsegmented_sents       r   Útest_stanford_segmenter_arabicz+TestTokenize.test_stanford_segmenter_arabic(  sS   € ô
  Ó!ˆØ×Ñ˜4Ô ØˆØŸ™ T§Z¡Z£\Ó2ˆØ×#Ñ#Ó%ò *
ò 
ð 	
ñ 
r)   c                 óª   — t        «       }|j                  d«       d}|j                  |j                  «       «      }|j                  «       g d¢k(  sJ ‚y)zO
        Test the Stanford Word Segmenter for Chinese (default config)
        r   u$   è¿™æ˜¯æ–¯å�¦ç¦�ä¸­æ–‡åˆ†è¯�å™¨æµ‹è¯•)u   è¿™u   æ˜¯u	   æ–¯å�¦ç¦�u   ä¸­æ–‡u	   åˆ†è¯�å™¨u   æµ‹è¯•Nrr   ru   s       r   Útest_stanford_segmenter_chinesez,TestTokenize.test_stanford_segmenter_chinese@  sS   € ô
  Ó!ˆØ×Ñ˜4Ô Ø5ˆØŸ™ T§Z¡Z£\Ó2ˆØ×#Ñ#Ó%ò *
ò 
ð 	
ñ 
r)   c                 óŽ   — t        «       }d}dg}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚y)zT
        Test a string that resembles a phone number but contains a newline
        rD   z(393)
928 -3010)rE   rF   rG   z	928 -3010Nr!   )r#   r$   Útest1r'   ÚresultÚtest2s         r   Útest_phone_tokenizerz!TestTokenize.test_phone_tokenizerR  sa   € ô #Ó$ˆ	Ø"ˆØ&Ð'ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð #ˆÚ1ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ñ!r)   c                 ó|  — t        «       }d}dg}|j                  |«      }||k(  sJ ‚d}dg}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d	}	g d
¢}|j                  |	«      }||k(  sJ ‚y)zX
        Test a string that contains Emoji ZWJ Sequences and skin tone modifier
        u   ðŸ‘¨â€�ðŸ‘©â€�ðŸ‘§â€�ðŸ‘§u   ðŸ‘¨ðŸ�¿uŒ   ðŸ¤” ðŸ™ˆ me asÃ­, seðŸ˜Œ ds ðŸ’•ðŸ‘­ðŸ‘™ hello ðŸ‘©ðŸ�¾â€�ðŸŽ“ emoji hello ðŸ‘¨â€�ðŸ‘©â€�ðŸ‘¦â€�ðŸ‘¦ how are ðŸ˜Š you todayðŸ™…ðŸ�½ðŸ™…ðŸ�½)u   ðŸ¤”u   ðŸ™ˆÚmeu   asÃ­r>   Úseu   ðŸ˜ŒÚdsu   ðŸ’•u   ðŸ‘­u   ðŸ‘™Úhellou   ðŸ‘©ðŸ�¾â€�ðŸŽ“Úemojir„   u   ðŸ‘¨â€�ðŸ‘©â€�ðŸ‘¦â€�ðŸ‘¦ÚhowÚareu   ðŸ˜Šr;   Útodayõ   ðŸ™…ðŸ�½r‰   u   ðŸ‡¦ðŸ‡µðŸ‡µðŸ‡±ðŸ‡ª)u   ðŸ‡¦ðŸ‡µõ   ðŸ‡µðŸ‡±u   ðŸ‡ªu   Hi ðŸ‡¨ðŸ‡¦, ðŸ˜�!!)ÚHiõ   ðŸ‡¨ðŸ‡¦r>   u   ðŸ˜�r<   r<   u   <3 ðŸ‡¨ðŸ‡¦ ðŸ¤� ðŸ‡µðŸ‡± <3)ú<3rŒ   u   ðŸ¤�rŠ   r�   Nr!   )
r#   r$   r|   r'   r}   r~   Útest3Útest4Útest5Útest6s
             r   Útest_emoji_tokenizerz!TestTokenize.test_emoji_tokenizere  s  € ô #Ó$ˆ	ð ,ˆØ/Ð0ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð ˆØ�<ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð _ˆò
ˆð2 ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð 'ˆÚ3ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!à%ˆÚ<ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!à.ˆÚ?ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ñ!r)   c                 ó0   — d}g d¢}t        |«      |k(  sJ ‚y)zA
        Test padding of asterisk for word tokenization.
        z1This is a, *weird sentence with *asterisks in it.)r6   r.   Úar>   Ú*ÚweirdÚsentenceÚwithr•   Ú	asterisksÚinÚitrB   N©r   ©r#   r+   r'   s      r   Útest_pad_asteriskzTestTokenize.test_pad_asterisk¦  s&   € ð Cˆò
ˆô ˜TÓ" hÒ.Ð.Ñ.r)   c                 óÖ   — d}g d¢}t        |«      |k(  sJ ‚d}g d¢}t        |«      |k(  sJ ‚d}g d¢}t        |«      |k(  sJ ‚d}g d¢}t        |«      |k(  sJ ‚t        d	«      d	gk(  sJ ‚y
)z@
        Test for em-dashes and en-dashes (Issue #3459)
        u5   The foodâ€”which was deliciousâ€”reminded me of home.)rK   Úfoodõ   â€”ÚwhichÚwasÚ	deliciousr¡   Úremindedr�   ÚofÚhomerB   u   The score was 3â€“1.)rK   Úscorer£   Ú3u   â€“Ú1rB   u(   He said â€• wait for it â€• a new thing.)ÚHeÚsaidõ   â€•Úwaitr:   r›   r­   r”   ÚnewÚthingrB   u   The number is 12â€’34.)rK   r=   r.   Ú12u   â€’Ú34rB   zstate-of-the-artNrœ   )	r#   Ús_emÚexpected_emÚs_enÚexpected_enÚs_barÚexpected_barÚs_figÚexpected_figs	            r   Útest_dash_tokenizationz#TestTokenize.test_dash_tokenization¼  s¡   € ð Gˆò
ˆô ˜TÓ" kÒ1Ð1Ð1ð &ˆÚCˆÜ˜TÓ" kÒ1Ð1Ð1ð ;ˆò
ˆô ˜UÓ# |Ò3Ð3Ð3ð )ˆÚFˆÜ˜UÓ# |Ò3Ð3Ð3ô Ð/Ó0Ð5GÐ4HÒHÐHÑHr)   c                 ó0   — d}g d¢}t        |«      |k(  sJ ‚y)z@
        Test padding of dotdot* for word tokenization.
        zPWhy did dotdot.. not get tokenized but dotdotdot... did? How about manydots.....)ÚWhyÚdidÚdotdotz..rA   ÚgetÚ	tokenizedÚbutÚ	dotdotdotz...r¾   ú?ÚHowÚaboutÚmanydotsz.....Nrœ   r�   s      r   Útest_pad_dotdotzTestTokenize.test_pad_dotdotñ  s&   € ð bˆò
ˆô$ ˜TÓ" hÒ.Ð.Ñ.r)   c                 óÀ  — t        d¬«      }d}g d¢}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d	}g d
¢}|j                  |«      }||k(  sJ ‚d}g d¢}|j                  |«      }||k(  sJ ‚d}	g d¢}|j                  |	«      }||k(  sJ ‚d}
g d¢}|j                  |
«      }||k(  sJ ‚y)zW
        Test remove_handle() from casual.py with specially crafted edge cases
        T)r   z-@twitter hello @twi_tter_. hi @12345 @123news)r„   rB   Úhiu]   @n`@n~@n(@n)@n-@n=@n+@n\@n|@n[@n]@n{@n}@n;@n:@n'@n"@n/@n?@n.@n,@n<@n>@n @n
@n Ã±@n.Ã¼@n.Ã§@n.)ú`ú~rE   rG   rI   ú=ú+ú\ú|ú[ú]ú{ú}ú;r   ú'ú"ú/rÄ   rB   r>   ú<ú>õ   Ã±rB   õ   Ã¼rB   õ   Ã§rB   zKa@n j@n z@n A@n L@n Z@n 1@n 4@n 7@n 9@n 0@n _@n !@n @@n #@n $@n %@n &@n *@n)&r”   ú@nÚjrÞ   ÚzrÞ   ÚArÞ   ÚLrÞ   ÚZrÞ   rª   rÞ   Ú4rÞ   Ú7rÞ   rg   rÞ   Ú0rÞ   Ú_rÞ   r<   rÞ   ú@rÞ   ú#rÞ   ú$rÞ   ú%rÞ   ú&rÞ   r•   rÞ   z@n!a @n#a @n$a @n%a @n&a @n*a)r<   r”   ré   r”   rê   r”   rë   r”   rì   r”   r•   r”   zD@n!@n @n#@n @n$@n @n%@n @n&@n @n*@n @n@n @@n @n@@n @n_@n @n7@n @nj@n)r<   rÞ   ré   rÞ   rê   rÞ   rë   rÞ   rì   rÞ   r•   rÞ   rÞ   rÞ   rè   rÞ   rÞ   rè   rÞ   z@n_rÞ   z@n7rÞ   z@njrÞ   z^@abcdefghijklmnopqrstuvwxyz @abcdefghijklmno1234 @abcdefghijklmno_ @abcdefghijklmnoendofhandle)ÚpqrstuvwxyzÚ1234rç   Úendofhandlez^@abcdefghijklmnop@abcde @abcdefghijklmno@abcde @abcdefghijklmno_@abcde @abcdefghijklmno5@abcde)Úpú@abcdez@abcdefghijklmnorñ   rç   rñ   Ú5rñ   Nr!   )r#   r$   r|   r'   r}   r~   rŽ   r�   r�   r‘   Útest7s              r   Útest_remove_handlezTestTokenize.test_remove_handle
  sK  € ô
 #°Ô6ˆ	ð @ˆÚ'ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð sˆò
ˆð> ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð ^ˆò'
ˆðP ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð 0ˆÚOˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð Wˆò
ˆð6 ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð qˆÚ>ˆØ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ð!ð qˆò	
ˆð ×#Ñ# EÓ*ˆØ˜Ò!Ð!Ñ!r)   c                 ó  — t        «       }d}g d¢}t        |j                  |«      «      }||k(  sJ ‚d}g d¢}t        |j                  |«      «      }||k(  sJ ‚d}g d¢}t        |j                  |«      «      }||k(  sJ ‚y)zC
        Test TreebankWordTokenizer.span_tokenize function
        zNGood muffins cost $3.88
in New (York).  Please (buy) me
two of them.
(Thanks).))r   é   )é   é   )é   é   )é   é   )rü   é   )é   é   )é   é   )é   é    )r  é$   )r  é%   )r  é&   )é(   é.   )é/   é0   )r
  é3   )r  é4   )é5   é7   )é8   é;   )é<   é>   )é?   éD   )éE   éF   )r  éL   )r  éM   )r  éN   zmThe DUP is similar to the "religious right" in the United States and takes a hardline stance on social issues)©r   é   ©rö   é   ©é   é
   ©é   rû   ©rü   é   ©é   é   ©rÿ   r   ©r   r  ©r  é*   ©r+  é+   ©é,   r  ©r	  é2   ©r  é9   ©é:   é@   ©éA   r  ©r  éJ   ©éK   r  )r  éU   )éV   é\   )é]   é_   )é`   éf   )ég   ém   zqThe DUP is similar to the "religious right" in the United States and takes a ``hardline'' stance on social issues)r  r  r  r!  r#  r%  r(  r)  r*  r,  r.  r0  r2  r4  r7  r9  r;  )r  éO   )rF  éW   )rG  éY   )éZ   rB  )éa   éc   )éd   éj   )ék   éq   N)r   ÚlistÚspan_tokenize)r#   r$   r|   r'   r}   r~   rŽ   s          r   Útest_treebank_span_tokenizerz)TestTokenize.test_treebank_span_tokenizer£  s¨   € ô
 *Ó+ˆ	ð dˆò
ˆô2 �i×-Ñ-¨eÓ4Ó5ˆØ˜Ò!Ð!Ð!ð @ˆò
ˆô0 �i×-Ñ-¨eÓ4Ó5ˆØ˜Ò!Ð!Ð!ð Fˆò
ˆô4 �i×-Ñ-¨eÓ4Ó5ˆØ˜Ò!Ð!Ñ!r)   c                 ó\   — d}g d¢}t        |«      |k(  sJ ‚d}g d¢}t        |«      |k(  sJ ‚y)z-
        Test word_tokenize function
        z0The 'v', I've been fooled but I'll seek revenge.)rK   rÖ   ÚvrÖ   r>   ÚIú'veÚbeenÚfooledrÂ   rU  ú'llÚseekÚrevengerB   z'v' 're')rÖ   rT  rÖ   z'rerÖ   Nrœ   )r#   r—   r'   s      r   Útest_word_tokenizezTestTokenize.test_word_tokenize  sC   € ð
 Fˆò
ˆô" ˜XÓ&¨(Ò2Ð2Ð2àˆÚ.ˆÜ˜XÓ&¨(Ò2Ð2Ñ2r)   c                 ó–   — dddgfdg d¢fdg d¢fg}|D ].  \  }}t        j                  |«      D �cg c]  }|‘Œ }}||k(  rŒ.J ‚ y c c}w )Nr±   ©rª   rO   )rO   NÚ123)r^  ©rO   r©   )r©   Nrî   )r^  r`  )r©   rä   )rä   N)r
   Ú
_pair_iter)r#   Ú
test_casesrU   Úexpected_outputÚxÚactual_outputs         r   Útest_punkt_pair_iterz!TestTokenize.test_punkt_pair_iter!  sm   € à�J Ð,Ð-ØÒ9Ð:ØÒFÐGð
ˆ
ð ,6ò 	4Ñ'ˆJ˜Ü(-×(8Ñ(8¸Ó(DÖE 1šQÐEˆMÐEà  OÓ3Ð3Ð3ñ	4ùÚEs   ±	Ac                 óZ   — t        g «      }t        j                  |«      }t        |«       y ©N)Úiterr
   ra  rP  )r#   r›   Úgens      r   Ú5test_punkt_pair_iter_handles_stop_iteration_exceptionzBTestTokenize.test_punkt_pair_iter_handles_stop_iteration_exception-  s"   € ä�"‹Xˆä×Ñ˜rÓ"ˆäˆS�	r)   c                 óŒ   — t        j                  «       } G d„ d«      } |«       |_        t        |j	                  d«      «       y )Nc                   ó   — e Zd Zd„ Zy)úkTestTokenize.test_punkt_tokenize_words_handles_stop_iteration_exception.<locals>.TestPunktTokenizeWordsMockc                 ó   — t        g «      S rh  )ri  )r#   Úss     r   r   zyTestTokenize.test_punkt_tokenize_words_handles_stop_iteration_exception.<locals>.TestPunktTokenizeWordsMock.word_tokenize9  s   € Ü˜B“x�r)   N)Ú__name__Ú
__module__Ú__qualname__r   © r)   r   ÚTestPunktTokenizeWordsMockrn  8  s   „ ó r)   ru  r   )r
   ÚPunktBaseClassÚ
_lang_varsrP  Ú_tokenize_words)r#   Úobjru  s      r   Ú:test_punkt_tokenize_words_handles_stop_iteration_exceptionzGTestTokenize.test_punkt_tokenize_words_handles_stop_iteration_exception5  s9   € Ü×"Ñ"Ó$ˆ÷	 ñ 	 ñ 4Ó5ˆŒäˆS× Ñ  Ó(Õ)r)   c                 ó¤   —  G d„ dt         j                  «      }t        j                   |«       ¬«      }d}g d¢}|j                  |«      |k(  sJ ‚y )Nc                   ó   — e Zd ZdZy)úNTestTokenize.test_punkt_tokenize_custom_lang_vars.<locals>.BengaliLanguageVars)rB   rÄ   r<   u   à¥¤N©rq  rr  rs  Úsent_end_charsrt  r)   r   ÚBengaliLanguageVarsr}  B  s   „ Ø6‰Nr)   r€  )Ú	lang_varsõc  à¦‰à¦ªà¦°à¦¾à¦·à§�à¦Ÿà§�à¦°à¦ªà¦¤à¦¿ à¦¶à§�à¦°à§€ à¦�à¦® à¦­à§‡à¦™à§�à¦•à¦¾à¦‡à§Ÿà¦¾ à¦¨à¦¾à¦‡à¦¡à§� à¦¸à§‹à¦®à¦¬à¦¾à¦° à¦†à¦‡ à¦†à¦‡ à¦Ÿà¦¿ à¦¦à¦¿à¦²à§�à¦²à¦¿à¦° à¦¹à§€à¦°à¦• à¦œà§Ÿà¦¨à§�à¦¤à§€ à¦‰à¦¦à¦¯à¦¾à¦ªà¦¨à§‡à¦° à¦‰à¦¦à§�à¦¬à§‹à¦§à¦¨ à¦•à¦°à§‡à¦›à§‡à¦¨à¥¤ à¦…à¦¨à¦²à¦¾à¦‡à¦¨à§‡à¦° à¦®à¦¾à¦§à§�à¦¯à¦®à§‡ à¦�à¦‡ à¦…à¦¨à§�à¦·à§�à¦ à¦¾à¦¨à§‡ à¦•à§‡à¦¨à§�à¦¦à§�à¦°à§€à§Ÿ à¦®à¦¾à¦¨à¦¬ à¦¸à¦®à§�à¦ªà¦¦ à¦‰à¦¨à§�à¦¨à§Ÿà¦¨à¦®à¦¨à§�à¦¤à§�à¦°à§€ à¦¶à§�à¦°à§€ à¦°à¦®à§‡à¦¶ à¦ªà§‹à¦–à¦°à¦¿à§Ÿà¦¾à¦² â€˜à¦¨à¦¿à¦¶à¦¾à¦™à§�à¦•â€™  à¦‰à¦ªà¦¸à§�à¦¥à¦¿à¦¤ à¦›à¦¿à¦²à§‡à¦¨à¥¤ à¦�à¦‡ à¦‰à¦ªà¦²à¦•à§�à¦·à§�à¦¯à§‡ à¦‰à¦ªà¦°à¦¾à¦·à§�à¦Ÿà§�à¦°à¦ªà¦¤à¦¿ à¦¹à§€à¦°à¦•à¦œà§Ÿà¦¨à§�à¦¤à§€à¦° à¦²à§‹à¦—à§‹ à¦�à¦¬à¦‚ à§¨à§¦à§©à§¦-à¦�à¦° à¦œà¦¨à§�à¦¯ à¦ªà§�à¦°à¦¤à¦¿à¦·à§�à¦ à¦¾à¦¨à§‡à¦° à¦²à¦•à§�à¦·à§�à¦¯ à¦“ à¦ªà¦°à¦¿à¦•à¦²à§�à¦ªà¦¨à¦¾à¦° à¦¨à¦¥à¦¿ à¦ªà§�à¦°à¦•à¦¾à¦¶ à¦•à¦°à§‡à¦›à§‡à¦¨à¥¤)u  à¦‰à¦ªà¦°à¦¾à¦·à§�à¦Ÿà§�à¦°à¦ªà¦¤à¦¿ à¦¶à§�à¦°à§€ à¦�à¦® à¦­à§‡à¦™à§�à¦•à¦¾à¦‡à§Ÿà¦¾ à¦¨à¦¾à¦‡à¦¡à§� à¦¸à§‹à¦®à¦¬à¦¾à¦° à¦†à¦‡ à¦†à¦‡ à¦Ÿà¦¿ à¦¦à¦¿à¦²à§�à¦²à¦¿à¦° à¦¹à§€à¦°à¦• à¦œà§Ÿà¦¨à§�à¦¤à§€ à¦‰à¦¦à¦¯à¦¾à¦ªà¦¨à§‡à¦° à¦‰à¦¦à§�à¦¬à§‹à¦§à¦¨ à¦•à¦°à§‡à¦›à§‡à¦¨à¥¤u+  à¦…à¦¨à¦²à¦¾à¦‡à¦¨à§‡à¦° à¦®à¦¾à¦§à§�à¦¯à¦®à§‡ à¦�à¦‡ à¦…à¦¨à§�à¦·à§�à¦ à¦¾à¦¨à§‡ à¦•à§‡à¦¨à§�à¦¦à§�à¦°à§€à§Ÿ à¦®à¦¾à¦¨à¦¬ à¦¸à¦®à§�à¦ªà¦¦ à¦‰à¦¨à§�à¦¨à§Ÿà¦¨à¦®à¦¨à§�à¦¤à§�à¦°à§€ à¦¶à§�à¦°à§€ à¦°à¦®à§‡à¦¶ à¦ªà§‹à¦–à¦°à¦¿à§Ÿà¦¾à¦² â€˜à¦¨à¦¿à¦¶à¦¾à¦™à§�à¦•â€™  à¦‰à¦ªà¦¸à§�à¦¥à¦¿à¦¤ à¦›à¦¿à¦²à§‡à¦¨à¥¤u/  à¦�à¦‡ à¦‰à¦ªà¦²à¦•à§�à¦·à§�à¦¯à§‡ à¦‰à¦ªà¦°à¦¾à¦·à§�à¦Ÿà§�à¦°à¦ªà¦¤à¦¿ à¦¹à§€à¦°à¦•à¦œà§Ÿà¦¨à§�à¦¤à§€à¦° à¦²à§‹à¦—à§‹ à¦�à¦¬à¦‚ à§¨à§¦à§©à§¦-à¦�à¦° à¦œà¦¨à§�à¦¯ à¦ªà§�à¦°à¦¤à¦¿à¦·à§�à¦ à¦¾à¦¨à§‡à¦° à¦²à¦•à§�à¦·à§�à¦¯ à¦“ à¦ªà¦°à¦¿à¦•à¦²à§�à¦ªà¦¨à¦¾à¦° à¦¨à¦¥à¦¿ à¦ªà§�à¦°à¦•à¦¾à¦¶ à¦•à¦°à§‡à¦›à§‡à¦¨à¥¤)r
   ÚPunktLanguageVarsÚPunktSentenceTokenizerr"   )r#   r€  ry  Ú	sentencesr'   s        r   Ú$test_punkt_tokenize_custom_lang_varsz1TestTokenize.test_punkt_tokenize_custom_lang_vars@  sR   € ô	7¤%×"9Ñ"9ô 	7ô ×*Ñ*Ñ5HÓ5JÔKˆð zˆ	ò
ˆð �|‰|˜IÓ&¨(Ò2Ð2Ñ2r)   c                 ób   — t        j                  «       }d}dg}|j                  |«      |k(  sJ ‚y )Nr‚  )r
   r„  r"   )r#   ry  r…  r'   s       r   Ú'test_punkt_tokenize_no_custom_lang_varsz4TestTokenize.test_punkt_tokenize_no_custom_lang_varsQ  s>   € Ü×*Ñ*Ó,ˆð zˆ	ð rð
ˆð �|‰|˜IÓ&¨(Ò2Ð2Ñ2r)   z%input_text,n_sents,n_splits,lang_vars))z4Subject: Some subject. Attachments: Some attachmentsé   é   )z4Subject: Some subject! Attachments: Some attachmentsr‰  rŠ  )z4This is just a normal sentence, just like any other.rŠ  r   Nc                 óÌ   — t        j                  «       }|�||_        t        |j	                  |«      «      |k(  sJ ‚t        t        |j                  |«      «      «      |k(  sJ ‚y rh  )r
   r„  rw  Úlenr"   rP  Údebug_decisions)r#   Ú
input_textÚn_sentsÚn_splitsr�  r$   s         r   Úpunkt_debug_decisionsz"TestTokenize.punkt_debug_decisions\  sa   € ô$ ×0Ñ0Ó2ˆ	ØÐ Ø#,ˆIÔ ä�9×%Ñ% jÓ1Ó2°gÒ=Ð=Ð=Ü”4˜	×1Ñ1°*Ó=Ó>Ó?À8ÒKÐKÑKr)   c                 ój   —  G d„ dt         j                  «      }| j                  ddd |«       ¬«       y )Nc                   ó   — e Zd ZdZy)úGTestTokenize.test_punkt_debug_decisions_custom_end.<locals>.ExtLangVars)rB   rÄ   r<   ú^Nr~  rt  r)   r   ÚExtLangVarsr”  x  s   „ Ø1‰Nr)   r–  z4Subject: Some subject^ Attachments: Some attachmentsr‰  rŠ  )r�  r�  r�  )r
   rƒ  r‘  )r#   r–  s     r   Ú%test_punkt_debug_decisions_custom_endz2TestTokenize.test_punkt_debug_decisions_custom_endu  s7   € ô	2œ%×1Ñ1ô 	2ð 	×"Ñ"ØBØØÙ!“mð	 	#õ 	
r)   zsentences, expectedzthis is a test. . new sentence.)zthis is a test.rB   znew sentence.zThis. . . That)úThis.rB   rB   ÚThatzThis..... ThatzThis... ThatzThis.. . ThatzThis.. .r™  zThis. .. Thatr˜  z.. ThatzThis. ,. That)r˜  z,.r™  zThis!!! ThatzThis!!!z
This! ThatzThis!z+1. This is R .
2. This is A .
3. That's all)z1.zThis is R .z2.zThis is A .z3.z
That's allz+1. This is R .	2. This is A .	3. That's allzHello.	TherezHello.ÚTherer…  r'   c                 ó$   — t        |«      |k(  sJ ‚y rh  )r   )r#   r…  r'   s      r   Útest_sent_tokenizezTestTokenize.test_sent_tokenize„  s   € ô6 ˜YÓ'¨8Ò3Ð3Ñ3r)   c                 óœ   — d}t        «       }|j                  |«      t        |«      k(  sJ ‚t        |j                  |«      «      g d¢k(  sJ ‚y )NzHello there))r   rŠ  )rŠ  r‰  )r‰  r  )r  rö   )rö   r÷   )r÷   é   )rž  r  )r  r  )r  é	   )rŸ  r   )r   r"  )r   r"   rP  rQ  )r#   r—   r$   s      r   Útest_string_tokenizerz"TestTokenize.test_string_tokenizer¡  sR   € Ø ˆÜ!“Oˆ	Ø×!Ñ! (Ó+¬t°H«~Ò=Ð=Ð=Ü�I×+Ñ+¨HÓ5Ó6ò ;
ò 
ð 	
ñ 
r)   rh  ©ÚreturnN)"rq  rr  rs  r(   ÚpytestÚmarkÚparametrizeÚstrÚtuplerP  r[   re   rh   rp   Úcheck_stanford_segmenterrx   rz   r   r’   rž   r»   rÈ   rô   rR  r\  rf  rk  rz  r†  rˆ  r‘  r—  rœ  r   rt  r)   r   r   r   (   s£  „ ò"ð, ‡[�[×ÑØð 6âNÚJððð 0âEÚAððð Oòòðð ðL =ò
ò
ððð< >ò
òððð> Bò
òðð ðF Dò	òððð6 ;âPÚVðððMn	
óqðd)Øð)Ø*/°°S±	¸4À¹9Ð0DÑ*Eò)óeqðd)ò6;ò ò	/ð ñ
ó ð
ð. ñ
ó ð
ò""ò&?"òB/ò,3Iòj/ò2W"òr_"òB3ò:
4òò	*ò3ò"	3ð ‡[�[×ÑØ/ò	
óò"Ló#ð"Lò
ð ‡[�[×ÑØð 2Ú9ðð Ò:Ð;ØÐ 0Ð1Ð2Ø˜nÐ-Ð.Ø˜z¨6Ð2Ð3Ø˜w¨	Ð2Ð3ØÒ5Ð6Ø˜i¨Ð0Ð1Ø˜G VÐ,Ð-à?ÚNðð
 @ÚNðð ˜x¨Ð1Ð2ð+	
óð44¨Cð 4¸4À¹9ò 4ó5ð44ô
r)   r   c                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚTestPunktTrainerNc                 óN   — t        j                  «       }|j                  d«       y )NzThis is a test.©r
   ÚPunktTrainerÚtrain©r#   Útrainers     r   Útest_punkt_trainz!TestPunktTrainer.test_punkt_trainµ  s   € Ü×$Ñ$Ó&ˆØ�‰Ð'Õ(r)   c                 óN   — t        j                  «       }|j                  d«       y )Nr˜  r¬  r¯  s     r   Útest_punkt_train_single_wordz-TestPunktTrainer.test_punkt_train_single_word¹  s   € Ü×$Ñ$Ó&ˆØ�‰�gÕr)   c                 óN   — t        j                  «       }|j                  d«       y )NzThis is a testr¬  r¯  s     r   Útest_punkt_train_no_puncz)TestPunktTrainer.test_punkt_train_no_punc½  s   € Ü×$Ñ$Ó&ˆØ�‰Ð&Õ'r)   r¡  )rq  rr  rs  r±  r³  rµ  rt  r)   r   rª  rª  ´  s   „ ó)óô(r)   rª  c                   óÎ   — e Zd Z 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"y) ÚTestTreebankWordDetokenizerc                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)ÚHellor>   ÚworldrB   úHello, world.©ÚdetokÚ
detokenize©r#   r&   s     r   Útest_simple_sentencez0TestTreebankWordDetokenizer.test_simple_sentenceÅ  s$   € Ú-ˆØ�z‰z×$Ñ$ VÓ,°Ò?Ð?Ñ?r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rU  z'mÚsurerB   z	I'm sure.r¼  r¿  s     r   Útest_contractionsz-TestTreebankWordDetokenizer.test_contractionsÉ  s$   € Ú)ˆØ�z‰z×$Ñ$ VÓ,°Ò;Ð;Ñ;r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)ÚYourY  ÚseerB   zYou'll see.r¼  r¿  s     r   Útest_contraction_llz/TestTreebankWordDetokenizer.test_contraction_llÍ  ó$   € Ú+ˆØ�z‰z×$Ñ$ VÓ,°Ò=Ð=Ñ=r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rU  Údozn'tÚknowrB   zI don't know.r¼  r¿  s     r   Útest_contraction_notz0TestTreebankWordDetokenizer.test_contraction_notÑ  s$   € Ú0ˆØ�z‰z×$Ñ$ VÓ,°Ò?Ð?Ñ?r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N©ú``r¹  ú''ú"Hello"r¼  r¿  s     r   Útest_double_quotesz.TestTreebankWordDetokenizer.test_double_quotesÕ  s$   € Ú&ˆØ�z‰z×$Ñ$ VÓ,°	Ò9Ð9Ñ9r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)r«   r¬   rÏ  rÊ   rÐ  rB   zHe said "hi".r¼  r¿  s     r   Útest_double_quotes_with_periodz:TestTreebankWordDetokenizer.test_double_quotes_with_periodÙ  s$   € Ú6ˆØ�z‰z×$Ñ$ VÓ,°Ò?Ð?Ñ?r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rÏ  ÚYesr>   rÐ  Úher¬   rB   z"Yes," he said.r¼  r¿  s     r   Ú&test_comma_before_closing_double_quotezBTestTreebankWordDetokenizer.test_comma_before_closing_double_quoteÝ  s%   € Ú<ˆØ�z‰z×$Ñ$ VÓ,Ð0AÒAÐAÑAr)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rK   Údogú'sÚbonerB   zThe dog's bone.r¼  r¿  s     r   Útest_possessivez+TestTreebankWordDetokenizer.test_possessiveá  s%   € Ú2ˆØ�z‰z×$Ñ$ VÓ,Ð0AÒAÐAÑAr)   c                 óT   — g d¢}| j                   j                  |d¬«      }|dk(  sJ ‚y)z@PTB bracket symbols are converted when convert_parentheses=True.)z-LRB-r„   z-RRB-T)Úconvert_parenthesesz(hello)Nr¼  ©r#   r&   r}   s      r   Útest_parentheses_ptbz0TestTreebankWordDetokenizer.test_parentheses_ptbå  s.   € â,ˆØ—‘×&Ñ& vÀ4Ð&ÓHˆØ˜Ò"Ð"Ñ"r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)Úfooz--Úbarzfoo--barr¼  r¿  s     r   Útest_double_dashesz.TestTreebankWordDetokenizer.test_double_dashesë  s$   € Ú%ˆØ�z‰z×$Ñ$ VÓ,°
Ò:Ð:Ñ:r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y)z(`` is converted to opening double quote.rÎ  rÑ  Nr¼  r¿  s     r   Útest_opening_backtick_doublez8TestTreebankWordDetokenizer.test_opening_backtick_doubleï  s$   € â&ˆØ�z‰z×$Ñ$ VÓ,°	Ò9Ð9Ñ9r)   c                 óX   — g d¢}| j                   j                  |«      }d|v sd|v sJ ‚yy)z=` is preserved as-is (no standard conversion in detokenizer).)rË   r¹  rÖ   rË   rÖ   Nr¼  rà  s      r   Útest_opening_backtick_singlez8TestTreebankWordDetokenizer.test_opening_backtick_singleô  s2   € â$ˆØ—‘×&Ñ& vÓ.ˆØ�f‰}  v¡Ð-Ð- ˆ}r)   c                 óN   — g d¢}| j                   j                  |«      }d|v sJ ‚y)z('' is converted to closing double quote.)r«   r¬   rÏ  ÚyesrÐ  rB   z"yes"Nr¼  rà  s      r   Ú#test_closing_double_quote_backticksz?TestTreebankWordDetokenizer.test_closing_double_quote_backticksú  s)   € â7ˆØ—‘×&Ñ& vÓ.ˆØ˜&Ñ Ð Ñ r)   c                 óX   — g d¢}| j                   j                  |«      }d|v sd|v sJ ‚yy)z8Fix #3260: closing single then double quote after comma.)rÏ  ÚShippersr‡   ÚsayingrË   ÚtheÚpartyrÛ  Úoverr>   rÖ   rÐ  r¬   zMr.ÚLaLonderB   z,'z,'"Nr¼  rà  s      r   Útest_issue_3260_nested_quotesz9TestTreebankWordDetokenizer.test_issue_3260_nested_quotes   s8   € ò
ˆð$ —‘×&Ñ& vÓ.ˆà�v‰~ ¨6Ñ!1Ð1Ð1Ð!1ˆ~r)   c                 ó\   — g d¢}| j                   j                  |«      }|dk(  s|dk(  sJ ‚yy)z@Minimal case: comma, single quote, double quote should collapse.)Úwordr>   rÖ   rÐ  zword,'"Nr¼  rà  s      r   Útest_issue_3260_minimalz3TestTreebankWordDetokenizer.test_issue_3260_minimal  s6   € â)ˆØ—‘×&Ñ& vÓ.ˆØ˜Ò# v°Ò';Ð;Ð;Ð';Ð#r)   c                 ó‚   — d}t        «       }|j                  |«      }| j                  j                  |«      }||k(  sJ ‚y)z9Tokenize then detokenize should approximate the original.r»  N)r   r"   r½  r¾  )r#   Úoriginalr$   r&   r}   s        r   Útest_roundtrip_simplez1TestTreebankWordDetokenizer.test_roundtrip_simple  sA   € à"ˆÜ)Ó+ˆ	Ø×#Ñ# HÓ-ˆØ—‘×&Ñ& vÓ.ˆØ˜Ò!Ð!Ñ!r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)r”   rÕ   Úbza; br¼  r¿  s     r   Útest_semicolon_spacingz2TestTreebankWordDetokenizer.test_semicolon_spacing&  ó$   € Ú ˆØ�z‰z×$Ñ$ VÓ,°Ò6Ð6Ñ6r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)r”   r   rü  za: br¼  r¿  s     r   Útest_colon_spacingz.TestTreebankWordDetokenizer.test_colon_spacing*  rþ  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)ÚwerV  ÚseenrB   zwe've seen.r¼  r¿  s     r   Útest_contraction_vez/TestTreebankWordDetokenizer.test_contraction_ve.  rÈ  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)Úwhoz'drË  rB   zwho'd know.r¼  r¿  s     r   Útest_contraction_dz.TestTreebankWordDetokenizer.test_contraction_d2  rÈ  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rö  rB   rÐ  zword."r¼  r¿  s     r   Ú&test_closing_double_quote_after_periodzBTestTreebankWordDetokenizer.test_closing_double_quote_after_period6  ó$   € Ú$ˆØ�z‰z×$Ñ$ VÓ,°Ò8Ð8Ñ8r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rö  r>   rÐ  zword,"r¼  r¿  s     r   Ú%test_closing_double_quote_after_commazATestTreebankWordDetokenizer.test_closing_double_quote_after_comma:  r
  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rö  r<   rÐ  zword!"r¼  r¿  s     r   Ú+test_closing_double_quote_after_exclamationzGTestTreebankWordDetokenizer.test_closing_double_quote_after_exclamation>  r
  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rö  rÄ   rÐ  zword?"r¼  r¿  s     r   Ú(test_closing_double_quote_after_questionzDTestTreebankWordDetokenizer.test_closing_double_quote_after_questionB  r
  r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rÏ  rá   ÚBÚCrÐ  z"A B C"r¼  r¿  s     r   Útest_multiple_tokens_in_quotesz:TestTreebankWordDetokenizer.test_multiple_tokens_in_quotesF  s$   € Ú,ˆØ�z‰z×$Ñ$ VÓ,°	Ò9Ð9Ñ9r)   c                 óL   — g d¢}| j                   j                  |«      dk(  sJ ‚y )N)rÏ  r‹   r>   rÐ  r¬   ÚJorB   z"Hi," said Jo.r¼  r¿  s     r   Útest_quote_comma_saidz1TestTreebankWordDetokenizer.test_quote_comma_saidJ  s%   € Ú;ˆØ�z‰z×$Ñ$ VÓ,Ð0@Ò@Ð@Ñ@r)   c                 óJ   — | j                   j                  g d¢«      }d|vsJ ‚y )N)r”   r>   rü  z ,r¼  ©r#   r}   s     r   Ú#test_no_spurious_space_before_commaz?TestTreebankWordDetokenizer.test_no_spurious_space_before_commaN  s$   € Ø—‘×&Ñ&¢Ó7ˆØ˜6Ñ!Ð!Ñ!r)   c                 óJ   — | j                   j                  ddg«      }d|vsJ ‚y )Nr”   rB   z .r¼  r  s     r   Ú$test_no_spurious_space_before_periodz@TestTreebankWordDetokenizer.test_no_spurious_space_before_periodR  s(   € Ø—‘×&Ñ&¨¨S zÓ2ˆØ˜6Ñ!Ð!Ñ!r)   c                 ón   — | j                   j                  g d¢«      }d|vs|j                  d«      sJ ‚y y )N)rÏ  r”   rÐ  z "r×   )r½  r¾  Ú
startswithr  s     r   Ú+test_no_spurious_space_before_closing_quotezGTestTreebankWordDetokenizer.test_no_spurious_space_before_closing_quoteV  s8   € Ø—‘×&Ñ&Ò'8Ó9ˆØ˜6Ñ! V×%6Ñ%6°sÔ%;Ð;Ð;Ð%;Ð!r)   c                 óN   — g d¢}| j                   j                  |«      }d|v sJ ‚y)zRound-trip a quoted sentence.)rÏ  r¹  r>   rÐ  r×  r¬   rB   r×   Nr¼  )r#   Úoriginal_tokensr}   s      r   Útest_roundtrip_quotesz1TestTreebankWordDetokenizer.test_roundtrip_quotesZ  s'   € âGˆØ—‘×&Ñ& Ó7ˆØ�f‰}Ð‰}r)   N)#rq  rr  rs  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  r  r  r  r  r  r  r"  rt  r)   r   r·  r·  Â  s¦   „ Ù#Ó%€Eò@ò<ò>ò@ò:ò@òBòBò#ò;ò:ò
.ò!ò2ò0<ò"ò7ò7ò>ò>ò9ò9ò9ò9ò:òAò"ò"ò<ór)   r·  )Ú__doc__Útypingr   r   r£  Únltk.tokenizer   r   r   r   r	   r
   r   r   Únltk.tokenize.simpler   Únltk.tokenize.treebankr   r   r¤  Úskipifr¨  r   rª  r·  rt  r)   r   ú<module>r)     sy   ðñ÷
 ã ÷	÷ 	ó 	õ /Ý :òð "Ÿ;™;×-Ñ-ÙÓ!Ð!Ø<ð .ó Ð ÷I
ñ I
÷X(ñ (÷\ò \r)   