o
    lQ³ië  ã                   @   s®   d dl Zd dlm  mZ d dlZd dlmZm	Z	m
Z
mZmZmZmZ ddd„Zddd„Zddd	„Zdd
d„Zddd„Zddd„Zddd„Zddd„Zddd„Zddd„ZdS )é    N)ÚInputScriptProfileÚ$build_transcript_variant_user_promptÚclassify_input_scriptÚextract_protected_spansÚ'get_cacheable_transcript_variant_promptÚ"get_transcript_variant_json_schemaÚromanized_text_is_asciiÚreturnc               	   C   óì   d} d}t | |ƒ}tj}||k}|slt d|fd||f¡dt ¡ v s't t ¡r,t t ¡nddt ¡ v s8t | ¡r=t | ¡ndt |¡t |¡dt ¡ v sQt t¡rVt t¡ndt |¡dœ }d	d
|i }t	t 
|¡ƒ‚d  } } }}d S )Nz9ya Google par jaakar whatsapp@support.com par click karkeÚhi©ú==)zZ%(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
} == %(py9)s
{%(py9)s = %(py7)s.fully_roman
}r   Útextr   ©Úpy0Úpy1Úpy3Úpy5Úpy7Úpy9úassert %(py11)sÚpy11)r   r   Úfully_romanÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation©r   Ú@py_assert2Ú@py_assert4Ú@py_assert8Ú@py_assert6Ú@py_format10Ú@py_format12© r(   ú@/home/ubuntu/transcripts/tests/test_transcript_variant_prompt.pyÚtest_classify_fully_roman_hi   ó   èr*   c               	   C   r
   )Nu}   à¤…à¤¨à¥à¤°à¤¾à¤— à¤ à¤¾à¤•à¥à¤° à¤œà¥€ à¤¤à¤®à¤¿à¤²à¤¨à¤¾à¤¡à¥ à¤®à¥‡à¤‚ à¤†à¤•à¤° à¤ªà¥à¤°à¤šà¤¾à¤° à¤•à¤¿à¤ à¤¹à¥ˆà¤‚r   r   ©z[%(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
} == %(py9)s
{%(py9)s = %(py7)s.fully_native
}r   r   r   r   r   r   ©r   r   Úfully_nativer   r   r   r   r   r   r   r    r!   r(   r(   r)   Útest_classify_fully_native_hi   r+   r/   c               	   C   r
   )NuÐ   à¦†à¦œà¦•à§‡à¦° à¦†à¦²à§‹à¦šà¦¨à¦¾à¦¯à¦¼ à¦†à¦®à¦°à¦¾ à¦¶à¦¿à¦•à§à¦·à¦¾à¦° à¦®à¦¾à¦¨ à¦‰à¦¨à§à¦¨à¦¯à¦¼à¦¨à§‡à¦° à¦•à¦¯à¦¼à§‡à¦•à¦Ÿà¦¿ à¦—à§à¦°à§à¦¤à§à¦¬à¦ªà§‚à¦°à§à¦£ à¦¦à¦¿à¦• à¦¤à§à¦²à§‡ à¦§à¦°à¦¬à¥¤Úbnr   r,   r   r   r   r   r   r   r-   r!   r(   r(   r)   Ú(test_classify_fully_native_bn_with_danda   r+   r1   c               	   C   r
   )Nõ1   à¤†à¤œ meeting 12:30 à¤¬à¤œà¥‡ Zoom à¤ªà¤° à¤¹à¥ˆr   r   )za%(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
} == %(py9)s
{%(py9)s = %(py7)s.mixed_native_latin
}r   r   r   r   r   r   )r   r   Úmixed_native_latinr   r   r   r   r   r   r   r    r!   r(   r(   r)   Ú#test_classify_mixed_native_latin_hi   r+   r4   c                  C   sº   d} t | ƒ}g d¢}||k}|sUt d|fd||f¡dt ¡ v s%t t ¡r*t t ¡nddt ¡ v s6t | ¡r;t | ¡ndt |¡t |¡dœ }dd	|i }tt |¡ƒ‚d  } }}d S )
Nz9website www.zuco.com aur email whatsapp@support.com 12:30)zwww.zuco.comúwhatsapp@support.comz12:30r   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   r   ©r   r   r   Úpy6úassert %(py8)sÚpy8)	r   r   r   r   r   r   r   r   r    )r   r"   Ú@py_assert5r#   Ú@py_format7Ú@py_format9r(   r(   r)   Útest_extract_protected_spans"   s   ¶r>   c                  C   sÒ   d} t | ƒ}|s-ddt ¡ v st t ¡rt t ¡ndt | ¡t |¡dœ }tt |¡ƒ‚d  } }d} t | ƒ}| }|saddt ¡ v sHt t ¡rMt t ¡ndt | ¡t |¡dœ }tt |¡ƒ‚d  }  }}d S )Nz,Ya Google par jaakar 12:30 baje Zoom par haiz,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}r   )r   Úpy2Úpy4u   à¤¯à¤¾ Google par jaakarz0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
})r   r   r   r   r   r   r   r    )Ú@py_assert1Ú@py_assert3Ú@py_format5r;   Ú@py_format6r(   r(   r)   Útest_romanized_ascii_check'   s   bprE   c                  C   s€  t dddddœgƒ} d}|| v }|sBt d|fd|| f¡t |¡d	t ¡ v s+t | ¡r0t | ¡nd	d
œ }dd|i }tt |¡ƒ‚d  }}d}|| v }|s~t d|fd|| f¡t |¡d	t ¡ v sgt | ¡rlt | ¡nd	d
œ }dd|i }tt |¡ƒ‚d  }}d}|| v }|sºt d|fd|| f¡t |¡d	t ¡ v s£t | ¡r¨t | ¡nd	d
œ }dd|i }tt |¡ƒ‚d  }}d S )NÚx1r   r3   r2   )ÚidÚlanguage_codeÚinput_script_profiler   zINPUT:©Úin©z%(py1)s in %(py3)sÚprompt©r   r   úassert %(py5)sr   )	r   r   r   r   r   r   r   r   r    ©rM   Ú@py_assert0r"   Ú@py_format4rD   r(   r(   r)   Ú$test_user_prompt_contains_items_json,   s   üÿÿx
x|rS   c                  C   sr  t ƒ } d}|| v }|s;t d|fd|| f¡t |¡dt ¡ v s$t | ¡r)t | ¡nddœ }dd|i }tt |¡ƒ‚d  }}d}|| v }|swt d|fd|| f¡t |¡dt ¡ v s`t | ¡ret | ¡nddœ }dd|i }tt |¡ƒ‚d  }}d	}|| v }|s³t d|fd|| f¡t |¡dt ¡ v sœt | ¡r¡t | ¡nddœ }dd|i }tt |¡ƒ‚d  }}d S )
Nz Preserve protected spans exactlyrJ   rL   rM   rN   rO   r   z8Return a single JSON object matching the schema exactly.r5   )	r   r   r   r   r   r   r   r   r    rP   r(   r(   r)   Ú+test_variant_prompt_contains_critical_rules<   s   xx|rT   c            
      C   s¤  t ƒ } | d }d}||k}|s2t d|fd||f¡t |¡t |¡dœ }dd|i }tt |¡ƒ‚d  } }}d}| d	 }||v }|sgt d
|fd||f¡t |¡t |¡dœ }dd|i }tt |¡ƒ‚d  } }}| d	 d d d	 }t|ƒ}h d£}||k}|sÊt d|fd||f¡dt ¡ v sšt 	t¡rŸt t¡nddt ¡ v s«t 	|¡r°t |¡ndt |¡t |¡dœ }dd|i }	tt |	¡ƒ‚d  } }}d S )NÚtypeÚobjectr   )z%(py1)s == %(py4)s)r   r@   zassert %(py6)sr8   ÚresultsÚ
propertiesrJ   )z%(py1)s in %(py4)sÚitems>   rG   Úromanized_textÚnative_script_textr6   ÚsetÚ
item_propsr7   r9   r:   )
r   r   r   r   r   r    r\   r   r   r   )
ÚschemarQ   rB   r"   rC   r<   r]   r;   r#   r=   r(   r(   r)   Ú"test_variant_json_schema_structureC   sR   jjüüüüüüüüüüüüüüüüüür_   c                  C   sˆ   t  tƒ ¡} d}|| v}|s>t d|fd|| f¡t |¡dt ¡ v s't | ¡r,t | ¡nddœ }dd|i }t	t 
|¡ƒ‚d  }}d S )Nz$ref)únot in)z%(py1)s not in %(py3)sÚ
schema_strrN   rO   r   )ÚjsonÚdumpsr   r   r   r   r   r   r   r   r    )ra   rQ   r"   rR   rD   r(   r(   r)   Ú$test_variant_json_schema_has_no_refsO   s   |rd   )r	   N)Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   rb   Úsrc.transcript_variant_promptr   r   r   r   r   r   r   r*   r/   r1   r4   r>   rE   rS   rT   r_   rd   r(   r(   r(   r)   Ú<module>   s   " $








