U
    d»{j@µ  ã                	   @   sŠ  d dl Z d dlmZ d dlZd dlmZ d dl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 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!m"Z"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„ ƒZ0ed gƒd!d"„ ƒZ1d#d$„ Z2d%d&„ Z3d'd(„ Z4ed)gƒd*d+„ ƒZ5d,d-„ Z6ed.gddgd/d0d1œd2�d3d4„ ƒZ7d5d6„ Z8d7d8„ Z9d9d:„ Z:d;d<„ Z;d=d>„ Z<ej= >d?d@dAdBg¡dCdD„ ƒZ?ej@ AdE¡dFdG„ ƒZBej= >dHdIejCfdJejDdIfg¡dKdL„ ƒZEdMdN„ ZFdOdP„ ZGdQdR„ ZHdSdT„ ZIdUdV„ ZJej= >dWejKdXej= LdX¡gdY�ejKdZej= LdZ¡gdY�g¡d[d\„ ƒZMd]d^„ ZNd_d`„ ZOdadb„ ZPeddcgdd�dedf„ ƒZQej= >dgddcdhdidg¡djdk„ ƒZRdldm„ ZSdndo„ ZTdpdq„ ZUej= >drdsdtg¡dudv„ ƒZVdwdx„ ZWej@ Ady¡dzd{„ ƒZXd|d}„ ZYed~gdydd€d�œd‚dƒ�d„d…„ ƒZZeddcdidgdd�d†d‡„ ƒZ[G dˆd‰„ d‰ƒZ\dŠd‹„ Z]edŒgdyd�d€idŽ�d�d�„ ƒZ^d‘d’„ Z_d“d”„ Z`ed•gdyd�d€id–d—�d˜d™„ ƒZaedšgdyd�d€idŽ�d›dœ„ ƒZbd�dž„ Zcej@ Ady¡dŸd „ ƒZded¡gdyd‚d¢�d£d¤„ ƒZed¥d¦„ Zfd§d¨„ Zgd©dª„ Zhd«d¬„ Zid­d®„ Zjd¯d°„ Zkedgdd�d±d²„ ƒZld³d´„ Zmdµd¶„ ZndS )·é    N)Údatetime)ÚPath)ÚTimer)ÚSimpleNamespace)ÚImage)Úgridspec)Úimage_comparisonÚcheck_figures_equal)ÚAxes)ÚFigureÚ
FigureBase)ÚConstrainedLayoutEngineÚTightLayoutEngineÚPlaceHolderLayoutEngine)ÚAutoMinorLocatorÚFixedFormatterÚScalarFormatterZ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 ]Ž}|  |d|f ¡}| d| ¡ | 
d| ¡ |dkrÆ|j d¡ |j ¡  |dkræ| ¡ D ]}| d¡ qÖ|dkrv|j d¡ |j ¡  qvt	dƒD ]†}|  |d|f ¡}| 
d|› �¡ | d|› �¡ |dk�r| t dd
d¡¡ |j d¡ |j ¡  | ¡ D ]}| d¡ �q€�q|  ¡  d S )NÚ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Úfigurer   ZGridSpecÚadd_subplotÚplotÚnpÚarangeÚ
set_ylabelÚrangeÚ
set_xlabelÚxaxisZset_label_positionZtick_topÚget_xticklabelsZset_rotationÚyaxisZ
tick_rightZalign_labels)ÚfigÚgsÚaxÚiZtick© r6   ú[/var/www/html/bwave/python/venv/lib/python3.8/site-packages/matplotlib/tests/test_figure.pyÚtest_align_labels   s>    



r8   c                  C   s  t  dd¡\} }t|jƒD ]<\}}| d¡ | d¡ | t d¡| t d¡| ¡ q|  ¡  |  	¡  |  
¡  t d¡}t d¡}t|jƒD ]0\}}|jj ¡ d ||< |jj ¡ d ||< qŽtj |d d… |dd … ¡ tj |d d d… |dd d… ¡ t jdddd�\} }t|jƒD ]2\}}| d¡ | d¡ | tj d	d	¡¡}�q| j||d
� |  ¡  |  	¡  |  
¡  t d¡}t d¡}t|jƒD ]2\}}|jj ¡ d ||< |jj ¡ d ||< �q–tj |d d… |dd … ¡ tj |d d d… |dd d… ¡ d S )Nr   ÚBooZWhoé   r!   r   T©Úconstrained_layoutr%   ©r4   )r&   ÚsubplotsÚ	enumerateÚflatr.   r)   r*   r+   Zalign_ylabelsZalign_xlabelsÚdraw_without_renderingÚzerosr/   ÚlabelZget_positionr1   ÚtestingÚassert_allcloseÚ
pcolormeshÚrandomÚrandnÚcolorbar)r2   ÚaxsÚnnr4   ZxnZynÚpcr6   r6   r7   Útest_align_labels_stray_axesE   s>    

"

"



rM   c               	   C   s  t  d¡ t  d¡} t  d¡ t  d¡ t  ¡  t  d¡ t  d¡ t  d¡ t  ¡ dddddgksht‚t  ¡ d	dd	dd	gks‚t‚t  d
¡ t  ¡  t  d¡ t  d¡ t  ¡ ddgks¼t‚t  ¡ d	dgksÐt‚t  | ¡ t  ¡ | ksêt‚t t	¡� t  t
ƒ ¡ W 5 Q R X d S )NÚallÚtodayr   Útomorrowr   r!   r:   é   Ú r%   )r&   Úcloser'   Zget_fignumsÚAssertionErrorZget_figlabelsZgcfÚpytestÚraisesÚ
ValueErrorr   )Z	fig_todayr6   r6   r7   Útest_figure_labelh   s(    










rX   c                   C   s’   t  d¡ t  d¡ t  d¡ t  ¡  t  d¡s4t‚t  d¡sBt‚t  d¡sPt‚t  d¡s^t‚t  d¡ t  d¡ t  d¡r€t‚t  d¡rŽt‚d S )NÚoner   Úthreer:   )r&   r'   Zfignum_existsrT   rS   r6   r6   r6   r7   Útest_fignum_exists€   s    




r[   c                  C   sº   d} d}t jdd�}| | ¡ dd„ |jD ƒ| gks8t‚t jddd�}| d	d	|¡ ||ks`t‚d
d„ |jD ƒ| |gks|t‚t jddddd�\}}||ksžt‚dd„ |jD ƒg ks¶t‚d S )NzA fancy plotzReally fancy!r!   )Únumc                 S   s   g | ]}|  ¡ ‘qS r6   ©Zget_text©Ú.0Útr6   r6   r7   Ú
<listcomp>—   s     z$test_clf_keyword.<locals>.<listcomp>F)r\   Úclearç      à?c                 S   s   g | ]}|  ¡ ‘qS r6   r]   r^   r6   r6   r7   ra   œ   s     r   Tc                 S   s   g | ]}|  ¡ ‘qS r6   r]   r^   r6   r6   r7   ra       s     )r&   r'   ÚsuptitleZtextsrT   Útextr>   )Ztext1Ztext2Zfig0Úfig1Úfig2Úax2r6   r6   r7   Útest_clf_keyword�   s    
ri   Zfigure_todayc                  C   sh   t  d¡} |  ¡ }| |  ¡ ¡ | t d¡¡ t  d¡ t  ddgddgd¡ t  d¡ t  d¡ d S )NrO   rQ   rP   r   r!   Úr)	r&   r'   r(   Ú	set_titleÚ	get_labelr)   r*   r+   rS   )r2   r4   r6   r6   r7   Útest_figure£   s    


rm   Z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)rC   ÚcolorÚyrj   rc   ÚkZ_yÚzÚb)r&   r>   r)   Zlegend©r2   rJ   r6   r6   r7   Útest_figure_legend²   s    rv   c                  C   s¼   t  ¡ } |  ddddg¡}|  ¡ |ks*t‚|  d¡}|  ¡ |ksDt‚|  |¡ | j||gks`t‚|  ¡ |kspt‚|  |¡ | j||gksŒt‚|  |¡ | j||gks¨t‚|  ¡ |ks¸t‚d S )Nr   r!   éo   )r&   r'   Úadd_axesZgcarT   r(   ÚaxesZsca)r2   Úax0Úax1r6   r6   r7   Útest_gca¾   s    



r|   c               	   C   s¦   t  ¡ } | jtd� t t¡� | jtdd� W 5 Q R X t t¡� | jtdd� W 5 Q R X t t¡� | jddd� W 5 Q R X t t¡� | jdd� W 5 Q R X d S )	N)Ú
axes_classÚ3d)r}   Ú
projectionT)r}   Úpolar)r   r€   é*   ©r   )r&   r'   r(   r
   rU   rV   rW   Ú	TypeError©r2   r6   r6   r7   Útest_add_subplot_subclassÚ   s    r…   c               	   C   sÄ  t  ¡ } tjtdd�� |  ddd¡ W 5 Q R X tjtdd�� |  ddd¡ W 5 Q R X tjtdd�� |  ddd¡ W 5 Q R X tjtdd�� |  ddd¡ W 5 Q R X tjtd	d�� |  d
¡ W 5 Q R X tjtd	d�� |  d¡ W 5 Q R X tjtdd�� |  dd¡ W 5 Q R X tjtdd�� |  dddd¡ W 5 Q R X tjtdd�� |  ddd¡ W 5 Q R X tjtdd�� |  ddd¡ W 5 Q R X t  ¡ \}}tjtdd�� |  |¡ W 5 Q R X d S )Nz,Number of columns must be a positive integer©Úmatchr   r   r!   z)Number of rows must be a positive integerznum must be 1 <= num <= 4rQ   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   r:   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'   rU   rV   rW   r(   rƒ   r>   ©r2   Ú_r4   r6   r6   r7   Útest_add_subplot_invalidç   sD    ÿÿÿÿÿr‹   Zfigure_suptitlec                  C   s.   t  ¡ \} }| jddd� | jdddd� d S )NZhellorj   )rp   Útitlero   é   )rp   Zrotation)r&   r>   rd   )r2   rŠ   r6   r6   r7   Útest_suptitle  s    rŽ   c                  C   sV   t  ¡ \} }tjjddd�}| jd|d�}| ¡ | ¡ ks>t‚| 	¡ | 	¡ ksRt‚d S )NZlargeÚbold)ÚsizeÚweightzfontprops title)Zfontproperties)
r&   r>   ÚmplZfont_managerZFontPropertiesrd   Zget_fontsizeZget_size_in_pointsrT   Z
get_weight)r2   r4   ZfpsÚtxtr6   r6   r7   Útest_suptitle_fontproperties  s
    r”   Zalpha_background©r   r!   çš™™™™™Ù?Únone)Ú	facecolorZ	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)ZradiusÚalphar˜   )	r&   r'   Úset_facecolorÚpatchZ	set_alphaZpatchesÚappendr’   ZCirclePolygonr„   r6   r6   r7   Ú
test_alpha  s    
   ÿr¤   c               	   C   s:   t  t¡�& ttjd d ƒD ]} t ¡  qW 5 Q R X d S )Nzfigure.max_open_warningr!   )rU   ÚwarnsÚRuntimeWarningr-   r’   ZrcParamsr&   r'   )r5   r6   r6   r7   Útest_too_many_figures,  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| f|ž|Ž d S ©N)r
   Ú__init__)Úselfr¨   ÚargsÚkwargsr6   r6   r7   rª   >  s    z7test_iterability_axes_argument.<locals>.MyAxes.__init__)Ú__name__Ú
__module__Ú__qualname__rª   r6   r6   r6   r7   Ú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)rW   )r«   Úitemr6   r6   r7   Ú__getitem__C  s    z;test_iterability_axes_argument.<locals>.MyClass.__getitem__c                    s   ˆ d| ifS )Nr¨   r6   ©r«   ©r±   r6   r7   Ú_as_mpl_axesG  s    z<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axesN)r®   r¯   r°   r´   r·   r6   r¶   r6   r7   ÚMyClassA  s   r¸   r!   r‚   )r
   r&   r'   r(   rS   )r¸   r2   r6   r¶   r7   Útest_iterability_axes_argument2  s
    	r¹   c                  C   s–   t  ¡ } |  d¡ |  ¡ dks"t‚|  d¡ |  ¡ dks<t‚|  dd¡ |  ¡ dksXt‚|  ¡ dksht‚|  d¡ |  ¡ dks‚t‚|  ¡ dks’t‚d S )NrQ   r!   r   r:   )r!   r   r   )r&   r'   Zset_figwidthZget_figwidthrT   Zset_figheightZget_figheightÚset_size_inchesr„   r6   r6   r7   Útest_set_fig_sizeO  s    


r»   c                  C   sh   t  dd¡\} }|d  ¡  | ¡ d d… D ]}|| jks,t‚q,|d | jksRt‚t| jƒdksdt‚d S )Nr   )r   r   r   r   )r&   r>   ÚremoveZravelry   rT   Úlen©r2   rJ   r4   r6   r6   r7   Útest_axes_removee  s    r¿   c                  C   s˜   t  t d¡t d¡ ¡\} }||  dks.t‚t  d¡\} }||  dksLt‚t  t d¡¡\} }||  dkspt‚t  t d¡¡\} }||  dks”t‚d S )Nr   r!   )r!   r   rc   )r   r   )r&   Z	figaspectr*   Zfloat64rT   rB   )ÚwÚhr6   r6   r7   Útest_figaspectn  s    rÂ   ÚwhichÚbothÚmajorÚminorc           
      C   sN  ddddddddd	d
ddg}ddddddddddddg}d}ddddddd g}t  |¡}t  |¡}t ¡ \}}| ||¡ | ¡  | ¡  |j t	dƒ¡ t
 ¡ �" t
 d!d"¡ |j t|ƒ¡ W 5 Q R X | d#|d$| ¡ | d%k�r|jd&  d'd(¡D ]}	t|	 ¡ ƒ|ksöt‚qö| d)k�rJ|jd&  d*d+¡D ]}	t|	 ¡ ƒ|k�s,t‚�q,d S ),Nz
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 2013z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   r:   rQ   é   é   Úignorez=FixedFormatter should only be used together with FixedLocatorçš™™™™™É?r$   )rÄ   rÅ   r   FrÅ   )rÄ   rÆ   TrÆ   )ÚmdatesZdatestr2numr&   r>   r)   Z
yaxis_dateZ
xaxis_dater/   Zset_minor_locatorr   ÚwarningsÚcatch_warningsÚfilterwarningsZset_minor_formatterr   Zautofmt_xdatery   r0   ÚintZget_rotationrT   )
rÃ   ÚdateÚtimeZangleZminorsrn   rq   r2   r4   rC   r6   r6   r7   Útest_autofmt_xdatey  sR          þ
     þ


þ

rÓ   Údefaultc                  C   sn   t jdd�} |  ¡  | jjjdks&t‚| jjjdks8t‚d| _|  ¡  | jjjdksXt‚| jjjdksjt‚d S )N)r:   r:   rš   i�  é2   éÈ   )	r&   r'   rA   ÚcanvasÚrendererÚheightrT   ÚwidthÚdpir„   r6   r6   r7   Útest_change_dpi¡  s    rÜ   zwidth, heightr!   )r   r!   c              	   C   sT   t  t¡� tj| |fd� W 5 Q R X t ¡ }t  t¡� | | |¡ W 5 Q R X d S )Nrš   )rU   rV   rW   r&   r'   rº   )rÚ   rÙ   r2   r6   r6   r7   Útest_invalid_figure_size­  s
    rÝ   c               	   C   sÀ   t  ¡ } tjtdd�� |  ¡  W 5 Q R X t t¡� |  dddtjf¡ W 5 Q R X tjtdd��$ | jddddgddddgd� W 5 Q R X t  	¡ \}}tjtd	d�� |  |¡ W 5 Q R X d S )
Nz.missing 1 required positional argument: 'rect'r†   çš™™™™™¹?rc   z#multiple values for argument 'rect'r   r!   )Úrectz5The Axes must have been created in the present figure)
r&   r'   rU   rV   rƒ   rx   rW   r*   Únanr>   r‰   r6   r6   r7   Útest_invalid_figure_add_axes»  s    ÿ(ÿrá   c                  C   s  t jdddddd�\} }|jD ]}| dddgdddg¡ q| d¡ | d¡ |d	d d …f D ]}d	t|jjd
d�ƒks`t	‚q`|dd d …f D ]}d	t|jjd
d�ƒk s�t	‚q�|d d …df D ]}d	t|j
jd
d�ƒksÀt	‚qÀ|d d …d	f D ]}d	t|j
jd
d�ƒk sðt	‚qðd S )Nr   TF)ÚsharexÚshareyZsqueezer%   rœ   r�   Úlogr   rÄ   )rÃ   r!   )r&   r>   r@   r)   Ú
set_yscaleZ
set_xscaler½   r/   Zget_ticklabelsrT   r1   r¾   r6   r6   r7   Útest_subplots_shareax_loglabelsÎ  s    


ræ   c               	   C   s6   t  ¡ } d}tjt|d�� |  dd¡ W 5 Q R X d S )Nz9savefig\(\) takes 2 positional arguments but 3 were givenr†   z
fname1.pngz
fname2.png)r&   r'   rU   rV   rƒ   Úsavefig)r2   Úmsgr6   r6   r7   Útest_savefigã  s    ré   c               
   C   s@   t  ¡ } dD ].}t t¡� | jt ¡ |dd� W 5 Q R X qd S )N)r   Úpdfr   ZtifZjpgT)ÚformatZnon_existent_kwarg)r&   r'   rU   rV   rƒ   rç   ÚioÚBytesIO)r2   rë   r6   r6   r7   Útest_savefig_warnsê  s    rî   c               	   C   s\   t  ¡ } tjtdd�� | jddd� W 5 Q R X tjtdd�� | jddd� W 5 Q R X d S )	NzNo module named '@absent'r†   Útestzmodule://@absent)Úbackendz-The 'pdf' backend does not support png outputztest.pngrê   )r&   r'   rU   rV   ÚModuleNotFoundErrorrç   rW   r„   r6   r6   r7   Útest_savefig_backendñ  s    ÿrò   rð   ZAgg)ZmarksZCairoc              	   C   s¼   t  ¡ \}}| dddg¡ t ¡ �&}|j|dd� t |¡}| ¡  W 5 Q R X t  ¡ \}}| dddg¡ |j	 
d¡ t ¡ �&}|j|dd� t |¡}| ¡  W 5 Q R X ||ks¸t‚d S )Nr!   r   r   r   ©rë   )r&   r>   r)   rì   rí   rç   r   ÚopenÚloadr×   Ú_set_device_pixel_ratiorT   )rð   r2   r4   ÚbufZratio1Zratio2r6   r6   r7   Útest_savefig_pixel_ratioû  s    



rø   c                  C   s"   t jddd�} t| ƒdkst‚d S )N)r%   rœ   r%   )r›   rÛ   z!<Figure size 100x200 with 0 Axes>)r&   r'   ÚreprrT   r„   r6   r6   r7   Útest_figure_repr  s    rú   c                  C   sj   t d d�} |  ¡ rt‚|  ¡ r"t‚t dd�} |  ¡ s8t‚|  ¡ rDt‚t dd�} |  ¡ rZt‚|  ¡ sft‚d S )Nr   r   Úconstrained)r   Zget_tight_layoutrT   Zget_constrained_layoutr„   r6   r6   r7   Útest_valid_layouts  s    


rü   c               	   C   sV  t jdd�\} }t t¡� | jdd� W 5 Q R X t|  ¡ tƒsDt	‚d}tjt|d�� t
ddd	�} W 5 Q R X t|  ¡ tƒs€t	‚d
}tjt|d�� t
ddd�} W 5 Q R X t|  ¡ tƒr¼t	‚t|  ¡ tƒsÎt	‚tjtdd�� t
dd� W 5 Q R X t jdd�\} }|  d¡ t|  ¡ tƒ�s t	‚|  d¡ t|  ¡ tƒ�s>t	‚t jdd�\} }| tj dd¡¡}|  |¡ tjtdd�� |  d¡ W 5 Q R X |  d¡ tjtdd�� |  d¡ W 5 Q R X t jdd�\} }| tj dd¡¡}|  |¡ tjtdd�� |  d¡ W 5 Q R X |  d¡ t|  ¡ tƒ�s.t	‚tjtdd�� |  d¡ W 5 Q R X d S )Nrû   r   çš™™™™™é?)r"   z1The Figure parameters 'layout' and 'tight_layout'r†   r   F)r   Ztight_layoutz7The Figure parameters 'layout' and 'constrained_layout')r   r<   zInvalid value for 'layout'Zfoobarr   zColorbar layout of new layoutr—   )r&   r>   rU   r¥   ÚUserWarningZsubplots_adjustÚ
isinstanceZget_layout_enginer   rT   r   r   rV   rW   Úset_layout_enginerF   r*   rG   rH   rI   ÚRuntimeErrorr   )r2   r4   ZwstrL   r6   r6   r7   Útest_invalid_layouts%  sN    ÿ





r  rê   ©r   c           	   	   C   s0  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 ]}|  |¡ qŠ| ¡  | ¡ }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œ   ZC1)Ú	transformr  )r  rc   çš™™™™™©?ZC2)g      @rý   gš™™™™™á?ZcrimsonZC3)r  r˜   r  é   )r  r  ÚzorderFrœ   )r  Úclip_onr  r  )r  r˜   r  r  r  )	rÛ   r>   r&   ZLine2DZCircleZdpi_scale_transZ
add_artistr¼   ZtransFigure)	Úfig_testÚfig_refr  r  Úr1Úr2Zr3r²   rh   r6   r6   r7   Útest_add_artistY  sB     ÿ ÿÿÿ   ÿr  ÚfmtZpsÚepsc              	   C   sP   t |d | ¡ƒ}t |¡ | d¡�"}|  d¡| d¡ ¡ ksBt‚W 5 Q R X d S )Nztest.{}ÚrbÚasciir    )	r   rë   r&   rç   rô   ÚencodeÚreadÚlowerrT   )r  ZtmpdirÚoutÚfiler6   r6   r7   Útest_fspathv  s    
r  c                  C   sZ  t  ¡ \} }| dd¡ | ddd¡}| j ¡ }d}t| |¡j|| j	  ƒdk sVt
‚t| |¡j|| j	  ƒdk sxt
‚t|  |¡j| ƒdk s”t
‚t|  |¡jd	 ƒdk s°t
‚| d
¡ d}t| |¡j|| j	  ƒdk sàt
‚t|  |¡j| ƒdk süt
‚| d¡ d}t| |¡j|| j	  ƒdk �s.t
‚t|j|g d�j|| j	  ƒdk �sVt
‚d S )Nr   r!   g      ð?rc   zThis dangles over endgR¸…ë"@r   r	  gî|?5^ºå?Fg¢E¶óýT@T)Zbbox_extra_artists)r&   r>   Úset_xlimre   r×   Úget_rendererÚabsÚget_tightbboxÚx1rÛ   rT   Úx0Zset_in_layout)r2   r4   r`   rØ   Zx1Nom0Zx1Nomr6   r6   r7   Ú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	ƒsbt
‚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ƒsÔt
‚d S )Nr!   r   T©râ   r   iÐ  )r&   r>   r¼   r)   r   rÿ   r/   Zget_major_formatterrÌ   ZAutoDateFormatterrT   Zset_major_formatterr   ru   r6   r6   r7   Útest_axes_removal™  s    (ÿ(ÿr$  c                  C   s,   t jddd�\} }|d  ¡  | j ¡  d S )Nr   Tr#  r   )r&   r>   r¼   r×   Údrawru   r6   r6   r7   Útest_removed_axis«  s    r&  Ú
clear_methrb   Úclfc                    s"  t  ¡ ‰ ˆ  ¡  ˆ jg kst‚ˆ  d¡}tˆ | ƒƒ  ˆ jg ksBt‚‡ fdd„tdƒD ƒ}tˆ | ƒƒ  ˆ jg ksrt‚ˆ jddd�‰ˆ  	ˆd ¡}| d¡}tˆ | ƒƒ  |ˆ j
ks²t‚ˆ jg ksÀt‚ˆ  	ˆd ¡}| d¡}ˆ  ˆd ¡}| ¡  ˆ j|gksþt‚ˆ  ˆd ¡}| ¡  ˆ j|gk�s&t‚|ˆ j
k�s6t‚| d¡}|ˆ jk�sPt‚|ˆ jk�s`t‚t|| ƒƒ  |ˆ j
k�s|t‚||jk�sŒt‚|ˆ jk�sœt‚|ˆ jk�s¬t‚| d¡}tˆ | ƒƒ  ˆ jg k�sÒt‚ˆ j
g k�sât‚‡ ‡fdd„d	D ƒ}d
d„ |D ƒ}t‡ fdd„|D ƒƒ�s t‚t‡ fdd„|D ƒƒ�s<t‚t|d | ƒƒ  |d ˆ jk�s`t‚|d ˆ jk�stt‚|d ˆ j
k�sˆt‚t|d | ƒƒ  ‡ ‡fdd„d	D ƒ}dd„ |D ƒ}t‡ fdd„|D ƒƒ�sÖt‚t‡ fdd„|D ƒƒ�sòt‚tˆ | ƒƒ  ˆ j
g k�st‚ˆ jg k�st‚d S )Nrw   c                    s   g | ]}ˆ   d d|d ¡‘qS ©r   r!   ©r(   ©r_   r5   r„   r6   r7   ra   Á  s     z%test_figure_clear.<locals>.<listcomp>r   r!   )ÚncolsÚnrowsr   c                    s   g | ]}ˆ   ˆ| ¡‘qS r6   ©Úadd_subfigurer+  ©r2   r3   r6   r7   ra   î  s     ©r   r!   c                 S   s   g | ]}|  d ¡‘qS ©rw   r*  ©r_   Úsfigr6   r6   r7   ra   ï  s     c                 3   s   | ]}|ˆ j kV  qd S r©   ©ry   ©r_   r4   r„   r6   r7   Ú	<genexpr>ð  s     z$test_figure_clear.<locals>.<genexpr>c                 3   s   | ]}|ˆ j kV  qd S r©   ©Úsubfigsr3  r„   r6   r7   r7  ñ  s     c                    s   g | ]}ˆ   ˆ| ¡‘qS r6   r.  r+  r0  r6   r7   ra   û  s     c                 S   s   g | ]}|  d ¡‘qS r2  r*  r3  r6   r6   r7   ra   ü  s     c                 3   s   | ]}|ˆ j kV  qd S r©   r5  r6  r„   r6   r7   r7  ý  s     c                 3   s   | ]}|ˆ j kV  qd S r©   r8  r3  r„   r6   r7   r7  þ  s     )r&   r'   rb   ry   rT   r(   Úgetattrr-   Úadd_gridspecr/  r9  r¼   rN   )r'  r4   ry   ZsubfigZsubaxesZmainaxesr9  r6   r0  r7   Útest_figure_clear²  sh    




r<  c                  C   s    t  ¡ D ]} d| jkst‚qd S )Nr(  )r   Ú__subclasses__Ú__dict__rT   )Úklassr6   r6   r7   Útest_clf_not_redefined  s    r@  Zmpl20c                  C   s€   t  ¡ \} }|jdgdgdgdd� | j ¡  | jr8t‚t|jj	|jj
d  |jj|jjd  |d d�}|  |¡ | jr|t‚d S )Nr   r   T)Zpickerr   )rn   rq   ZinaxesZguiEvent)r&   r>   Úscatterr×   r%  ÚstalerT   r   Úbboxr!  rÚ   Zy0rÙ   Úpick)r2   r4   Zmouse_eventr6   r6   r7   Útest_picking_does_not_stale
  s    

 þ
rE  c               	   C   s*  t  ¡ } |  ddd¡}| ¡ jtddƒks.t‚| ¡ jtddƒksFt‚|  ddd¡}| ¡ jtddƒkslt‚| ¡ jtddƒks„t‚|  ddd¡}| ¡ jtddƒksªt‚| ¡ jtddƒksÂt‚|  ddd¡}| ¡ jtddƒksèt‚| ¡ jtddƒk�st‚t 	t
¡� |  ddd	¡ W 5 Q R X d S )
Nr   r   ©r   rQ   r!   r   )r:   rÈ   )r   rÈ   )r:   rQ   )rÈ   r   )r&   r'   r(   Úget_subplotspecZrowspanr-   rT   ÚcolspanrU   rV   Ú
IndexError)r2   r{   rh   Úax3Zax4r6   r6   r7   Útest_add_subplot_twotuple  s    rK  ztightbbox_box_aspect.svgr   Úteal)Zbbox_inchesr˜   T)Ústyler™   Úremove_textc                  C   sL   t  ¡ } |  dd¡}|  |d ¡}| j|d dd�}| d¡ | d¡ d S )	Nr!   r   ©r   r   r1  r~   r‚   rc   )r   r!   r!   )r&   r'   r;  r(   Zset_box_aspect)r2   r3   r{   rh   r6   r6   r7   Útest_tightbbox_box_aspect*  s    
rP  c                 C   s4   |  ¡ }| tdƒ¡ |   ¡ }|jtdƒdd� d S )NrQ   T)Zanimated)r>   r)   r-   )r  r  Zax_refZax_testr6   r6   r7   Ú test_animated_with_canvas_change7  s    rQ  c                   @   s*  e Zd Zedgd�ej ddddgdddggddd	gd
dd	g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$d%d&d'g¡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$d4d5d6d7d8d9g¡d:d;„ ƒZd<d=„ Zd>d?„ ZdS )@ÚTestSubplotMosaicr   r  rn   ÚAÚBÚCÚDr!   r   r   r:   c                 C   sÜ   |  |¡}| ¡ D ]\}}| |¡ qtt |¡ƒ}t|ƒt|ƒksHt‚| 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Úitemsrk   Úsortedr*   Úuniquer½   rT   r;  r(   )r«   r  r  rn   Ú	grid_axesrr   r4   Úlabelsr3   ÚaxAÚaxBÚaxCÚaxDr6   r6   r7   Ú
test_basicA  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 ]}| | ¡ ¡ qL| d
d¡}|d  dd¡}t|ƒD ]2\}	}
t|
ƒD ] \}}| ||	|f ¡ |¡ q”q„|d  dd¡}t|ƒD ]2\}	}
t|
ƒD ] \}}| ||	|f ¡ |¡ qàqÐd S )NrS  rT  rU  rV  ÚEÚFÚGÚHrû   r!   r   rO  r1  )	r   rY  Úvaluesrk   rl   r;  Úsubgridspecr?   r(   )r«   r  r  rn   rq   r]  r4   r3   Zgs_leftÚjrj   rr   rC   Zgs_rightr6   r6   r7   Ú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 ]\}}| |¡ qB| dd¡}|d	  dd¡}	| |	d
 ¡}
|
 d¡ | |	d ¡}| d¡ | |	d	 ¡}| d¡ | |	d ¡}| d¡ | |d
 ¡}| d¡ d S )Nrû   rS  rT  rU  rV  re  r   r!   rW  rO  r1  rX  )r   rY  rZ  rk   r;  ri  r(   )r«   r  r  rn   rq   r]  rr   r4   r3   Zgs_nr_  r`  ra  rb  ZaxFr6   r6   r7   Útest_nesteds  s&    






zTestSubplotMosaic.test_nestedc                 C   s@   dddgdddgg}d}|  dg|gg¡ |  dg|gg¡ d S )NrS  rT  rU  rV  ))rS  rT  rT  )rU  rU  rV  re  )rY  )r«   r  r  rn   Zxtr6   r6   r7   Útest_nested_tuple•  s    z#TestSubplotMosaic.test_nested_tuplezx, empty_sentinelNÚ.ÚSKIPr   c                 C   s¶   |dkrd|i}ni }|j |f|Ž}| ¡ D ]\}}| |¡ q,tdd„ |D ƒ|dh ƒ}	t|	ƒt|ƒksnt‚| dd¡}
| |
d ¡}| |	d ¡ | |
d	 ¡}| |	d
 ¡ d S )Nro  Úempty_sentinelc                 S   s   h | ]}|D ]}|’qqS r6   r6   )r_   ÚrowÚnamer6   r6   r7   Ú	<setcomp>´  s       z/TestSubplotMosaic.test_empty.<locals>.<setcomp>rn  r   rO  r   rX  r!   )rY  rZ  rk   r[  r½   rT   r;  r(   )r«   r  r  rn   rp  r­   r]  rr   r4   r^  r3   r_  r`  r6   r6   r7   Ú
test_empty�  s    
ÿzTestSubplotMosaic.test_emptyc              	   C   sR   t jtdd�� t ddg¡ W 5 Q R X t jtdd�� t dg¡ W 5 Q R X d S )Nz
must be 2Dr†   ZfooÚbar)rU   rV   rW   r&   rY  rµ   r6   r6   r7   Útest_fail_list_of_strÀ  s    z'TestSubplotMosaic.test_fail_list_of_strÚ
subplot_kwr   r€   c           	      C   sT   ddgg}|j ||d�}|pi }| dd¡}|j|d f|Ž}|j|d f|Ž}d S )Nr!   r   )rw  rO  r1  )rY  r;  r(   )	r«   r  r  rw  rn   r]  r3   r_  r`  r6   r6   r7   Útest_subplot_kwÆ  s    
z!TestSubplotMosaic.test_subplot_kwc                 C   s¶   t j}|dƒdddggkst‚|dƒddgddggks:t‚|dƒddgddgddggks\t‚|d	ƒdddggkstt‚|d
ƒddgddggks�t‚|dƒddgddgddggks²t‚d S )NÚABCrS  rT  rU  zAB;CCzAB;CC;DErV  rd  z7
                         ABC
                         zR
                         AB
                         CC
                         zn
                         AB
                         CC
                         DE
                         )r   Z_normalize_grid_stringrT   )r«   Ú	normalizer6   r6   r7   Útest_string_parserÒ  s    "
þýüz$TestSubplotMosaic.test_string_parserÚstr_patternzAAA
BBBz	
AAA
BBB
zABC
DEFc                 C   s,   |  |¡}|  dd„ | ¡  d¡D ƒ¡}d S )Nc                 S   s   g | ]}t |ƒ‘qS r6   )Úlist)r_   Úlnr6   r6   r7   ra   ì  s     z;TestSubplotMosaic.test_single_str_input.<locals>.<listcomp>Ú
)rY  ÚstripÚsplit)r«   r  r  r|  r]  r6   r6   r7   Ú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.z4There are duplicate keys .* between the outer layout)z	AAA
c
BBBú'All of the rows must be the same lengthrd  rƒ  c              	   C   s0   t  ¡ }tjt|d�� | |¡ W 5 Q R X d S )Nr†   )r&   r'   rU   rV   rW   rY  )r«   rn   r‡   r2   r6   r6   r7   Ú	test_failï  s    zTestSubplotMosaic.test_failc                 C   s(   |  tƒ tƒ gg¡ |  ddgg¡ d S )NrS  rT  )rY  Úobject)r«   r  r  r6   r6   r7   Útest_hashable_keys	  s    z$TestSubplotMosaic.test_hashable_keysÚabcZcabZbcaZcbaZacbZbacc                 C   sD   t  ¡ }| |¡}t|ƒt|ƒks&t‚t|jƒt| ¡ ƒks@t‚d S r©   ©r&   r'   rY  r}  rT   ry   rh  )r«   r|  r2   Úax_dictr6   r6   r7   Ú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sVt‚t|jƒt| ¡ ƒkspt‚d S )NrS  rT  rU  rV  rd  re  rf  rn  rg  ÚIZ	ABCDEFGHIrˆ  ©r«   r   r2   r‰  r6   r6   r7   Ú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 ƒƒstt‚d S )NrS  rT  rU  rV  rd  re  rf  rn  rg  r‹  T)râ   rã   rä   Úlogit)ZxscaleZyscalec                 s   s&   | ]}|  ¡ d ko| ¡ dkV  qdS )rä   rŽ  N)Z
get_xscaleÚ
get_yscaler6  r6   r6   r7   r7  /  s   ÿz3TestSubplotMosaic.test_share_all.<locals>.<genexpr>)r&   r'   rY  ÚsetrN   rh  rT   rŒ  r6   r6   r7   Útest_share_all$  s    ÿÿüÿz TestSubplotMosaic.test_share_all)r®   r¯   r°   r	   rU   ÚmarkÚparametrizerc  rk  rl  rm  rt  rv  rx  r{  r‚  r„  r†  rŠ  r�  r‘  r6   r6   r6   r7   rR  @  sr   
 &ÿ



!


úþ


ÿýþþóþ


ÿ
rR  c                  C   sv   t  ¡ } |  ddd¡}|  ddd¡}t jddd| d�}| ¡  ¡ }| ¡  ¡ }| ¡  ¡ }||ksft‚||ksrt‚dS )	z)Test that these all use the same gridspecr   r   rF  r:   )r   r   r)  )rH  r2   N)r&   r'   r(   Zsubplot2gridrG  Zget_gridspecrT   )r2   r{   rh   rJ  Zgs1Zgs2Zgs3r6   r6   r7   Útest_reused_gridspec3  s    r”  ztest_subfigure.pngr˜   )rM  r™   c                  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	�}q�|d j
||dd� |d  d¡ | jddd� d S )Né!N,rû   r   r!   r   r   r�   éþÿÿÿ©ZvminZvmaxr=   ú	Left Sider   Úbottom)r4   Úlocationz
Right SideúFigure suptitleúxx-large©Úfontsize)r*   rG   Úseedr&   r'   Ú
subfiguresr>   r@   rF   rH   rI   rd   )r2   ÚsubrJ   r4   rL   r6   r6   r7   Útest_subfigureB  s    

r¢  c                  C   s8   t jdd�} |  dd¡}tj |  | j ¡ ¡j	d¡ d S )Nrû   r   r!   r   g       @)
r&   r'   r   r*   rD   rE   r  r×   r  rÚ   )r2   r¡  r6   r6   r7   Útest_subfigure_tightbboxX  s    þr£  c                  C   sV   t jdd�} |  ¡ }| ¡ |  ¡ ks(t‚| d¡ | ¡ dksBt‚|  ¡ dksRt‚d S )Nr    ©rÛ   rÖ   )r&   r'   r   Zget_dpirT   Zset_dpi©r2   Úsub_figr6   r6   r7   Útest_subfigure_dpib  s    
r§  ztest_subfigure_ss.pngg{®Gáz”?)rM  r™   r   c                  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�}qH|j||d� | d¡ |  |d ¡}| t  d¡¡ | d¡ | jddd� d S )Nr•  rû   r   r!   r   r   Zpink)r˜   r�   r–  r—  r=   r˜  rœ   r
   r›  rœ  r�  )r*   rG   rŸ  r&   r'   r;  r/  r>   r@   rF   rH   rI   rd   r(   r)   r+   rk   )r2   r3   r¡  rJ   r4   rL   r6   r6   r7   Útest_subfigure_ssl  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 ]L}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"|› �¡ �qP|d  d#¡ |d  d$¡ |d  dd¡}	d S )%Nr•  rû   )r%   é   )r   r›   r2   r!   r   gìQ¸…ë±?)Úwspacer   Zcoralz
subfigs[0]z
subfigs[1]gffffffö?)Zheight_ratioszsubfigsnest[0]rj   T©rã   é   r�   g      Àg      @r—  zx-labelr�  zy-labelÚTitler=   zsubfigsnest[1]ro   r   r#  ÚylabelÚ	supxlabelÚ	supylabel)r*   rG   rŸ  r&   r'   rd   r   r¡   r>   rF   rH   r.   r,   rk   rI   r?   r¯  r°  )
r2   r9  ZsubfigsnestZaxsnest0r4   rž  rL   Zaxsnest1rK   ZaxsRightr6   r6   r7   Útest_subfigure_doubleƒ  s6    
r±  c               	   C   sX  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 ]}||  ¡  �q8|  ¡  d S )NTr;   r   rO  r   r   r!   i€  ià  g        r:   )r&   r'   r;  r/  r*   rD   rE   rC  ÚminÚmaxr-   r(   rA   )r2   r3   Zsub_figsrÀ   rÁ   r5   r6   r6   r7   Útest_subfigure_spanning­  s$    ü"""r´  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   )r<   r›   r!   r   r   rÉ   )rª  Zwidth_ratiosé   )r-  r,  r   gæû©!<LÀgkâX.8@iÜ  i  )rn   rq   r   r«  g …ëYI¢_ÀgRã¥óÏ«W@éx   i,  )r&   r'   r   r;  r(   rA  rÛ   rA   Z
get_xticksr*   rD   rE   )	r2   Z	subfig_blZ	subfig_brr3   r{   rh   rJ  Zticks120Zticks300r6   r6   r7   Útest_subfigure_ticksÊ  s"    
ÿ
r·  ztest_subfigure_scatter_size.png)rM  rN  c                  C   sÚ   t  ¡ } |  dd¡}|  |d ¡}|jdddgdddgddd� |jdddgdddgd	dd
gdd� |  |d ¡}| dd¡}||d fD ]J}|jdddgdddgdddd� |jdddgdddgd	dd
gddd� qŠd S )Nr!   r   r   r�   Ús)r¸  Úmarkerr:   rQ   rœ   é(   r   rj   )r¸  r¹  rp   ro   )r&   r'   r;  r(   rA  r/  r>   )r2   r3   rz   r4  rJ   r4   r6   r6   r7   Útest_subfigure_scatter_sizeæ  s    $ r»  c                  C   sN   t jdd�} |  ¡ }| d¡}| dd¡}| |¡ t ¡ }| j|dd� d S )Nrû   r   rw   r!   rê   ró   )	r&   r'   r   r(   ru  Z	bar_labelrì   rí   rç   )r2   r¦  r4   rt   Úbufferr6   r6   r7   Útest_subfigure_pdf÷  s    

r½  c                  C   sê   t  ¡ } |  ddd¡}|  ddd¡}|d k	s0t‚||k	s<t‚t  ¡  t  ¡ } | jddddd�}| jddddd�}|d k	s|t‚||k	sˆt‚t  ¡  t  ¡ } | jddddd�}|  ddd¡}|d k	sÄt‚|jdksÒt‚||k	sÞt‚t  ¡  d S )Nr!   r€   r‚   Úrectilinear)r&   r'   r(   rT   rS   rr  ©r2   r4   r{   r6   r6   r7   Útest_add_subplot_kwargs  s&    rÀ  c                  C   s  t  ¡ } |  ddddg¡}|  ddddg¡}|d k	s8t‚||k	sDt‚t  ¡  t  ¡ } | jddddgdd�}| jddddgdd�}|d k	sŒt‚||k	s˜t‚t  ¡  t  ¡ } | jddddgdd�}|  ddddg¡}|d k	sÜt‚|jdksêt‚||k	söt‚t  ¡  d S )Nr   r!   r€   r‚   r¾  )r&   r'   rx   rT   rS   rr  r¿  r6   r6   r7   Útest_add_axes_kwargs  s&    rÁ  c                    s~   t  dd¡ t ¡ \‰‰ ‡ ‡fdd„}td|ƒ ¡  ˆ ¡ dgksFt‚‡ ‡fdd„}td|ƒ ¡  tj	 
ˆ d	¡d
dg¡ d S )NrÊ   úcannot show the figurec                      s   ˆj jˆ j d¡džŽ  d S )N©rÞ   rË   r!   )r!   )r×   Úbutton_press_eventÚ	transDatar  r6   ©r4   r2   r6   r7   Úsingle_press7  s    z!test_ginput.<locals>.single_pressrÞ   rÃ  c                      sp   ˆj jˆ j d¡džŽ  ˆj  d¡ ˆj jˆ j d¡d	žŽ  ˆj jˆ j d¡d
žŽ  ˆj jˆ j d¡džŽ  d S )NrÃ  r!   Z	backspace©g333333Ó?r–   ©rc   rž   rO  r   )r!   )r!   )r!   )r   )r×   rÄ  rÅ  r  Úkey_press_eventr6   rÆ  r6   r7   Úmulti_presses=  s
    z"test_ginput.<locals>.multi_pressesr   rÈ  rÉ  )rÍ   rÏ   r&   r>   r   ÚstartZginputrT   r*   rD   rE   )ÚrecwarnrÇ  rË  r6   rÆ  r7   Útest_ginput3  s    rÎ  c                 C   st   t  dd¡ t ¡ }|jdd�d ks(t‚td|jjdƒ 	¡  | ¡ dksLt‚td|jj
dƒ 	¡  | ¡ dkspt‚d S )	NrÊ   rÂ  rÞ   )Útimeout)rs   T)r   r   r!   F)rÍ   rÏ   r&   r'   ZwaitforbuttonpressrT   r   r×   rÊ  rÌ  rÄ  )rÍ  r2   r6   r6   r7   Útest_waitforbuttonpressH  s    rÐ  c                  C   s>   t dd�} | jdddd�}|  ¡ dks*t‚| ¡ dks:t‚d S )Nzwhole Figure)rC   r!   z
sub figure)r   r   rl   rT   r¥  r6   r6   r7   Útest_kwargs_passR  s    
rÑ  c              	   C   sr   |j dddd� |jdddd� |jdddd� t ddddd	œ¡�$ |   d¡ |  d¡ |  d¡ W 5 Q R X d S )
NZxlabelr�   r�   )r‘   r�   r®  r­  Zlightrœ   )zfigure.labelweightzfigure.labelsizezfigure.titleweightzfigure.titlesize)r¯  r°  rd   r’   Z
rc_context)r  r  r6   r6   r7   Útest_rcparamsZ  s    ý


rÒ  c                  C   sÂ   t  ¡ \} }| ddgddg¡ | d¡ t | ¡}|jd |k	sFt‚|jd  ¡ dks\t‚|jd  d¡ | ¡ dks|t‚| 	dd¡ |  
¡  | 
¡  | ¡ d	ks¨t‚|jd  ¡ d
ks¾t‚d S )Nr   r!   r   r   rä   ZlinearrÞ   ç      Y@)rÞ   rÓ  r1  )r&   r>   r)   rå   ÚcopyÚdeepcopyry   rT   r�  r  rA   Zget_xlim)rf   r4   rg   r6   r6   r7   Útest_deepcopyh  s    

rÖ  c                  C   sF   t dd�} | j d¡ | jdks$t‚t t | ¡¡}|jdksBt‚d S )Nr�   r¤  rÉ   i&  )r   r×   rö   rÛ   rT   ÚpickleÚloadsÚdumps)r2   rg   r6   r6   r7   Ú%test_unpickle_with_device_pixel_ratio�  s
    
rÚ  )orÔ  r   rì   Úpathlibr   r×  ÚplatformÚ	threadingr   Útypesr   rÍ   Únumpyr*   rU   ZPILr   Z
matplotlibr’   r   Zmatplotlib.testing.decoratorsr   r	   Zmatplotlib.axesr
   Zmatplotlib.figurer   r   Zmatplotlib.layout_enginer   r   r   Zmatplotlib.tickerr   r   r   Zmatplotlib.pyplotZpyplotr&   Zmatplotlib.datesÚdatesrÌ   Úmachiner8   rM   rX   r[   ri   rm   rv   r|   r…   r‹   rŽ   r”   r¤   r§   r¹   r»   r¿   rÂ   r’  r“  rÓ   rM  ÚcontextrÜ   rà   ÚinfrÝ   rá   ræ   ré   rî   rò   Úparamrð   rø   rú   rü   r  r  r  r"  r$  r&  r<  r@  rE  rK  rP  rQ  rR  r”  r¢  r£  r§  r¨  r±  r´  r·  r»  r½  rÀ  rÁ  rÎ  rÐ  rÑ  rÒ  rÖ  rÚ  r6   r6   r6   r7   Ú<module>   s  ÿ
'#

'
ÿü
		
'

ý
	
þ
4

	
Q

ÿý
	
 tÿ


 ÿ
ÿ
(

ÿ




