o
    ¹iÿc  ã                   @   sø  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Zzd dlm	Z	 W n e
y5   d dlmZ	 Y nw d dl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mZmZ d dlmZ d dlmZ d dlm Z  d dl!Z"d dl#Z#edge $¡ dkrd ndddd„ ƒZ%dd„ Z&dd„ Z'dd„ Z(edgƒdd„ ƒZ)edgƒdd„ ƒZ*dd„ Z+dd „ Z,ed!gƒd"d#„ ƒZ-d$d%„ Z.ed&gd'd(gd)d*d+œd,d-d.„ ƒZ/d/d0„ Z0d1d2„ Z1d3d4„ Z2d5d6„ Z3d7d8„ Z4e#j5 6d9g d:¢¡d;d<„ ƒZ7e#j5 8d=¡d>d?„ ƒZ9e#j5 6d@dAe"j:fdBe"j;dAfg¡dCdD„ ƒZ<dEdF„ Z=dGdH„ Z>dIdJ„ Z?dKdL„ Z@dMdN„ ZAdOdP„ ZBdQdR„ ZCed'dSgdTdUdV„ ƒZDe#j5 6dWg dX¢¡dYdZ„ ƒZEd[d\„ ZFd]d^„ ZGd_d`„ ZHe#j5 8da¡dbdc„ ƒZIddde„ ZJedfgdadgdhdiœdjdkdldm„ ƒZKeg dn¢dTdodp„ ƒZLG dqdr„ drƒZMdS )sé    )ÚdatetimeN)ÚPath)ÚSimpleNamespace)Únullcontext)Ú	ExitStack)ÚcbookÚrcParams)Úimage_comparisonÚcheck_figures_equal)ÚAxes)ÚAutoMinorLocatorÚFixedFormatterÚScalarFormatterÚfigure_align_labelsÚx86_64g{®Gáz„?)Ú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© r5   úW/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_figure.pyÚtest_align_labels   sB   


€
€r7   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 ‚d S )NÚallÚtodayr   Útomorrowr   r   )r   r   r   é   é   )Ú r9   r=   r:   r=   r   r<   r=   )r   Úcloser   Úget_fignumsÚget_figlabelsr5   r5   r5   r6   Útest_figure_labelA   s    









rA   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   Úthreer;   )r   r   Úfignum_existsr>   r5   r5   r5   r6   Útest_fignum_existsV   s   




rE   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 r5   ©Úget_text©Ú.0Útr5   r5   r6   Ú
<listcomp>m   ó    z$test_clf_keyword.<locals>.<listcomp>F)rF   Úclearç      à?c                 S   rG   r5   rH   rJ   r5   r5   r6   rM   r   rN   r   Tc                 S   rG   r5   rH   rJ   r5   r5   r6   rM   v   rN   )r   r   ÚsuptitleÚtextsÚtextÚsubplots)Útext1Útext2Úfig0Úfig1Úfig2Úax2r5   r5   r6   Útest_clf_keywordf   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 )Nr9   r<   r:   r   r   Úr)	r   r   r!   Ú	set_titleÚ	get_labelr"   r#   r$   r>   ©r0   r2   r5   r5   r6   Útest_figurey   s   


ra   Ú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)ÚlabelÚcolorÚyr]   rP   ÚkÚ_yÚzÚb)r   rT   r"   Úlegend©r0   Úaxsr5   r5   r6   Útest_figure_legendˆ   s   ro   c                  C   sŒ  t  ¡ } t t¡ |  ¡ d u sJ ‚W d   ƒ n1 sw   Y  |  g d¢¡}| jdd|u s2J ‚|  ¡ |u s:J ‚| jg d¢d}| jdd|u sLJ ‚|  ¡ |u sTJ ‚| jddd}|  ¡ |u scJ ‚| jdd	|u smJ ‚|  d
¡}|  ¡ |u szJ ‚t t¡ | jdd	|usŠJ ‚W d   ƒ n1 s”w   Y  | jdd	|us£J ‚|  ¡  ¡ dks­J ‚|  	|¡ | jdd|u s¼J ‚|  ¡ |u sÄJ ‚d S )N©r   r   r   r   Úrectilinear©Ú
projection)çš™™™™™¹?rt   çš™™™™™é?ru   ©Úrectéy   ÚpolarT)ry   éz   )r   r   r   )
r   r   ÚpytestÚwarnsÚUserWarningÚadd_axesÚgcar!   Úget_geometryÚsca)r0   Úax0Úax1rZ   Úax3r5   r5   r6   Útest_gca”   s.   þ
þ
r…   c                  C   sf  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j	dd |  ddd¡ W d   ƒ n	1 sw   Y  tjtj	dd |  ddd¡ W d   ƒ d S 1 s,w   Y  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 <= 4r<   zmust be a three-digit integeré*   r   z2takes 1 or 3 positional arguments but 2 were givenz2takes 1 or 3 positional arguments but 4 were givenr   r;   zJPassing non-integers as three-element position specification is deprecatedÚ2g       @)
r   r   r{   ÚraisesÚ
ValueErrorr!   Ú	TypeErrorr|   r   ÚMatplotlibDeprecationWarning©r0   r5   r5   r6   Útest_add_subplot_invalid·   sN   ÿþÿþÿÿÿÿþþÿýÿ$ýr   Úfigure_suptitlec                  C   s.   t  ¡ \} }| jddd | jdddd d S )NÚhellor]   )rf   Útitlerd   Ú30)rf   Úrotation)r   rT   rQ   )r0   Ú_r5   r5   r6   Ú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   rT   ÚmplÚfont_managerÚFontPropertiesrQ   Úget_fontsizeÚget_size_in_pointsÚ
get_weight)r0   r2   ÚfpsÚtxtr5   r5   r6   Útest_suptitle_fontpropertiesà   s
   r¤   Úalpha_backgroundÚpngÚsvg©r   r   çš™™™™™Ù?Únone)Ú	facecolorÚ	edgecolor)Ú
extensionsÚ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©   é   é   g333333ã?Úred)ÚradiusÚalphar«   )	r   r   Úset_facecolorÚpatchÚ	set_alphaÚpatchesÚappendrœ   ÚCirclePolygonrŽ   r5   r5   r6   Ú
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   )r{   r|   ÚRuntimeWarningr&   r   r   r   )r3   r5   r5   r6   Ú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| g|¢R i |¤ŽS )N)r   Ú__init__)Úselfr¿   ÚargsÚkwargsr5   r5   r6   rÀ   	  s   z7test_iterability_axes_argument.<locals>.MyAxes.__init__)Ú__name__Ú
__module__Ú__qualname__rÀ   r5   r5   r5   r6   Ú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)r‹   )rÁ   Úitemr5   r5   r6   Ú__getitem__  s   ÿz;test_iterability_axes_argument.<locals>.MyClass.__getitem__c                    s   ˆ d| ifS )Nr¿   r5   ©rÁ   ©rÇ   r5   r6   Ú_as_mpl_axes  s   z<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axesN)rÄ   rÅ   rÆ   rÊ   rÍ   r5   rÌ   r5   r6   ÚMyClass  s    rÎ   r   rr   )r   r   r   r!   r>   )rÎ   r0   r5   rÌ   r6   Útest_iterability_axes_argumentý   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   r;   )r   r   r   )r   r   Úset_figwidthÚget_figwidthÚset_figheightÚget_figheightÚset_size_inchesrŽ   r5   r5   r6   Útest_set_fig_size  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   rT   ÚremoveÚravelÚaxesÚlen©r0   rn   r2   r5   r5   r6   Útest_axes_remove0  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   rP   )r   r   )r   Ú	figaspectr#   Úfloat64Úzeros)ÚwÚhr5   r5   r6   Útest_figaspect9  s   rá   Úwhich)NÚbothÚmajorÚminorc           
      C   sf  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 u r`t tj¡ntƒ  | d|d	| ¡ W d   ƒ n1 svw   Y  | d
v r•|jd  dd¡D ]}	t|	 ¡ ƒ|ks”J ‚qˆ| 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   r;   r<   é   é   r   Úignorez=FixedFormatter should only be used together with FixedLocatorçš™™™™™É?r   )rã   rä   Nr   Frä   )rã   rå   Trå   )ÚmdatesÚdatestr2numr   rT   r"   Ú
yaxis_dateÚ
xaxis_dater(   Úset_minor_locatorr   ÚwarningsÚcatch_warningsÚfilterwarningsÚset_minor_formatterr   r{   r|   rœ   r   r   Úautofmt_xdaterØ   r+   ÚintÚget_rotation)
râ   ÚdateÚtimeÚangleÚminorsrc   rg   r0   r2   re   r5   r5   r6   Útest_autofmt_xdateD  s>   


þüÿþþrû   Údefaultc                  C   sr   t jdd} | j ¡  | jjjdksJ ‚| jjjdksJ ‚d| _| j ¡  | jjjdks.J ‚| jjjdks7J ‚d S )N)r;   r;   r¯   i  é2   éÈ   )r   r   ÚcanvasÚdrawÚrendererÚheightÚwidthÚdpirŽ   r5   r5   r6   Útest_change_dpin  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¯   )r{   rŠ   r‹   r   r   rÔ   )r  r  r0   r5   r5   r6   Útest_invalid_figure_sizez  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   ƒ d S 1 sAw   Y  d S )Nrt   rP   z#multiple values for argument 'rect'r†   rp   rv   )	r   r   r{   rŠ   r‹   r~   r#   ÚnanrŒ   rŽ   r5   r5   r6   Ú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   rT   Úflatr"   Ú
set_yscaleÚ
set_xscalerÙ   r(   Úget_ticklabelsr-   rÚ   r5   r5   r6   Útest_subplots_shareax_loglabels‘  s   


ÿr  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   r{   rŠ   rŒ   Úsavefig)r0   Úmsgr5   r5   r6   Útest_savefig¦  s
   "ÿr  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   r{   r|   r   r   r  ÚioÚBytesIO)r0   r  r  r5   r5   r6   Ú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.pngr  )r   r   r{   rŠ   ÚModuleNotFoundErrorr  r‹   rŽ   r5   r5   r6   Útest_savefig_backendµ  s   ÿÿ"þr!  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Ž   r5   r5   r6   Útest_figure_repr¿  s   r#  c                  C   sV   t jdd\} }t t¡ | jdd W d   ƒ n1 sw   Y  |  ¡ r)J ‚d S )NT)Úconstrained_layoutru   )r   )r   rT   r{   r|   r}   Úsubplots_adjustÚget_constrained_layoutr`   r5   r5   r6   Útest_warn_cl_plus_tlÄ  s
   þr'  r  ©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)Úgidru   Úl2)r±   r±   ÚC1)Ú	transformr+  )r)  rP   çš™™™™™©?ÚC2)g      @ru   gš™™™™™á?ÚcrimsonÚC3)r.  r«   r+  é   )r.  r+  ÚzorderFr±   )r.  Úclip_onr4  r+  )r.  r«   r5  r4  r+  )	Úset_dpirT   r   ÚLine2DÚCircleÚdpi_scale_transÚ
add_artistrÖ   ÚtransFigure)	Úfig_testÚfig_refr*  r,  Úr1Úr2Úr3rÈ   rZ   r5   r5   r6   Útest_add_artistÌ  s:   

ÿÿÿÿÿÿrA  Úfmt)r¦   r  Ú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   r  r   r  ÚopenÚencodeÚreadÚlower)rB  ÚtmpdirÚoutÚfiler5   r5   r6   Útest_fspathé  s
   
"ýrN  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      ð?rP   zThis dangles over endgR¸…ë"@r   r/  gî|?5^ºå?Fg¢E¶óýT@T)Úbbox_extra_artists)r   rT   Úset_xlimrS   rÿ   Úget_rendererÚabsÚget_tightbboxÚx1r  Úx0Úset_in_layout)r0   r2   rL   r  Úx1Nom0Úx1Nomr5   r5   r6   Útest_tightbboxó  s*   
""
"
"ÿÿrY  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   rT   rÖ   r"   r   Ú
isinstancer(   Úget_major_formatterrë   ÚAutoDateFormatterÚset_major_formatterr   rm   r5   r5   r6   Útest_axes_removal  s   (ÿ(ÿr_  c                  C   s,   t jddd\} }|d  ¡  | j ¡  d S )Nr   TrZ  r   )r   rT   rÖ   rÿ   r   rm   r5   r5   r6   Útest_removed_axis  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   )rc   rg   ÚinaxesÚguiEvent)r   rT   Úscatterrÿ   r   Ústaler   ÚbboxrU  r  Úy0r  Úpick)r0   r2   ÚcolÚmouse_eventr5   r5   r6   Útest_picking_does_not_stale%  s   

þ
rl  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   )r;   rç   )r   rç   )r;   r<   )rç   r   )
r   r   r!   Úget_subplotspecÚrowspanr&   Úcolspanr{   rŠ   Ú
IndexError)r0   rƒ   rZ   r„   Úax4r5   r5   r6   Útest_add_subplot_twotuple3  s    "ÿrr  ztightbbox_box_aspect.svgÚtightÚ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   Ú3drr   rP   )r   r   r   )r   r   Úadd_gridspecr!   Úset_box_aspect)r0   r1   rƒ   rZ   r5   r5   r6   Útest_tightbbox_box_aspectE  s   
r}  )r§   r  rD  r¦   c                 C   s4   |  ¡ }| tdƒ¡ |   ¡ }|jtdƒdd d S )Nr<   T)Úanimated)rT   r"   r&   )r<  r=  Úax_refÚax_testr5   r5   r6   Ú test_animated_with_canvas_changeR  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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¡d.d/„ ƒZedgdd0d1„ ƒZdS )2ÚTestSubplotMosaicr¦   r(  rc   )ÚArƒ  ÚB)ÚCÚDr„  )r   r   r   )r   r;   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Á   r<  r=  rc   Ú	grid_axesrh   r2   Úlabelsr1   ÚaxAÚaxBÚaxCÚaxDr5   r5   r6   Ú
test_basic\  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   rx  ry  )	Úset_constrained_layoutr‰  Úvaluesr^   r_   r{  ÚsubgridspecÚ	enumerater!   )rÁ   r<  r=  rc   rg   r  r2   r1   Úgs_leftÚjr]   rh   re   Úgs_rightr5   r5   r6   Útest_all_nestedw  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‡  rx  ry  rˆ  )r˜  r‰  rŠ  r^   r{  rš  r!   )rÁ   r<  r=  rc   rg   r  rh   r2   r1   Úgs_nr  r  r‘  r’  ÚaxFr5   r5   r6   Útest_nestedŽ  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Á   r<  r=  rc   Úxtr5   r5   r6   Ú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 r5   r5   )rK   ÚrowÚnamer5   r5   r6   Ú	<setcomp>Ï  s    z/TestSubplotMosaic.test_empty.<locals>.<setcomp>r§  r   rx  r   rˆ  r   )r‰  rŠ  r^   r‹  rÙ   r{  r!   )rÁ   r<  r=  rc   r©  rÃ   r  rh   r2   rŽ  r1   r  r  r5   r5   r6   Ú
test_empty¸  s   
ÿzTestSubplotMosaic.test_emptyc                 C   sB   t jtdd t ddg¡ W d   ƒ d S 1 sw   Y  d S )Nz
must be 2Dr†   ÚfooÚbar)r{   rŠ   r‹   r   r‰  rË   r5   r5   r6   Útest_fail_list_of_strÛ  s   "ÿz'TestSubplotMosaic.test_fail_list_of_strÚ
subplot_kwrs   ry   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±  rx  ry  )r‰  r{  r!   )	rÁ   r<  r=  r±  rc   r  r1   r  r  r5   r5   r6   Útest_subplot_kwß  s   
z!TestSubplotMosaic.test_subplot_kwÚ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 r5   )Úlist)rK   Úlnr5   r5   r6   rM   ó  rN   z;TestSubplotMosaic.test_single_str_input.<locals>.<listcomp>Ú
)r‰  ÚstripÚsplit)rÁ   r<  r=  r³  r  r5   r5   r6   Ú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   r{   rŠ   r‹   r‰  )rÁ   rc   r‡   r0   r5   r5   r6   Ú	test_failö  s   "ÿzTestSubplotMosaic.test_failc                 C   s(   |  tƒ tƒ gg¡ |  ddgg¡ d S )Nrƒ  r„  )r‰  Úobject)rÁ   r<  r=  r5   r5   r6   Útest_hashable_keys  s   z$TestSubplotMosaic.test_hashable_keys)rÄ   rÅ   rÆ   r
   r{   ÚmarkÚparametrizer“  rŸ  r¢  r¦  r­  r°  r²  r¹  r»  r½  r5   r5   r5   r6   r‚  [  sd    
 ÿ




!

úþ


ÿýþþóþ

r‚  )Nr   r  Úpathlibr   ÚplatformÚtypesr   rð   Ú
contextlibr   ÚImportErrorr   Ú
matplotlibrœ   r   r   Úmatplotlib.testing.decoratorsr	   r
   Úmatplotlib.axesr   Úmatplotlib.tickerr   r   r   Úmatplotlib.pyplotÚpyplotr   Úmatplotlib.datesÚdatesrë   Úmatplotlib.gridspecr   Únumpyr#   r{   Úmachiner7   rA   rE   r[   ra   ro   r…   r   r–   r¤   r¼   r¾   rÏ   rÕ   rÛ   rá   r¾  r¿  rû   rv  r  r  Úinfr  r  r  r  r  r!  r#  r'  rA  rN  rY  r_  r`  rl  rr  r}  r  r‚  r5   r5   r5   r6   Ú<module>   s¬    ÿÿ
'

#"
ÿü
		

)
ý
		


	

ÿý
	
