Ë
    íÍ:j\F  ã                   ó<	  — d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ  ej*                  «       d„ «       Zd„ Z G d	„ d
ej0                  «      Zd„ Zej6                  j9                  d ee¬«      gdg¬«      d„ «       Zd„ Zej@                  jC                  d«       G d„ de«      «       Z"g d¢Z#d„ Z$ej6                  j9                  d e$«       «      ej6                  j9                  d ee¬«      gdg¬«      d„ «       «       Z%ej6                  j9                  d e$«       «      d„ «       Z&ej6                  j9                  d ejN                  dej6                  jQ                  ejR                  jU                  «        d¬«      ¬«       ejN                  dej6                  jQ                  ejV                  jU                  «        d¬«      ¬«      g«      ej6                  j9                  d g d!¢«      ej6                  j9                  d ee¬«      gdg¬«      d"„ «       «       «       Z,ej6                  j9                  dd# e- e.d$«      «      d%œgdg¬«      d&„ «       Z/ej6                  jQ                  ej                  d'k(  d(¬«      d)„ «       Z0ej6                  j9                  d* ejN                  d+ej6                  jQ                  ej@                  jc                  ejd                  d,   «       d-¬«      ¬«      d.g«      ej6                  j9                  d ed/¬0«      gdg¬«      d1„ «       «       Z3ej6                  jQ                  ej                  d'k(  d(¬«      ej6                  jQ                   ejh                  d2«      du d3¬«      d4„ «       «       Z5ej6                  j9                  d5d6d7g«      d8„ «       Z6ej6                  j9                  d9g d:¢«      d;„ «       Z7d<„ Z8d=„ Z9 e«       d>„ «       Z:ej6                  j9                  d ee¬«      gdg¬«      d?„ «       Z;ej6                  j9                  d ee¬«      gdg¬«      d@„ «       Z<ej6                  j9                  d ee¬«      gdg¬«      dA„ «       Z=dB„ Z>dC„ Z?y)Dé    N)ÚPath)Úpyplot)Ú	animation)ÚPillowWriter)Úcheck_figures_equalc                 óL  ‡— t        j                  «       \  }}|j                  g g «      \  Š|j                  dd«       |j	                  dd«       ˆfd„}ˆfd„}t        t        | di «      «      }|j                  dt        j                  «      }d	|vrd
|d	<    |d|||dœ|¤ŽS )z)Create a simple animation (with options).r   é
   éÿÿÿÿé   c                  ó.   •— ‰ j                  g g «       ‰ fS ©N©Úset_data©Úlines   €út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/matplotlib/tests/test_animation.pyÚinitzanim.<locals>.init   ó   ø€ Ø�‰�b˜"ÔØˆuˆó    c                 óŒ   •— t        j                  ddd«      }t        j                  || z   «      }‰j                  ||«       ‰fS )Nr   r	   éd   )ÚnpÚlinspaceÚsinr   )ÚiÚxÚyr   s      €r   Úanimatezanim.<locals>.animate!   s;   ø€ Ü�K‰K˜˜2˜sÓ#ˆÜ�F‰F�1�q‘5‹MˆØ�‰�a˜ÔØˆuˆr   ÚparamÚklassÚframesé   )ÚfigÚfuncÚ	init_func© )
ÚpltÚsubplotsÚplotÚset_xlimÚset_ylimÚdictÚgetattrÚpopr   ÚFuncAnimation)Úrequestr#   Úaxr   r   Úkwargsr    r   s          @r   Úanimr3      sŸ   ø€ ô �l‰l‹n�G€CˆØ�G‰G�B˜‹O�E€Dà‡K�K��2ÔØ‡K�K��AÔôôô ”'˜' 7¨BÓ/Ó0€FØ�J‰J�w¤	× 7Ñ 7Ó8€EØ�vÑØˆˆxÑÙÐA�S˜w°$ÑA¸&ÑAÐAr   c                  óŠ   — t        j                  t        d¬«      5  t        j                  d    d d d «       y # 1 sw Y   y xY w)NzB'pllow' is not a valid value for writer\. Did you mean: 'pillow'\?©ÚmatchÚpllow)ÚpytestÚraisesÚ
ValueErrorr   Úwritersr&   r   r   Útest_invalid_writerr<   /   s:   € ä	�‰”zð9ô
:ñ #ô 	×Ñ˜'Ò"÷#÷ #ñ #ús	   œ9¹Ac                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚNullMovieWriteraž  
    A minimal MovieWriter.  It doesn't actually write anything.
    It just saves the arguments that were given to the setup() and
    grab_frame() methods as attributes, and counts how many times
    grab_frame() is called.

    This class doesn't have an __init__ method with the appropriate
    signature, and it doesn't define an isAvailable() method, so
    it cannot be added to the 'writers' registry.
    c                 óJ   — || _         || _        || _        || _        d| _        y )Nr   )r#   ÚoutfileÚdpiÚargsÚ_count)Úselfr#   r@   rA   rB   s        r   ÚsetupzNullMovieWriter.setupC   s%   € ØˆŒØˆŒØˆŒØˆŒ	Øˆ�r   c                 óX   — ddl m}  ||«       || _        | xj                  dz  c_        y )Nr   )Ú_validate_grabframe_kwargsr   )Úmatplotlib.animationrG   Úsavefig_kwargsrC   )rD   rI   rG   s      r   Ú
grab_framezNullMovieWriter.grab_frameJ   s#   € ÝCÙ" >Ô2Ø,ˆÔØ�Š�qÑŽr   c                  ó   — y r   r&   ©rD   s    r   ÚfinishzNullMovieWriter.finishP   s   € Ør   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rE   rJ   rM   r&   r   r   r>   r>   7   s   „ ñ	òòór   r>   c                 óÄ  — dt         j                  d<   d}d}t        d¬«      }t        «       }| j	                  ||||¬«       |j
                  t        j                  d«      k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  d	k(  sJ ‚|j                  «       D ]  \  }}|j                  |   |k(  rŒJ ‚ |j                  | j                  k(  sJ ‚y )
NÚautozsavefig.facecolorúunused.nullé2   r   )Úfoo)rA   ÚwriterrI   r   r&   )r'   ÚrcParamsr,   r>   Úsaver#   Úfigurer@   rA   rB   ÚitemsrI   rC   Ú_save_count)r3   ÚfilenamerA   rI   rW   ÚkÚvs          r   Útest_null_movie_writerr`   T   sç   € à(.„C‡L�LÐ$Ñ%Ø€HØ
€CÜ˜a”[€NÜÓ€Fà‡I�Iˆh˜C¨Ø+ð ô -ð �:‰:œŸ™ A›Ò&Ð&Ð&Ø�>‰>˜XÒ%Ð%Ð%Ø�:‰:˜ÒÐÐØ�;‰;˜"ÒÐÐð ×$Ñ$Ó&ò -‰ˆˆ1Ø×$Ñ$ QÑ'¨1Ó,Ð,Ð,ð-à�=‰=˜D×,Ñ,Ò,Ð,Ñ,r   r3   )r    )Úindirectc                 ó6  — t        j                  «       dk(  rt        j                  j	                  «        t        j                  di | ¤Ž} t        j                  t        d¬«      5  ~ t        j                  j	                  «        d d d «       y # 1 sw Y   y xY w)NÚPyPyzAnimation was deletedr5   r&   )
ÚplatformÚpython_implementationr   ÚtestingÚbreak_cyclesr   r/   r8   ÚwarnsÚWarning©r3   s    r   Útest_animation_deleterk   j   so   € ä×%Ñ%Ó'¨6Ò1ô 	�
‰
×ÑÔ!Ü×"Ñ"Ñ* TÑ*€DÜ	�‰”gÐ%<Ô	=ñ "ØÜ
�
‰
×ÑÔ!÷"÷ "ñ "ús   Á& BÂBc                  óä   —  G d„ dt         j                  «      } t        j                  «       }d}d}d}d}dg} | ||||«      }|j	                  ||«       |j
                  |j
                  k(  sJ ‚y )Nc                   ó   — e Zd Zd„ Zy)ú7test_movie_writer_dpi_default.<locals>.DummyMovieWriterc                  ó   — y r   r&   rL   s    r   Ú_runz<test_movie_writer_dpi_default.<locals>.DummyMovieWriter._runy   s   € Ør   N)rN   rO   rP   rp   r&   r   r   ÚDummyMovieWriterrn   x   s   „ ó	r   rq   rT   r"   Úunusedr   )r   ÚMovieWriterr'   rZ   rE   rA   )rq   r#   r]   ÚfpsÚcodecÚbitrateÚ
extra_argsrW   s           r   Útest_movie_writer_dpi_defaultrx   w   sp   € ôœ9×0Ñ0ô ô
 �*‰*‹,€Cà€HØ
€CØ€EØ€GØ�€Já˜c 5¨'°:Ó>€FØ
‡L�L��hÔØ�:‰:˜Ÿ™Ò Ð Ñ r   Únullc                   ó(   — e Zd Z	 	 dd„Zed„ «       Zy)ÚRegisteredNullMovieWriterNc                  ó   — y r   r&   )rD   rt   ru   rv   rw   Úmetadatas         r   Ú__init__z"RegisteredNullMovieWriter.__init__“   s   € àr   c                  ó   — y)NTr&   )Úclss    r   ÚisAvailablez%RegisteredNullMovieWriter.isAvailable—   s   € àr   )NNNNN)rN   rO   rP   r~   Úclassmethodr�   r&   r   r   r{   r{   Š   s#   „ ð 6:Ø+/óð ñó ñr   r{   ))Úffmpegú	movie.mp4)Úffmpeg_filer„   )Úimagemagickú	movie.gif)Úimagemagick_filer‡   )Úpillowr‡   )Úhtmlz
movie.html)ry   z
movie.nullc               #   óª  K  — t         D ]Æ  \  } }t        j                  j                  | «      set        j
                  j                  d| › d�«      }t	        j                  | d ||g¬«      –— t	        j                  | d t        |«      |g¬«      –— ŒŠt        j                  |    }t        |dd g«      D ]  }| ||f–— | |t        |«      f–— Œ ŒÈ y ­w)Nzwriter 'z' not available on this system©ÚmarksÚsupported_formats)
ÚWRITER_OUTPUTr   r;   Úis_availabler8   ÚmarkÚskipr   r   r-   )rW   Úoutputr‘   Úwriter_classÚframe_formats        r   Úgen_writersr–   §   sÉ   è ø€ Ü'ò 
5‰ˆ�Ü× Ñ ×-Ñ-¨fÔ5Ü—;‘;×#Ñ# h¨v¨hÐ6TÐ$UÓVˆDÜ—,‘,˜v t¨V¸D¸6ÔBÒBÜ—,‘,˜v t¬T°&«\À$ÀÔHÒHØä ×(Ñ(¨Ñ0ˆÜ# LÐ2EÈÀvÓNò 	5ˆLØ˜,¨Ð.Ò.Ø˜,¬¨V«Ð4Ó4ñ	5ñ
5ùs   ‚CCzwriter, frame_format, outputc                 óÞ   — |�|t         j                  d<   t        j                  d	i |¤Ž}d }d }|dk(  r|j                  j                  d«       d}d}|j                  | |z  d|d||¬«       ~y )
Núanimation.frame_formatrƒ   ©g33333³%@gìQ¸…k"@ç      Y@Úh264é   iô  )rt   rW   rv   rA   ru   r&   )r'   rX   r   r/   Ú_figÚset_size_inchesrY   )Útmp_pathrW   r•   r“   r3   rA   ru   s          r   Útest_save_animation_smoketestr    ¸   s‚   € ð ÐØ1=Œ�‰Ð-Ñ.Ü×"Ñ"Ñ* TÑ*€DØ
€CØ€EØ�Òà�	‰	×!Ñ! -Ô0ØˆØˆà‡I�Iˆh˜Ñ R°ÀÈØð ô ñ 	r   c           
      óð  — t         j                  |   }|�|t        j                  d<   t        j                  «       \  }}d }d }|dk(  r|j                  d«       d}d} |«       }	|	j                  || |z  |«      5  |	j                  «        dD ]E  }
t        j                  t        d|
›�¬«      5   |	j                  d	i |
t        «       i¤Ž d d d «       ŒG 	 d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)
Nr˜   rƒ   r™   rš   r›   >   rA   ÚformatÚbbox_inchesz.grab_frame got an unexpected keyword argument r5   r&   )r   r;   r'   rX   r(   rž   ÚsavingrJ   r8   r9   Ú	TypeErrorÚobject)rŸ   rW   r•   r“   ÚWriterClassr#   r1   rA   ru   Útest_writerr^   s              r   Útest_grabframer©   Ì   s  € ä×#Ñ# FÑ+€KàÐØ1=Œ�‰Ð-Ñ.ä�l‰l‹n�G€Cˆà
€CØ€EØ�Òà×Ñ˜MÔ*ØˆØˆá“-€KØ	×	Ñ	˜C ¨FÑ!2°CÓ	8ñ 8à×ÑÔ Ø1ò 	8ˆAÜ—‘ÜØJÈ1È%ÐPôRñ 8ð '�×&Ñ&Ñ7¨!¬V«X¨Ò7÷8ð 8ñ	8÷8ð 8÷8ð 8ú÷	8ð 8ús$   Á;4C,Â/C Ã
C,Ã C)Ã%C,Ã,C5rW   rƒ   úRequires FFMpeg)ÚreasonrŒ   r†   zRequires ImageMagickz
html, want))ÚnoneN)Úhtml5z<video width)Újshtmlz<script c                 ó@  — t        j                  «       dk(  rt        j                  j	                  «        | dk(  r8|dk(  r3t
        j                  j                  «       st        j                  d«       t        j                  di |¤Ž}t        j                  | |dœ«      5  |j                  «       }d d d «       |€F|�J ‚t        j                  t        «      5  ~t        j                  j	                  «        d d d «       y ||v sJ ‚y # 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nrc   r†   r­   rª   )úanimation.writerzanimation.htmlr&   )rd   re   r   rf   rg   r   ÚFFMpegWriterr�   r8   r’   r/   r'   Ú
rc_contextÚ_repr_html_rh   ÚUserWarning)rW   rŠ   Úwantr3   s       r   Útest_animation_repr_htmlr¶   è   sú   € ô" ×%Ñ%Ó'¨6Ò1ô 	�
‰
×ÑÔ!Ø�-Ò D¨G¢Oä×*Ñ*×6Ñ6Ô8Ü�‰Ð%Ô&ô ×"Ñ"Ñ* TÑ*€DÜ	�‰¨VØ+/ñ1ó 
2ñ "à×ÑÓ!ˆ÷"ð €|Øˆ|Ðˆ|Ü�\‰\œ+Ó&ñ 	&ØÜ�J‰J×#Ñ#Ô%÷	&ð 	&ð �t‰|Ð‰|÷"ð "ú÷
	&ð 	&ús   Â DÃ DÄDÄDr	   r"   )Ú
save_countr!   c                 ó:   — | j                  dt        «       ¬«       y )NrT   ©rW   )rY   r>   rj   s    r   Útest_no_length_framesrº     s   € ð 	‡I�Iˆm¤OÓ$5€IÕ6r   Ú
emscriptenz(emscripten does not support subprocessesc                  óR  — t        t        j                  j                  «      dkD  sJ ‚dt        j
                  d<   t        j                  j                  d«      rJ ‚t        j                  dk7  rdnd} | t        j
                  d<   t        j                  j                  d«      sJ ‚y )Nr   Únot_available_ever_xxxxzanimation.ffmpeg_pathrƒ   Úwin32ÚtrueÚwhere)	Úlenr   r;   Ú_registeredÚmplrX   r�   Úsysrd   )Úbins    r   Útest_movie_writer_registryrÆ     s‡   € ô Œy× Ñ ×,Ñ,Ó-°Ò1Ð1Ð1Ø,E„C‡L�LÐ(Ñ)Ü× Ñ ×-Ñ-¨hÔ7Ð7Ð7ä—L‘L GÒ+‰&°€CØ,/„C‡L�LÐ(Ñ)Ü×Ñ×)Ñ)¨(Ô3Ð3Ñ3r   Úmethod_nameÚto_html5_videor°   zanimation writer not installedÚ	to_jshtmlr   )r!   c                 ó0  — |j                  d«       t        j                  ddi«      5   t        || «      «        d d d «       t	        |j
                  «      dk(  sJ ‚|j
                  \  }|j                  dk(  r|j                  dk(  sJ ‚y # 1 sw Y   ŒRxY w)NÚWARNINGzanimation.embed_limitg�íµ ÷Æ°>r   zmatplotlib.animation)Ú	set_levelrÃ   r²   r-   rÁ   ÚrecordsÚnameÚ	levelname)rÇ   Úcaplogr3   Úrecords       r   Útest_embed_limitrÒ   &  s’   € ð ×Ñ�YÔÜ	�‰Ð0°$Ð7Ó	8ñ %Ø"Œ��kÓ"Ô$÷%äˆv�~‰~Ó !Ò#Ð#Ð#Ø�n‰n�G€FØ�K‰KÐ1Ò1Ø× Ñ  IÒ-ð/ð .Ø-÷%ð %ús   ©BÂBz/bin/shzrequires a POSIX OSc                 ó(  — |j                  dt        | «      d¬«       | dz  }|j                  d«       t        j                  |d«       t        j                  t        j                  «      5  |j                  d«       ddd«       y# 1 sw Y   yxY w)	a!  
    Test that we correctly raise a CalledProcessError when ffmpeg fails.

    To do so, mock ffmpeg using a simple executable shell script that
    succeeds when called with no arguments (so that it gets registered by
    `isAvailable`), but fails otherwise, and add it to the $PATH.
    ÚPATHú:)Úprependrƒ   s   #!/bin/sh
[[ $@ -eq 0 ]]
ií  z	test.mpegN)
ÚsetenvÚstrÚwrite_bytesÚosÚchmodr8   r9   Ú
subprocessÚCalledProcessErrorrY   )rŸ   Úmonkeypatchr3   Úexe_paths       r   Útest_failing_ffmpegrà   7  sw   € ð ×Ñ�vœs 8›}°cÐÔ:Ø˜(Ñ"€HØ×ÑÐ7Ô8Ü‡H�HˆX�uÔÜ	�‰”z×4Ñ4Ó	5ñ Ø�	‰	�+Ô÷÷ ñ ús   Á-BÂBÚcache_frame_dataFTc                 óœ  ‡
‡‡— t        j                  «       \  }}|j                  g g «      \  Š G d„ dt        «      Š
ˆfd„}ˆfd„}g Šˆ
ˆfd„}d}t	        j
                  ||||| |¬«      }t        «       }|j                  d|¬	«       t        ‰«      d
k(  sJ ‚t        j                  j                  «        ‰D ]  }	 |	«       d u | k7  rŒJ ‚ y )Nc                   ó   — e Zd Zy)ú2test_funcanimation_cache_frame_data.<locals>.FrameN)rN   rO   rP   r&   r   r   ÚFramerä   O  s   „ àr   rå   c                  ó.   •— ‰ j                  g g «       ‰ fS r   r   r   s   €r   r   z1test_funcanimation_cache_frame_data.<locals>.initS  r   r   c                 ó:   •— ‰j                  | d   | d   «       ‰fS )Nr   r   r   )Úframer   s    €r   r   z4test_funcanimation_cache_frame_data.<locals>.animateW  s    ø€ Ø�‰�e˜C‘j %¨¡*Ô-Øˆuˆr   c               3   óþ   •K  — t        d«      D ]j  } t        j                  ddd«      }t        j                  j	                  d«      } ‰||¬«      }‰j                  t        j                  |«      «       |–— Œl y ­w)Nr"   r   r	   r   )r   r   )Úranger   r   ÚrandomÚrandÚappendÚweakrefÚref)Ú_r   r   rè   rå   Úframes_generateds       €€r   Úframes_generatorz=test_funcanimation_cache_frame_data.<locals>.frames_generator]  sg   øè ø€ Ü�q“ò 
	ˆAÜ—‘˜A˜r 3Ó'ˆAÜ—	‘	—‘˜sÓ#ˆAá˜A ”OˆEð ×#Ñ#¤G§K¡K°Ó$6Ô7à‹Kñ
	ùs   ƒA:A=r   )r%   r!   rá   r·   rT   r¹   r"   )r'   r(   r)   r,   r   r/   r>   rY   rÁ   r   rf   rg   )rá   r#   r1   r   r   rò   Ú
MAX_FRAMESr3   rW   Úfrå   rñ   r   s             @@@r   Ú#test_funcanimation_cache_frame_datarõ   J  sÐ   ú€ ä�l‰l‹n�G€CˆØ�G‰G�B˜‹O�E€Dô”ô ôôð Ðõð €JÜ×"Ñ" 3¨¸4Ø*:Ø4DØ.8ô:€Dô
 Ó€FØ‡I�Iˆm F€IÔ+ÜÐÓ  AÒ%Ð%Ð%Ü‡J�J×ÑÔØò 1ˆñ “�t�Ð 0Ó0Ð0Ð0ñ1r   Úreturn_value)NÚstringr   )r÷   Úartistc                 óö   ‡ ‡— t        j                  «       \  }}|j                  g «      \  Šˆˆ fd„}t        j                  t
        «      5  t        j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nc                 óB   •— ‰j                  ddgd| g«       ‰dk(  r‰S ‰S )Nr   r   rø   r   )r   r   rö   s    €€r   r   z test_draw_frame.<locals>.animateŒ  s,   ø€ à�‰�q˜!�f˜q !˜fÔ%Ø˜8Ò#àˆKàÐr   TF)Úblitrá   )r'   r(   r)   r8   r9   ÚRuntimeErrorr   r/   )rö   r#   r1   r   r   s   `   @r   Útest_draw_framerý   z  sb   ù€ ô �l‰l‹n�G€CˆØ�G‰G�B‹K�E€Dõ ô 
�‰”|Ó	$ñ 
Ü×ÑØ�˜t°eõ	
÷
÷ 
ñ 
ús   ÁA/Á/A8c           	      ó<  — t        j                  «       \  }}d„ }t        j                  ||t	        t        d«      «      dd¬«      }|j                  | dz  d¬«       t        j                  t        d¬	«      5  |j                  «        d d d «       y # 1 sw Y   y xY w)
Nc                 ó   — g S r   r&   ©rè   s    r   Úupdatez(test_exhausted_animation.<locals>.updatež  ó   € Øˆ	r   r	   F©r!   Úrepeatrá   útest.gifr‰   r¹   Ú	exhaustedr5   )r'   r(   r   r/   Úiterrê   rY   r8   rh   r´   Ú_start)rŸ   r#   r1   r  r3   s        r   Útest_exhausted_animationr	  ›  s   € Ü�l‰l‹n�G€Cˆòô ×"Ñ"ØˆVœD¤ r£›O°EØô€Dð
 	‡I�Iˆh˜Ñ#¨H€IÔ5ä	�‰”k¨Ô	5ñ Ø�‰Œ÷÷ ñ ús   Á8BÂBc                  óì   — t        j                  «       \  } }d„ }t        j                  | |g dd¬«      }t	        j
                  t        d¬«      5  |j                  «        d d d «       y # 1 sw Y   y xY w)Nc                 ó   — g S r   r&   r   s    r   r  z%test_no_frame_warning.<locals>.update¯  r  r   Fr  r  r5   )r'   r(   r   r/   r8   rh   r´   r  )r#   r1   r  r3   s       r   Útest_no_frame_warningr  ¬  sb   € Ü�l‰l‹n�G€Cˆòô ×"Ñ"ØˆV˜B uØô€Dô
 
�‰”k¨Ô	5ñ Ø�‰Œ÷÷ ñ ús   ÁA*Á*A3c                 óX  ‡‡— |j                  «       }|j                  ddt        j                  z  «       |j	                  dd«       t        j
                  ddt        j                  z  d«      Š|j                  g g «      \  Šˆfd„}ˆˆfd„}t        j                  |||dd	d
¬«      }|j                  | dz  «       |j                  «       }|j                  ddt        j                  z  «       |j	                  dd«       |j                  ‰t        j                  ‰dz   «      «       y )Nr   é   r
   r   r   c                  ó.   •— ‰ j                  g g «       ‰ fS r   r   r   s   €r   r   z"test_animation_frame.<locals>.initÆ  r   r   c                 ó`   •— ‰j                  ‰t        j                  ‰| dz  z   «      «       ‰fS )Nr   )r   r   r   )r   r   r   s    €€r   r   z%test_animation_frame.<locals>.animateÊ  s)   ø€ Ø�‰�aœŸ™  A¨¡G¡Ó,Ô-Øˆuˆr   r"   TF)r%   r!   rû   r  r  g{®Gáz¤?)Úadd_subplotr*   r   Úpir+   r   r)   r   r/   rY   r   )	rŸ   Úfig_testÚfig_refr1   r   r   r3   r   r   s	          @@r   Útest_animation_framer  »  sð   ù€ ð
 
×	Ñ	Ó	€BØ‡K�K��1”r—u‘u‘9ÔØ‡K�K��AÔÜ
�‰�A�qœ2Ÿ5™5‘y #Ó&€AØ�G‰G�B˜‹O�E€Dôõô ×"Ñ"Ø�' T°!Ø˜%ô!€Dð 	‡I�Iˆh˜Ñ#Ô$ð 
×	Ñ	Ó	€BØ‡K�K��1”r—u‘u‘9ÔØ‡K�K��AÔð ‡G�GˆAŒr�v‰v�a˜'‘kÓ"Õ#r   c           	      óf  — d}t        t        d«      «      }d|›dt        |«      ›d�}t        j                  t
        t        j                  |«      ¬«      5  t        j                  di i | ¥||dœ¥¤Ž} d d d «       | j                  t        |«      k(  sJ ‚| j                  «        y # 1 sw Y   Œ4xY w)	Nr"   r  ú%You passed in an explicit save_count=z0 which is being ignored in favor of len(frames)=ú.r5   ©r!   r·   r&   )Úlistrê   rÁ   r8   rh   r´   ÚreÚescaper   r/   r\   Ú
_init_draw©r3   r·   r!   Úmatch_targets       r   Ú,test_save_count_override_warnings_has_lengthr   Ü  s­   € ð €JÜ”%˜“(‹^€Fà
0 Z Mð 2äˆv‹;ˆ.˜ð	ð ô 
�‰”k¬¯©°<Ó)@Ô	Añ 
Ü×&Ñ&ñ 
ØB�ÐB °zÒBñ
ˆ÷
ð ×Ñœs 6›{Ò*Ð*Ð*Ø‡O�OÕ÷
ð 
ús   ÁB'Â'B0c           	      ó,  — d}d}d|›d�dz   d|›d�z   }t        j                  t        t        j                  |«      ¬«      5  t        j                  d
i i | ¥||d	œ¥¤Ž} d d d «       | j                  |k(  sJ ‚| j                  «        y # 1 sw Y   Œ+xY w)Nr"   é   r  ú z#which is being ignored in favor of úframes=r  r5   r  r&   )	r8   rh   r´   r  r  r   r/   r\   r  r  s       r   Ú(test_save_count_override_warnings_scalerr%  ï  s§   € à€JØ€Fà
0 Z M°Ð3Ø-ñ	.àˆ6ˆ)�1ˆñ	ð ô 
�‰”k¬¯©°<Ó)@Ô	Añ 
Ü×&Ñ&ñ 
ØB�ÐB °zÒBñ
ˆ÷
ð
 ×Ñ˜vÒ%Ð%Ð%Ø‡O�OÕ÷
ð 
ús   ÁB
Â
Bc           	      ó@  — d}t        t        d«      «      }d|›d|›d�}t        j                  t        t        j                  |«      ¬«      5  t        j                  d	i i | ¥||dœ¥¤Ž} d d d «       | j                  du sJ ‚| j                  «        y # 1 sw Y   Œ*xY w)
NTr"   r$  ze which we can infer the length of, did not pass an explicit *save_count* and passed cache_frame_data=z§.  To avoid a possibly unbounded cache, frame data caching has been disabled. To suppress this warning either pass `cache_frame_data=False` or `save_count=MAX_FRAMES`.r5   )rá   r!   Fr&   )r  rê   r8   rh   r´   r  r  r   r/   Ú_cache_frame_datar  )r3   rá   r!   r  s       r   Útest_disable_cache_warningr(    s©   € àÐÜ”%˜“(‹^€Fàˆ6ˆ+ð (à&Ð(ð )?ð	?ð ô 
�‰”k¬¯©°<Ó)@Ô	Añ 
Ü×&Ñ&ñ 
ØN�ÐNÐ+;ÀvÒNñ
ˆ÷
ð ×!Ñ! UÑ*Ð*Ð*Ø‡O�OÕ÷
ð 
ús   ÁBÂBc                 ó
  — t         j                  dk(  rd}nt         j                  dk(  rd}nd}t        j                  t        |¬«      5  | j                  dt        j                  «       ¬«       d d d «       y # 1 sw Y   y xY w)	Nr¾   z+\[WinError 3] .*\\\\foo\\\\bar\\\\aardvark'r»   z\[Errno 44] .*'/fooz\[Errno 2] .*'/foor5   z+/foo/bar/aardvark/thiscannotreallyexist.mp4r¹   )rÄ   rd   r8   r9   ÚFileNotFoundErrorrY   r   ÚFFMpegFileWriter)r3   Ú	match_strs     r   Útest_movie_writer_invalid_pathr-    sm   € Ü
‡|�|�wÒØB‰	Ü	�‰˜Ò	%Ø*‰	à)ˆ	Ü	�‰Ô(°	Ô	:ñ 7Ø�	‰	Ð?Ü"×3Ñ3Ó5ð 	ô 	7÷7÷ 7ñ 7ús   Á
&A9Á9Bc                  ó²  — t        j                  «       \  } }t        j                  ddddd¬«      }|j                  |«       |j	                  dd«       |j                  dd«       t        d¬«      }|j                  | d	d
¬«       |j                  d¬«       |j                  d   }|j                  «       d   d   dk  sJ ‚t        j                  | «       y)zGTest animation exhaustion with transparency using PillowWriter directly)r   r   r   Úredg      à?)ÚcolorÚalphar   rœ   )rt   z
unused.gifr   )rA   T)Útransparentr
   é   éÿ   N)r'   r(   Ú	RectangleÚ	add_patchr*   r+   r   rE   rJ   Ú_framesÚ
getextremaÚclose)r#   r1   ÚrectrW   rè   s        r   Ú test_animation_with_transparencyr;  "  s¶   € ä�l‰l‹n�G€CˆÜ�=‰=˜  A¨U¸#Ô>€DØ‡L�L�ÔØ‡K�K��1ÔØ‡K�K��1Ôä˜bÔ!€FØ
‡L�L��l¨€LÔ,Ø
×Ñ $ÐÔ'Ø�N‰N˜2Ñ€Eà×ÑÓ˜aÑ  Ñ# cÒ)Ð)Ð)Ü‡I�Iˆc…Nr   )@rÚ   Úpathlibr   rd   r  ÚshutilrÜ   rÄ   rî   Únumpyr   r8   Ú
matplotlibrÃ   r   r'   r   rH   r   Úmatplotlib.testing.decoratorsr   Úfixturer3   r<   ÚAbstractMovieWriterr>   r`   r‘   Úparametrizer,   rk   rx   r;   Úregisterr{   r�   r–   r    r©   r   Úskipifr±   r�   ÚImageMagickWriterr¶   r  rê   rº   rÆ   r�   rX   rÒ   Úwhichrà   rõ   rý   r	  r  r  r   r%  r(  r-  r;  r&   r   r   ú<module>rH     sõ  ðÛ 	Ý Û Û 	Û Û Û 
Û ã Û ã Ý $Ý  Ý -Ý =ð €‡�ÓñBó ðBò4#ô�i×3Ñ3ô ò:-ð, ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñ	"ó Hð	"ò!ð& ×Ñ×Ñ˜FÓ#ô ó ó $ðò"€ò5ð" ‡�×ÑÐ7¹»ÓGØ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñó Hó Hðð$ ‡�×ÑÐ7¹»ÓGñ8ó Hð8ð6 ‡�×Ñ˜Ø€F‡L�LØ˜Ÿ™×*Ñ*Ø×&Ñ&×2Ñ2Ó4Ð4Ø$ð +ó &ô'ð €F‡L�LØ˜VŸ[™[×/Ñ/Ø×+Ñ+×7Ñ7Ó9Ð9Ø)ð 0ó +ô,ð	$ó 	ð ‡�×Ñ˜ò (ó ð
 ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñó Hóó	ð ð2 ‡�×ÑØ
Ø¡$¡u¨Q£x£.Ñ1Ð2ØˆXð ó ñ
7óð
7ð ‡�×Ñ�C—L‘L LÑ0ØEð ó Gñ4óGð4ð ‡�×ÑØØ€V‡\�\Ð"¨&¯+©+×*<Ñ*<Ø×Ñ×*Ñ*¨3¯<©<Ð8JÑ+KÓLÐLØ/ð +=ó +1ô 2ð ðóð ‡�×Ñ˜¡$¨a¤.Ð!1¸V¸HÐÓEñ/ó Fóð/ð ‡�×Ñ�C—L‘L LÑ0ØEð ó Gà‡�×Ñ�L�F—L‘L Ó+¨tÐ3Ð<QÐÓRñó SóGðð  ‡�×ÑÐ+¨e°T¨]Ó;ñ,1ó <ð,1ð^ ‡�×Ñ˜ò *ó ñ
óð
ò*ò"ñ Óñ$ó ð$ð@ ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñó Hðð$ ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñó Hðð$ ‡�×Ñ˜¡$¨TÔ"2Ð!3¸v¸hÐÓGñó Hðò&	7ór   