ó
    “’¤jTH  ã                   óâ  • 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 r " S	 S
\R0                  5      rS rS r\R8                  R;                  S\" \S9/S/S9S 5       rS r \RB                  RE                  S5       " S S\5      5       r#/ SQr$S r%\R8                  R;                  S\&" \%" 5       5      5      \R8                  R;                  S\" \S9/S/S9S 5       5       r'\R8                  R;                  S\&" \%" 5       5      5      S 5       r(\R8                  R;                  S\RR                  " S\R8                  RU                  \RV                  RY                  5       (       + SS9S9\RR                  " S\R8                  RU                  \RZ                  RY                  5       (       + S S9S9/5      \R8                  R;                  S!/ S"Q5      \R8                  R;                  S\" \S9/S/S9S# 5       5       5       r.\R8                  R;                  SS$\/" \0" S%5      5      S&./S/S9S' 5       r1\R8                  RU                  \R                  S(:H  S)S9S* 5       r2\R8                  R;                  S+\RR                  " S,\R8                  RU                  \RB                  Rg                  \Rh                  S-   5      (       + S.S9S9S//5      \R8                  R;                  S\" S0S19/S/S9S2 5       5       r5\R8                  RU                  \R                  S(:H  S)S9\R8                  RU                  \Rl                  " S35      SL S4S9S5 5       5       r7\R8                  R;                  S6S7S8/5      S9 5       r8\R8                  R;                  S:/ S;Q5      S< 5       r9S= r:S> r;\" 5       S? 5       r<\R8                  R;                  S\" \S9/S/S9S@ 5       r=\R8                  R;                  S\" \S9/S/S9SA 5       r>\R8                  R;                  S\" \S9/S/S9SB 5       r?SC r@SD rAg)Eé    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   €Ú­C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\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S9   [        R                  S     S S S 5        g ! , (       d  f       g = f)NzB'pllow' is not a valid value for writer\. Did you mean: 'pillow'\?©ÚmatchÚpllow)ÚpytestÚraisesÚ
ValueErrorr   Úwritersr(   r   r   Útest_invalid_writerr>   /   s5   € ä	�Š”zð9ó
:ô 	×Ñ˜'Ò"÷
:÷ 
:ö 
:ús	   š7·
Ac                   ó*   • \ rS rSrSrS rS rS rSrg)ÚNullMovieWriteré7   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%   rC   rD   rE   s        r   ÚsetupÚNullMovieWriter.setupC   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.animationrK   Úsavefig_kwargsrF   )rG   rM   rK   s      r   Ú
grab_frameÚNullMovieWriter.grab_frameJ   s!   € ÝCÙ" >Ô2Ø,ÔØ�Š�qÑŽr   c                 ó   • g r   r(   ©rG   s    r   ÚfinishÚNullMovieWriter.finishP   s   € Ør   )rF   rE   rD   r%   rC   rM   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rH   rN   rR   Ú__static_attributes__r(   r   r   r@   r@   7   s   † ñ	òòõr   r@   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)rD   ÚwriterrM   r   r(   )r)   ÚrcParamsr.   r@   Úsaver%   ÚfigurerC   rD   rE   ÚitemsrM   rF   Ú_save_count)r5   ÚfilenamerD   rM   r_   ÚkÚvs          r   Útest_null_movie_writerrh   T   sÞ   € à(.„C‡L�LÐ$Ñ%Ø€HØ
€CÜ˜a‘[€NÜÓ€Fà‡I�Iˆh¨Ø+ð ñ -ð �:‰:œŸš A›Ó&Ð&Ð&Ø�>‰>˜XÓ%Ð%Ð%Ø�:‰:˜ÓÐÐØ�;‰;˜"ÓÐÐð ×$Ñ$Ö&‰ˆØ×$Ñ$ QÑ'¨1Õ,Ð,Ð,ñ 'à�=‰=˜D×,Ñ,Ó,Ð,Ñ,r   c                  ó^  • [         R                  " SSS9n U R                  R                  S:  d   eU R                  R                  5       S:X  d   e[        R                  " U S SS9n[        5       nUR                  S	SUS
9  UR                  U R                  R                  5       :X  d   eg )N)r   g=
×£p= @r   )ÚfigsizerD   éË   )r   rk   c                 ó   • [        5       $ r   )Útuple©Úframes    r   Ú<lambda>Ú!test_frame_size.<locals>.<lambda>p   s   € ´e´gr   r   ©r#   r\   )rD   r_   )r)   rb   ÚbboxÚheightÚcanvasÚget_width_heightr   r1   r@   ra   Ú
frame_size)r%   r5   r_   s      r   Útest_frame_sizerx   j   s“   € ä
�*Š*˜Y¨CÑ
0€CØ�8‰8�?‰?˜SÓ Ð Ð Ø�:‰:×&Ñ&Ó(¨JÓ6Ð6Ð6ä×"Ò" 3Ñ(=ÀaÑH€DÜÓ€FØ‡I�Iˆm ¨V€IÑ4à×Ñ §
¡
× ;Ñ ;Ó =Ó=Ð=Ñ=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 deletedr7   r(   )
ÚplatformÚpython_implementationr   ÚtestingÚbreak_cyclesr   r1   r:   ÚwarnsÚWarning©r5   s    r   Útest_animation_deleterƒ   w   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é…   c                 ó   • g r   r(   rQ   s    r   Ú_runÚ<test_movie_writer_dpi_default.<locals>.DummyMovieWriter._run†   s   € Ør   r(   N)rT   rU   rV   rW   r‰   rY   r(   r   r   ÚDummyMovieWriterr†   …   s   † õ	r   r‹   r\   r$   Úunusedr   )r   ÚMovieWriterr)   rb   rH   rD   )r‹   r%   re   ÚfpsÚcodecÚbitrateÚ
extra_argsr_   s           r   Útest_movie_writer_dpi_defaultr’   „   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(   )rG   rŽ   r�   r�   r‘   Úmetadatas         r   Ú__init__Ú"RegisteredNullMovieWriter.__init__    s   € àr   c                 ó   • g)NTr(   )Úclss    r   ÚisAvailableÚ%RegisteredNullMovieWriter.isAvailable¤   s   € àr   r(   )NNNNN)rT   rU   rV   rW   r™   Úclassmethodr�   rY   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   r=   Úis_availabler:   ÚmarkÚskipr!   r   r/   )r_   Úoutputr®   Úwriter_classÚframe_formats        r   Úgen_writersr³   ´   sº   é € ß'‰ˆÜ× Ñ ×-Ñ-¨f×5Ñ5Ü—;‘;×#Ñ# h¨v¨hÐ6TÐ$UÓVˆ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                  X-  SUSUUS9  Ag )
Núanimation.frame_formatr    ©g33333³%@gìQ¸…k"@ç      Y@Úh264é   iô  )rŽ   r_   r�   rD   r�   r(   )r)   r`   r   r1   Ú_figÚset_size_inchesra   )Útmp_pathr_   r²   r°   r5   rD   r�   s          r   Útest_save_animation_smoketestr½   Å   s€   € ð ÑØ1=Œ�‰Ð-Ñ.Ü×"Ò"Ñ* TÑ*€DØ
€CØ€EØ�Óà�	‰	×!Ñ! -Ô0ØˆØˆà‡I�IˆhÑ R°ÀÈØð ñ ñ 	r   c           
      ó  • [         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                  XPU-  U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        g ! , (       d  f       Ma  = f! , (       d  f       g = f)
Nrµ   r    r¶   r·   r¸   >   rD   ÚformatÚbbox_inchesz.grab_frame got an unexpected keyword argument r7   r(   )r   r=   r)   r`   r*   r»   ÚsavingrN   r:   r;   Ú	TypeErrorÚobject)r¼   r_   r²   r°   ÚWriterClassr%   r3   rD   r�   Útest_writerrf   s              r   Útest_grabframerÆ   Ù   sí   € ä×#Ñ# FÑ+€KàÑØ1=Œ�‰Ð-Ñ.ä�lŠl‹n�G€Cà
€CØ€EØ�Óà×Ñ˜MÔ*ØˆØˆá“-€KØ	×	Ñ	˜C¨FÑ!2°CÕ	8à×ÑÔ Û1ˆAÜ—’ÜØJÈ1É%ÐPóRð ×&Ò&Ñ7¨!¬V«X¨Ò7÷Rñ Rñ 2÷ 
9Ð	8÷Rö Rú÷	 
9Õ	8ús$   Á<3C3Â/C!ÃC3Ã!
C0Ã+C3Ã3
Dr_   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)Nr{   r£   rÊ   rÇ   )úanimation.writerzanimation.htmlr(   )r|   r}   r   r~   r   r   ÚFFMpegWriterr�   r:   r¯   r1   r)   Ú
rc_contextÚ_repr_html_r€   ÚUserWarning)r_   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 )Nr\   ©r_   )ra   r@   r‚   s    r   Útest_no_length_framesr×     s   € ð 	‡I�Iˆm¤OÓ$5€IÒ6r   Ú
emscriptenz(emscripten does not support subprocessesc                  ó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Úmplr`   r­   Úsysr|   )Ú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   rr   c                 ó@  • UR                  S5        [        R                  " SS05         [        X 5      " 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       NZ= f)NÚWARNINGzanimation.embed_limitg�íµ ÷Æ°>r   zmatplotlib.animation)Ú	set_levelrà   rÏ   r/   rÞ   ÚrecordsÚnameÚ	levelname)rä   Úcaplogr5   Úrecords       r   Útest_embed_limitrï   3  s‡   € ð ×Ñ�YÔÜ	�ŠÐ0°$Ð7Õ	8Ü�Ô"Ô$÷ 
9äˆv�~‰~Ó !Ó#Ð#Ð#Ø�n‰n�G€FØ�K‰KÐ1Ó1Ø× Ñ  IÓ-ð/ð .Ø-÷ 
9Õ	8ús   ªBÂ
Bz/bin/shzrequires a POSIX OSc                 ó0  • UR                  S[        U 5      SS9  U S-  nUR                  S5        [        R                  " US5        [
        R                  " [        R                  5         UR                  S5        SSS5        g! , (       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.
ÚPATHÚ:)Úprependr    s   #!/bin/sh
[[ $@ -eq 0 ]]
ií  z	test.mpegN)
ÚsetenvÚstrÚwrite_bytesÚosÚchmodr:   r;   Ú
subprocessÚCalledProcessErrorra   )r¼   Úmonkeypatchr5   Úexe_paths       r   Útest_failing_ffmpegrý   D  sn   € ð ×Ñ�vœs 8›}°cÐÑ:Ø˜(Ñ"€HØ×ÑÐ7Ô8Ü‡H‚HˆX�uÔÜ	�Š”z×4Ñ4Õ	5Ø�	‰	�+Ô÷ 
6×	5Ö	5ús   Á,BÂ
BÚ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>.Framei\  r(   N)rT   rU   rV   rW   rY   r(   r   r   ÚFramer  \  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   )ro   r   s    €r   r   Ú4test_funcanimation_cache_frame_data.<locals>.animated  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   ro   r  Úframes_generateds       €€r   Úframes_generatorÚ=test_funcanimation_cache_frame_data.<locals>.frames_generatorj  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Ô   r\   rÖ   r$   )r)   r*   r+   r.   r   r1   r@   ra   rÞ   r   r~   r   )rþ   r%   r3   r   r   r  Ú
MAX_FRAMESr5   r_   Úfr  r  r   s             @@@r   Ú#test_funcanimation_cache_frame_datar  W  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+   r:   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           	      ó6  • [         R                  " 5       u  pS n[        R                  " X[	        [        S5      5      SSS9nUR                  U S-  SS9  [        R                  " [        SS	9   UR                  5         S S S 5        g ! , (       d  f       g = f)
Nc                 ó   • / $ r   r(   rn   s    r   ÚupdateÚ(test_exhausted_animation.<locals>.update«  ó   € Øˆ	r   r	   F©r#   Úrepeatrþ   útest.gifr¦   rÖ   Ú	exhaustedr7   )r)   r*   r   r1   Úiterr  ra   r:   r€   rÑ   Ú_start)r¼   r%   r3   r   r5   s        r   Útest_exhausted_animationr)  ¨  sr   € Ü�lŠl‹n�G€Còô ×"Ò"ØœD¤ r£›O°EØñ€Dð
 	‡I�Iˆh˜Ñ#¨H€IÑ5ä	�Š”k¨Ó	5Ø�‰Œ÷ 
6×	5Ö	5ús   Á0B
Â

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(   rn   s    r   r   Ú%test_no_frame_warning.<locals>.update¼  r"  r   Fr#  r&  r7   )r)   r*   r   r1   r:   r€   rÑ   r(  )r%   r3   r   r5   s       r   Útest_no_frame_warningr-  ¹  sU   € Ü�lŠl‹n�G€Còô ×"Ò"Ø˜B uØñ€Dô
 
�Š”k¨Ó	5Ø�‰Œ÷ 
6×	5Ö	5ús   ÁA%Á%
A3c           	      óZ  ^^• 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                  U 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 )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   ra   r   )	r¼   Úfig_testÚfig_refr3   r   r   r5   r   r   s	          @@r   Útest_animation_framer8  È  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           	      ó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)=Ú.r7   ©r#   rÔ   r(   )Úlistr  rÞ   r:   r€   rÑ   ÚreÚescaper   r1   rd   Ú
_init_draw©r5   rÔ   r#   Úmatch_targets       r   Ú,test_save_count_override_warnings_has_lengthrC  é  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;  r7   r<  r(   )	r:   r€   rÑ   r>  r?  r   r1   rd   r@  rA  s       r   Ú(test_save_count_override_warnings_scalerrH  ü  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$   rG  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`.r7   )rþ   r#   Fr(   )r'  r  r:   r€   rÑ   r>  r?  r   r1   Ú_cache_frame_datar@  )r5   rþ   r#   rB  s       r   Útest_disable_cache_warningrK    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[         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'rØ   z\[Errno 44] .*'/fooz\[Errno 2] .*'/foor7   z+/foo/bar/aardvark/thiscannotreallyexist.mp4rÖ   )rá   r|   r:   r;   ÚFileNotFoundErrorra   r   ÚFFMpegFileWriter)r5   Ú	match_strs     r   Útest_movie_writer_invalid_pathrP  #  sd   € Ü
‡|�|�wÓØB‰	Ü	�‰˜Ó	%Ø*‰	à)ˆ	Ü	�ŠÔ(°	Ó	:Ø�	‰	Ð?Ü"×3Ò3Ó5ð 	ñ 	7÷ 
;×	:Ö	:ús   Á
$A7Á7
B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¹   )rŽ   z
unused.gifr   )rD   T)Útransparentr
   é   éÿ   N)r)   r*   Ú	RectangleÚ	add_patchr,   r-   r   rH   rN   Ú_framesÚ
getextremaÚclose)r%   r3   Úrectr_   ro   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   )Br÷   Úpathlibr   r|   r>  Úshutilrù   rá   r  Únumpyr   r:   Ú
matplotlibrà   r   r)   r   rL   r   Úmatplotlib.testing.decoratorsr   Úfixturer5   r>   ÚAbstractMovieWriterr@   rh   rx   r®   Úparametrizer.   rƒ   r’   r=   Úregisterr•   r¬   r³   r=  r½   rÆ   r!   ÚskipifrÎ   r�   ÚImageMagickWriterrÓ   r'  r  r×   rã   r­   r`   rï   Úwhichrý   r  r  r)  r-  r8  rC  rH  rK  rP  r^  r(   r   r   Ú<module>rk     sú  ðÛ 	Ý Û Û 	Û Û Û 
Û ã Û ã Ý $Ý  Ý -Ý =ð ‡‚ÓñBó ðBò4#ô�i×3Ñ3ô ò:-ò,
>ð ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñ	"ó Hð	"ò!ð& ×Ñ×Ñ˜FÓ#ô ó ó $ðò"€ò5ð" ‡�×ÑÐ7¹¹k»mÓ9LÓMØ‡�×Ñ˜¡$¨TÑ"2Ð!3¸v¸hÐÐGñó Hó Nðð$ ‡�×ÑÐ7¹¹k»mÓ9LÓMñ8ó Nð8ð6 ‡�×Ñ˜Ø
‡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ð ‡�×Ñ�C—L‘L LÑ0ØEð ð Gñ4óGð4ð ‡�×ÑØØ‡\‚\Ð"¨&¯+©+×*<Ñ*<Ø×Ñ×*Ñ*¨3¯<©<Ð8JÑ+KÓLÔLØ/ð +=ð +1ñ 2ð ðóð ‡�×Ñ˜¡$¨a¡.Ð!1¸V¸HÐÐEñ/ó Fóð/ð ‡�×Ñ�C—L‘L LÑ0ØEð ð Gà‡�×Ñ�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   