o
    ˇN i  ã                   @   sČ   d dl Z d dlmZmZmZmZ ejej ej Z	ddgZ
dd eeD Zejej Zdd Zd	d
 Zdd ZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZdS )é    N)ÚtransliterateÚ
GeneralMapÚPostProcessÚ
PreProcessÚheartÚlalitavistarac                 c   s    | ]	}d |vr|V  qdS )Ú__NŠ )Ú.0Údr	   r	   úO/home/ubuntu/.local/lib/python3.10/site-packages/aksharamukha/test/testsuite.pyÚ	<genexpr>   s    r   c                 C   sĒ   zEt d| d ddd/}| Ą }tjd| |dd}tj| ||dd}tj|| |dd}||ks2J W d    W d S 1 s>w   Y  W d S  tyT   t| | Y d S w )	Nztest_texts/source_Devanagari_ú.txtÚrÚutf8ŠÚencodingÚ
DevanagariFŠÚnativizeŠÚopenÚreadr   ÚprocessÚFileNotFoundErrorÚprint)Úsource_scriptÚtarget_scriptÚsource_textÚfiÚsrc_txtÚ
dev_to_srcÚ
src_to_tgtÚ
tgt_to_srcr	   r	   r   Útext_compare_reversible_2
   s   &ûūr$   c                 C   s    z@t d|  d | d ddd&}| Ą }tj| ||dd}tj|| |dd}||ks-J W d    W d S 1 s9w   Y  W d S  tyO   t| | Y d S w )	Nútest_texts/source_Ú_r   r   r   r   Fr   r   )r   r   r   r   r    r"   r#   r	   r	   r   Útext_compare_reversible   s    &üūr'   c              	   C   sŪ   z_t d|  d | d | d dddA}t d|  d | d ddd}t | || Ą Ą| Ą ks4J W d    n1 s>w   Y  W d    W d S W d    W d S 1 sXw   Y  W d S  tyn   t| | Y d S w )Nztest_texts/test_r&   r   r   r   r   r%   )r   r   r   r   r   r   )r   r   r   Úfor   r	   r	   r   Útext_compare#   s   (  ˙˙&˙˙r)   c                   @   ķB   e Zd Zej dddgĄej deĄej deĄdd ZdS )	ÚTestOverallr   r   ÚIASTr   r   c                 C   s   t ||| d S )N)r)   ŠÚselfr   r   r   r	   r	   r   Útest_overall,   s   zTestOverall.test_overallN)	Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizeÚtarget_scriptsÚsource_textsr/   r	   r	   r	   r   r+   +   ķ
    r+   c                   @   r*   )	ÚTestOverallReversibler   r   r,   r   r   c                 C   s   |dkrt ||| d S d S ŠNÚBengali)r'   r-   r	   r	   r   Útest_overall_reversible3   s   ˙z-TestOverallReversible.test_overall_reversibleN)	r0   r1   r2   r3   r4   r5   Úreversible_scriptsr7   r<   r	   r	   r	   r   r9   2   r8   r9   c                   @   s>   e Zd Zej deĄej deĄej deĄdd ZdS )ÚTestOverallReversible2r   r   r   c                 C   s(   |dkr|dkrt ||| d S d S d S r:   )r$   r-   r	   r	   r   Útest_overall_reversible_2;   s   ˙z0TestOverallReversible2.test_overall_reversible_2N)	r0   r1   r2   r3   r4   r5   r=   r7   r?   r	   r	   r	   r   r>   :   s
    r>   c                   @   ķ"   e Zd Zej deĄdd ZdS )ÚTestPostOptionsÚpost_optionsc                 C   s´   dd l }tdddd}| |Ą}W d    n1 sw   Y  z)|| }|D ]}|d D ]}tj|d |d |d |gd	|d
 ksEJ q-q'W d S  tyY   d
d
ksVJ Y d S w )Nr   z test_texts/test_postoptions.jsonr   r   r   ÚcasesÚsourceÚtargetŠrB   é   ŠÚjsonr   Úloadr   r   ÚKeyError)r.   rB   rI   ÚfÚtextsÚ	testcasesÚtestcaseÚcaser	   r	   r   Útest_postoptionsC   s   ˙.˙˙˙z TestPostOptions.test_postoptionsN)r0   r1   r2   r3   r4   r5   rB   rQ   r	   r	   r	   r   rA   B   ķ    rA   c                   @   r@   )Ú
TestSanityr6   c           	      C   sø   dd l }tdddd}| |Ą}W d    n1 sw   Y  zK|| }|D ]A}|d D ]:}d|v r7|d nd}tj|d	 |d
 |d |d|d ksNJ d|v rgtj|d
 |d	 |d |d|d ksgJ q-q'W d S  ty{   ddksxJ Y d S w )Nr   z#test_texts/test_sanity_default.jsonr   r   r   rC   r   TrD   rE   r   rG   ÚreverserH   )	r.   r6   rI   rL   rM   rN   rO   rP   r   r	   r	   r   Útest_sanity_defaultS   s$   ˙**û˙˙zTestSanity.test_sanity_defaultN)r0   r1   r2   r3   r4   r5   r6   rU   r	   r	   r	   r   rS   R   rR   rS   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ÚTestMiscc                 C   s   t  dddĄdksJ d S )NÚHKr;   údsavva sabba samba samva sarva sarba ukva ukba utva utba udveda udbodhana bru bra bya byu vra vya vlauö   āĻ¸āĻŦā§āĻŦ āĻ¸āĻŦā§āĻŦ āĻ¸āĻŽā§āĻŦ āĻ¸āĻŽā§āĻŦ āĻ¸āĻ°ā§āĻŦ āĻ¸āĻ°ā§āĻŦ āĻāĻā§āĻŦ āĻāĻā§āĻŦ āĻāĻ¤ā§āĻŦ āĻāĻ¤ā§āĻŦ āĻāĻĻā§āĻŦā§āĻĻ āĻāĻĻā§āĻŦā§āĻ§āĻ¨ āĻŦā§āĻ°ā§ āĻŦā§āĻ° āĻŦā§āĻ¯ āĻŦā§āĻ¯ā§ āĻŦā§āĻ° āĻŦā§āĻ¯ āĻŦā§āĻ˛Šr   r   Šr.   r	   r	   r   Útest_bengali_va_defaultf   s   z TestMisc.test_bengali_va_defaultc                 C   s   t jddddddksJ d S )NrW   r;   rX   Fr   u  āĻ¸āĻ­āĻŧā§āĻ­āĻŧ āĻ¸āĻŦā§āĻŦ āĻ¸āĻŽā§āĻŦ āĻ¸āĻŽā§āĻ­āĻŧ āĻ¸āĻ°ā§āĻ­āĻŧ āĻ¸āĻ°ā§āĻŦ āĻāĻā§āĻŦ āĻāĻā§âāĻŦ āĻāĻ¤ā§āĻŦ āĻā§âāĻŦ āĻāĻĻā§āĻŦā§āĻĻ āĻāĻĻā§âāĻŦā§āĻ§āĻ¨ āĻŦā§āĻ°ā§ āĻŦā§āĻ° āĻŦā§āĻ¯ āĻŦā§āĻ¯ā§ āĻ­āĻŧā§āĻ° āĻ­āĻŧā§āĻ¯ āĻ­āĻŧā§āĻ˛rY   rZ   r	   r	   r   Útest_bengali_va_preserve_sourcei   s   z(TestMisc.test_bengali_va_preserve_sourcec                 C   s    t jddddgddksJ d S )NrW   r;   rX   ÚBengaliRaBarF   u  āĻ¸āĻŦā§āĻŦ āĻ¸ā§°ā§ââā§° āĻ¸āĻŽā§âā§° āĻ¸āĻŽā§āĻŦ āĻ¸āĻ°ā§āĻŦ āĻ¸ā§°ā§ā§° āĻāĻā§āĻŦ āĻāĻā§âā§° āĻāĻ¤ā§āĻŦ āĻāĻ¤ā§âā§° āĻāĻĻā§āĻŦā§āĻĻ āĻāĻĻā§âā§°ā§āĻ§āĻ¨ ā§°âā§āĻ°ā§ ā§°âā§āĻ° ā§°âā§āĻ¯ ā§°âā§āĻ¯ā§ āĻŦā§āĻ° āĻŦā§āĻ¯ āĻŦā§āĻ˛rY   rZ   r	   r	   r   Útest_bengali_va_old_ral   s    zTestMisc.test_bengali_va_old_raN)r0   r1   r2   r[   r\   r^   r	   r	   r	   r   rV   e   s    rV   )r3   Úaksharamukhar   r   r   r   ÚIndicScriptsÚRomanÚSemiticScriptsr6   r7   ÚdirrB   ÚReversibleScriptsÚRomanReversibler=   r$   r'   r)   r+   r9   r>   rA   rS   rV   r	   r	   r	   r   Ú<module>   s    