Ë
    çÍ:j.  ã                   ó�   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d„ de j                  «      Z
 G d„ d	e j                  «      Zy)
é    N)Úclosing)Údata)ÚPorterStemmer)ÚSnowballStemmerc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSnowballTestc                 ó6  — t        dd«      }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      d	k(  sJ ‚|j                  d
«      d	k(  sJ ‚|j                  d«      d	k(  sJ ‚|j                  d«      d	k(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚t        dd«      }|j                  d«      dk(  sJ ‚|j                  d«      d	k(  sJ ‚|j                  d«      dk(  sJ ‚t        d«      }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      d	k(  sJ ‚|j                  d«      dk(  sJ ‚y)z„
        this unit testing for test the snowball arabic light stemmer
        this stemmer deals with prefixes and suffixes
        ÚarabicTu&   Ø§Ù„Ù’Ø¹ÙŽØ±ÙŽØ¨Ù�Ù€Ù€Ù€Ù€Ù€Ù€ÙŠÙ‘ÙŽØ©u   Ø¹Ø±Ø¨u   Ø§Ù„Ø¹Ø±Ø¨ÙŠØ©u   Ù�Ù‚Ø§Ù„ÙˆØ§u   Ù‚Ø§Ù„u   Ø§Ù„Ø·Ø§Ù„Ø¨Ø§Øªu   Ø·Ø§Ù„Ø¨u   Ù�Ø§Ù„Ø·Ø§Ù„Ø¨Ø§Øªu   ÙˆØ§Ù„Ø·Ø§Ù„Ø¨Ø§Øªu   Ø§Ù„Ø·Ø§Ù„Ø¨ÙˆÙ†u   Ø§Ù„Ù„Ø°Ø§Ù†u   Ù…Ù†Fu   Ø§Ù„Ù„Ø°u   Ø§Ù„ÙƒÙ„Ù…Ø§Øªu   ÙƒÙ„Ù…N©r   Ústem)ÚselfÚ
ar_stemmers     úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/test/unit/test_stem.pyÚtest_arabiczSnowballTest.test_arabic
   s¹  € ô % X¨tÓ4ˆ
Ø�‰ÐGÓHÈHÒTÐTÐTØ�‰Ð/Ó0°HÒ<Ð<Ð<Ø�‰˜~Ó.°(Ò:Ð:Ð:Ø�‰Ð1Ó2°jÒ@Ð@Ð@Ø�‰Ð3Ó4¸
ÒBÐBÐBØ�‰Ð3Ó4¸
ÒBÐBÐBØ�‰Ð1Ó2°jÒ@Ð@Ð@Ø�‰˜~Ó.°.Ò@Ð@Ð@Ø�‰˜vÓ&¨&Ò0Ð0Ð0ä$ X¨uÓ5ˆ
Ø�‰˜~Ó.°*Ò<Ð<Ð<Ø�‰Ð1Ó2°jÒ@Ð@Ð@Ø�‰Ð/Ó0°HÒ<Ð<Ð<ä$ XÓ.ˆ
Ø�‰ÐGÓHÈHÒTÐTÐTØ�‰Ð/Ó0°HÒ<Ð<Ð<Ø�‰˜~Ó.°(Ò:Ð:Ð:Ø�‰Ð1Ó2°jÒ@Ð@Ð@Ø�‰Ð/Ó0°HÒ<Ð<Ñ<ó    c                 óF   — t        d«      }|j                  d«      dk(  sJ ‚y )NÚrussianu   Ð°Ð²Ð°Ð½Ñ‚Ð½ÐµÐ½ÑŒÐºÐ°Ñ�u   Ð°Ð²Ð°Ð½Ñ‚Ð½ÐµÐ½ÑŒÐºr   )r   Ústemmer_russians     r   Útest_russianzSnowballTest.test_russian'   s'   € Ü)¨)Ó4ˆØ×#Ñ#Ð$>Ó?ÐCYÒYÐYÑYr   c                 óä   — t        d«      }t        dd¬«      }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚y )NÚgermanT)Úignore_stopwordsu	   SchrÃ¤nkeÚschrankÚkeinenÚkeinr   )r   Ústemmer_germanÚstemmer_german2s      r   Útest_germanzSnowballTest.test_german+   s|   € Ü(¨Ó2ˆÜ)¨(ÀTÔJˆà×"Ñ" =Ó1°YÒ>Ð>Ð>Ø×#Ñ# MÓ2°iÒ?Ð?Ð?à×"Ñ" 8Ó,°Ò6Ð6Ð6Ø×#Ñ# HÓ-°Ò9Ð9Ñ9r   c                 ór   — t        d«      }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚y )NÚspanishÚ	VisionadoÚvisionÚalgueÚalgur   ©r   Ústemmers     r   Útest_spanishzSnowballTest.test_spanish5   s<   € Ü! )Ó,ˆà�|‰|˜KÓ(¨HÒ4Ð4Ð4ð �|‰|˜GÓ$¨Ò.Ð.Ñ.r   c                 óF   — t        d«      }|j                  d«      dk(  sJ ‚y )NÚenglishzy'sÚyr   r%   s     r   Útest_short_strings_bugz#SnowballTest.test_short_strings_bug=   s#   € Ü! )Ó,ˆØ�|‰|˜EÓ" cÒ)Ð)Ñ)r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r'   r+   © r   r   r   r   	   s   „ ò=ò:Zò:ò/ó*r   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú
PorterTestc                 óÆ   — t        t        j                  d«      j                  d¬«      «      5 }|j	                  «       j                  «       cd d d «       S # 1 sw Y   y xY w)Nz*stemmers/porter_test/porter_vocabulary.txtúutf-8©Úencoding)r   r   ÚfindÚopenÚreadÚ
splitlines©r   Úfps     r   Ú_vocabularyzPorterTest._vocabularyC   sW   € ÜÜ�I‰IÐBÓC×HÑHØ ð Ió ó
ð 	*ð Ø—7‘7“9×'Ñ'Ó)÷	*÷ 	*ò 	*ús   ¯AÁA c                 ó¾   — t        |¬«      }t        | j                  «       |«      D ]4  \  }}|j                  |«      }||k(  rŒJ dj	                  ||||«      «       ‚ y )N)Úmodez*{} should stem to {} in {} mode but got {})r   Úzipr<   r   Úformat)r   Ústemmer_modeÚexpected_stemsr&   ÚwordÚ	true_stemÚour_stems          r   Ú_test_against_expected_outputz(PorterTest._test_against_expected_outputK   sl   € Ü \Ô2ˆÜ" 4×#3Ñ#3Ó#5°~ÓFò 		‰OˆD�)Ø—|‘| DÓ)ˆHà˜IÓ%ðà;×BÑBØØØØó	óØ%ñ		r   c                 ó  — t        t        j                  d«      j                  d¬«      «      5 }| j	                  t
        j                  |j                  «       j                  «       «       ddd«       y# 1 sw Y   yxY w)az  Tests all words from the test vocabulary provided by M Porter

        The sample vocabulary and output were sourced from
        https://tartarus.org/martin/PorterStemmer/voc.txt and
        https://tartarus.org/martin/PorterStemmer/output.txt
        and are linked to from the Porter Stemmer algorithm's homepage
        at https://tartarus.org/martin/PorterStemmer/
        z-stemmers/porter_test/porter_martin_output.txtr3   r4   N)	r   r   r6   r7   rF   r   ÚMARTIN_EXTENSIONSr8   r9   r:   s     r   Útest_vocabulary_martin_modez&PorterTest.test_vocabulary_martin_modeX   so   € ô Ü�I‰IÐEÓF×KÑKØ ð Ló ó
ð 	ð Ø×.Ñ.Ü×/Ñ/°·±³×1EÑ1EÓ1Gô÷	÷ 	ñ 	úó   ¯=A5Á5A>c                 ó  — t        t        j                  d«      j                  d¬«      «      5 }| j	                  t
        j                  |j                  «       j                  «       «       d d d «       y # 1 sw Y   y xY w)Nz+stemmers/porter_test/porter_nltk_output.txtr3   r4   )	r   r   r6   r7   rF   r   ÚNLTK_EXTENSIONSr8   r9   r:   s     r   Útest_vocabulary_nltk_modez$PorterTest.test_vocabulary_nltk_modej   sm   € ÜÜ�I‰IÐCÓD×IÑIØ ð Jó ó
ð 	ð Ø×.Ñ.Ü×-Ñ-¨r¯w©w«y×/CÑ/CÓ/Eô÷	÷ 	ñ 	úrJ   c                 óÀ  — t        t        j                  d«      j                  d¬«      «      5 }| j	                  t
        j                  |j                  «       j                  «       «       d d d «       | j	                  t
        j                  t        j                  d«      j                  d¬«      j                  «       j                  «       «       y # 1 sw Y   ŒixY w)Nz/stemmers/porter_test/porter_original_output.txtr3   r4   )	r   r   r6   r7   rF   r   ÚORIGINAL_ALGORITHMr8   r9   r:   s     r   Útest_vocabulary_original_modez(PorterTest.test_vocabulary_original_modet   s¯   € ô Ü�I‰IÐGÓH×MÑMØ ð Nó ó
ð 	ð Ø×.Ñ.Ü×0Ñ0°"·'±'³)×2FÑ2FÓ2Hô÷	ð 	×*Ñ*Ü×,Ñ,Ü�I‰IÐGÓHß‰T˜7ˆTÓ#ß‰T‹Vß‰Z‹\õ	
÷	ð 	ús   ¯=CÃCc                 ó@   — t        «       j                  d«      dk(  sJ ‚y)z„Test for bug https://github.com/nltk/nltk/issues/1581

        Ensures that 'oed' can be stemmed without throwing an error.
        ÚoedÚoN©r   r   )r   s    r   Útest_oed_bugzPorterTest.test_oed_bugŒ   s   € ô
 ‹×#Ñ# EÓ*¨cÒ1Ð1Ñ1r   c                 óü   — t        «       }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  dd¬«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  dd¬«      dk(  sJ ‚y	)
z�Test for improvement on https://github.com/nltk/nltk/issues/2507

        Ensures that stems are lowercased when `to_lowercase=True`
        ÚOnÚonÚIÚiF)Úto_lowercaseÚGithubÚgithubNrT   )r   Úporters     r   Útest_lowercase_optionz PorterTest.test_lowercase_option“   s†   € ô
 “ˆØ�{‰{˜4Ó  DÒ(Ð(Ð(Ø�{‰{˜3Ó 3Ò&Ð&Ð&Ø�{‰{˜3¨Uˆ{Ó3°sÒ:Ð:Ð:Ø�{‰{˜8Ó$¨Ò0Ð0Ð0Ø�{‰{˜8°%ˆ{Ó8¸HÒDÐDÑDr   N)
r,   r-   r.   r<   rF   rI   rM   rP   rU   r_   r/   r   r   r1   r1   B   s&   „ ò*òòò$ò
ò02ó
Er   r1   )ÚunittestÚ
contextlibr   Únltkr   Únltk.stem.porterr   Únltk.stem.snowballr   ÚTestCaser   r1   r/   r   r   ú<module>rf      s=   ðÛ Ý å Ý *Ý .ô6*�8×$Ñ$ô 6*ôr[E�×"Ñ"õ [Er   