o
    ØtBh®  ã                	   @   sD  d dl m Z  d dlZd dlmZ d dlZd dlmZ d dlmZ d dl	Z	d dl
Zd dlZd dlmZ d dlZd dlmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZmZ d dlmZmZm Z  d dl!m"Z# d dl$m%Z& d dl'm(Z( edgddge )¡ dkr„d ndddd„ ƒZ*dd„ Z+dd„ Z,dd„ Z-dd„ Z.edgƒdd„ ƒZ/ed gƒd!d"„ ƒZ0d#d$„ Z1d%d&„ Z2d'd(„ Z3ed)gƒd*d+„ ƒZ4d,d-„ Z5ed.gddgd/d0d1œd2d3d4„ ƒZ6d5d6„ Z7d7d8„ Z8d9d:„ Z9d;d<„ Z:d=d>„ Z;ej< =d?g d@¢¡dAdB„ ƒZ>ej? @dC¡dDdE„ ƒZAej< =dFdGejBfdHejCdGfg¡dIdJ„ ƒZDdKdL„ ZEdMdN„ ZFdOdP„ ZGdQdR„ ZHdSdT„ ZIej< =dUejJdVej< KdV¡gdWejJdXej< KdX¡gdWg¡dYdZ„ ƒZLd[d\„ ZMd]d^„ ZNd_d`„ ZOeddagdbdcdd„ ƒZPej< =deg df¢¡dgdh„ ƒZQdidj„ ZRdkdl„ ZSdmdn„ ZTej< =dodpdqg¡drds„ ƒZUdtdu„ ZVej? @dv¡dwdx„ ƒZWdydz„ ZXed{gdvd|d}d~œdd€dd‚„ ƒZYeg dƒ¢dbd„d…„ ƒZZG d†d‡„ d‡ƒZ[dˆd‰„ Z\edŠgdvd‹d}idŒd€ddŽ„ ƒZ]dd„ Z^ed‘gdvd‹d}idŒd€d’d“„ ƒZ_ed”gdvd‹d}idŒd€d•d–„ ƒZ`d—d˜„ Zaej? @dv¡d™dš„ ƒZbed›gdvddœddž„ ƒZcdŸd „ Zdd¡d¢„ Zed£d¤„ Zfd¥d¦„ Zgd§d¨„ ZhdS )©é    )ÚdatetimeN)ÚPath)ÚTimer)ÚSimpleNamespace)ÚImage)ÚcbookÚrcParams)ÚMatplotlibDeprecationWarning)Úimage_comparisonÚcheck_figures_equal)ÚAxes)ÚFigureÚ
FigureBase)ÚAutoMinorLocatorÚFixedFormatterÚScalarFormatterÚfigure_align_labelsÚpngÚsvgÚx86_64ç{®Gáz„?)Ú
extensionsÚtolc                  C   sœ  t jdd} t dd¡}|  |dd d…f ¡}| t ddd¡¡ | d¡ |  |d	 ¡}| t dd
d¡¡ t	dƒD ]G}|  |d|f ¡}| d| ¡ | 
d| ¡ |dv rc|j d¡ |j ¡  |dkrs| ¡ D ]}| d¡ qk|dkr‚|j d¡ |j ¡  q;t	dƒD ]@}|  |d|f ¡}| 
d|› ¡ | d|› ¡ |dkrÇ| t dd
d¡¡ |j d¡ |j ¡  | ¡ D ]}| d¡ q¿q‡|  ¡  d S )NT)Útight_layouté   r   é   g    €„.Aéè  z	Ylabel0 0)r   éÿÿÿÿg     ˆÃ@éd   é   z
YLabel1 %dz
XLabel1 %d)r   r   ÚtopéZ   ÚrightzXLabel2 zYLabel2 é
   )ÚpltÚfigureÚgridspecÚGridSpecÚadd_subplotÚplotÚnpÚarangeÚ
set_ylabelÚrangeÚ
set_xlabelÚxaxisÚset_label_positionÚtick_topÚget_xticklabelsÚset_rotationÚyaxisÚ
tick_rightÚalign_labels)ÚfigÚgsÚaxÚiÚtick© r<   ús/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_figure.pyÚtest_align_labels   sB   


€
€r>   c                  C   s
  t  dd¡\} }t|jƒD ]\}}| d¡ | d¡ | t d¡| t d¡| ¡ q|  ¡  |  	¡  |  
¡  t d¡}t d¡}t|jƒD ]\}}|jj ¡ d ||< |jj ¡ d ||< qGtj |d d… |dd … ¡ tj |d d d… |dd d… ¡ t jdddd\} }t|jƒD ]\}}| d¡ | d¡ | tj d	d	¡¡}q| j||d
 |  ¡  |  	¡  |  
¡  t d¡}t d¡}t|jƒD ]\}}|jj ¡ d ||< |jj ¡ d ||< qÊtj |d d… |dd … ¡ tj |d d d… |dd d… ¡ d S )Nr   ÚBooÚWhoé   r   r   T©Úconstrained_layoutr#   ©r9   )r$   ÚsubplotsÚ	enumerateÚflatr.   r)   r*   r+   Úalign_ylabelsÚalign_xlabelsÚdraw_without_renderingÚzerosr/   ÚlabelÚget_positionr4   ÚtestingÚassert_allcloseÚ
pcolormeshÚrandomÚrandnÚcolorbar)r7   ÚaxsÚnnr9   ÚxnÚynÚpcr<   r<   r=   Útest_align_labels_stray_axesB   s>   

"

"



&rY   c                  C   s  t  d¡ t  d¡} t  d¡ t  d¡ t  ¡  t  d¡ t  d¡ t  d¡ t  ¡ g d¢ks1J ‚t  ¡ g d¢ks;J ‚t  d	¡ t  ¡  t  d
¡ t  d¡ t  ¡ ddgksXJ ‚t  ¡ ddgksbJ ‚t  | ¡ t  ¡ | ksoJ ‚t t¡ t  t	ƒ ¡ W d   ƒ d S 1 s†w   Y  d S )NÚallÚtodayr   Útomorrowr   r   )r   r   r   rA   é   )Ú r[   r^   r\   r^   r#   r]   r^   )
r$   Úcloser%   Úget_fignumsÚget_figlabelsÚgcfÚpytestÚraisesÚ
ValueErrorr   )Ú	fig_todayr<   r<   r=   Útest_figure_labele   s*   










"ÿrg   c                   C   s’   t  d¡ t  d¡ t  d¡ t  ¡  t  d¡sJ ‚t  d¡s!J ‚t  d¡s(J ‚t  d¡s/J ‚t  d¡ t  d¡ t  d¡r@J ‚t  d¡rGJ ‚d S )NÚoner   ÚthreerA   )r$   r%   Úfignum_existsr_   r<   r<   r<   r=   Útest_fignum_exists}   s   




rk   c                  C   sº   d} d}t jdd}| | ¡ dd„ |jD ƒ| gksJ ‚t jddd}| d	d	|¡ ||u s0J ‚d
d„ |jD ƒ| |gks>J ‚t jddddd\}}||u sOJ ‚dd„ |jD ƒg ks[J ‚d S )NzA fancy plotzReally fancy!r   )Únumc                 S   ó   g | ]}|  ¡ ‘qS r<   ©Úget_text©Ú.0Útr<   r<   r=   Ú
<listcomp>”   ó    z$test_clf_keyword.<locals>.<listcomp>F)rl   Úclearç      à?c                 S   rm   r<   rn   rp   r<   r<   r=   rs   ™   rt   r   Tc                 S   rm   r<   rn   rp   r<   r<   r=   rs      rt   )r$   r%   ÚsuptitleÚtextsÚtextrE   )Útext1Útext2Úfig0Úfig1Úfig2Úax2r<   r<   r=   Útest_clf_keyword   s   
r€   Úfigure_todayc                  C   sh   t  d¡} |  ¡ }| |  ¡ ¡ | t d¡¡ t  d¡ t  ddgddgd¡ t  d¡ t  d¡ d S )Nr[   r]   r\   r   r   Úr)	r$   r%   r(   Ú	set_titleÚ	get_labelr)   r*   r+   r_   ©r7   r9   r<   r<   r=   Útest_figure    s   


r†   Úfigure_legendc                  C   s°   t  d¡\} }|d jddgddgddd |d jddgddgddd |d jddgd	d	gdd
d |d jddgddgddd |d jddgddgddd |  ¡  d S )Nr   r   r   ÚxÚg)rL   ÚcolorÚyr‚   rv   ÚkÚ_yÚzÚb)r$   rE   r)   Úlegend©r7   rT   r<   r<   r=   Útest_figure_legend¯   s   r’   c                  C   s  t  ¡ } t t¡ |  ¡ d u sJ ‚W d   ƒ n1 sw   Y  |  g d¢¡}tjtdd | jdd|u s:J ‚W d   ƒ n1 sDw   Y  |  ¡ |u sQJ ‚| jg d¢d}tjtdd | jdd|u skJ ‚W d   ƒ n1 suw   Y  |  ¡ |u s‚J ‚| j	dd	d}|  ¡ |u s‘J ‚tjtdd | jd
d|u s£J ‚W d   ƒ n1 s­w   Y  |  	d¡}|  ¡ |u s¿J ‚tjtdd | jd
d|u sÑJ ‚W d   ƒ n1 sÛw   Y  tjtdd | jd
d|usòJ ‚W d   ƒ n1 süw   Y  |  ¡  
¡  ¡ dksJ ‚|  |¡ | j||||gksJ ‚|  ¡ |u s(J ‚|  	|¡ | j||||gks9J ‚|  ¡ |u sBJ ‚|  |¡ tjtdd | jdd|u sZJ ‚W d   ƒ n	1 sew   Y  |  ¡ |u ssJ ‚| j||||gksJ ‚d S )N©r   r   r   r   z5Calling gca\(\) with keyword arguments was deprecated©ÚmatchÚrectilinear©Ú
projection)çš™™™™™¹?r™   çš™™™™™é?rš   ©Úrectéy   ÚpolarT)rž   éz   )r   r   r   r   )r$   r%   rc   rd   Ú	TypeErrorÚadd_axesÚwarnsr	   Úgcar(   Úget_subplotspecÚget_geometryÚaxesÚsca)r7   Úax0Úax1r   Úax3r<   r<   r=   Útest_gca»   st   ÿþýþýþý
þýþý


þýr«   c                  C   sø   t  ¡ } | jtd t t¡ | jtdd W d   ƒ n1 s!w   Y  t t¡ | jtdd W d   ƒ n1 s=w   Y  t t¡ | jddd W d   ƒ n1 sYw   Y  t t¡ | jdd W d   ƒ d S 1 suw   Y  d S )	N)Ú
axes_classÚ3d)r¬   r˜   T)r¬   rž   )r˜   rž   é*   r—   )r$   r%   r(   r   rc   rd   re   r    ©r7   r<   r<   r=   Útest_add_subplot_subclassú   s   ÿÿÿ"ÿr°   c                  C   s¨  t  ¡ } tjtdd |  ddd¡ W d   ƒ n1 sw   Y  tjtdd |  ddd¡ W d   ƒ n1 s;w   Y  tjtdd |  ddd¡ W d   ƒ n1 sYw   Y  tjtdd |  ddd¡ W d   ƒ n1 sww   Y  tjtd	d |  d
¡ W d   ƒ n1 s“w   Y  tjtd	d |  d¡ W d   ƒ n1 s¯w   Y  tjtdd |  dd¡ W d   ƒ n1 sÌw   Y  tjtdd |  dddd¡ W d   ƒ n1 sëw   Y  tjtdd |  ddd¡ W d   ƒ n	1 s
w   Y  tjtdd |  ddd¡ W d   ƒ n	1 s)w   Y  t  ¡ \}}tjtdd |  |¡ W d   ƒ d S 1 sMw   Y  d S )Nz,Number of columns must be a positive integerr”   r   r   r   z)Number of rows must be a positive integerznum must be 1 <= num <= 4r]   zmust be a three-digit integerr®   r   z2takes 1 or 3 positional arguments but 2 were givenz2takes 1 or 3 positional arguments but 4 were givenr   rA   z2Number of rows must be a positive integer, not '2'Ú2z5Number of columns must be a positive integer, not 2.0g       @z8The Subplot must have been created in the present figure)r$   r%   rc   rd   re   r(   r    rE   ©r7   Ú_r9   r<   r<   r=   Útest_add_subplot_invalid  sZ   ÿþÿþÿÿÿÿþþÿýÿýÿ$ýr´   Úfigure_suptitlec                  C   s.   t  ¡ \} }| jddd | jdddd d S )NÚhellor‚   )rŠ   Útitler‰   Ú30)rŠ   Úrotation)r$   rE   rw   )r7   r³   r<   r<   r=   Útest_suptitle.  s   rº   c                  C   sV   t  ¡ \} }tjjddd}| jd|d}| ¡ | ¡ ksJ ‚| ¡ | ¡ ks)J ‚d S )NÚlargeÚbold)ÚsizeÚweightzfontprops title)Úfontproperties)	r$   rE   ÚmplÚfont_managerÚFontPropertiesrw   Úget_fontsizeÚget_size_in_pointsÚ
get_weight)r7   r9   ÚfpsÚtxtr<   r<   r=   Útest_suptitle_fontproperties5  s
   rÈ   Úalpha_background©r   r   çš™™™™™Ù?Únone)Ú	facecolorÚ	edgecolor)r   Úsavefig_kwargc                  C   sJ   t jddgd} |  d¡ | j d¡ | j tjjddgddd	d
¡ d S )Nr   r   ©ÚfigsizerÊ   rË   é   é   ç333333ã?Úred)ÚradiusÚalpharÍ   )	r$   r%   Úset_facecolorÚpatchÚ	set_alphaÚpatchesÚappendrÀ   ÚCirclePolygonr¯   r<   r<   r=   Ú
test_alpha=  s   
ÿrÞ   c                  C   sN   t  t¡ ttd d ƒD ]} t ¡  qW d   ƒ d S 1 s w   Y  d S )Nzfigure.max_open_warningr   )rc   r¢   ÚRuntimeWarningr-   r   r$   r%   )r:   r<   r<   r=   Útest_too_many_figuresL  s
   
ÿ"ÿrà   c                     sL   G dd„ dt ƒ‰ G ‡ fdd„dƒ} t ¡ }|jddd| ƒ d t |¡ d S )Nc                   @   s   e Zd Zddœdd„ZdS )z.test_iterability_axes_argument.<locals>.MyAxesN)Úmyclassc                _   s   t j| g|¢R i |¤ŽS ©N)r   Ú__init__)Úselfrá   ÚargsÚkwargsr<   r<   r=   rã   ^  s   z7test_iterability_axes_argument.<locals>.MyAxes.__init__)Ú__name__Ú
__module__Ú__qualname__rã   r<   r<   r<   r=   ÚMyAxes]  s    rê   c                       s    e Zd Zdd„ Z‡ fdd„ZdS )z/test_iterability_axes_argument.<locals>.MyClassc                 S   s   |dkrt dƒ‚d S )NÚazitem should be a)re   )rä   Úitemr<   r<   r=   Ú__getitem__c  s   ÿz;test_iterability_axes_argument.<locals>.MyClass.__getitem__c                    s   ˆ d| ifS )Nrá   r<   ©rä   ©rê   r<   r=   Ú_as_mpl_axesg  s   z<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axesN)rç   rè   ré   rí   rð   r<   rï   r<   r=   ÚMyClassa  s    rñ   r   r—   )r   r$   r%   r(   r_   )rñ   r7   r<   rï   r=   Útest_iterability_axes_argumentR  s
   	rò   c                  C   s–   t  ¡ } |  d¡ |  ¡ dksJ ‚|  d¡ |  ¡ dksJ ‚|  dd¡ |  ¡ dks,J ‚|  ¡ dks4J ‚|  d¡ |  ¡ dksAJ ‚|  ¡ dksIJ ‚d S )Nr]   r   r   rA   )r   r   r   )r$   r%   Úset_figwidthÚget_figwidthÚset_figheightÚget_figheightÚset_size_inchesr¯   r<   r<   r=   Útest_set_fig_sizeo  s   


rø   c                  C   sh   t  dd¡\} }|d  ¡  | ¡ d d… D ]	}|| jv sJ ‚q|d | jvs)J ‚t| jƒdks2J ‚d S )Nr   )r   r   r   r   )r$   rE   ÚremoveÚravelr¦   Úlen©r7   rT   r9   r<   r<   r=   Útest_axes_remove…  s   rý   c                  C   s˜   t  t d¡t d¡ ¡\} }||  dksJ ‚t  d¡\} }||  dks&J ‚t  t d¡¡\} }||  dks8J ‚t  t d¡¡\} }||  dksJJ ‚d S )Nr   r   )r   r   rv   )r   r   )r$   Ú	figaspectr*   Úfloat64rK   )ÚwÚhr<   r<   r=   Útest_figaspectŽ  s   r  Úwhich)ÚbothÚmajorÚminorc           
      C   s,  g d¢}g d¢}d}g d¢}t  |¡}t  |¡}t ¡ \}}| ||¡ | ¡  | ¡  |j t	dƒ¡ t
 ¡  t
 dd¡ |j t|ƒ¡ W d   ƒ n1 sQw   Y  | d|d	| ¡ | d
v rx|jd  dd¡D ]}	t|	 ¡ ƒ|kswJ ‚qk| dv r’|jd  dd¡D ]}	t|	 ¡ ƒ|ks‘J ‚q…d S d S )N)z
3 Jan 2013z
4 Jan 2013z
5 Jan 2013z
6 Jan 2013z
7 Jan 2013z
8 Jan 2013z
9 Jan 2013z10 Jan 2013z11 Jan 2013z12 Jan 2013z13 Jan 2013z14 Jan 2013)z16:44:00z16:45:00z16:46:00z16:47:00z16:48:00z16:49:00z16:51:00z16:52:00z16:53:00z16:55:00z16:56:00z16:57:00é<   )r   r   r   rA   r]   é   é   r   Úignorez=FixedFormatter should only be used together with FixedLocatorçš™™™™™É?r"   )r  r  r   Fr  )r  r  Tr  )ÚmdatesÚdatestr2numr$   rE   r)   Ú
yaxis_dateÚ
xaxis_dater/   Úset_minor_locatorr   ÚwarningsÚcatch_warningsÚfilterwarningsÚset_minor_formatterr   Úautofmt_xdater¦   r2   ÚintÚget_rotation)
r  ÚdateÚtimeÚangleÚminorsrˆ   r‹   r7   r9   rL   r<   r<   r=   Útest_autofmt_xdate™  s6   


þüþr  Údefaultc                  C   sn   t jdd} |  ¡  | jjjdksJ ‚| jjjdksJ ‚d| _|  ¡  | jjjdks,J ‚| jjjdks5J ‚d S )N)rA   rA   rÐ   i  é2   éÈ   )r$   r%   rJ   ÚcanvasÚrendererÚheightÚwidthÚdpir¯   r<   r<   r=   Útest_change_dpiÁ  s   r%  zwidth, heightr   )r   r   c                 C   s~   t  t¡ tj| |fd W d   ƒ n1 sw   Y  t ¡ }t  t¡ | | |¡ W d   ƒ d S 1 s8w   Y  d S )NrÐ   )rc   rd   re   r$   r%   r÷   )r#  r"  r7   r<   r<   r=   Útest_invalid_figure_sizeÍ  s   ÿ"ÿr&  c                  C   sÔ   t  ¡ } t t¡ |  dddtjf¡ W d   ƒ n1 sw   Y  tjtdd | jg d¢g d¢d W d   ƒ n1 s@w   Y  t  	¡ \}}tjtdd |  |¡ W d   ƒ d S 1 scw   Y  d S )Nr™   rv   z#multiple values for argument 'rect'r”   r“   r›   z5The Axes must have been created in the present figure)
r$   r%   rc   rd   re   r¡   r*   Únanr    rE   r²   r<   r<   r=   Útest_invalid_figure_add_axesÛ  s   ÿÿÿ"ýr(  c                  C   s  t jdddddd\} }|jD ]}| g d¢g d¢¡ q| d¡ | d¡ |dd d …f D ]}dt|jjdd	ƒks=J ‚q.|d
d d …f D ]}dt|jjdd	ƒk sUJ ‚qF|d d …d
f D ]}dt|j	jdd	ƒksmJ ‚q^|d d …df D ]}dt|j	jdd	ƒk s…J ‚qvd S )Nr   TF)ÚsharexÚshareyÚsqueeze)r#   rÒ   é   Úlogr   r  )r  r   )
r$   rE   rG   r)   Ú
set_yscaleÚ
set_xscalerû   r/   Úget_ticklabelsr4   rü   r<   r<   r=   Útest_subplots_shareax_loglabelsê  s   


ÿr1  c                  C   sL   t  ¡ } d}tjt|d |  dd¡ W d   ƒ d S 1 sw   Y  d S )Nz9savefig\(\) takes 2 positional arguments but 3 were givenr”   z
fname1.pngz
fname2.png)r$   r%   rc   rd   r    Úsavefig)r7   Úmsgr<   r<   r=   Útest_savefigÿ  s
   "ÿr4  c               	   C   s^   t  ¡ } d}dD ]$}tjtj|d | jt ¡ |dd W d   ƒ n1 s'w   Y  qd S )Nz@savefig\(\) got unexpected keyword argument "non_existent_kwarg")r   Úpdfr   ÚtifÚjpgr”   T)ÚformatÚnon_existent_kwarg)	r$   r%   rc   r¢   r   r	   r2  ÚioÚBytesIO)r7   r3  r8  r<   r<   r=   Útest_savefig_warns  s   ÿ€ÿr<  c                  C   s†   t  ¡ } tjtdd | jddd W d   ƒ n1 sw   Y  tjtdd | jddd W d   ƒ d S 1 s<w   Y  d S )	NzNo module named '@absent'r”   Útestzmodule://@absent)Úbackendz-The 'pdf' backend does not support png outputztest.pngr5  )r$   r%   rc   rd   ÚModuleNotFoundErrorr2  re   r¯   r<   r<   r=   Útest_savefig_backend  s   ÿÿ"þr@  r>  ÚAgg)ÚmarksÚCairoc                 C   sà   t  ¡ \}}| g d¢¡ t ¡ }|j|dd t |¡}| ¡  W d   ƒ n1 s,w   Y  t  ¡ \}}| g d¢¡ |j	 
d¡ t ¡ }|j|dd t |¡}| ¡  W d   ƒ n1 scw   Y  ||ksnJ ‚d S )N©r   r   r   r   )r8  r   )r$   rE   r)   r:  r;  r2  r   ÚopenÚloadr   Ú_set_device_pixel_ratio)r>  r7   r9   ÚbufÚratio1Úratio2r<   r<   r=   Útest_savefig_pixel_ratio  s    


ý


ýrK  c                  C   s"   t jddd} t| ƒdksJ ‚d S )N)r#   rÒ   r#   )rÑ   r$  z!<Figure size 100x200 with 0 Axes>)r$   r%   Úreprr¯   r<   r<   r=   Útest_figure_repr/  s   rM  c                  C   sj   t d d} |  ¡ rJ ‚|  ¡ rJ ‚t dd} |  ¡ sJ ‚|  ¡ r"J ‚t dd} |  ¡ r-J ‚|  ¡ s3J ‚d S )N©ÚlayoutÚtightÚconstrained)r   Úget_tight_layoutÚget_constrained_layoutr¯   r<   r<   r=   Útest_valid_layouts4  s   


rT  c                  C   s4  t jdd\} }t t¡ | jdd W d   ƒ n1 sw   Y  |  ¡ r)J ‚tjtdd tddd	} W d   ƒ n1 sAw   Y  |  ¡ sLJ ‚|  ¡ rRJ ‚tjtd
d tddd} W d   ƒ n1 sjw   Y  |  ¡ ruJ ‚|  ¡ s{J ‚tj	t
dd tdd W d   ƒ d S 1 s“w   Y  d S )NTrB   rš   )r    z4Figure parameters 'layout' and 'tight_layout' cannotr”   rP  F)rO  r   z:Figure parameters 'layout' and 'constrained_layout' cannotrQ  )rO  rC   z('foobar' is not a valid value for layoutÚfoobarrN  )r$   rE   rc   r¢   ÚUserWarningÚsubplots_adjustrS  r   rR  rd   re   r…   r<   r<   r=   Útest_invalid_layoutsB  s(   þþþÿ"þrX  r5  ©r   c           	   	   C   s6  |   d¡ |  d¡ |  ¡  tjddgddgdd}tjddgddgdd}tjddd d	d
}tjdddd}tjdd| jddd}|||||fD ]}|  |¡ qI| ¡  | ¡ }tjddgddg|jddd}tjddd ddd	d}tjdd|jddd}tjdd|jddddd}||||fD ]}| |¡ q‘d S )Nr   r  çffffffæ?Úl1)Úgidrš   Úl2)rÒ   rÒ   ÚC1)Ú	transformr\  )rZ  rv   çš™™™™™©?ÚC2)g      @rš   gš™™™™™á?ÚcrimsonÚC3)r_  rÍ   r\  é   )r_  r\  ÚzorderFrÒ   )r_  Úclip_onre  r\  )r_  rÍ   rf  re  r\  )	Úset_dpirE   r$   ÚLine2DÚCircleÚdpi_scale_transÚ
add_artistrù   ÚtransFigure)	Úfig_testÚfig_refr[  r]  Úr1Úr2Úr3rë   r   r<   r<   r=   Útest_add_artist[  s:   

ÿÿÿÿÿÿrr  Úfmt)r   r5  ÚpsÚepsr   c                 C   sf   t |d | ¡ƒ}t |¡ | d¡}|  d¡| d¡ ¡ v s!J ‚W d   ƒ d S 1 s,w   Y  d S )Nztest.{}ÚrbÚasciir   )r   r8  r$   r2  rE  ÚencodeÚreadÚlower)rs  ÚtmpdirÚoutÚfiler<   r<   r=   Útest_fspathx  s
   
"ýr~  c                  C   sV  t  ¡ \} }| dd¡ | ddd¡}| j ¡ }d}t| |¡j|| j	  ƒdk s+J ‚t| |¡j|| j	  ƒdk s<J ‚t|  |¡j| ƒdk sJJ ‚t|  |¡j
d	 ƒdk sXJ ‚| d
¡ d}t| |¡j|| j	  ƒdk spJ ‚t|  |¡j| ƒdk s~J ‚| d¡ d}t| |¡j|| j	  ƒdk s–J ‚t|j|g dj|| j	  ƒdk s©J ‚d S )Nr   r   g      ð?rv   zThis dangles over endgR¸…ë"@r   r`  gî|?5^ºå?Fg¢E¶óýT@T)Úbbox_extra_artists)r$   rE   Úset_xlimry   r   Úget_rendererÚabsÚget_tightbboxÚx1r$  Úx0Úset_in_layout)r7   r9   rr   r!  Úx1Nom0Úx1Nomr<   r<   r=   Útest_tightbbox‚  s*   
""
"
"ÿÿr‰  c                  C   sØ   t jdddd\} }|d  ¡  |d  tdddƒtdddƒgddg¡ t|d j ¡ tj	ƒs1J ‚t jdddd\} }|d j 
tƒ ¡ |d  ¡  |d  tdddƒtdddƒgddg¡ t|d j ¡ tƒsjJ ‚d S )Nr   r   T©r)  r   iÐ  )r$   rE   rù   r)   r   Ú
isinstancer/   Úget_major_formatterr  ÚAutoDateFormatterÚset_major_formatterr   r‘   r<   r<   r=   Útest_axes_removal›  s   (ÿ(ÿr  c                  C   s,   t jddd\} }|d  ¡  | j ¡  d S )Nr   TrŠ  r   )r$   rE   rù   r   Údrawr‘   r<   r<   r=   Útest_removed_axis­  s   r‘  Ú
clear_methru   Úclfc                    s  t  ¡ ‰ ˆ  ¡  ˆ jg ksJ ‚ˆ  d¡}tˆ | ƒƒ  ˆ jg ks!J ‚‡ fdd„tdƒD ƒ}tˆ | ƒƒ  ˆ jg ks9J ‚ˆ jddd‰ˆ  ˆd ¡}| d¡}tˆ | ƒƒ  |ˆ j	vsYJ ‚ˆ jg ks`J ‚ˆ  ˆd ¡}| d¡}ˆ  ˆd ¡}| 
¡  ˆ j|gksJ ‚ˆ  ˆd ¡}| 
¡  ˆ j|gks’J ‚|ˆ j	v s™J ‚| d¡}|ˆ jv s¥J ‚|ˆ jv s¬J ‚t|| ƒƒ  |ˆ j	v s¹J ‚||jvsÀJ ‚|ˆ jvsÇJ ‚|ˆ jv sÎJ ‚| d¡}tˆ | ƒƒ  ˆ jg ksàJ ‚ˆ j	g ksçJ ‚‡ ‡fdd„d	D ƒ}d
d„ |D ƒ}t‡ fdd„|D ƒƒsJ ‚t‡ fdd„|D ƒƒsJ ‚t|d | ƒƒ  |d ˆ jvs&J ‚|d ˆ jv s0J ‚|d ˆ j	v s:J ‚t|d | ƒƒ  ‡ ‡fdd„d	D ƒ}dd„ |D ƒ}t‡ fdd„|D ƒƒsaJ ‚t‡ fdd„|D ƒƒsoJ ‚tˆ | ƒƒ  ˆ j	g ks}J ‚ˆ jg ks…J ‚d S )Néo   c                    s   g | ]}ˆ   d d|d ¡‘qS ©r   r   ©r(   ©rq   r:   r¯   r<   r=   rs   Ã  s    z%test_figure_clear.<locals>.<listcomp>r   r   )ÚncolsÚnrowsr   c                    ó   g | ]	}ˆ   ˆ| ¡‘qS r<   ©Úadd_subfigurer—  ©r7   r8   r<   r=   rs   ð  ó    ©r   r   c                 S   ó   g | ]}|  d ¡‘qS ©r”  r–  ©rq   Úsfigr<   r<   r=   rs   ñ  ó    c                 3   ó    | ]}|ˆ j v V  qd S râ   ©r¦   ©rq   r9   r¯   r<   r=   Ú	<genexpr>ò  ó   € z$test_figure_clear.<locals>.<genexpr>c                 3   r¥  râ   ©Úsubfigsr¢  r¯   r<   r=   r¨  ó  r©  c                    rš  r<   r›  r—  r  r<   r=   rs   ý  rž  c                 S   r   r¡  r–  r¢  r<   r<   r=   rs   þ  r¤  c                 3   r¥  râ   r¦  r§  r¯   r<   r=   r¨  ÿ  r©  c                 3   r¥  râ   rª  r¢  r¯   r<   r=   r¨     r©  )r$   r%   ru   r¦   r(   Úgetattrr-   Úadd_gridspecrœ  r«  rù   rZ   )r’  r9   r¦   ÚsubfigÚsubaxesÚmainaxesr«  r<   r  r=   Útest_figure_clear´  sh   




r±  c                  C   s    t  ¡ D ]	} d| jvsJ ‚qd S )Nr“  )r   Ú__subclasses__Ú__dict__)Úklassr<   r<   r=   Útest_clf_not_refedined  s   þrµ  Úmpl20c                  C   s€   t  ¡ \} }|jdgdgdgdd}| j ¡  | jrJ ‚t|jj|jj	d  |jj
|jjd  |d d}|  |¡ | jr>J ‚d S )Nr   r   T)Úpickerr   )rˆ   r‹   ÚinaxesÚguiEvent)r$   rE   Úscatterr   r  Ústaler   Úbboxr…  r#  Úy0r"  Úpick)r7   r9   ÚcolÚmouse_eventr<   r<   r=   Útest_picking_does_not_stale  s   

þ
rÁ  c                  C   s>  t  ¡ } |  ddd¡}| ¡ jtddƒksJ ‚| ¡ jtddƒks#J ‚|  ddd¡}| ¡ jtddƒks6J ‚| ¡ jtddƒksBJ ‚|  ddd¡}| ¡ jtddƒksUJ ‚| ¡ jtddƒksaJ ‚|  ddd¡}| ¡ jtddƒkstJ ‚| ¡ jtddƒks€J ‚t t	¡ |  ddd	¡ W d   ƒ d S 1 s˜w   Y  d S )
Nr   r   ©r   r]   r   r   )rA   r  )r   r  )rA   r]   )r  r   )
r$   r%   r(   r¤   Úrowspanr-   Úcolspanrc   rd   Ú
IndexError)r7   r©   r   rª   Úax4r<   r<   r=   Útest_add_subplot_twotuple  s    "ÿrÇ  ztightbbox_box_aspect.svgrP  Úteal)Úbbox_inchesrÍ   T)ÚstylerÏ   Úremove_textc                  C   sL   t  ¡ } |  dd¡}|  |d ¡}| j|d dd}| d¡ | d¡ d S )	Nr   r   ©r   r   rŸ  r­   r—   rv   )r   r   r   )r$   r%   r­  r(   Úset_box_aspect)r7   r8   r©   r   r<   r<   r=   Útest_tightbbox_box_aspect,  s   
rÎ  )r   r5  ru  r   c                 C   s4   |  ¡ }| tdƒ¡ |   ¡ }|jtdƒdd d S )Nr]   T)Úanimated)rE   r)   r-   )rm  rn  Úax_refÚax_testr<   r<   r=   Ú test_animated_with_canvas_change9  s   rÒ  c                   @   s  e Zd Zedgdej dg d¢g d¢gg d¢g d¢gg¡dd	„ ƒƒZedgdd
d„ ƒZedgddd„ ƒZ	edgddd„ ƒZ
edgdej dddgddggdfddgddggdfddgddggdfddgddggdfddgddggdfddgddggdfg¡dd„ ƒƒZdd„ Zedgdej di ddidg¡d d!„ ƒƒZd"d#„ Zedgdej d$g d%¢¡d&d'„ ƒƒZej d(ddgddggd)fddgdddgd*d+ggggd,fd-ddd*gd+gggd.d.ggd/fg¡d0d1„ ƒZedgdd2d3„ ƒZej d$g d4¢¡d5d6„ ƒZd7d8„ Zd9d:„ ZdS );ÚTestSubplotMosaicr   rY  rˆ   )ÚArÔ  ÚB)ÚCÚDrÕ  )r   r   r   )r   rA   r   c                 C   sÜ   |  |¡}| ¡ D ]	\}}| |¡ q	tt |¡ƒ}t|ƒt|ƒks$J ‚| dd¡}| |d d…d d…f ¡}	|	 |d ¡ | |d d …df ¡}
|
 |d ¡ | |d ¡}| |d ¡ | |d ¡}| |d ¡ d S )Nr   r   r   r   ©r   r   ©r   r   )	Úsubplot_mosaicÚitemsrƒ   Úsortedr*   Úuniquerû   r­  r(   )rä   rm  rn  rˆ   Ú	grid_axesrŒ   r9   Úlabelsr8   ÚaxAÚaxBÚaxCÚaxDr<   r<   r=   Ú
test_basicC  s   
zTestSubplotMosaic.test_basicc                 C   s  ddgddgg}ddgddgg}|  d	¡ |  d	¡ | ||gg¡}| ¡ D ]	}| | ¡ ¡ q&| d
d¡}|d  dd¡}t|ƒD ]\}	}
t|
ƒD ]\}}| ||	|f ¡ |¡ qJqB|d  dd¡}t|ƒD ]\}	}
t|
ƒD ]\}}| ||	|f ¡ |¡ qpqhd S )NrÔ  rÕ  rÖ  r×  ÚEÚFÚGÚHTr   r   rÌ  rŸ  )	Úset_constrained_layoutrÚ  Úvaluesrƒ   r„   r­  ÚsubgridspecrF   r(   )rä   rm  rn  rˆ   r‹   rÞ  r9   r8   Úgs_leftÚjr‚   rŒ   rL   Úgs_rightr<   r<   r=   Útest_all_nested^  s&   

ÿÿÿz!TestSubplotMosaic.test_all_nestedc                 C   sî   |  d¡ |  d¡ ddgddgg}dg|gg}| |¡}| ¡ D ]	\}}| |¡ q!| dd¡}|d	  dd¡}	| |	d
 ¡}
|
 d¡ | |	d ¡}| d¡ | |	d	 ¡}| d¡ | |	d ¡}| d¡ | |d
 ¡}| d¡ d S )NTrÔ  rÕ  rÖ  r×  ræ  r   r   rØ  rÌ  rŸ  rÙ  )ré  rÚ  rÛ  rƒ   r­  rë  r(   )rä   rm  rn  rˆ   r‹   rÞ  rŒ   r9   r8   Úgs_nrà  rá  râ  rã  ÚaxFr<   r<   r=   Útest_nestedu  s&   






zTestSubplotMosaic.test_nestedc                 C   s<   g d¢g d¢g}d}|  dg|gg¡ |  dg|gg¡ d S )N©rÔ  rÕ  rÕ  ©rÖ  rÖ  r×  )ró  rô  ræ  )rÚ  )rä   rm  rn  rˆ   Úxtr<   r<   r=   Útest_nested_tuple—  s   z#TestSubplotMosaic.test_nested_tuplezx, empty_sentinelrÔ  NrÕ  Ú.ÚSKIPr   r   r   c                 C   sº   |dkr	d|i}ni }|j |fi |¤Ž}| ¡ D ]	\}}| |¡ qtdd„ |D ƒ|dh ƒ}	t|	ƒt|ƒks9J ‚| dd¡}
| |
d ¡}| |	d ¡ | |
d	 ¡}| |	d
 ¡ d S )Nrø  Úempty_sentinelc                 S   s   h | ]	}|D ]}|’qqS r<   r<   )rq   ÚrowÚnamer<   r<   r=   Ú	<setcomp>¶  rž  z/TestSubplotMosaic.test_empty.<locals>.<setcomp>r÷  r   rÌ  r   rÙ  r   )rÚ  rÛ  rƒ   rÜ  rû   r­  r(   )rä   rm  rn  rˆ   rù  ræ   rÞ  rŒ   r9   rß  r8   rà  rá  r<   r<   r=   Ú
test_emptyŸ  s   
ÿzTestSubplotMosaic.test_emptyc                 C   s|   t jtdd t ddg¡ W d   ƒ n1 sw   Y  t jtdd t dg¡ W d   ƒ d S 1 s7w   Y  d S )Nz
must be 2Dr”   ÚfooÚbar)rc   rd   re   r$   rÚ  rî   r<   r<   r=   Útest_fail_list_of_strÂ  s   ÿ"ÿz'TestSubplotMosaic.test_fail_list_of_strÚ
subplot_kwr˜   rž   c           	      C   s\   ddgg}|j ||d}|pi }| dd¡}|j|d fi |¤Ž}|j|d fi |¤Ž}d S )Nr   r   )r  rÌ  rŸ  )rÚ  r­  r(   )	rä   rm  rn  r  rˆ   rÞ  r8   rà  rá  r<   r<   r=   Útest_subplot_kwÈ  s   
z!TestSubplotMosaic.test_subplot_kwc                 C   s²   t j}|dƒg d¢gksJ ‚|dƒddgddggksJ ‚|dƒddgddgdd	ggks-J ‚|d
ƒg d¢gks8J ‚|dƒddgddggksFJ ‚|dƒddgddgdd	ggksWJ ‚d S )NÚABC)rÔ  rÕ  rÖ  zAB;CCrÔ  rÕ  rÖ  zAB;CC;DEr×  rå  z7
                         ABC
                         zR
                         AB
                         CC
                         zn
                         AB
                         CC
                         DE
                         )r   Ú_normalize_grid_string)rä   Ú	normalizer<   r<   r=   Útest_string_parserÔ  s   "þýüz$TestSubplotMosaic.test_string_parserÚstr_pattern)zAAA
BBBz	
AAA
BBB
zABC
DEFc                 C   s,   |  |¡}|  dd„ | ¡  d¡D ƒ¡}d S )Nc                 S   s   g | ]}t |ƒ‘qS r<   )Úlist)rq   Úlnr<   r<   r=   rs   î  rt   z;TestSubplotMosaic.test_single_str_input.<locals>.<listcomp>Ú
)rÚ  ÚstripÚsplit)rä   rm  rn  r  rÞ  r<   r<   r=   Útest_single_str_inputæ  s   
ÿz'TestSubplotMosaic.test_single_str_inputzx,matchzS(?m)we found that the label .A. specifies a non-rectangular or non-contiguous area.rÖ  r×  z4There are duplicate keys .* between the outer layout)z	AAA
c
BBBú'All of the rows must be the same lengthrå  r  c                 C   sF   t  ¡ }tjt|d | |¡ W d   ƒ d S 1 sw   Y  d S )Nr”   )r$   r%   rc   rd   re   rÚ  )rä   rˆ   r•   r7   r<   r<   r=   Ú	test_failñ  s   "ÿzTestSubplotMosaic.test_failc                 C   s(   |  tƒ tƒ gg¡ |  ddgg¡ d S )NrÔ  rÕ  )rÚ  Úobject)rä   rm  rn  r<   r<   r=   Útest_hashable_keys  s   z$TestSubplotMosaic.test_hashable_keys)ÚabcÚcabÚbcaÚcbaÚacbÚbacc                 C   sD   t  ¡ }| |¡}t|ƒt|ƒksJ ‚t|jƒt| ¡ ƒks J ‚d S râ   ©r$   r%   rÚ  r  r¦   rê  )rä   r  r7   Úax_dictr<   r<   r=   Útest_user_order  s   
z!TestSubplotMosaic.test_user_orderc                 C   st   dddgddgggddgdd	d
gdgggggg}t  ¡ }| |¡}t|ƒtdƒks+J ‚t|jƒt| ¡ ƒks8J ‚d S )NrÔ  rÕ  rÖ  r×  rå  ræ  rç  r÷  rè  ÚIÚ	ABCDEFGHIr  ©rä   rO  r7   r  r<   r<   r=   Útest_nested_user_order  s   ÿÿü
z(TestSubplotMosaic.test_nested_user_orderc                 C   sx   dddgddgggddgdd	d
gdgggggg}t  ¡ }|j|ddd}|d jddd tdd„ | ¡ D ƒƒs:J ‚d S )NrÔ  rÕ  rÖ  r×  rå  ræ  rç  r÷  rè  r  T)r)  r*  r-  Úlogit)ÚxscaleÚyscalec                 s   s(    | ]}|  ¡ d ko| ¡ dkV  qdS )r-  r  N)Ú
get_xscaleÚ
get_yscaler§  r<   r<   r=   r¨  1  s   €  ÿz3TestSubplotMosaic.test_share_all.<locals>.<genexpr>)r$   r%   rÚ  ÚsetrZ   rê  r  r<   r<   r=   Útest_share_all&  s   ÿÿüÿz TestSubplotMosaic.test_share_all)rç   rè   ré   r   rc   ÚmarkÚparametrizerä  rï  rò  rö  rý  r   r  r  r  r  r  r  r  r%  r<   r<   r<   r=   rÓ  B  sr    
 ÿ




!

úþ


ÿýþþóþ


ÿ
rÓ  c                  C   sv   t  ¡ } |  ddd¡}|  ddd¡}t jddd| d}| ¡  ¡ }| ¡  ¡ }| ¡  ¡ }||ks3J ‚||ks9J ‚dS )	z)Test that these all use the same gridspecr   r   rÂ  rA   )r   r   r•  )rÄ  r7   N)r$   r%   r(   Úsubplot2gridr¤   Úget_gridspec)r7   r©   r   rª   Úgs1Úgs2Úgs3r<   r<   r=   Útest_reused_gridspec5  s   r-  ztest_subfigure.pngrÍ   Fc                  C   sä   t j d¡ tjdd} |  dd¡}|d  dd¡}|jD ]}|jt j 	dd¡ddd	}q|d j
||d
 |d  d¡ |d  dd¡}|jD ]}|jt j 	dd¡ddd	}qH|d j
||dd |d  d¡ | jddd d S )Né!N,TrB   r   r   r   r,  éþÿÿÿ©ÚvminÚvmaxrD   ú	Left Sider   Úbottom)r9   Úlocationz
Right SideúFigure suptitleúxx-large©Úfontsize)r*   rQ   Úseedr$   r%   Ú
subfiguresrE   rG   rP   rR   rS   rw   )r7   ÚsubrT   r9   rX   r<   r<   r=   Útest_subfigureD  s   

r=  c                  C   s8   t jdd} |  dd¡}tj |  | j ¡ ¡j	d¡ d S )NTrB   r   r   g       @)
r$   r%   r;  r*   rN   rO   rƒ  r   r  r#  )r7   r<  r<   r<   r=   Útest_subfigure_tightbbox[  s   þr>  ztest_subfigure_ss.pngc                  C   sº   t j d¡ tjdd} |  dd¡}| j|d dd}| dd¡}|jD ]}|j	t j 
d	d	¡d
dd}q$|j||d | d¡ |  |d ¡}| t  d¡¡ | d¡ | jddd d S )Nr.  TrB   r   r   r   Úpink)rÍ   r,  r/  r0  rD   r3  rÒ   r   r6  r7  r8  )r*   rQ   r:  r$   r%   r­  rœ  rE   rG   rP   rR   rS   rw   r(   r)   r+   rƒ   )r7   r8   r<  rT   r9   rX   r<   r<   r=   Útest_subfigure_sse  s   


r@  ztest_subfigure_double.pngc            
      C   sš  t j d¡ tjddd} |  d¡ | jdddd	}|d
  d¡ |d
  d¡ |d  d¡ |d  d¡ |d
 jddddgd}|d
  d¡ |d
  d¡ |d
 jdddd}|D ]&}d}|j	t j 
dd¡ddd}|jd|d |jd|d |jd|d q\|d
 j||d |d  d¡ |d  d¡ |d jdddd }t|ƒD ]\}}| d!|› ¡ q¨|d  d"¡ |d  d#¡ |d  dd¡}	d S )$Nr.  T)r#   é   ©rC   rÑ   r7   r   r   gìQ¸…ë±?)Úwspacer   Úcoralz
subfigs[0]z
subfigs[1]gffffffö?)Úheight_ratioszsubfigsnest[0]r‚   ©r*  é   r,  g      Àg      @r0  zx-labelr8  zy-labelÚTitlerD   zsubfigsnest[1]r‰   r   rŠ  ÚylabelÚ	supxlabelÚ	supylabel)r*   rQ   r:  r$   r%   rw   r;  rØ   rE   rP   rR   r.   r,   rƒ   rS   rF   rJ  rK  )
r7   r«  ÚsubfigsnestÚaxsnest0r9   r9  rX   Úaxsnest1rU   ÚaxsRightr<   r<   r=   Útest_subfigure_double}  s6   
rP  c               	   C   sV  t jdd} |  dd¡}|  |d ¡|  |dd…df ¡|  |ddd…f ¡|  |dd …dd …f ¡g}d}d	}tj |d jjd
|d d g¡ tj |d jj	|d |g¡ tj |d jj|d |d g¡ tj |d jj	|d d |g¡ tj |d jj|d dg¡ tj |d jj	||d g¡ t
dƒD ]}||  ¡  qœ|  ¡  d S )NTrB   r   rÌ  r   r   r   i€  ià  g        rA   )r$   r%   r­  rœ  r*   rN   rO   r¼  ÚminÚmaxr-   r(   rJ   )r7   r8   Úsub_figsr   r  r:   r<   r<   r=   Útest_subfigure_spanning¨  s$   ü"""rT  c            	      C   sò   t jddd} | jdddddgd\}}|jdd	d
}| |dd d…f ¡}|jddgddgd |j|ddd…f |d}|jddgddgd |j|ddd	…f |d}|  d¡ |  ¡  | ¡ }|  d¡ |  ¡  | ¡ }t	j
 ||¡ d S )NT)r#   r   rB  r   r   r   r	  )rC  Úwidth_ratiosé   )r™  r˜  r   gæû©!<LÀgkâX.8@iÜ  i  )rˆ   r‹   r   rF  g …ëYI¢_ÀgRã¥óÏ«W@éx   i,  )r$   r%   r;  r­  r(   rº  rg  rJ   Ú
get_xticksr*   rN   rO   )	r7   Ú	subfig_blÚ	subfig_brr8   r©   r   rª   Úticks120Úticks300r<   r<   r=   Útest_subfigure_ticksÅ  s"   

ÿ

r]  ztest_subfigure_scatter_size.png)rÊ  rË  c                  C   sÆ   t  ¡ } |  dd¡}|  |d ¡}|jg d¢g d¢ddd |jg d¢g d¢g d¢dd |  |d	 ¡}| dd¡}||d	 fD ] }|jg d¢g d¢ddd
d |jg d¢g d¢g d¢ddd q@d S )Nr   r   rD  r,  Ús)r^  Úmarker)r   rA   r]   )rÒ   r,  é(   r   r‚   )r^  r_  rŠ   r‰   )r$   r%   r­  r(   rº  rœ  rE   )r7   r8   r¨   r£  rT   r9   r<   r<   r=   Útest_subfigure_scatter_sizeá  s   "þra  c                  C   sê   t  ¡ } |  ddd¡}|  ddd¡}|d usJ ‚||usJ ‚t  ¡  t  ¡ } | jddddd}| jddddd}|d us>J ‚||usDJ ‚t  ¡  t  ¡ } | jddddd}|  ddd¡}|d usbJ ‚|jdksiJ ‚||usoJ ‚t  ¡  d S )Nr   rž   r—   r–   )r$   r%   r(   r_   rû  ©r7   r9   r©   r<   r<   r=   Útest_add_subplot_kwargsò  ó&   rc  c                  C   sê   t  ¡ } |  g d¢¡}|  g d¢¡}|d usJ ‚||usJ ‚t  ¡  t  ¡ } | jg d¢dd}| jg d¢dd}|d us>J ‚||usDJ ‚t  ¡  t  ¡ } | jg d¢dd}|  g d¢¡}|d usbJ ‚|jdksiJ ‚||usoJ ‚t  ¡  d S )Nr“   rž   r—   r–   )r$   r%   r¡   r_   rû  rb  r<   r<   r=   Útest_add_axes_kwargs  rd  re  c                    s~   t  dd¡ t ¡ \‰‰ ‡ ‡fdd„}td|ƒ ¡  ˆ ¡ dgks#J ‚‡ ‡fdd„}td|ƒ ¡  tj 	ˆ d	¡d
dg¡ d S )Nr
  úcannot show the figurec                      s"   ˆj jg ˆ j d¡¢d‘R Ž  d S )N©r™   r  r   )r   Úbutton_press_eventÚ	transDatar_  r<   ©r9   r7   r<   r=   Úsingle_press(  s   "z!test_ginput.<locals>.single_pressr™   rg  c                      sˆ   ˆj jg ˆ j d¡¢d‘R Ž  ˆj  d¡ ˆj jg ˆ j d¡¢d‘R Ž  ˆj jg ˆ j d¡¢d‘R Ž  ˆj jg ˆ j d¡¢d‘R Ž  d S )Nrg  r   Ú	backspace©g333333Ó?rË   ©rv   rÔ   rÌ  r   )r   rh  ri  r_  Úkey_press_eventr<   rj  r<   r=   Úmulti_presses.  s
   "z"test_ginput.<locals>.multi_pressesr   rm  rn  )
r  r  r$   rE   r   ÚstartÚginputr*   rN   rO   )Úrecwarnrk  rp  r<   rj  r=   Útest_ginput$  s   rt  c                 C   st   t  dd¡ t ¡ }|jddd u sJ ‚td|jjdƒ ¡  | ¡ du s&J ‚td|jj	dƒ ¡  | ¡ du s8J ‚d S )	Nr
  rf  r™   )Útimeout)rŽ   T)r   r   r   F)
r  r  r$   r%   Úwaitforbuttonpressr   r   ro  rq  rh  )rs  r7   r<   r<   r=   Útest_waitforbuttonpress9  s   rw  c                  C   s>   t dd} | jdddd}|  ¡ dksJ ‚| ¡ dksJ ‚d S )Nzwhole Figure)rL   r   z
sub figure)r   r;  r„   )r7   Úsub_figr<   r<   r=   Útest_kwargs_passC  s   
ry  )ir   r:  Úpathlibr   ÚplatformÚ	threadingr   Útypesr   r  Únumpyr*   rc   ÚPILr   Ú
matplotlibrÀ   r   r   Úmatplotlib._api.deprecationr	   Úmatplotlib.testing.decoratorsr
   r   Úmatplotlib.axesr   Úmatplotlib.figurer   r   Úmatplotlib.tickerr   r   r   Úmatplotlib.pyplotÚpyplotr$   Úmatplotlib.datesÚdatesr  Úmatplotlib.gridspecr&   Úmachiner>   rY   rg   rk   r€   r†   r’   r«   r°   r´   rº   rÈ   rÞ   rà   rò   rø   rý   r  r&  r'  r  rÊ  Úcontextr%  r'  Úinfr&  r(  r1  r4  r<  r@  Úparamr>  rK  rM  rT  rX  rr  r~  r‰  r  r‘  r±  rµ  rÁ  rÇ  rÎ  rÒ  rÓ  r-  r=  r>  r@  rP  rT  r]  ra  rc  re  rt  rw  ry  r<   r<   r<   r=   Ú<module>   sü    ÿ
'#

?'
ÿü
		

'
ý
	
þ


	
Q

ÿý
	
 tþ

þ
þ
(

ÿ

