§
    ‚Øj!  ã                   ó¾  — d 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 ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZmZ ddlZddlmZ ddlmZ dd„Z ej!         "                    ddddddd ej#        dddeeg¬¦  «        dd ej#        ddde¬¦  «        g
¦  «        d„ ¦   «         Z$ej!         "                    d d!d"g¦  «        d#„ ¦   «         Z%dS )$z
Test output reproducibility.
é    N)Úpyplot)Úget_sample_data)ÚPathCollection)Ú	BboxImage)ÚAnchoredOffsetboxÚAuxTransformBox)ÚCircleÚ	PathPatch)ÚPath)Úsubprocess_run_for_testing)Úneeds_ghostscriptÚneeds_usetex)ÚTextPath)ÚIdentityTransformÚmhipÚpdfFc                 óÂ  — t          j        |¦  «         t           j                             d|dœ¦  «         d„ }d„ }d„ }d„ }t	          | ¦  «        dz   }t          j        dd	|z  f¬
¦  «        }t          |                     |d¬¦  «        j	        ¦  «        }	| 
                    d¬¦  «         d| v r |t          |	¦  «        ¦  «         d| v r |t          |	¦  «        ¦  «         d| v r |t          |	¦  «        ¦  «         d| v r |t          |	¦  «        ¦  «         t          d¦  «        }
t          |	¦  «                             ¦   «         }|                     |
|
¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         t%          t&          j        dt&          j        ¦  «        }|                     ||¬¦  «         d S )NÚasdf)zsvg.hashsaltztext.usetexc                 ód  — |                       ¦   «         }t          d¦  «        }|                     |dgdz  d¬¦  «         |                     |dgdz  d¬¦  «         |                     |dgdz  d¬¦  «         |                     |d	gdz  d
¬¦  «         |                     |dgdz  d¬¦  «         d S )Né
   é   ÚD)Úmarkeré   Úxé   ú^é   ÚHé   Úv)Úadd_subplotÚrangeÚplot)ÚfigÚaxr   s      ú–/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_determinism.pyÚplot_markersz"_save_figure.<locals>.plot_markers   s¸   € à�_Š_ÑÔˆÝ�"‰IŒIˆØ
�Š��A�3˜‘8 CˆÑ(Ô(Ð(Ø
�Š��A�3˜‘8 CˆÑ(Ô(Ð(Ø
�Š��A�3˜‘8 CˆÑ(Ô(Ð(Ø
�Š��A�3˜‘8 CˆÑ(Ô(Ð(Ø
�Š��A�3˜‘8 CˆÑ(Ô(Ð(Ð(Ð(ó    c           	      óŒ  — |                       ¦   «         }|                     t          dd¦  «        t          dd¦  «        ¦  «        |                     t          dd¦  «        dgdz  t          dd¦  «        ¬¦  «        z   }|                     g d¢¦  «         d}t	          ||¦  «        D ]\  }}|                     |¦  «         Œd S )Nr   r    é   r   ©Úbottom)g      ø?g      @g      @g      @)ú-ú+r   ú\Ú*ÚoÚOú.)r"   Úbarr#   Ú
set_xticksÚzipÚ	set_hatch)r%   Úax2ÚbarsÚpatternsr5   Úpatterns         r'   Ú
plot_hatchz _save_figure.<locals>.plot_hatch'   s¿   € à�oŠoÑÔˆØ—’�˜a ™œ¥U¨1¨a¡[¤[Ñ1Ô1Ø—’�˜a ™œ a S¨1¡WµU¸1¸a±[´[�ÑAÔAñBˆà�ŠÐ+Ð+Ð+Ñ,Ô,Ð,à<ˆÝ  hÑ/Ô/ð 	#ð 	#‰LˆC�Ø�MŠM˜'Ñ"Ô"Ð"Ð"ð	#ð 	#r)   c                 ó(  — |                       dddd¬¦  «        }g d¢g d¢g d¢g}|d                              |d	¬
¦  «         g d¢g d¢g d¢g}|d                              |d¬
¦  «         g d¢g d¢g d¢g}|d                              |d¬
¦  «         d S )Nr   r   T)ÚsharexÚsharey)r   r   r   )r   r   r   )r   r   r   r   Únearest)Úinterpolation)r   r   r   Úbilinear)r   r   r   r   Úbicubic)ÚsubplotsÚimshow)r%   ÚaxsÚAs      r'   Ú
plot_imagez _save_figure.<locals>.plot_image2   s·   € Ø�lŠl˜1˜a¨°TˆlÑ:Ô:ˆàˆYˆY˜	˜	˜	 9 9 9Ð-ˆØˆAŒ�Š�a yˆÑ1Ô1Ð1ØˆYˆY˜	˜	˜	 9 9 9Ð-ˆØˆAŒ�Š�a zˆÑ2Ô2Ð2ØˆYˆY˜	˜	˜	 9 9 9Ð-ˆØˆAŒ�Š�a yˆÑ1Ô1Ð1Ð1Ð1r)   c           
      óî  —  G d„ dt           ¦  «        }|                      dd¦  «        }|d                              d¬¦  «        }|                     dgg¦  «        }|                     t          d	d
¬¦  «        ¦  «         |d                              ¦   «         }t          j        t          d¦  «        ¦  «        }t          ddd¬¦  «        } |||d¬¦  «        }t          t          ¦   «         ¦  «        }	|	                     |¦  «         t          d|	dd¬¦  «        }
|                     |
¦  «         t          j        ¦   «                              ¦   «         }|xj        dz  c_        |xj        dz  c_        t          j        ¦   «                              ¦   «         }|j        d d d…         |_        t          j        ||¦  «        }t          j        d¦  «                             ¦   «         }|xj        dz  c_        |d                              ddddt-          dd¬¦  «        ¬¦  «        \  }}||fD ]À}|\  }}t/          |gdddd d!¬"¦  «        }|                     ||j        ¦  «         |                     |¦  «         t          |dddd d!¬"¦  «        }|                     ||j        ¦  «         |                     |¦  «         |                     d#dg¦  «         |                     d#dg¦  «         ŒÁd S )$Nc                   ó8   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zdˆ fd„	Zˆ xZS )ú?_save_figure.<locals>.plot_paths.<locals>.PathClippedImagePatchzã
            The given image is used to draw the face of the patch. Internally,
            it uses BboxImage whose clippath set to the path of the patch.

            FIXME : The result is currently dpi dependent.
            c                 ó¨   •—  t          ¦   «         j        |fi |¤Ž t          | j        d d ¬¦  «        | _        | j                             |¦  «         d S )N)ÚnormÚorigin)ÚsuperÚ__init__r   Úget_window_extentÚ
bbox_imageÚset_data)ÚselfÚpathrS   ÚkwargsÚ	__class__s       €r'   rQ   zH_save_figure.<locals>.plot_paths.<locals>.PathClippedImagePatch.__init__F   sa   ø€ Ø •‘”Ô  Ð0Ð0¨Ð0Ð0Ð0Ý"+ØÔ*°¸dð#Dñ #Dô #D�”à”×(Ò(¨Ñ4Ô4Ð4Ð4Ð4r)   c                 óJ   •— t          ¦   «                              d¦  «         dS )zSimply ignore facecolor.ÚnoneN)rP   Úset_facecolor)rU   ÚcolorrX   s     €r'   r[   zM_save_figure.<locals>.plot_paths.<locals>.PathClippedImagePatch.set_facecolorL   s!   ø€ å‘”×%Ò% fÑ-Ô-Ð-Ð-Ð-r)   Nc                 óâ   •— | j                              | j        |                      ¦   «         ¦  «         | j                              |¦  «         t          ¦   «                              |¦  «         d S ©N)rS   Úset_clip_pathÚ_pathÚget_transformÚdrawrP   )rU   ÚrendererrX   s     €r'   rb   zD_save_figure.<locals>.plot_paths.<locals>.PathClippedImagePatch.drawP   s[   ø€ à”×-Ò-¨d¬j¸$×:LÒ:LÑ:NÔ:NÑOÔOÐOØ”×$Ò$ XÑ.Ô.Ð.Ý‘”—’˜XÑ&Ô&Ð&Ð&Ð&r)   r^   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rQ   r[   rb   Ú__classcell__)rX   s   @r'   ÚPathClippedImagePatchrL   >   sy   ø€ € € € € ðð ð5ð 5ð 5ð 5ð 5ð.ð .ð .ð .ð .ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r)   ri   r   r   r   Úpolar)Ú
projectionr   )r   r   gioð…ÉTÕ?)Úradiuszgrace_hopper.jpg)r   r   z!?é–   )ÚsizeÚk)Úecz
upper leftTgš™™™™™É?)ÚlocÚchildÚframeonÚ	borderpadr   éÿÿÿÿr+   gÍÌÌÌÌÌ@)ÚhspaceÚwspace)r?   r@   Úgridspec_kwr    ÚblueÚredgffffffæ?r1   )ÚlwÚ	edgecolorÚ	facecolorÚalphaÚhatchéýÿÿÿ)r
   Ú
subfiguresr"   rF   r_   r	   ÚpltÚimreadr   r   r   r   Ú
add_artistr   r   Úunit_rectangleÚdeepcopyÚverticesÚunit_circleÚmake_compound_pathÚunit_regular_starrE   Údictr   Ú	transDataÚadd_collectionÚ	add_patchÚset_xlimÚset_ylim)r%   ri   ÚsubfigsÚpxÚpimgr&   ÚarrÚ	text_pathÚpÚ	offsetboxÚaoÚexteriorÚinteriorÚ	clip_pathÚstarÚrow1Úrow2ÚrowÚax1r9   Ú
collectionÚpatchs                         r'   Ú
plot_pathsz _save_figure.<locals>.plot_paths<   s$  € ð	'ð 	'ð 	'ð 	'ð 	'¥Iñ 	'ô 	'ð 	'ð0 —.’.  AÑ&Ô&ˆð �QŒZ×#Ò#¨wÐ#Ñ7Ô7ˆØ�yŠy˜1˜#˜ÑÔˆØ×Ò�6 &°Ð8Ñ8Ô8Ñ9Ô9Ð9ð �QŒZ×#Ò#Ñ%Ô%ˆÝŒj�Ð);Ñ<Ô<Ñ=Ô=ˆÝ˜V T°Ð4Ñ4Ô4ˆ	Ø!Ð! )¨S°SÐ9Ñ9Ô9ˆÝ#Õ$5Ñ$7Ô$7Ñ8Ô8ˆ	Ø×Ò˜QÑÔÐÝ <°yÈ$Ø),ð.ñ .ô .ˆà
�Š�bÑÔÐõ Ô&Ñ(Ô(×1Ò1Ñ3Ô3ˆØÐÔ˜QÑÐÔØÐÔ˜QÑÐÔÝÔ#Ñ%Ô%×.Ò.Ñ0Ô0ˆØ$Ô-¨d¨d°¨dÔ3ˆÔÝÔ+¨H°hÑ?Ô?ˆ	åÔ% aÑ(Ô(×1Ò1Ñ3Ô3ˆØˆŒ˜ÑˆŒà˜q”z×*Ò*¨1¨a¸ÀTÝ7;À1ÈQÐ7OÑ7OÔ7Oð +ñ Qô Q‰ˆˆtà˜$�<ð 	"ð 	"ˆCØ‰HˆC�Ý'¨¨°1ÀØ27¸sÈ#ðOñ Oô OˆJà×$Ò$ Y°´Ñ>Ô>Ð>Ø×Ò˜zÑ*Ô*Ð*å˜d q°FÀeØ$'¨sð4ñ 4ô 4ˆEà×Ò 	¨3¬=Ñ9Ô9Ð9Ø�MŠM˜%Ñ Ô Ð à�LŠL˜"˜a˜Ñ!Ô!Ð!Ø�LŠL˜"˜a˜Ñ!Ô!Ð!Ð!ð	"ð 	"r)   r   é   r   )ÚfigsizeF)Úsqueezeg333333Ã?r,   ÚmÚhÚir–   r    zA string $1+2+\sigma$Úbuffer)Úformat)ÚmplÚuseÚrcParamsÚupdateÚlenr‚   ÚfigureÚiterr�   ÚflatÚsubplots_adjustÚnextr#   r"   r$   Ú	set_titleÚ
set_xlabelÚ
set_ylabelÚgetattrÚsysÚstdoutÚsavefig)ÚobjectsÚfmtÚusetexr(   r=   rI   r£   Únfigsr%   r‘   r   r&   r»   s                r'   Ú_save_figurerÁ      sé  € Ý„GˆC�L„L€LÝ„L×Ò¨ÀÐGÐGÑHÔHÐHð)ð )ð )ð	#ð 	#ð 	#ð2ð 2ð 2ðF"ð F"ð F"õP �‰LŒL˜1Ñ€EÝ
Œ*˜a  U¡˜^Ð
,Ñ
,Ô
,€CÝ�3—>’> %°�>Ñ7Ô7Ô<Ñ=Ô=€GØ×Ò˜tÐÑ$Ô$Ð$à
ˆg€~€~Øˆ•T˜'‘]”]Ñ#Ô#Ð#Ø
ˆg€~€~Øˆ
•4˜‘=”=Ñ!Ô!Ð!Ø
ˆg€~€~Øˆ
•4˜‘=”=Ñ!Ô!Ð!Ø
ˆg€~€~Øˆ
•4˜‘=”=Ñ!Ô!Ð!åˆa‰Œ€AÝ	ˆg‰Œ×	"Ò	"Ñ	$Ô	$€BØ‡G‚GˆAˆq�M„M€MØ‡L‚LÐ)Ñ*Ô*Ð*Ø‡M‚MÐ*Ñ+Ô+Ð+Ø‡M‚MÐ*Ñ+Ô+Ð+å•S”Z ­3¬:Ñ6Ô6€FØ‡K‚K�˜s€KÑ#Ô#Ð#Ð#Ð#r)   zobjects, fmt, usetex)Ú r   F)r§   r   F)r¨   r   F)r©   r   F)r   r   F)r   ÚpsFrÃ   T)Úmarks)r–   ÚsvgF)r   rÅ   FrÅ   c                 óÎ   ‡ ‡‡— ˆˆ ˆfd„t          d¦  «        D ¦   «         }|dd…         D ]9}‰dk    r#‰r!||d         k    rt          j        d¦  «         Œ+||d         k    sJ ‚Œ:dS )aL  
    Output the same graph three times and check that the outputs are exactly the same.

    Parameters
    ----------
    objects : str
        Objects to be included in the test document: 'm' for markers, 'h' for
        hatch patterns, 'i' for images, and 'p' for paths.
    fmt : {"pdf", "ps", "svg"}
        Output format.
    c                 ó”   •— g | ]D}t          t          j        d dd‰›d‰›d‰› d�gi t          j        ¥dddœ¥dd	d	¬
¦  «        j        ‘ŒES )ú-Rú-czHfrom matplotlib.tests.test_determinism import _save_figure;_save_figure(z, ú)Ú	946684800ÚAgg©ÚSOURCE_DATE_EPOCHÚ
MPLBACKENDFT)ÚenvÚtextÚcapture_outputÚcheck©r   rº   Ú
executableÚosÚenvironr»   )Ú.0Ú_r¾   r½   r¿   s     €€€r'   ú
<listcomp>z*test_determinism_check.<locals>.<listcomp>·   s¨   ø€ ð 	ð 	ð 	ð õ 	#ÝŒ^˜T 4ð=Ø$ð=ð =Ø*-ð=ð =Ø39ð=ð =ð =ð>ð&•2”:ð &°KØ$ð&ð &ð &à t°4ð	9ñ 	9ô 	9ô :@ð	ð 	ð 	r)   r   r   NrÃ   r   z+failed, maybe due to ghostscript timestamps)r#   ÚpytestÚskip)r½   r¾   r¿   Úplotsr–   s   ```  r'   Útest_determinism_checkrÞ   �   s¡   øøø€ ð4	ð 	ð 	ð 	ð 	ð 	õ �q‘”ð	ñ 	ô 	€Eð �1�2�2ŒYð !ð !ˆØ�$Š;ˆ;˜6ˆ;Ø�E˜!”HŠ}ˆ}Ý”ÐIÑJÔJÐJøà˜˜aœ’=�=�=�=�=ð!ð !r)   zfmt, string)r   s!   /CreationDate (D:20000101000000Z))rÃ   s(   %%CreationDate: Sat Jan 01 00:00:00 2000c                 óŠ   — t          t          j        ddd| ›d�gi t          j        ¥dddœ¥dd	d¬
¦  «        j        }||v sJ ‚dS )a˜  
    Test SOURCE_DATE_EPOCH support.

    Output a document with the environment variable SOURCE_DATE_EPOCH set to
    2000-01-01 00:00 UTC and check that the document contains the timestamp that
    corresponds to this date (given as an argument).

    Parameters
    ----------
    fmt : {"pdf", "ps", "svg"}
        Output format.
    string : bytes
        Timestamp string for 2000-01-01 00:00 UTC.
    rÈ   rÉ   zMfrom matplotlib.tests.test_determinism import _save_figure; _save_figure('', rÊ   rË   rÌ   rÍ   TF)rÐ   rÒ   rÑ   rÓ   NrÔ   )r¾   ÚstringÚbufs      r'   Ú"test_determinism_source_date_epochrâ   É   s†   € õ2 %Ý	Œ˜˜tð
&Ø ð
&ð 
&ð 
&ð	'ð"�rŒzð "°Ø ð"ð "ð "Ø26¸UÈ$ðPñ Pô Pô
 QWð ð �Sˆ=ˆ=ˆ=ˆ=ˆ=ˆ=r)   )&rg   rÖ   rº   rÛ   Ú
matplotlibr¬   r   r‚   Úmatplotlib.cbookr   Úmatplotlib.collectionsr   Úmatplotlib.imager   Úmatplotlib.offsetboxr   r   Úmatplotlib.patchesr	   r
   Úmatplotlib.pathr   Úmatplotlib.testingr   Úmatplotlib.testing._markersr   r   Úmatplotlib.testing.compareÚmatplotlib.textr   Úmatplotlib.transformsr   rÁ   ÚmarkÚparametrizeÚparamrÞ   râ   © r)   r'   ú<module>ró      s  ððð ð 
€	€	€	Ø 
€
€
€
à €€€à Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø &Ð &Ð &Ð &Ð &Ð &Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø  Ð  Ð  Ð  Ð  Ð  Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðA$ð A$ð A$ð A$ðH „×ÒØØØØØØØØˆŒ�V˜T 4°Ð>OÐ/PÐQÑQÔQØØØˆŒ�V˜U D°Ð=Ñ=Ô=ðñô ð!ð !ñô ð!ð< „×ÒØØ5ð
 	<ðñ	ô 	ðð ñ	ô 	ðð ð r)   