o
    w•iò  ã                   @   sæ  d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ejjdd… D ]Zej e¡ q,ejejdd ej ej ej e¡¡dd	¡Zi ZeeƒZe e ¡ ¡ZW d  ƒ n1 sew   Y  d
d„ Zej dej¡dd„ ƒZej dej  ¡ ¡dd„ ƒZ!ej de
j"¡ej de
j"¡dd„ ƒƒZ#ej de
j"¡ej dej$j %¡ ¡dd„ ƒƒZ&dd„ Z'ej de
j"¡dd„ ƒZ(ej dej$j %¡ ¡dd„ ƒZ)ej dej$j %¡ ¡dd „ ƒZ*d!d"„ Z+d#d$„ Z,d%d&„ Z-d'd(„ Z.dS ))zW
test.sanscript
~~~~~~~~~~~~~~

Tests Sanskrit transliteration.

:license: MIT and BSD
é    )Úunicode_literalsN)Ú	sanscript)ÚromanzH%(levelname)s:%(asctime)s:%(module)s:%(filename)s:%(lineno)d %(message)s)ÚlevelÚformatÚdataztransliterationTests.jsonc                    sZ   t d ‰ | ˆ vs|ˆ vrdS ‡ fdd„}ˆ |  D ]}|ˆ v r*|ˆ | v r*|| ||ƒ qdS )z&Compare all data for `_from` and `_to`Úbasic_all_to_allNc                    sZ   ˆ |  | }d  t || |¡ ¡ ¡}d  ˆ | |  ¡ ¡}||ks+J d| |||f ƒ‚dS )z=Compare data for `_from` and `_to` in the test group `group`.ú z+Failure ahoy: %s to %s: expected %s, got %sN)Újoinr   ÚtransliterateÚsplit)Ú_fromÚ_toÚgroupÚsourceÚactualÚexpected©ÚDATA© ú]/home/ubuntu/maya3_transcribe/venv/lib/python3.10/site-packages/tests/sanscript/basic_test.pyÚcompare_group,   s    z8_compare_all_data_between_schemes.<locals>.compare_group)Ú	test_data)r   r   r   r   r   r   r   Ú!_compare_all_data_between_schemes'   s   €þr   Únamec                 C   s   t j|  j| tjv ksJ ‚dS )z*Test that a scheme is roman iff `is_roman`N)r   ÚSCHEMESÚis_romanr   ÚALL_SCHEME_IDS)r   r   r   r   Útest_membership9   s   r   zname,schemec                 C   sX   t jt j }t| ¡ ƒ}|D ]}t | ¡ t |¡ |dvr)| d¡s)||v s)J ‚qdS )z­Test that schemes correspond to a subset of Devanagari.

  Since Devanagari is the most comprehensive scheme available, every
  scheme corresponds to a subset of Devanagari.)Úaccented_vowel_alternatesÚextra_consonantsÚcandraÚzwjÚzwnjÚskipÚ	shortcutsÚ_N)r   r   Ú
DEVANAGARIÚsetÚkeysÚloggingÚdebugÚ
startswith)r   ÚschemeÚdevÚgroupsr   r   r   r   Útest_correspondence?   s   

€ür0   Úfrom_schemeÚ	to_schemec                 C   ó   t | |ƒ dS )zTest roman to roman.N©r   ©r1   r2   r   r   r   Útest_to_romanN   ó   r6   c                 C   r3   )zTest roman to Brahmic.Nr4   r5   r   r   r   Útest_to_brahmicU   r7   r8   c                   C   sD   t  t dtjtj¡¡ t dtjtj¡t dtjtj¡ks J ‚dS )z$Test all synonmous transliterations.z$rAmo gUDhaM vaktI~Ngitaj~naH kShetrez$raamo guuDhaM vaktii~NgitaGYaH xetreN)r*   Úinfor   r   ÚITRANSr'   r   r   r   r   Útest_devanaagarii_equivalence\   s   ÿr;   c                 C   ó   t j}t|| ƒ dS )zTest Brahmic to roman.N©r   r'   r   ©r2   r1   r   r   r   Útest_brahmic_to_romanc   ó   r?   c                 C   r<   )zTest Brahmic to Brahmic.Nr=   r>   r   r   r   Útest_devanagari_to_brahmicj   r@   rA   Ú	scheme_idc                 C   s€   t j|  }| d¡|jvsJ ‚|j| d¡ | d¡ksJ ‚d d¡D ]}|j| |¡ | t jt j j| ¡ks=J |ƒ‚q#d S )Nu   à¤…u   à¤†u   à¤¾u   à¤‡ à¤ˆ à¤‰ à¤Š à¤ à¤ à¤“ à¤”r	   )r   r   Úfrom_devanagariÚvowel_to_mark_mapr   r'   )rB   Úbrahmic_schemeÚvowelr   r   r   Útest_vowel_to_mark_mapp   s   
2ÿrG   c                    s   ‡ ‡fdd„}|S )Nc              	      s:   |t j| ˆ ˆdhtdƒtdƒdksJ dˆ ˆ| f ƒ‚d S )Nz##ú<ú>)ÚtogglersÚ
suspend_onÚsuspend_offz_from: %s, _to: %s, _input: %s)r   r   r(   )r   Úoutput©r   r   r   r   Úfuncz   s   :z!_toggle_test_helper.<locals>.funcr   )r   r   rO   r   rN   r   Ú_toggle_test_helpery   s   rP   c                  C   sX   t tjtjƒ} | ddƒ | ddƒ | ddƒ | ddƒ | ddƒ | d	d
ƒ | ddƒ d S )NzakSa##kSa##rau   à¤…à¤•à¥à¤·kSaà¤°z##akSa##kSa##rau   akSaà¤•à¥à¤·raz
akSa##ra##u   à¤…à¤•à¥à¤·razakSa##razakSa##kSa##ra####z
a####kSarau   à¤…à¤•à¥à¤·à¤°za#kSarau   à¤…#à¤•à¥à¤·à¤°©rP   r   ÚHKr'   ©Úfr   r   r   Útest_toggle   s   





rU   c                  C   ó   t tjtjƒ} | ddƒ d S )Nz<p>nara iti</p>u   <p>à¤¨à¤° à¤‡à¤¤à¤¿</p>rQ   rS   r   r   r   Útest_suspend‰   ó   rW   c                  C   rV   )Nz<p>##na##ra## iti</p>u   <p>naà¤° iti</p>rQ   rS   r   r   r   Útest_suspend_and_toggle   rX   rY   )/Ú__doc__Ú
__future__r   r*   ÚpytestÚosÚjsonÚindic_transliterationr   Ú'indic_transliteration.sanscript.schemesr   ÚrootÚhandlersÚhandlerÚremoveHandlerÚbasicConfigÚDEBUGÚpathr
   ÚdirnameÚ__file__ÚTEST_DATA_PATHr   ÚopenÚtest_data_fileÚloadsÚreadr   ÚmarkÚparametrizer   r   Úitemsr0   r   r6   Úbrahmicr)   r8   r;   r?   rA   rG   rP   rU   rW   rY   r   r   r   r   Ú<module>   sR   	þ 
þ





