
    )i                        S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
  \R                  R                  SS  H  r\R                  R                  \5        M      \R                  " \R                   SS9  \R"                  R%                  \R"                  R'                  \R"                  R'                  \5      5      SS	5      r0 r\" \5       r\R2                  " \R5                  5       5      rSSS5        S
 r\R8                  R;                  S\R<                  5      S 5       r\R8                  R;                  S\R<                  RA                  5       5      S 5       r!\R8                  R;                  S\
RD                  5      \R8                  R;                  S\
RD                  5      S 5       5       r#\R8                  R;                  S\
RD                  5      \R8                  R;                  S\RH                  R<                  RK                  5       5      S 5       5       r&S r'\R8                  R;                  S\
RD                  5      S 5       r(\R8                  R;                  S\RH                  R<                  RK                  5       5      S 5       r)\R8                  R;                  S\RH                  R<                  RK                  5       5      S 5       r*S r+S r,S r-S r.g! , (       d  f       GN= f)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                    ^ [         S   mU T;  d  UT;  a  gU4S jnTU     H  nUT;   d  M  UTU   ;   d  M  U" XU5        M!     g)z&Compare all data for `_from` and `_to`basic_all_to_allNc           	         > TU    U   nSR                  [        R                  " X0U5      R                  5       5      nSR                  TU   U   R                  5       5      nXT:X  d   SU < SU< SU< SU< 35       eg)z=Compare data for `_from` and `_to` in the test group `group`. zFailure ahoy: z to z: expected z, got N)joinr   transliteratesplit)_from_togroupsourceactualexpectedDATAs         Z/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/tests/sanscript/basic_test.pycompare_group8_compare_all_data_between_schemes.<locals>.compare_group,   ss    %[FXXi--fSAGGIJFxxS	%(..01HmPUWZ\dflmm    )	test_data)r   r   r   r   r   s       @r   !_compare_all_data_between_schemesr   '   sQ    	%	&$
$#T/
n E{e
d{uS	)E& r   namec                 l    [         R                  U    R                  U [        R                  ;   :X  d   eg)z*Test that a scheme is roman iff `is_roman`N)r   SCHEMESis_romanr   ALL_SCHEME_IDS)r   s    r   test_membershipr"   9   s.     
		4	 	)	)de6J6J.J	KK	Kr   zname,schemec                 0   [         R                  [         R                     n[        UR	                  5       5      nU HV  n[
        R                  " U 5        [
        R                  " U5        US;  d  M7  UR                  S5      (       a  MO  XC;   a  MV   e   g)zTest 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   s        r   test_correspondencer5   ?   s     	)../#sxxz?&eMM$MM%ss  }B  }M  }M  NQ  }R  }R__	 r   from_scheme	to_schemec                     [        X5        g)zTest roman to roman.Nr   r6   r7   s     r   test_to_romanr;   N        $K;r   c                     [        X5        g)zTest roman to Brahmic.Nr9   r:   s     r   test_to_brahmicr>   U   r<   r   c                  l   [         R                  " [        R                  " S[        R                  [        R
                  5      5        [        R                  " S[        R                  [        R
                  5      [        R                  " S[        R                  [        R
                  5      :X  d   eg)z$Test all synonmous transliterations.z$rAmo gUDhaM vaktI~Ngitaj~naH kShetrez$raamo guuDhaM vaktii~NgitaGYaH xetreN)r/   infor   r   ITRANSr,    r   r   test_devanaagarii_equivalencerC   \   s~    	,,y&&'MyO_O_ajauauvw		 	 !GIYIY[d[o[o	p**+QS\ScSceneyeyz
{ { 
{r   c                 :    [         R                  n[        X5        g)zTest Brahmic to roman.Nr   r,   r   r7   r6   s     r   test_brahmic_to_romanrG   c        $$+#K;r   c                 :    [         R                  n[        X5        g)zTest Brahmic to Brahmic.NrE   rF   s     r   test_devanagari_to_brahmicrJ   j   rH   r   	scheme_idc                    [         R                  U    nUR                  S5      UR                  ;  d   eUR                  UR                  S5         UR                  S5      :X  d   eSR	                  S5       Hg  nUR                  UR                  U5         UR                  [         R                  [         R
                     R                  U   5      :X  a  Mb   U5       e   g )Nu   अu   आu   ाu   इ ई उ ऊ ए ऐ ओ औr   )r   r   from_devanagarivowel_to_mark_mapr   r,   )rK   brahmic_schemevowels      r   test_vowel_to_mark_maprQ   p   s   $$Y/.		'	'	.n6V6V	VV	V		)	).*H*H*O	PTbTrTrsxTy	yy	y066s;e++N,J,J5,QRVdVtVtu~  vG  vG  HQ  H\  H\  v]  vo  vo  pu  vv  Ww  w  ~  y~  ~  w <r   c                    ^ ^ U U4S jnU$ )Nc                    > U[         R                  " U TTS1[        S5      [        S5      S9:X  d   ST< ST< SU < 35       eg )Nz##<>)togglers
suspend_onsuspend_offz_from: z, _to: z
, _input: )r   r   r-   )r   outputr   r   s     r   func!_toggle_test_helper.<locals>.funcz   s[    Y,,T5#4&^abe^fvyz}v~  w  fk  mp  rv  Bw  wr   rB   )r   r   rZ   s   `` r   _toggle_test_helperr\   y   s    w 
+r   c                      [        [        R                  [        R                  5      n U " SS5        U " SS5        U " SS5        U " SS5        U " SS5        U " S	S
5        U " SS5        g )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   अ#क्षरr\   r   HKr,   fs    r   test_togglerb      sg    ),,	(<(<=!O)*()L"#J !-.L#$I!"r   c                  f    [        [        R                  [        R                  5      n U " SS5        g )Nz<p>nara iti</p>u   <p>नर इति</p>r^   r`   s    r   test_suspendrd      s$    ),,	(<(<=!01r   c                  f    [        [        R                  [        R                  5      n U " SS5        g )Nz<p>##na##ra## iti</p>u   <p>naर iti</p>r^   r`   s    r   test_suspend_and_togglerf      s$    ),,	(<(<=!/0r   )/__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"   itemsr5   r!   r;   brahmicr.   r>   rC   rG   rJ   rQ   r\   rb   rd   rf   rB   r   r   <module>r      s   (   	  + 9||$$Q'G	,,W% (   	S
 bggoobggooh.GH&Rmn		.^jj,,./) '$ !2!23L 4L
 	(9(9(?(?(AB C (<(<=e&:&:;< < ><
 (<(<=i&7&7&?&?&D&D&FG< H ><
{ e&:&:;< << i&7&7&?&?&D&D&FG< H<
 i&7&7&?&?&D&D&FG~ H~#21[ s   !K,,
K;