ó
    {ñ:iµG  ã                   óJ	  • S SK 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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  S SKJr  S SKJr  \R*                  " 5       S 5       r " S S	\R.                  5      rS
 r\R4                  R7                  S\" \S9/S/S9S 5       rS r\R>                  RA                  S5       " S S\5      5       r!/ SQr"S r#\R4                  R7                  S\#" 5       5      \R4                  R7                  S\" \S9/S/S9S 5       5       r$\R4                  R7                  S\#" 5       5      S 5       r%\R4                  R7                  S\RL                  " S\R4                  RO                  \RP                  RS                  5       (       + SS9S9\RL                  " S\R4                  RO                  \RT                  RS                  5       (       + SS9S9/5      \R4                  R7                  S/ S Q5      \R4                  R7                  S\" \S9/S/S9S! 5       5       5       r+\R4                  R7                  SS"\," \-" S#5      5      S$./S/S9S% 5       r.S& r/\R4                  R7                  S'\RL                  " S(\R4                  RO                  \R>                  Ra                  \Rb                  S)   5      (       + S*S9S9S+/5      \R4                  R7                  S\" S,S-9/S/S9S. 5       5       r2\R4                  R7                  S'\RL                  " S(\R4                  RO                  \R>                  Ra                  \Rb                  S)   5      (       + S*S9S9S+/5      \R4                  R7                  S\" S,S-9/S/S9S/ 5       5       r3\R4                  RO                  \Rh                  " S05      SL S1S9S2 5       r5\R4                  R7                  S3S4S5/5      S6 5       r6\R4                  R7                  S7/ S8Q5      S9 5       r7S: r8S; r9\" S</S=9S> 5       r:\R4                  R7                  S\" \S9/S/S9S? 5       r;\R4                  R7                  S\" \S9/S/S9S@ 5       r<\R4                  R7                  S\" \S9/S/S9SA 5       r=SB r>SC r?g)Dé    N)ÚPath)Úpyplot)Ú	animation)ÚPillowWriter)Úcheck_figures_equalc                 óR  ^• [         R                  " 5       u  pUR                  / / 5      u  mUR                  SS5        UR	                  SS5        U4S jnU4S jn[        [        U S0 5      5      nUR                  S[        R                  5      nS	U;  a  S
US	'   U" SXUS.UD6$ )z)Create a simple animation (with options).r   é
   éÿÿÿÿé   c                  ó.   >• T R                  / / 5        T 4$ ©N©Úset_data©Úlines   €Úb/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/tests/test_animation.pyÚinitÚanim.<locals>.init   ó   ø€ Ø�‰�b˜"ÔØˆuˆó    c                 óŒ   >• [         R                  " SSS5      n[         R                  " X-   5      nTR                  X5        T4$ )Nr   r	   éd   )ÚnpÚlinspaceÚsinr   )ÚiÚxÚyr   s      €r   ÚanimateÚanim.<locals>.animate!   s7   ø€ Ü�KŠK˜˜2˜sÓ#ˆÜ�FŠF�1‘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   Úanimr5      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°$ÑA¸&ÑAÐAr   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚNullMovieWriteré/   a~  
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                 óB   • Xl         X l        X0l        X@l        SU l        g )Nr   )r%   ÚoutfileÚdpiÚargsÚ_count)Úselfr%   r:   r;   r<   s        r   ÚsetupÚNullMovieWriter.setup;   s   € ØŒØŒØŒØŒ	Øˆ�r   c                 óV   • SSK Jn  U" U5        Xl        U =R                  S-  sl        g )Nr   )Ú_validate_grabframe_kwargsr   )Úmatplotlib.animationrB   Úsavefig_kwargsr=   )r>   rD   rB   s      r   Ú
grab_frameÚNullMovieWriter.grab_frameB   s!   € ÝCÙ" >Ô2Ø,ÔØ�Š�qÑŽr   c                 ó   • g r   r(   ©r>   s    r   ÚfinishÚNullMovieWriter.finishH   s   € Ør   )r=   r<   r;   r%   r:   rD   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r?   rE   rI   Ú__static_attributes__r(   r   r   r7   r7   /   s   † ñ	òòõr   r7   c                 óÆ  • S[         R                  S'   SnSn[        SS9n[        5       nU R	                  XUUS9  UR
                  [         R                  " S5      :X  d   eUR                  U:X  d   eUR                  U:X  d   eUR                  S	:X  d   eUR                  5        H  u  pVUR                  U   U:X  a  M   e   UR                  U R                  :X  d   eg )
NÚautozsavefig.facecolorúunused.nullé2   r   )Úfoo)r;   ÚwriterrD   r   r(   )r)   ÚrcParamsr.   r7   Úsaver%   Úfigurer:   r;   r<   ÚitemsrD   r=   Ú_save_count)r5   Úfilenamer;   rD   rV   ÚkÚvs          r   Útest_null_movie_writerr_   L   sÞ   € à(.„C‡L�LÐ$Ñ%Ø€HØ
€CÜ˜a‘[€NÜÓ€Fà‡I�Iˆh¨Ø+ð ñ -ð �:‰:œŸš A›Ó&Ð&Ð&Ø�>‰>˜XÓ%Ð%Ð%Ø�:‰:˜ÓÐÐØ�;‰;˜"ÓÐÐð ×$Ñ$Ö&‰ˆØ×$Ñ$ QÑ'¨1Õ,Ð,Ð,ñ 'à�=‰=˜D×,Ñ,Ó,Ð,Ñ,r   r5   )r"   )Úindirectc                 óB  • [         R                  " 5       S:X  a  [        R                  R	                  5         [
        R                  " S0 U D6n [        R                  " [        SS9   A [        R                  R	                  5         S S S 5        g ! , (       d  f       g = f)NÚPyPyzAnimation was deleted©Úmatchr(   )
ÚplatformÚpython_implementationr   ÚtestingÚbreak_cyclesr   r1   ÚpytestÚwarnsÚWarning©r5   s    r   Útest_animation_deleterm   b   sf   € ä×%Ò%Ó'¨6Ó1ô 	�
‰
×ÑÔ!Ü×"Ò"Ñ* TÑ*€DÜ	�Š”gÐ%<Ó	=ØÜ
�
‰
×ÑÔ!÷ 
>×	=Ö	=ús   Á' BÂ
Bc                  óâ   •  " S S[         R                  5      n [        R                  " 5       nSnSnSnSnS/nU " X4XV5      nUR	                  X5        UR
                  UR
                  :X  d   eg )Nc                   ó   • \ rS rSrS rSrg)Ú7test_movie_writer_dpi_default.<locals>.DummyMovieWriterép   c                 ó   • g r   r(   rH   s    r   Ú_runÚ<test_movie_writer_dpi_default.<locals>.DummyMovieWriter._runq   s   € Ør   r(   N)rK   rL   rM   rN   rs   rP   r(   r   r   ÚDummyMovieWriterrp   p   s   † õ	r   ru   rS   r$   Úunusedr   )r   ÚMovieWriterr)   rY   r?   r;   )ru   r%   r\   ÚfpsÚcodecÚbitrateÚ
extra_argsrV   s           r   Útest_movie_writer_dpi_defaultr|   o   sj   € ôœ9×0Ñ0ô ô
 �*Š*‹,€Cà€HØ
€CØ€EØ€GØ�€Já˜c¨'Ó>€FØ
‡L�L�ÔØ�:‰:˜Ÿ™Ó Ð Ñ r   Únullc                   ó2   • \ rS rSr  SS jr\S 5       rSrg)ÚRegisteredNullMovieWriteré‚   Nc                 ó   • g r   r(   )r>   rx   ry   rz   r{   Úmetadatas         r   Ú__init__Ú"RegisteredNullMovieWriter.__init__‹   s   € àr   c                 ó   • g)NTr(   )Úclss    r   ÚisAvailableÚ%RegisteredNullMovieWriter.isAvailable�   s   € àr   r(   )NNNNN)rK   rL   rM   rN   rƒ   Úclassmethodr‡   rP   r(   r   r   r   r   ‚   s#   † ð 6:Ø+/ôð ñó ór   r   ))Úffmpegú	movie.mp4)Úffmpeg_filer‹   )Úimagemagickú	movie.gif)Úimagemagick_filerŽ   )ÚpillowrŽ   )Úhtmlz
movie.html)r}   z
movie.nullc               #   ó®  #   • [          HÇ  u  p[        R                  R                  U 5      (       da  [        R
                  R                  SU  S35      n[        R                  " U S X/S9v •  [        R                  " U S [        U5      U/S9v •  MŠ  [        R                  U    n[        USS /5       H  nXU4v •  X[        U5      4v •  M     MÉ     g 7f)Nzwriter 'z' not available on this system©ÚmarksÚsupported_formats)
ÚWRITER_OUTPUTr   ÚwritersÚis_availableri   ÚmarkÚskipr!   r   r/   )rV   Úoutputr™   Úwriter_classÚframe_formats        r   Úgen_writersrž   Ÿ   s¾   é € ß'‰ˆÜ× Ñ ×-Ñ-¨f×5Ñ5Ü—;‘;×#Ñ#Ø˜6˜(Ð"@ÐAóCˆDä—,’,˜v t¨V¸6ÑBÒBÜ—,’,˜v t¬T°&«\À$ÀÑHÒHÙä ×(Ñ(¨Ñ0ˆÜ# LÐ2EÈÀvÖNˆLØ¨Ð.Ò.Ø¬¨V«Ð4Ô4ó Oò (ùs   ‚CCzwriter, frame_format, outputc           
      ó.  • Ub  U[         R                  S'   [        R                  " S	0 UD6nS nS nUS:X  a  UR                  R                  S5        SnSnU R                  5          UR                  USUSUUS9  S S S 5        Ag ! , (       d  f       Ag = f)
Núanimation.frame_formatrŠ   ©g33333³%@gìQ¸…k"@ç      Y@Úh264é   iô  )rx   rV   rz   r;   ry   r(   )r)   rW   r   r1   Ú_figÚset_size_inchesÚas_cwdrX   )ÚtmpdirrV   r�   r›   r5   r;   ry   s          r   Útest_save_animation_smoketestr©   ±   sš   € ð ÑØ1=Œ�‰Ð-Ñ.Ü×"Ò"Ñ* TÑ*€DØ
€CØ€EØ�Óà�	‰	×!Ñ! -Ô0ØˆØˆð 
�‰�Ø�	‰	�&˜b¨¸À#Øð 	ñ 	÷ 
ñ 	÷	 
Œñ 	ús   Á&BÂ
Bc                 óV  • [         R                  U   nUb  U[        R                  S'   [        R                  " 5       u  pVS nS nUS:X  a  UR                  S5        SnSnU" 5       n	U R                  5          U	R                  XSU5         U	R                  5         S HE  n
[        R                  " [        SU
< 3S9   U	R                  " S	0 U
[        5       0D6  S S S 5        MG     S S S 5        S S S 5        g ! , (       d  f       Mi  = f! , (       d  f       N)= f! , (       d  f       g = f)
Nr    rŠ   r¡   r¢   r£   >   r;   ÚformatÚbbox_inchesz.grab_frame got an unexpected keyword argument rc   r(   )r   r—   r)   rW   r*   r¦   r§   ÚsavingrE   ri   ÚraisesÚ	TypeErrorÚobject)r¨   rV   r�   r›   ÚWriterClassr%   r3   r;   ry   Útest_writerr]   s              r   Útest_grabframer³   È   sú   € ä×#Ñ# FÑ+€KàÑØ1=Œ�‰Ð-Ñ.ä�lŠl‹n�G€Cà
€CØ€EØ�Óà×Ñ˜MÔ*ØˆØˆá“-€Kð 
�‰�Ø×Ñ ¨SÕ1à×"Ñ"Ô$Û5�Ü—]’]Ü!Ø NÈqÉeÐTóð  ×*Ò*Ñ;¨a´³¨]Ò;÷	ñ ñ 6÷ 2÷ 
ˆ÷
ö ú÷	 2Õ1ú÷ 
�ús<   Á7DÂ
3D	Â=C7	ÃD	Ã&DÃ7
DÄD	Ä	
D	ÄDÄ
D(rV   rŠ   úRequires FFMpeg)Úreasonr“   r�   zRequires ImageMagickz
html, want))ÚnoneN)Úhtml5z<video width)Újshtmlz<script c                 ót  • [         R                  " 5       S:X  a  [        R                  R	                  5         U S:X  a?  US:X  a9  [
        R                  R                  5       (       d  [        R                  " S5        [
        R                  " S0 UD6n[        R                  " U US.5         UR                  5       nS S S 5        UcH  Ub   e[        R                  " [        5         A[        R                  R	                  5         S S S 5        g X!;   d   eg ! , (       d  f       Na= f! , (       d  f       g = f)Nrb   r�   r·   r´   )úanimation.writerzanimation.htmlr(   )re   rf   r   rg   rh   r   ÚFFMpegWriterr‡   ri   rš   r1   r)   Ú
rc_contextÚ_repr_html_rj   ÚUserWarning)rV   r‘   Úwantr5   s       r   Útest_animation_repr_htmlrÀ   è   sí   € ô" ×%Ò%Ó'¨6Ó1ô 	�
‰
×ÑÔ!Ø�-Ó D¨G£Oä×*Ñ*×6Ñ6×8Ñ8Ü�ŠÐ%Ô&ô ×"Ò"Ñ* TÑ*€DÜ	�Š¨VØ+/ñ1õ 
2à×ÑÓ!ˆ÷
2ð �|Ø‰|Ðˆ|Ü�\Š\œ+Õ&ØÜ�J‰J×#Ñ#Ô%÷ 'Ð&ð ‹|Ð‰|÷
2õ 
2ú÷
 'Õ&ús   Â,DÃ' D)Ä
D&Ä)
D7r	   r$   )Ú
save_countr#   c                 ó4   • U R                  S[        5       S9  g )NrS   ©rV   )rX   r7   rl   s    r   Útest_no_length_framesrÄ     s   € ð 	‡I�Iˆm¤OÓ$5€IÒ6r   c                  ój  • [        [        R                  R                  5      S:”  d   eS[        R
                  S'   [        R                  R                  S5      (       a   e[        R                  S:w  a  SOSn U [        R
                  S'   [        R                  R                  S5      (       d   eg )Nr   Únot_available_ever_xxxxzanimation.ffmpeg_pathrŠ   Úwin32ÚtrueÚwhere)	Úlenr   r—   Ú_registeredÚmplrW   r˜   Úsysre   )Úbins    r   Útest_movie_writer_registryrÏ     s‹   € ÜŒy× Ñ ×,Ñ,Ó-°Ó1Ð1Ð1Ø,E„C‡L�LÐ(Ñ)Ü× Ñ ×-Ñ-¨h×7Ñ7Ð7Ð7ä—L‘L GÓ+‰&°€CØ,/„C‡L�LÐ(Ñ)Ü×Ñ×)Ñ)¨(×3Ñ3Ð3Ñ3r   Úmethod_nameÚto_html5_videorº   zanimation writer not installedÚ	to_jshtmlr   )r#   c                 ó”  • UR                  S5        UR                  5          [        R                  " SS05         [	        X05      " 5         S S S 5        S S S 5        [        UR                  5      S:X  d   eUR                  u  nUR                  S:X  a  UR                  S:X  d   eg ! , (       d  f       Nb= f! , (       d  f       Nk= f)NÚWARNINGzanimation.embed_limitg�íµ ÷Æ°>r   zmatplotlib.animation)	Ú	set_levelr§   rÌ   r¼   r/   rÊ   ÚrecordsÚnameÚ	levelname)rÐ   Úcaplogr¨   r5   Úrecords        r   Útest_embed_limitrÛ   $  sŸ   € ð ×Ñ�YÔØ	�‰�Ü�^Š^Ð4°dÐ;Õ<Ü�DÔ&Ô(÷ =÷ 
ô ˆv�~‰~Ó !Ó#Ð#Ð#Ø�n‰n�G€FØ�K‰KÐ1Ó1Ø× Ñ  IÓ-ð/ð .Ø-÷ =Õ<ú÷ 
�ús"   ¢B9»B(ÁB9Â(
B6	Â2B9Â9
Cc                 óÜ   • UR                  5          [        X 5      " 5         [        [        [	        U5      5      R                  5       5      / :X  d   e S S S 5        g ! , (       d  f       g = fr   )r§   r/   Úlistr   ÚstrÚiterdir)rÐ   r¨   r5   s      r   Útest_cleanup_temporariesrà   6  sG   € ð 
�‰�Ü�Ô"Ô$Ü”Dœ˜V›Ó%×-Ñ-Ó/Ó0°BÓ6Ð6Ñ6÷ 
�Žús   ‘AAÁ
A+z/bin/shzrequires a POSIX OSc                 ó¼  • U R                  5          UR                  SS[        R                  S   -   5        [	        [        U 5      S5      nUR                  S5        [        R                  " US5        [        R                  " [        R                  5         UR                  S5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)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.
ÚPATHz.:rŠ   s   #!/bin/sh
[[ $@ -eq 0 ]]
ií  z	test.mpegN)r§   ÚsetenvÚosÚenvironr   rÞ   Úwrite_bytesÚchmodri   r®   Ú
subprocessÚCalledProcessErrorrX   )r¨   Úmonkeypatchr5   Úexe_paths       r   Útest_failing_ffmpegrì   C  s“   € ð 
�‰�Ø×Ñ˜6 4¬"¯*©*°VÑ*<Ñ#<Ô=Üœ˜F› XÓ.ˆØ×ÑÐ;Ô<Ü
�Š�˜5Ô!Ü�]Š]œ:×8Ñ8Õ9Ø�I‰I�kÔ"÷ :÷ 
ˆ÷
 :Õ9ú÷ 
�ús$   ‘BCÂB<Â+CÂ<
C
	ÃCÃ
CÚcache_frame_dataFTc           	      óž  ^
^^• [         R                  " 5       u  pUR                  / / 5      u  m " S S[        5      m
U4S jnU4S jn/ mU
U4S jnSn[        R
                  " XUUU US9n[        5       nUR                  SUS	9  [        T5      S
:X  d   e[        R                  R                  5         T H  n	U	" 5       S L U :w  a  M   e   g )Nc                   ó   • \ rS rSrSrg)Ú2test_funcanimation_cache_frame_data.<locals>.FrameiZ  r(   N)rK   rL   rM   rN   rP   r(   r   r   ÚFramerð   Z  s   † âr   rñ   c                  ó.   >• T R                  / / 5        T 4$ r   r   r   s   €r   r   Ú1test_funcanimation_cache_frame_data.<locals>.init^  r   r   c                 ó:   >• TR                  U S   U S   5        T4$ )Nr   r   r   )Úframer   s    €r   r   Ú4test_funcanimation_cache_frame_data.<locals>.animateb  s    ø€ Ø�‰�e˜C‘j %¨¡*Ô-Øˆuˆr   c               3   óþ   >#   • [        S5       Hi  n [        R                  " SSS5      n[        R                  R	                  S5      nT" XS9nTR                  [        R                  " U5      5        Uv •  Mk     g 7f)Nr$   r   r	   r   )r   r   )Úranger   r   ÚrandomÚrandÚappendÚweakrefÚref)Ú_r   r   rõ   rñ   Úframes_generateds       €€r   Úframes_generatorÚ=test_funcanimation_cache_frame_data.<locals>.frames_generatorh  s_   øé € Ü�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Á   rS   rÃ   r$   )r)   r*   r+   r.   r   r1   r7   rX   rÊ   r   rg   rh   )rí   r%   r3   r   r   r   Ú
MAX_FRAMESr5   rV   Úfrñ   rÿ   r   s             @@@r   Ú#test_funcanimation_cache_frame_datar  U  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×ÑÔÛˆñ “�t�Ð 0Õ0Ð0Ð0ò r   Úreturn_value)NÚstringr   )r  Úartistc                 óþ   ^ ^• [         R                  " 5       u  pUR                  / 5      u  mUU 4S jn[        R                  " [
        5         [        R                  " XSSS9  S S S 5        g ! , (       d  f       g = f)Nc                 óD   >• TR                  SS/SU /5        TS:X  a  T$ T$ )Nr   r   r  r   )r   r   r  s    €€r   r   Ú test_draw_frame.<locals>.animate—  s,   ø€ à�‰�q˜!�f˜q !˜fÔ%Ø˜8Ó#àˆKàÐr   TF)Úblitrí   )r)   r*   r+   ri   r®   ÚRuntimeErrorr   r1   )r  r%   r3   r   r   s   `   @r   Útest_draw_framer  …  sU   ù€ ô �lŠl‹n�G€CØ�G‰G�B‹K�E€Dö ô 
�Š”|Õ	$Ü×ÒØ˜t°eò	
÷ 
%×	$Ö	$ús   ÁA.Á.
A<c           	      ó„  • [         R                  " 5       u  pS n[        R                  " X[	        [        S5      5      SSS9nU R                  5          UR                  SSS9  S S S 5        [        R                  " [        SS	9   UR                  5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)
Nc                 ó   • / $ r   r(   ©rõ   s    r   ÚupdateÚ(test_exhausted_animation.<locals>.update©  ó   € Øˆ	r   r	   F©r#   Úrepeatrí   útest.gifr�   rÃ   Ú	exhaustedrc   )r)   r*   r   r1   Úiterrø   r§   rX   ri   rj   r¾   Ú_start©r¨   r%   r3   r  r5   s        r   Útest_exhausted_animationr  ¦  sŠ   € Ü�lŠl‹n�G€Còô ×"Ò"ØœD¤ r£›O°EØñ€Dð
 
�‰�Ø�	‰	�* Xˆ	Ñ.÷ 
ô 
�Š”k¨Ó	5Ø�‰Œ÷ 
6Ð	5÷ 
�ú÷ 
6Õ	5ús   ÁB ÂB1Â 
B.Â1
B?c                 óì   • [         R                  " 5       u  pS n[        R                  " X/ SSS9n[        R
                  " [        SS9   UR                  5         S S S 5        g ! , (       d  f       g = f)Nc                 ó   • / $ r   r(   r  s    r   r  Ú%test_no_frame_warning.<locals>.update»  r  r   Fr  r  rc   )r)   r*   r   r1   ri   rj   r¾   r  r  s        r   Útest_no_frame_warningr  ¸  sU   € Ü�lŠl‹n�G€Còô ×"Ò"Ø˜B uØñ€Dô
 
�Š”k¨Ó	5Ø�‰Œ÷ 
6×	5Ö	5ús   ÁA%Á%
A3Úpng)Ú
extensionsc           	      ó¨  ^^• UR                  5       nUR                  SS[        R                  -  5        UR	                  SS5        [        R
                  " SS[        R                  -  S5      mUR                  / / 5      u  mU4S jnUU4S jn[        R                  " XUSS	S
S9nU R                  5          UR                  S5        S S S 5        UR                  5       nUR                  SS[        R                  -  5        UR	                  SS5        UR                  T[        R                  " TS-   5      5        g ! , (       d  f       N}= f)Nr   é   r
   r   r   c                  ó.   >• T R                  / / 5        T 4$ r   r   r   s   €r   r   Ú"test_animation_frame.<locals>.initÒ  r   r   c                 ób   >• TR                  T[        R                  " TU S-  -   5      5        T4$ )Nr   )r   r   r   )r   r   r   s    €€r   r   Ú%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   r1   r§   rX   r   )	r¨   Úfig_testÚfig_refr3   r   r   r5   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ð 
�‰�Ø�	‰	�*Ô÷ 
ð 
×	Ñ	Ó	€BØ‡K�K��1”r—u‘u‘9ÔØ‡K�K��AÔð ‡G�GˆAŒr�vŠv�a˜'‘kÓ"Õ#÷ 
�ús   Â:EÅ
Ec           	      ót  • Sn[        [        S5      5      nSU< S[        U5      < S3n[        R                  " [
        [        R                  " U5      S9   [        R                  " S0 0 U EX!S.ED6n S S S 5        U R                  [        U5      :X  d   eU R                  5         g ! , (       d  f       N:= f)	Nr$   r#  ú%You passed in an explicit save_count=z0 which is being ignored in favor of len(frames)=Ú.rc   ©r#   rÁ   r(   )rÝ   rø   rÊ   ri   rj   r¾   ÚreÚescaper   r1   r[   Ú
_init_draw©r5   rÁ   r#   Úmatch_targets       r   Ú,test_save_count_override_warnings_has_lengthr6  é  s¦   € ð €JÜ”%˜“(‹^€Fà
0 Z¡Mð 2äˆv‹;‰.˜ð	ð ô 
�Š”k¬¯ª°<Ó)@Ó	AÜ×&Ò&ñ 
ØB�ÐB ÒBñ
ˆ÷ 
Bð ×Ñœs 6›{Ó*Ð*Ð*Ø‡O�OÕ÷ 
BÕ	Aús   ÁB)Â)
B7c           	      ó:  • SnSnSU< S3S-   SU< S3-   n[         R                  " [        [        R                  " U5      S9   [
        R                  " S
0 0 U EX!S	.ED6n S S S 5        U R                  U:X  d   eU R                  5         g ! , (       d  f       N1= f)Nr$   é   r.  Ú z#which is being ignored in favor of úframes=r/  rc   r0  r(   )	ri   rj   r¾   r1  r2  r   r1   r[   r3  r4  s       r   Ú(test_save_count_override_warnings_scalerr;  ü  s    € à€JØ€Fà
0 Z¡M°Ð3Ø-ñ	.àˆ6‰)�1ˆñ	ð ô 
�Š”k¬¯ª°<Ó)@Ó	AÜ×&Ò&ñ 
ØB�ÐB ÒBñ
ˆ÷ 
Bð
 ×Ñ˜vÓ%Ð%Ð%Ø‡O�OÕ÷ 
BÕ	Aús   ÁBÂ
Bc           	      óN  • Sn[        [        S5      5      nSU< SU< S3n[        R                  " [        [
        R                  " U5      S9   [        R                  " S	0 0 U EXS.ED6n S S S 5        U R                  SL d   eU R                  5         g ! , (       d  f       N0= f)
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`.rc   )rí   r#   Fr(   )r  rø   ri   rj   r¾   r1  r2  r   r1   Ú_cache_frame_datar3  )r5   rí   r#   r5  s       r   Útest_disable_cache_warningr>    s¢   € àÐÜ”%˜“(‹^€Fàˆ6‰+ð (à&Ñ(ð )?ð	?ð ô 
�Š”k¬¯ª°<Ó)@Ó	AÜ×&Ò&ñ 
ØN�ÐNÐ+;ÒNñ
ˆ÷ 
Bð ×!Ñ! UÒ*Ð*Ð*Ø‡O�OÕ÷ 
BÕ	Aús   ÁBÂ
B$c                 óâ   • [         R                  S:X  a  SnOSn[        R                  " [        US9   U R                  S[        R                  " 5       S9  S S S 5        g ! , (       d  f       g = f)NrÇ   z,\[WinError 3] .*'\\\\foo\\\\bar\\\\aardvark'z\[Errno 2] .*'/foorc   z+/foo/bar/aardvark/thiscannotreallyexist.mp4rÃ   )rÍ   re   ri   r®   ÚFileNotFoundErrorrX   r   ÚFFMpegFileWriter)r5   Ú	match_strs     r   Útest_movie_writer_invalid_pathrC  #  sS   € Ü
‡|�|�wÓØC‰	à)ˆ	Ü	�ŠÔ(°	Ó	:Ø�	‰	Ð?Ü"×3Ò3Ó5ð 	ñ 	7÷ 
;×	:Ö	:ús   ³$A Á 
A.c                  ó   • [         R                  " 5       u  p[         R                  " SSSSSS9nUR                  U5        UR	                  SS5        UR                  SS5        [        SS9nUR                  U S	S
S9  UR                  SS9  UR                  S   nUR                  5       S   S   S:  d   e[         R                  " U 5        g)zGTest animation exhaustion with transparency using PillowWriter directly)r   r   r   Úredg      à?)ÚcolorÚalphar   r¤   )rx   z
unused.gifr   )r;   T)Útransparentr
   é   éÿ   N)r)   r*   Ú	RectangleÚ	add_patchr,   r-   r   r?   rE   Ú_framesÚ
getextremaÚclose)r%   r3   ÚrectrV   rõ   s        r   Ú test_animation_with_transparencyrQ  -  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   re   r1  Úshutilrè   rÍ   rü   Únumpyr   ri   Ú
matplotlibrÌ   r   r)   r   rC   r   Úmatplotlib.testing.decoratorsr   Úfixturer5   ÚAbstractMovieWriterr7   r_   r™   Úparametrizer.   rm   r|   r—   Úregisterr   r–   rž   r©   r³   r!   Úskipifr»   r‡   ÚImageMagickWriterrÀ   r  rø   rÄ   rÏ   r˜   rW   rÛ   rà   Úwhichrì   r  r  r  r  r,  r6  r;  r>  rC  rQ  r(   r   r   Ú<module>r^     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ñ<ó Hð<ð> ‡�×Ñ˜Ø
‡L‚LØ˜Ÿ™×*Ñ*Ø×&Ñ&×2Ñ2Ó4Ô4Ø$ð +ð &ñ'ð ‡L‚LØ˜VŸ[™[×/Ñ/Ø×+Ñ+×7Ñ7Ó9Ô9Ø)ð 0ð +ñ,ð	$ó 	ð ‡�×Ñ˜ò (ó ð
 ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñó Hóó	ð ð2 ‡�×ÑØ
Ø¡$¡u¨Q£x£.Ñ1Ð2ØˆXð ð ñ
7óð
7ò4ð ‡�×ÑØØ‡\‚\Ð"¨&¯+©+×*<Ñ*<Ø×Ñ×*Ñ*¨3¯<©<Ð8JÑ+KÓLÔLØ/ð +=ð +1ñ 2ð ðóð ‡�×Ñ˜¡$¨a¡.Ð!1¸V¸HÐÐEñ/ó Fóð/ð ‡�×ÑØØ‡\‚\Ð"¨&¯+©+×*<Ñ*<Ø×Ñ×*Ñ*¨3¯<©<Ð8JÑ+KÓLÔLØ/ð +=ð +1ñ 2ð ðóð ‡�×Ñ˜¡$¨a¡.Ð!1¸V¸HÐÐEñ7ó Fóð7ð ‡�×Ñ�F—L’L Ó+¨tÐ3Ð<QÐÐRñ#ó Sð#ð" ‡�×ÑÐ+¨e°T¨]Ó;ñ,1ó <ð,1ð^ ‡�×Ñ˜ò *ó ñ
óð
ò*ò$ñ   Ñ(ñ$ó )ð$ðB ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñó Hðð$ ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñó Hðð$ ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñó Hðò&7ór   