§
    �Ÿja$  ã                   óz  — d Z ddlmZmZ ddlmZmZmZ ddl	Z	ddl
mZmZ ddlZddlZddlmZ ddlZ	 ddlZn# e$ r Y nw xY wddlmZ ddlmZ d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z% G d„ de¦  «        Z&d„ Z' e'¦   «          G d„ de&¦  «        ¦   «         Z(ed d„¦   «         Z)d„ Z*d„ Z+dS )!z Tests for IPython.lib.display.

é    )ÚNamedTemporaryFileÚmkdtemp)ÚsplitÚjoinÚdirnameN)ÚTestCaseÚmock)ÚBytesIO)Údisplay)Úskipif_not_numpyc                  óz   — t          j        d¦  «        } t          j        t          j        d¦  «        ¦  «        } dS )z(FileLink: Test class can be instantiatedúexample.txtN)r   ÚFileLinkÚpathlibÚPurePath©Úfls    úk/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/IPython/lib/tests/test_display.pyÚtest_instantiation_FileLinkr   ,   s1   € å	Ô	˜-Ñ	(Ô	(€Bå	Ô	�'Ô*¨=Ñ9Ô9Ñ	:Ô	:€B€B€Bó    c                  ó€   — t          j        d¦  «        } |                      ¦   «                              d¦  «        sJ ‚dS )zEFileLink: Calling _repr_html_ on non-existent files returns a warningr   zPath (<tt>example.txt</tt>)N)r   r   Ú_repr_html_Ú
startswithr   s    r   Ú*test_warning_on_non_existent_path_FileLinkr   2   s=   € å	Ô	˜-Ñ	(Ô	(€BØ�>Š>ÑÔ×&Ò&Ð'DÑEÔEÐEÐEÐEÐEÐEr   c                  ó²   — t          ¦   «         } t          j        | j        ¦  «        }|                     ¦   «         }d| j        ›d| j        ›d�}||k    sJ ‚dS )zMFileLink: Calling _repr_html_ functions as expected on existing filepath
    z	<a href='ú' target='_blank'>ú</a><br>N)r   r   r   Únamer   ©Útfr   ÚactualÚexpecteds       r   Útest_existing_path_FileLinkr#   8   s_   € õ 
Ñ	Ô	€BÝ	Ô	˜"œ'Ñ	"Ô	"€BØ�^Š^ÑÔ€F€FØ<>¼G¸G¸GÀRÄWÀWÀWÐM€HØ�XÒÐÐÐÐÐr   c                  ó�   — t          ¦   «         } t          j        | j        ¦  «        }t	          |¦  «        }| j        }||k    sJ ‚dS )zHFileLink: Calling repr() functions as expected on existing filepath
    N)r   r   r   r   Úreprr   s       r   Ú test_existing_path_FileLink_reprr&   B   sJ   € õ 
Ñ	Ô	€BÝ	Ô	˜"œ'Ñ	"Ô	"€BÝ�"‰XŒX€FØŒw€HØ�XÒÐÐÐÐÐr   c                  ól   — t          ¦   «         } t          j        t          t          j        | ¦  «         dS )z1FileLink: Raises error when passed directory
    N)r   ÚpytestÚraisesÚ
ValueErrorr   r   )Útds    r   Ú#test_error_on_directory_to_FileLinkr,   L   s*   € õ 
‰Œ€BÝ
„M•*�gÔ.°Ñ3Ô3Ð3Ð3Ð3r   c                  ó.   — t          j        d¦  «        } dS )z.FileLinks: Test class can be instantiated
    ÚexampleN)r   Ú	FileLinks©Úflss    r   Útest_instantiation_FileLinksr2   V   s   € õ Ô
˜IÑ
&Ô
&€C€C€Cr   c                  ó€   — t          j        d¦  «        } |                      ¦   «                              d¦  «        sJ ‚dS )zFFileLinks: Calling _repr_html_ on non-existent files returns a warningr.   zPath (<tt>example</tt>)N)r   r/   r   r   r0   s    r   Ú+test_warning_on_non_existent_path_FileLinksr4   [   s=   € å
Ô
˜IÑ
&Ô
&€CØ�?Š?ÑÔ×'Ò'Ð(AÑBÔBÐBÐBÐBÐBÐBr   c                  ó,  — t          ¦   «         } t          | ¬¦  «        }t          | ¬¦  «        }t          j        | ¦  «        }|                     ¦   «         }|                     d¦  «        }|                     ¦   «          d| z  d|j                             dd¦  «        ›dt          |j        ¦  «        d         ›d	�d|j                             dd¦  «        ›dt          |j        ¦  «        d         ›d	�g}|                     ¦   «          ||k    sJ ‚d
S )zIFileLinks: Calling _repr_html_ functions as expected on existing dir
    ©Údirú
z%s/<br>z&nbsp;&nbsp;<a href='ú\ú/r   é   r   N)	r   r   r   r/   r   r   Úsortr   Úreplace©r+   Útf1Útf2r   r!   r"   s         r   Útest_existing_path_FileLinksrA   a   s  € õ 
‰Œ€BÝ
 Ð
$Ñ
$Ô
$€CÝ
 Ð
$Ñ
$Ô
$€CÝ	Ô	˜2Ñ	Ô	€BØ�^Š^ÑÔ€FØ�\Š\˜$ÑÔ€FØ
‡K‚K�M„M€Mð ˜B‘�à”(×"Ò" 4¨Ñ,Ô,Ð,Ð,­U°3´8©_¬_¸QÔ-?Ð-?Ð-?ðAð Að ”(×"Ò" 4¨Ñ,Ô,Ð,Ð,­U°3´8©_¬_¸QÔ-?Ð-?Ð-?ðAðB€Hð
 ‡M‚M�O„O€Oà�XÒÐÐÐÐÐr   c                  óN  — t          ¦   «         } t          | ¬¦  «        }t          | ¬¦  «        }d„ }t          j        | |¬¦  «        }|                     ¦   «         }|                     d¦  «        }|                     ¦   «          ddg}|                     ¦   «          ||k    sJ ‚dS )zMFileLinks: Calling _repr_html_ functions as expected w/ an alt formatter
    r6   c                 ó
   — ddgS ©NÚhelloÚworld© ©r   ÚfnamesÚincluded_suffixess      r   Úfake_formatterzBtest_existing_path_FileLinks_alt_formatter.<locals>.fake_formatter}   ó   € Ø˜Ð Ð r   )Únotebook_display_formatterr8   rE   rF   N)r   r   r   r/   r   r   r<   ©r+   r?   r@   rK   r   r!   r"   s          r   Ú*test_existing_path_FileLinks_alt_formatterrO   w   s¬   € õ 
‰Œ€BÝ
 Ð
$Ñ
$Ô
$€CÝ
 Ð
$Ñ
$Ô
$€Cð!ð !ð !å	Ô	˜2¸Ð	HÑ	HÔ	H€BØ�^Š^ÑÔ€FØ�\Š\˜$ÑÔ€FØ
‡K‚K�M„M€MØ˜Ð €HØ‡M‚M�O„O€Oà�XÒÐÐÐÐÐr   c                  ó®  — t          ¦   «         } t          | ¬¦  «        }t          | ¬¦  «        }t          j        | ¦  «        }t	          |¦  «        }|                     d¦  «        }|                     ¦   «          d| z  dt          |j        ¦  «        d         z  dt          |j        ¦  «        d         z  g}|                     ¦   «          ||k    sJ ‚dS )zFFileLinks: Calling repr() functions as expected on existing directory r6   r8   z%s/z  %sr;   N)r   r   r   r/   r%   r   r<   r   r>   s         r   Ú!test_existing_path_FileLinks_reprrQ   ‰   s½   € å	‰Œ€BÝ
 Ð
$Ñ
$Ô
$€CÝ
 Ð
$Ñ
$Ô
$€CÝ	Ô	˜2Ñ	Ô	€BÝ�"‰XŒX€FØ�\Š\˜$ÑÔ€FØ
‡K‚K�M„M€MØ˜‘
˜F¥U¨3¬8¡_¤_°QÔ%7Ñ7¸ÅÀsÄxÁÄÐQRÔASÑ8SÐT€HØ‡M‚M�O„O€Oà�XÒÐÐÐÐÐr   c                  óD  — t          ¦   «         } t          | ¬¦  «        }t          | ¬¦  «        }d„ }t          j        | |¬¦  «        }t	          |¦  «        }|                     d¦  «        }|                     ¦   «          ddg}|                     ¦   «          ||k    sJ ‚dS )zEFileLinks: Calling repr() functions as expected w/ alt formatter
    r6   c                 ó
   — ddgS rD   rG   rH   s      r   rK   zGtest_existing_path_FileLinks_repr_alt_formatter.<locals>.fake_formatterž   rL   r   )Úterminal_display_formatterr8   rE   rF   N)r   r   r   r/   r%   r   r<   rN   s          r   Ú/test_existing_path_FileLinks_repr_alt_formatterrU   ˜   s¨   € õ 
‰Œ€BÝ
 Ð
$Ñ
$Ô
$€CÝ
 Ð
$Ñ
$Ô
$€Cð!ð !ð !å	Ô	˜2¸Ð	HÑ	HÔ	H€BÝ�"‰XŒX€FØ�\Š\˜$ÑÔ€FØ
‡K‚K�M„M€MØ˜Ð €HØ‡M‚M�O„O€Oà�XÒÐÐÐÐÐr   c                  ó–   — t          ¦   «         } t          | ¬¦  «        }t          j        t          t
          j        |j        ¦  «         dS )z-FileLinks: Raises error when passed file
    r6   N)r   r   r(   r)   r*   r   r/   r   )r+   r?   s     r   Útest_error_on_file_to_FileLinksrW   ª   s<   € õ 
‰Œ€BÝ
 Ð
$Ñ
$Ô
$€CÝ
„M•*�gÔ/°´Ñ:Ô:Ð:Ð:Ð:r   c                  óÚ  — t          ¦   «         } t          | ¬¦  «        }t          | ¬¦  «        }t          |¬¦  «        }t          j        | ¦  «        }t	          |¦  «        }|                     d¦  «        }t          |¦  «        dk    s
J |¦   «         ‚t          j        | d¬¦  «        }t	          |¦  «        }|                     d¦  «        }t          |¦  «        dk    s
J |¦   «         ‚dS )z5FileLinks: Does not recurse when recursive=False
    r6   r8   é   F)Ú	recursiveé   N)r   r   r   r/   Ústrr   Úlen)r+   r    ÚsubtdÚsubtfr   r!   s         r   Útest_recursive_FileLinksr`   ²   sÛ   € õ 
‰Œ€BÝ	 Ð	#Ñ	#Ô	#€BÝ˜ˆO‰OŒO€EÝ 5Ð)Ñ)Ô)€EÝ	Ô	˜2Ñ	Ô	€BÝ�‰WŒW€FØ�\Š\˜$ÑÔ€FÝˆv‰;Œ;˜!ÒÐÐ˜VÑÔÐÝ	Ô	˜2¨Ð	/Ñ	/Ô	/€BÝ�‰WŒW€FØ�\Š\˜$ÑÔ€FÝˆv‰;Œ;˜!ÒÐÐ˜VÑÔÐÐÐr   c                  ót   — t          t          t          ¦  «        d¦  «        } t          j        | ¬¦  «         d S )Nztest.wav©Úfilename)Úpjoinr   Ú__file__r   ÚAudio)Úpaths    r   Útest_audio_from_filerh   Â   s2   € Ý•�Ñ"Ô" JÑ/Ô/€DÝ„M˜4Ð Ñ Ô Ð Ð Ð r   c                   ó‚   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	dS )ÚTestAudioDataWithNumpyc                 ó¶   — t          ¦   «         }t          j        |d¬¦  «        }t          t	          |j        ¦  «        ¦  «        t          |¦  «        k    sJ ‚d S ©NéD¬  ©Úrate)Úget_test_toner   rf   r]   Úread_wavÚdata©ÚselfÚ	test_toneÚaudios      r   Útest_audio_from_numpy_arrayz2TestAudioDataWithNumpy.test_audio_from_numpy_arrayÈ   sN   € å!‘O”Oˆ	Ý”˜i¨eÐ4Ñ4Ô4ˆÝ•8˜EœJÑ'Ô'Ñ(Ô(­C°	©N¬NÒ:Ð:Ð:Ð:Ð:Ð:r   c                 óÐ   — t          ¦   «         }t          j        t          |¦  «        d¬¦  «        }t	          t          |j        ¦  «        ¦  «        t	          |¦  «        k    sJ ‚d S rl   )rp   r   rf   Úlistr]   rq   rr   rs   s      r   Útest_audio_from_listz+TestAudioDataWithNumpy.test_audio_from_listÎ   sT   € å!‘O”Oˆ	Ý”�d 9™oœo°EÐ:Ñ:Ô:ˆÝ•8˜EœJÑ'Ô'Ñ(Ô(­C°	©N¬NÒ:Ð:Ð:Ð:Ð:Ð:r   c                 ój   — |                       t          t          j        t	          ¦   «         ¦  «         d S ©N)ÚassertRaisesr*   r   rf   rp   ©rt   s    r   Ú/test_audio_from_numpy_array_without_rate_raiseszFTestAudioDataWithNumpy.test_audio_from_numpy_array_without_rate_raisesÔ   s&   € à×Ò�*¥g¤mµ]±_´_ÑEÔEÐEÐEÐEr   c                 ó  — t          j        t           j        ¦  «        j        }dD ]e}t	          j        t          |¦  «        d¬¦  «        }t          j        t          j        t          |j	        ¦  «        ¦  «        ¦  «        }||k    sJ ‚Œfd S )N)r;   ç      à?r[   rm   rn   )
ÚnumpyÚiinfoÚint16Úmaxr   rf   rp   Úabsrq   rr   )rt   Úexpected_max_valueÚscalerv   Úactual_max_values        r   Útest_audio_data_normalizationz4TestAudioDataWithNumpy.test_audio_data_normalizationØ   s…   € å"œ[­¬Ñ5Ô5Ô9ÐØ ð 	:ð 	:ˆEÝ”M¥-°Ñ"6Ô"6¸UÐCÑCÔCˆEÝ$œy­¬µ8¸E¼JÑ3GÔ3GÑ)HÔ)HÑIÔIÐØ#Ð'9Ò9Ð9Ð9Ð9Ð9ð	:ð 	:r   c                 ó’  — t          j        t           j        ¦  «        j        }dD ] }t	          |¦  «        }t          j        t          j        |¦  «        ¦  «        }t          ||z  ¦  «        }t          j        |dd¬¦  «        }t          j        t          j        t          |j
        ¦  «        ¦  «        ¦  «        }||k    sJ ‚Œ¡d S )N)r;   r�   gš™™™™™É?rm   F©ro   Ú	normalize)r‚   rƒ   r„   r…   rp   r†   Úintr   rf   rq   rr   )rt   Ú	max_int16rˆ   ru   Útest_tone_max_absr‡   rv   r‰   s           r   Ú%test_audio_data_without_normalizationz<TestAudioDataWithNumpy.test_audio_data_without_normalizationà   s¹   € å”K¥¤Ñ,Ô,Ô0ˆ	Ø"ð 	:ð 	:ˆEÝ% eÑ,Ô,ˆIÝ %¤	­%¬)°IÑ*>Ô*>Ñ ?Ô ?ÐÝ!$ YÐ1BÑ%BÑ!CÔ!CÐÝ”M )°%À5ÐIÑIÔIˆEÝ$œy­¬µ8¸E¼JÑ3GÔ3GÑ)HÔ)HÑIÔIÐØ#Ð'9Ò9Ð9Ð9Ð9Ð9ð	:ð 	:r   c                 óv   — |                       t          d„ ¦  «         |                       t          d„ ¦  «         d S )Nc                  ó2   — t          j        dgdd¬¦  «        S )Ngj¼t“ð?rm   FrŒ   ©r   rf   rG   r   r   ú<lambda>zfTestAudioDataWithNumpy.test_audio_data_without_normalization_raises_for_invalid_data.<locals>.<lambda>î   s   € •G”M 5 '°ÀÐGÑGÔG€ r   c                  ó2   — t          j        dgdd¬¦  «        S )Ngj¼t“ð¿rm   FrŒ   r”   rG   r   r   r•   zfTestAudioDataWithNumpy.test_audio_data_without_normalization_raises_for_invalid_data.<locals>.<lambda>ñ   s   € •G”M 6 (°À%ÐHÑHÔH€ r   )r}   r*   r~   s    r   Ú=test_audio_data_without_normalization_raises_for_invalid_datazTTestAudioDataWithNumpy.test_audio_data_without_normalization_raises_for_invalid_dataë   sX   € Ø×ÒÝØGÐGñ	Iô 	Ið 	Ið 	×ÒÝØHÐHñ	Jô 	Jð 	Jð 	Jð 	Jr   N)
Ú__name__Ú
__module__Ú__qualname__r   rw   rz   r   rŠ   r‘   r—   rG   r   r   rj   rj   Æ   sµ   € € € € € àð;ð ;ñ Ôð;ð
 ð;ð ;ñ Ôð;ð
 ðFð Fñ ÔðFð ð:ð :ñ Ôð:ð ð:ð :ñ Ôð:ðJð Jð Jð Jð Jr   rj   c                  óŒ   — 	 dd l } t          j        dt          j        t          ¬¦  «        ¦  «        S # t
          $ r d„ cY S w xY w)Nr   znumpy.array)Úside_effectc                 ó   — | S r|   rG   )Úxs    r   r•   z.simulate_numpy_not_installed.<locals>.<lambda>ø   s   € ˜€ r   )r‚   r	   ÚpatchÚ	MagicMockÚImportErrorÚModuleNotFoundError)r‚   s    r   Úsimulate_numpy_not_installedr£   ó   sX   € ðØˆˆˆÝŒz˜-­¬ÅKÐ)PÑ)PÔ)PÑQÔQÐQøÝð ð ð ØˆzÐÐÐðøøøs   ‚03 ³AÁAc                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚTestAudioDataWithoutNumpyc                 ó‚   ‡— t          t          ¦   «         ¦  «        gdz  Š|                      t          ˆfd„¦  «         d S )Nr[   c                  ó0   •— t          j        ‰ d¬¦  «        S rl   r”   )Ústereo_signals   €r   r•   zMTestAudioDataWithoutNumpy.test_audio_raises_for_nested_list.<locals>.<lambda>  s   ø€ ­W¬]¸=ÈuÐ-UÑ-UÔ-U€ r   )ry   rp   r}   Ú	TypeError)rt   r¨   s    @r   Ú!test_audio_raises_for_nested_listz;TestAudioDataWithoutNumpy.test_audio_raises_for_nested_listþ   sB   ø€ å�m™oœoÑ.Ô.Ð/°!Ñ3ˆØ×Ò�)Ð%UÐ%UÐ%UÐ%UÑVÔVÐVÐVÐVr   N)r˜   r™   rš   r   rª   rG   r   r   r¥   r¥   ú   s5   € € € € € ð ðWð Wñ ÔðWð Wð Wr   r¥   r;   c                 ó~   — t          j        dt           j        z  dz  t          j        ddd¦  «        z  ¦  «        | z  S )Nr[   i¸  r   r;   rm   )r‚   ÚsinÚpiÚlinspace)rˆ   s    r   rp   rp     s5   € åŒ9�Q�œ‘\ CÑ'­%¬.¸¸A¸uÑ*EÔ*EÑEÑFÔFÈÑNÐNr   c                 óH  — t          j        t          | ¦  «        ¦  «        5 }|                     |                     ¦   «         ¦  «        }|                     ¦   «         |                     ¦   «         z  }t          j        d|z  |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nz<%sh)ÚwaveÚopenr
   Ú
readframesÚ
getnframesÚgetnchannelsÚstructÚunpack)rr   Ú	wave_fileÚ	wave_dataÚnum_sampless       r   rq   rq     sÎ   € Ý	Œ•7˜4‘=”=Ñ	!Ô	!ð > YØ×(Ò(¨×)=Ò)=Ñ)?Ô)?Ñ@Ô@ˆ	Ø×*Ò*Ñ,Ô,¨y×/EÒ/EÑ/GÔ/GÑGˆÝŒ}˜V kÑ1°9Ñ=Ô=ð>ð >ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   ¢A(BÂBÂBc                  óŒ   — t          j        t          ¬¦  «        } |                      ¦   «                              d¦  «        sJ ‚d S )Nrb   z<style>)r   ÚCodere   r   r   )Úcs    r   Útest_code_from_filer½     s<   € ÝŒ�hÐ'Ñ'Ô'€AØ�=Š=‰?Œ?×%Ò% iÑ0Ô0Ð0Ð0Ð0Ð0Ð0r   )r;   ),Ú__doc__Útempfiler   r   Úos.pathr   r   rd   r   r   Úunittestr   r	   rµ   r°   Úior
   r(   r‚   r¡   ÚIPython.libr   ÚIPython.testing.decoratorsr   r   r   r#   r&   r,   r2   r4   rA   rO   rQ   rU   rW   r`   rh   rj   r£   r¥   rp   rq   r½   rG   r   r   ú<module>rÅ      s�  ððð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ð €€€ð	Ø€L€L€L€LøØð 	ð 	ð 	Ø€Dð	øøøð  Ð Ð Ð Ð Ð à 7Ð 7Ð 7Ð 7Ð 7Ð 7ð;ð ;ð ;ðFð Fð Fðð ð ðð ð ð4ð 4ð 4ð'ð 'ð 'ð
Cð Cð Cðð ð ð,ð ð ð$ð ð ðð ð ð$;ð ;ð ;ð$ð $ð $ð !ð !ð !ð+Jð +Jð +Jð +Jð +J˜Xñ +Jô +Jð +JðZð ð ð ÐÑÔðWð Wð Wð Wð WÐ 6ñ Wô Wñ  ÔðWð ðOð Oð Oñ ÔðOð>ð >ð >ð1ð 1ð 1ð 1ð 1s   ´9 ¹AÁ A