
    Pi                        d Z ddlZddlmZ ddlmZ ej        d             Zej        	                     ej
                     d          ej                            dd	d
g          d                         Zej        	                     ej
                     d          ej                            dd	d
g          d                         Zej        	                     ej
                     d          ej                            dd	d
g          d                         Zej        	                     ej
                     d          ej                            dd	d
g          d                         Zej        	                     ej
                     d          ej                            dd          d                         ZdS )z5Test of the espeak backend language switch processing    N)EspeakBackend)	Separatorc                  
    g dS )N)j'aime l'anglaiszj'aime le footballfootballzsurtout le real madridzn'utilise pas google r       p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/test/test_espeak_lang_switch.pylangswitch_textr      s           r	   z)language switch only exists for espeak-ng)reasonnjobs      c                     t          dd          }|                    |t                      d|          }|g dk    sJ d | j        D             }d|v sJ d	|v sJ d S )
Nfr-fr
keep-flagslanguage_switchT	separatorstripr      ʒɛm lɑ̃ɡlɛu   ʒɛm lə (en)fʊtbɔːl(fr)u   (en)fʊtbɔːl(fr)u!   syʁtu lə (en)ɹiəl(fr) madʁidu   nytiliz pa (en)ɡuːɡəl(fr)c                     g | ]
}|d          S    r   .0msgs     r
   
<listcomp>z3test_language_switch_keep_flags.<locals>.<listcomp>3       7773A777r	   =4 utterances containing language switches on lines 2, 3, 4, 5Clanguage switch flags have been kept (applying "keep-flags" policy)r   	phonemizer   record_tuplescaplogr   r   backendoutmessagess         r
   test_language_switch_keep_flagsr,   $   s    
 G\BBBG


9;;d%  I IC ) ) ) ) ) ) ) 87&"6777HG	 	 	 	 	N	 	 	 	 	 	r	   c                     t          d          }|                    |t                      d|          }|g dk    sJ d | j        D             }d|v sJ d|v sJ d S )Nr   Tr   r   c                     g | ]
}|d          S r   r   r   s     r
   r    z0test_language_switch_default.<locals>.<listcomp>L   r!   r	   r"   r#   r$   r'   s         r
   test_language_switch_defaultr/   <   s     G$$G


9;;d%  I IC ) ) ) ) ) ) ) 87&"6777HG	 	 	 	 	N	 	 	 	 	 	r	   c                     t          dd          }|                    |t                      d|          }|g dk    sJ d | j        D             }d|v sJ d	|v sJ d S )
Nr   remove-flagsr   Tr   )r   u   ʒɛm lə fʊtbɔːlu
   fʊtbɔːlu   syʁtu lə ɹiəl madʁidu   nytiliz pa ɡuːɡəlc                     g | ]
}|d          S r   r   r   s     r
   r    z5test_language_switch_remove_flags.<locals>.<listcomp>d   r!   r	   r"   zHlanguage switch flags have been removed (applying "remove-flags" policy)r$   r'   s         r
   !test_language_switch_remove_flagsr3   U   s    
 G^DDDG


9;;d%  I IC ! ! ! ! ! ! ! 87&"6777HG	 	 	 		+	 	 	 	 	 	r	   c                 :   t          dd          }|                    |t                      d|          }|g dk    sJ d | j        D             }d|v sJ t	          j        t                    5  t          dd	          }d d d            d S # 1 swxY w Y   d S )
Nr   remove-utterancer   Tr   )r    r6   r6   r6   c                     g | ]
}|d          S r   r   r   s     r
   r    z9test_language_switch_remove_utterance.<locals>.<listcomp>x   r!   r	   zVremoved 4 utterances containing language switches (applying "remove-utterance" policy)foo)r   r%   r   r&   pytestraisesRuntimeErrorr'   s         r
   %test_language_switch_remove_utterancer<   n   s&   
 G5GHHHG


9;;d%  I IC666666677&"6777H	/	 	 	 	 
|	$	$ @ @???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   1BBBpolicy)r   r1   r5   c                     ddg}t          d|           }|                    |t                      d          }|ddgk    sJ d	 |j        D             }|rJ d S )
Nr   u   tu parles le françaisr   r   T)r   r   r   u   ty paʁl lə fʁɑ̃sɛc                     g | ]
}|d          S r   r   r   s     r
   r    z"test_no_switch.<locals>.<listcomp>   r!   r	   r$   )r=   r(   textr)   r*   r+   s         r
   test_no_switchrA      s~      89DGV<<<G


DIKKt

D
DC%'@AAAAA77&"6777H<r	   )__doc__r9   phonemizer.backendr   phonemizer.separatorr   fixturer   markskipifis_espeak_ngparametrizer,   r/   r3   r<   rA   r   r	   r
   <module>rJ      s   < ;
  , , , , , , * * * * * *       ""$$$6  8 8 1a&))  *)8 8( ""$$$6  8 8 1a&))  *)8 8* ""$$$6  8 8 1a&))  *)8 8* ""$$$6  8 8 1a&))@ @ *)8 8@  ""$$$6  8 8 @B B B B8 8
  r	   