o
    j                  	   @   s  d dl 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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 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rd ndddd Z,eddge+ dkrd nddddd Z-dd Z.dd Z/d d! Z0d"d# Z1d$d% Z2d&d' Z3ed(ge+ dkrd nd)d*d+d, Z4ed-gd.d/ Z5d0d1 Z6d2d3 Z7d4d5 Z8ed6gd7d8 Z9d9d: Z:d;d< Z;d=d> Z<d?d@ Z=edAgddgdBdCdDdEdFdG Z>dHdI Z?dJdK Z@dLdM ZAdNdO ZBdPdQ ZCejDEdRg dSdTdU ZFdVdW ZGejHIdXdYdZ ZJejDEd[d\ejKfd]ejLd\fgd^d_ ZMd`da ZNdbdc ZOddde ZPdfdg ZQdhdi ZRejDEdjejSdkejDTdkgdlejSdmejDTdmgdlgdndo ZUdpdq ZVdrds ZWeXdtduiedgdvdwdx ZYdydz ZZd{d| Z[d}d~ Z\edgdvdd Z]ejDEdddgdd Z^dd Z_eddgdvdd Z`ejDEdg ddd Zadd Zbdd Zcdd ZdejDEdddgdd Zedd ZfejHIddd Zgdd Zhedgddddduddd Zieg ddvdd ZjG dd dZkdd Zledgdddiddd Zmdd Zndd Zoedgdddidddd Zpedgdddiddd Zqdd ZrejHIddd ZsedgddudčddƄ ZtddȄ Zuddʄ Zvdd̄ Zwdd΄ ZxddЄ Zydd҄ ZzddԄ Z{ddք Z|edgdvdd؄ Z}ddڄ Z~dd܄ Zddބ ZejDEdg dߢdd ZejDEdg ddd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)datetime)Timer)SimpleNamespace)Image)gridspec)image_comparisoncheck_figures_equal)Axes)KeyEvent
MouseEvent)Figure
FigureBase)ConstrainedLayoutEngineTightLayoutEnginePlaceHolderLayoutEngine)AutoMinorLocatorFixedFormatterScalarFormatterZfigure_align_labelspngsvgx86_64{Gz?)
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 qq|   d S )Ntightlayout   r          .A  z	Ylabel0 0)r        @d      z
YLabel1 %dz
XLabel1 %dr   r   topZ   rightzXLabel2 zYLabel2 
   )pltfigurer   ZGridSpecadd_subplotplotnparange
set_ylabelrange
set_xlabelxaxisset_label_positiontick_topget_xticklabelsset_rotationyaxisZ
tick_rightZalign_labels)figgsaxitick r>   ]/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_figure.pytest_align_labels   sB   



r@   zfigure_align_titles_tight.pngz#figure_align_titles_constrained.pnggI+?Zmpl20)r   stylec                  C   s   dD ]e} t jdd| ddgd\}}|d }|tddd |jdd	d
 |jddd
 |jddd
 |d }|tddd |d |d |jd |j	  |
 D ]}|d q[|  qd S )N)r   constrainedr$   r   )r   width_ratiosr   r   r    zTitle0 leftleft)loczTitle0 centercenterzTitle0 rightr(   r"   r#   ZTitle1ZXlabel0r&   r'   )r*   subplotsr-   r.   r/   	set_titler2   r3   r4   r5   r6   r7   Zalign_titles)r   r9   axsr;   r=   r>   r>   r?   test_align_titlesE   s"   



rJ   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 ||< qtj|d d |dd   tj|d d d |dd d  d S )Nr   BooZWho   r$   r   Tconstrained_layoutr)   r;   )r*   rG   	enumerateflatr2   r-   r.   r/   Zalign_ylabelsZalign_xlabelsdraw_without_renderingzerosr3   labelget_positionr8   testingassert_allclose
pcolormeshrandomrandncolorbar)r9   rI   nnr;   ZxnZynpcr>   r>   r?   test_align_labels_stray_axes_   s>   

"

"



&r^   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 sw   Y  d S )Nalltodayr   tomorrowr   r$   )r   r$   r   rL      ) r`   rc   ra   rc   r)   rb   rc   )
r*   closer+   Zget_fignumsZget_figlabelsZgcfpytestraises
ValueErrorr   )Z	fig_todayr>   r>   r?   test_figure_label   s*   










"rh   c                  C   s\   t d t d} tjtjdd d| _W d    n1 s w   Y  | jdks,J d S )Nr_   r$   &Changing 'Figure.number' is deprecatedmatchr   )r*   rd   r+   re   warnsmplMatplotlibDeprecationWarningnumberr9   r>   r>   r?   test_figure_label_replaced   s   

rq   c                  C   s   t  } tt | j W d    n1 sw   Y  tjtjdd d| _W d    n1 s1w   Y  | jdks=J t	| jrEJ d S )Nri   rj   rb   )
r   re   rf   AttributeErrorro   rl   rm   rn   r*   fignum_existsrp   r>   r>   r?   test_figure_no_label   s   rt   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   threerL   )r*   r+   rs   rd   r>   r>   r>   r?   test_fignum_exists   s   




rw   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>   Zget_text.0tr>   r>   r?   
<listcomp>       z$test_clf_keyword.<locals>.<listcomp>F)rx   clear      ?c                 S   ry   r>   rz   r{   r>   r>   r?   r~      r   r   Tc                 S   ry   r>   rz   r{   r>   r>   r?   r~      r   )r*   r+   suptitletextstextrG   )Ztext1Ztext2Zfig0fig1fig2ax2r>   r>   r?   test_clf_keyword   s   
r   zfigure_today.pnggQ?)r   c                  C   sh   t d} |  }||   |td t d t ddgddgd t d t d d S )Nr`   rb   ra   r   r$   r)	r*   r+   r,   rH   	get_labelr-   r.   r/   rd   r9   r;   r>   r>   r?   test_figure   s   


r   zfigure_legend.pngc                  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)rT   coloryr   r   kZ_yzb)r*   rG   r-   legendr9   rI   r>   r>   r?   test_figure_legend   s   r   c                  C   s   t  } | g d}|  |u sJ | d}|  |u s J | | | j||gks.J |  |u s6J | | | j||gksDJ | | | j||gksRJ |  |u sZJ d S )Nr   r   r$   r$   o   )r*   r+   add_axesZgcar,   axesZsca)r9   ax0ax1r>   r>   r?   test_gca   s   



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   
projectionT)r   polar)r   r   *   r   )r*   r+   r,   r	   re   rf   rg   	TypeErrorrp   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dd	 W d    n1 sw   Y  tjtd
d | d W d    n1 sw   Y  tjtd
d | d W d    n1 sw   Y  tjtdd | dd W d    n1 sw   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 sHw   Y  t  \}}tjtdd | | W d    d S 1 slw   Y  d S )Nz,Number of columns must be a positive integerrj   r   r   r$   z)Number of rows must be a positive integerz)num must be an integer with 1 <= num <= 4rb   r   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   rL   z2Number of rows must be a positive integer, not '2'2z5Number of columns must be a positive integer, not 2.0g       @5The Axes must have been created in the present figure)r*   r+   re   rf   rg   r,   r   rG   )r9   _r;   r>   r>   r?   test_add_subplot_invalid  s`   $r   zfigure_suptitle.pngc                  C   s.   t  \} }| jddd | jdddd d S )NZhellor   )r   titler      )r   Zrotation)r*   rG   r   )r9   r   r>   r>   r?   test_suptitleE  s   r   c                  C   sV   t  \} }tjjddd}| jd|d}| | ksJ | | ks)J d S )NZlargebold)sizeweightzfontprops title)Zfontproperties)	r*   rG   rm   Zfont_managerZFontPropertiesr   Zget_fontsizeZget_size_in_pointsZ
get_weight)r9   r;   Zfpstxtr>   r>   r?   test_suptitle_fontpropertiesL  s
   r   c                  C   sd   t jdd} | dd\}}|d |  |  | d | dks(J | dks0J d S )	N)rL   r   figsizer$   r   whitezThis is a visible suptitle.)        r   r   r   )      ?r   r   r   )r*   r+   
subfiguresset_facecolorrG   r   Zget_facecolor)r9   Zsf1Zsf2r>   r>   r?   test_suptitle_subfiguresT  s   

r   c                  C   s   t  \} }|  dksJ |  dksJ |  dksJ | d |  dks+J | d |  dks8J | d |  dksEJ d S )Nrc   r   	supxlabel	supylabel)r*   rG   Zget_suptitleZget_supxlabelZget_supylabelr   r   r   r   r>   r>   r?   %test_get_suptitle_supxlabel_supylabelb  s   


r   c                  C   s   t  } | d}| d}| d}t| jdksJ | jd us#J | jd us*J | j	d us1J |
  | jd u s<J |
  | jd u sGJ |
  | j	d u sRJ | jrWJ d S )Nr   r   r   r   )r*   r+   r   r   r   lenr   Z	_suptitleZ
_supxlabelZ
_supylabelremove)r9   r   xlabelylabelr>   r>   r?   (test_remove_suptitle_supxlabel_supylabelo  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$   r   r   r         333333?red)Zradiusalphar   )	r*   r+   r   patchZ	set_alphaZpatchesappendrm   ZCirclePolygonrp   r>   r>   r?   
test_alpha  s   
r   c                  C   sP   t t ttjd d D ]} t  qW d    d S 1 s!w   Y  d S )Nzfigure.max_open_warningr$   )re   rl   RuntimeWarningr1   rm   ZrcParamsr*   r+   )r<   r>   r>   r?   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 | d 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)rg   )r   itemr>   r>   r?   __getitem__  s   z;test_iterability_axes_argument.<locals>.MyClass.__getitem__c                    s    d| ifS )Nr   r>   r   r   r>   r?   _as_mpl_axes  s   z<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axesN)r   r   r   r   r   r>   r   r>   r?   MyClass  s    r   r$   r   )r	   r*   r+   r,   rd   )r   r9   r>   r   r?   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 )Nrb   r$   r   rL   )r$   r   r   )r*   r+   Zset_figwidthZget_figwidthZset_figheightZget_figheightset_size_inchesrp   r>   r>   r?   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*   rG   r   ravelr   r   r9   rI   r;   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   r   )r   r   )r*   Z	figaspectr.   Zfloat64rS   )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sJ qd 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   rL   rb         r   ignorez=FixedFormatter should only be used together with FixedLocator皙?r(   )r   r   r   Fr   )r   r   Tr   )mdatesZdatestr2numr*   rG   r-   Z
yaxis_dateZ
xaxis_dater3   Zset_minor_locatorr   warningscatch_warningsfilterwarningsZset_minor_formatterr   autofmt_xdater   r6   intget_rotation)
r   datetimeZangleZminorsr   r   r9   r;   rT   r>   r>   r?   test_autofmt_xdate  s6   


r   c                  C   sd   t jdd\} }|g dg dg}t | |   |   |jddd }| dks0J d S )	NrB   r   )r$   rL   r   )r   r   rb   r   r   r$   g      >@)r*   rG   imshowr[   r   rR   r6   r   )r9   r;   imrT   r>   r>   r?   'test_autofmt_xdate_colorbar_constrained	  s   
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)rL   rL   r   i  2      )r*   r+   rR   canvasrendererheightwidthdpirp   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   )re   rf   rg   r*   r+   r   )r
  r	  r9   r>   r>   r?   test_invalid_figure_size#  s   "r  c                  C   s  t  } tjtdd |   W d    n1 sw   Y  tt | dddtjf W d    n1 s9w   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    n1 s}w   Y  |
| tjtd	d ||d
 W d    n1 sw   Y  tjtd	d | g dd
 W d    d S 1 sw   Y  d S )Nz.missing 1 required positional argument: 'rect'rj   皙?r   z#multiple values for argument 'rect'r   )rectr   z)add_axes\(\) takes 1 positional argumentszextra positional argument)r*   r+   re   rf   r   r   rg   r.   nanrG   Zdelaxes)r9   r   r;   r>   r>   r?   test_invalid_figure_add_axes1  s2   

"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 sJ qvd S )Nr   TF)sharexshareyZsqueeze)r)   r   r   logr   r   r   r$   )
r*   rG   rQ   r-   
set_yscaleZ
set_xscaler   r3   Zget_ticklabelsr8   r   r>   r>   r?   test_subplots_shareax_loglabelsK  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 givenrj   z
fname1.pngz
fname2.png)r*   r+   re   rf   r   savefig)r9   msgr>   r>   r?   test_savefig`  s
   "r  c               	   C   sT   t  } dD ]!}tt | jt |dd W d    n1 s"w   Y  qd S )N)r   pdfr   tifjpgT)formatZnon_existent_kwarg)r*   r+   re   rf   r   r  ioBytesIO)r9   r  r>   r>   r?   test_savefig_warnsg  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'rj   testzmodule://@absent)backendz-The 'pdf' backend does not support png outputztest.pngr  )r*   r+   re   rf   ModuleNotFoundErrorr  rg   rp   r>   r>   r?   test_savefig_backendn  s   "r$  r"  ZAgg)ZmarksZ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   r  r   )r*   rG   r-   r  r  r  r   openloadr  _set_device_pixel_ratio)r"  r9   r;   bufZratio1Zratio2r>   r>   r?   test_savefig_pixel_ratiox  s    





r+  c                  C   s0   t jdd} | jt dd |  jsJ d S )N
compressedr   r   bbox_inches)r*   r+   r  r  r  get_layout_engineZ	_compressrp   r>   r>   r?   #test_savefig_preserve_layout_engine  s   r0  c                  C   s|   t  \} }|tjdd}| j|dd}| jt	 t
jddgddggd |jjddj|jjd	djks<J d S )
Nr   (   )Zaspectr   rL   r-  T)originalF)r*   rG   rX   r.   rY   rZ   r[   r  r  r  rm   Z
transformsZBboxr;   rU   Zbounds)r9   r;   r]   Zcbarr>   r>   r?   test_savefig_locate_colorbar  s   &r3  zsavefig.transparentTr   c                 C   s   | j ddddd}| |d d d d f }||d }||d d d d f }||d dd d f }|g d}|g d}| |dd df }	| |d }
|||||	|
fD ]}|jg g d |jd d  d	 q_d S )
Nr   皙?)rD   wspacer   r   r!   )r  r   333333?r   r   )ZxticksZyticksF)add_gridspecadd_subfigurer,   Z
inset_axessetZspinesset_visible)fig_testfig_refgs1f1f2Zax12r   Ziax1Ziax2r   ax3r;   r>   r>   r?   test_savefig_transparent  s   rC  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+   reprrp   r>   r>   r?   test_figure_repr  s   rE  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 )Nr   r   rB   )r   Zget_tight_layoutZget_constrained_layoutrp   r>   r>   r?   test_valid_layouts  s   


rF  c                  C   s  t jdd\} }tt | jdd W d    n1 sw   Y  t|  ts,J d}tjt|d t	ddd	} W d    n1 sFw   Y  t|  t
sTJ d
}tjt|d t	ddd} W d    n1 snw   Y  t|  t
r|J t|  tsJ tjtdd t	dd W d    n1 sw   Y  t jdd\} }| d t|  t
sJ | d t|  tsJ t jdd\} }|tjdd}| | tjtdd | d W d    n1 sw   Y  | d tjtdd | d W d    n	1 sw   Y  t jdd\} }|tjdd}| | tjtdd | d W d    n	1 sIw   Y  | d t|  ts]J tjtdd | d W d    d S 1 svw   Y  d S )NrB   r   皙?)r&   z1The Figure parameters 'layout' and 'tight_layout'rj   r   F)r   tight_layoutz7The Figure parameters 'layout' and 'constrained_layout')r   rN   zInvalid value for 'layout'Zfoobarr   zColorbar layout of new layoutr   )r*   rG   re   rl   UserWarningZsubplots_adjust
isinstancer/  r   r   r   rf   rg   set_layout_enginerX   r.   rY   rZ   r[   RuntimeErrorr   )r9   r;   Zwstr]   r>   r>   r?   test_invalid_layouts  s^   





$rM  c              	   C   sx   t || gddgD ]0\}}td|i |jdd}|jdd W d    n1 s+w   Y  t| ts9J q	d S )NFTzfigure.autolayoutr   )ncolsr)   )w_pad)ziprm   
rc_contextrG   rH  rJ  r/  r   )r=  r>  r9   Z
autolayoutr   r>   r>   r?   &test_tightlayout_autolayout_deconflict  s   rR  r   rB   r,  c                 C   sL   t j| d\}}tjtdd t   W d   dS 1 sw   Y  dS )zj
    Raise a warning when a previously assigned layout changes to tight using
    plt.tight_layout().
    r   z The figure layout has changed torj   N)r*   rG   re   rl   rI  rH  )r   r9   r;   r>   r>   r?   test_layout_change_warning  s   
"rS  c                  C   s"   t  } |   |   |   d S r   )r   rH  rp   r>   r>   r?   test_repeated_tightlayout  s   rT  r  c           	   	   C   s.  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 ]}| | qE|  | }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 ]}|| qd S )Nr#   r   ffffff?l1)gidrG  l2)r   r   ZC1)	transformrW  )rU  r   r5  ZC2)g      @rG  g?ZcrimsonZC3)rY  r   rW     )rY  rW  zorderFr   )rY  clip_onr[  rW  )rY  r   r\  r[  rW  )	r  rG   r*   Line2DZCircleZdpi_scale_transZ
add_artistr   ZtransFigure)	r=  r>  rV  rX  r1r2Zr3r   r   r>   r>   r?   test_add_artist  s:   r`  fmt)r   r  psepsr   c                 C   sd   |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'  encodereadlower)ra  Ztmp_pathoutfiler>   r>   r?   test_fspath8  s
   
"rk  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 sJ t|j|g dj|| j	  dk sJ d S )Nr   r$   r   r   zThis dangles over endgR"@r   r5  g|?5^?FgET@T)Zbbox_extra_artists)r*   rG   set_xlimr   r  get_rendererabsget_tightbboxx1r  x0Zset_in_layout)r9   r;   r}   r  Zx1Nom0Zx1Nomr>   r>   r?   test_tightbboxB  s*   
""
"
"rr  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*   rG   r   r-   r   rJ  r3   Zget_major_formatterr   ZAutoDateFormatterZset_major_formatterr   r   r>   r>   r?   test_axes_removal[  s   ((rt  c                  C   s,   t jddd\} }|d   | j  d S )Nr   Trs  r   )r*   rG   r   r  drawr   r>   r>   r?   test_removed_axism  s   rv  
clear_methr   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sJ | j	v sJ |d}| jv sJ | jv sJ t||   | j	v sJ ||jvsJ | jvsJ | jv sJ |d}t |    jg ksJ  j	g ksJ  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sJ d S )Nr   c                    s   g | ]}  d d|d qS r   r$   r,   r|   r<   rp   r>   r?   r~     s    z%test_figure_clear.<locals>.<listcomp>r   r$   )rN  nrowsr   c                       g | ]	}  | qS r>   r:  r{  r9   r:   r>   r?   r~         r   r$   c                 S      g | ]}| d qS r   rz  r|   sfigr>   r>   r?   r~         c                 3       | ]}| j v V  qd S r   r   r|   r;   rp   r>   r?   	<genexpr>      z$test_figure_clear.<locals>.<genexpr>c                 3   r  r   subfigsr  rp   r>   r?   r    r  c                    r}  r>   r~  r{  r  r>   r?   r~     r  c                 S   r  r  rz  r  r>   r>   r?   r~     r  c                 3   r  r   r  r  rp   r>   r?   r    r  c                 3   r  r   r  r  rp   r>   r?   r    r  )r*   r+   r   r   r,   getattrr1   r9  r:  r  r   r_   )rw  r;   r   ZsubfigZsubaxesZmainaxesr  r>   r  r?   test_figure_cleart  sh   




r  c                  C   s    t  D ]	} d| jvsJ qd S )Nrx  )r   __subclasses____dict__)klassr>   r>   r?   test_clf_not_redefined  s   r  c                  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)Zpickerr   )r   r   ZinaxesZguiEvent)r*   rG   scatterr  ru  staler   bboxrq  r
  Zy0r	  pick)r9   r;   Z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sJ tt	 | ddd	 W d    d S 1 sw   Y  d S )
Nr   r   r   rb   r$   r   )rL   r   )r   r   )rL   rb   )r   r   )
r*   r+   r,   get_subplotspecZrowspanr1   colspanre   rf   
IndexError)r9   r   r   rB  Zax4r>   r>   r?   test_add_subplot_twotuple  s    "r  ztightbbox_box_aspect.svgr   teal)r.  r   )rA   r   remove_textc                  C   sL   t  } | dd}| |d }| j|d dd}|d |d d S )	Nr$   r   r7  r  r   r   r   )r   r$   r$   )r*   r+   r9  r,   Zset_box_aspect)r9   r:   r   r   r>   r>   r?   test_tightbbox_box_aspect  s   
r  )r   r  rc  r   c                 C   s4   |  }|td |   }|jtddd d S )Nrb   T)Zanimated)rG   r-   r1   )r=  r>  Zax_refZax_testr>   r>   r?    test_animated_with_canvas_change  s   r  c                   @   sf  e Zd Zedgdejdg dg dgg dg dgdd	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
dd Z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(d)ed)gd*d+ Zd,d- Zd.d/ Zd0d1 Zedgdejd2g d3d4d5 Zejd6ddgddggd7fddgdddgd8d9ggggd:fd;ddd8gd9gggd<d<ggd=fgd>d? Zedgdd@dA Zejd2g dBdCdD ZdEdF ZdGdH ZdS )ITestSubplotMosaicr   r4  r   Ar  BCDr  r$   r$   r   r   rL   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itemsrH   sortedr.   uniquer   r9  r,   )r   r=  r>  r   	grid_axesr   r;   labelsr:   axAaxBaxCaxDr>   r>   r?   
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HrB   r$   r   r7  r  )	rK  r  valuesrH   r   r9  subgridspecrP   r,   )r   r=  r>  r   r   r  r;   r:   Zgs_leftjr   r   rT   Z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 )NrB   r  r  r  r  r  r   r$   r  r7  r  r  )rK  r  r  rH   r9  r  r,   )r   r=  r>  r   r   r  r   r;   r:   Zgs_nr  r  r  r  ZaxFr>   r>   r?   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>  r   Zxtr>   r>   r?   test_nested_tuple\  s   z#TestSubplotMosaic.test_nested_tuplec                 C   s`   ddgdgggg}ddg}t j||d\}}|d   |ks"J |d   |ks.J d S )Nr  r  r  r   r$   )rC   )r*   r  get_gridspecZget_width_ratios)r   r   rC   r9   axdr>   r>   r?   test_nested_width_ratiosd  s   z*TestSubplotMosaic.test_nested_width_ratiosc                 C   sf   ddgdgggddgg}ddg}t j||d\}}|d   |ks%J |d   |ks1J d S )Nr  r  r  r  r$   r   height_ratios)r*   r  r  Zget_height_ratios)r   r   r  r9   r  r>   r>   r?   test_nested_height_ratiosn  s   z+TestSubplotMosaic.test_nested_height_ratiosz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>   )r|   rownamer>   r>   r?   	<setcomp>  r  z/TestSubplotMosaic.test_empty.<locals>.<setcomp>r  r   r7  r   r  r$   )r  r  rH   r  r   r9  r,   )r   r=  r>  r   r  r   r  r   r;   r  r:   r  r  r>   r>   r?   
test_emptyx  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    n1 s6w   Y  t jtdd tddgg W d    n1 sUw   Y  t jtdd tddgdd	gg W d    d S 1 sxw   Y  d S )
Nz
must be 2Drj   Zfoobar)r  r   r   )r   r   c)re   rf   rg   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  r7  r  )r  r9  r,   )	r   r=  r>  r  r   r  r:   r  r  r>   r>   r?   test_subplot_kw  s   
z!TestSubplotMosaic.test_subplot_kwmulti_valueBCc           	      C   s^   d}|j |ddidddi|ddiid}|dd}tg d	|D ]\}}|j||d
 q!d S )NzAB;CDr   r   r  bluegreen)r  per_subplot_kwr   )r   r  r  r  r   )r  r9  rP  r,   )	r   r=  r>  r  r   r  r:   r   specr>   r>   r?   test_per_subplot_kw  s   	z%TestSubplotMosaic.test_per_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   Z_normalize_grid_stringr   	normalizer>   r>   r?   test_string_parser  s   "z$TestSubplotMosaic.test_string_parserc                 C   s   t j}|i i di i dksJ |di ii i dksJ tjtdddd |i i d W d    n1 s;w   Y  tjtdddd |i i d W d    d S 1 s^w   Y  d S )Nr  r  zThe key r  z appears multiple timesrj   )r  r  )r  r  )r   Z_norm_per_subplot_kwre   rf   rg   r  r>   r>   r?   test_per_subplot_kw_expander  s   "z.TestSubplotMosaic.test_per_subplot_kw_expanderc                 C   sT   t jtdtddd t jddi id W d    d S 1 s#w   Y  d S )Nz	The keys r  z are inrj   r  )r  )re   rf   rg   r;  r   r  r   r>   r>   r?   test_extra_per_subplot_kw  s
   "z+TestSubplotMosaic.test_extra_per_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 r>   )list)r|   lnr>   r>   r?   r~     r   z;TestSubplotMosaic.test_single_str_input.<locals>.<listcomp>
)r  stripsplit)r   r=  r>  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 )Nrj   )r*   r+   re   rf   rg   r  )r   r   rk   r9   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   r=  r>  r>   r>   r?   test_hashable_keys  s   z$TestSubplotMosaic.test_hashable_keys)abcZcabZbcaZcbaZacbZ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  r9   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  IZ	ABCDEFGHIr  r   r   r9   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)ZxscaleZyscalec                 s   s(    | ]}|  d ko| dkV  qdS )r  r  N)Z
get_xscale
get_yscaler  r>   r>   r?   r  3  s     z3TestSubplotMosaic.test_share_all.<locals>.<genexpr>)r*   r+   r  r;  r_   r  r  r>   r>   r?   test_share_all(  s   z TestSubplotMosaic.test_share_all)r   r   r   r   re   markparametrizer  r  r  r  r  r  r  r  r  tupler  r  r  r  r  r  r  r  r  r  r>   r>   r>   r?   r    s    





!












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  rL   )r   r   ry  )r  r9   N)r*   r+   r,   Zsubplot2gridr  r  )r9   r   r   rB  r?  Zgs2Zgs3r>   r>   r?   test_reused_gridspec7  s   r  ztest_subfigure.pngr   )rA   r   c                  C   sH  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 dd}|jD ]}|jt j	ddddd	}qO|d j
||dd |d d |d d | jddd | jdd tdD dd}|d | d  |d | d  d S )N!N,rB   r   r$   r   r   r   ZvminZvmaxrO   	Left Sider   r   bottom)r;   locationz
Right SideFigure suptitlexx-largefontsizec                 S   s&   g | ]}t jd gd gd|dqS )r   zLine{}rT   )r*   r]  r  r{  r>   r>   r?   r~   ^  s    z"test_subfigure.<locals>.<listcomp>rb   rF   )ZhandlesrE   )r.   rY   seedr*   r+   r   rG   rQ   rX   rZ   r[   r   r   r   r1   Z
set_zorderZ
get_zorder)r9   subrI   r;   r]   legr>   r>   r?   test_subfigureF  s.   


r  c                  C   s8   t jdd} | dd}tj| | j j	d d S )NrB   r   r$   r   g       @)
r*   r+   r   r.   rV   rW   ro  r  rm  r
  )r9   r
  r>   r>   r?   test_subfigure_tightbboxd  s   r  c                  C   sV   t jdd} |  }| |  ksJ |d | dks!J |  dks)J d S )Nr#   r  r  )r*   r+   r   Zget_dpiZset_dpir9   sub_figr>   r>   r?   test_subfigure_dpin  s   
r  ztest_subfigure_ss.png{Gz?)rA   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}q$|j||d |d | |d }|t d |d | jddd d S )Nr  rB   r   r$   r   r   Zpinkr  r   r  r   rO   r  r   r	   r  r  r  )r.   rY   r	  r*   r+   r9  r:  rG   rQ   rX   rZ   r[   r   r,   r-   r/   rH   )r9   r:   r
  rI   r;   r]   r>   r>   r?   test_subfigure_ssx  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  rB   )r)      )r   r   r9   r$   r   gQ?)r6  r   Zcoralz
subfigs[0]z
subfigs[1]gffffff?r  zsubfigsnest[0]r   Tr     r   g      g      @r   zx-labelr  zy-labelTitlerO   zsubfigsnest[1]r   r   rs  r   r   r   )r.   rY   r	  r*   r+   r   r   r   rG   rX   rZ   r2   r0   rH   r[   rP   r   r   )
r9   r  ZsubfigsnestZaxsnest0r;   r  r]   Zaxsnest1r\   ZaxsRightr>   r>   r?   test_subfigure_double  s6   
r  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 )NTrM   r   r7  r   r   r$       r   rL   )r*   r+   r9  r:  r.   rV   rW   r  minmaxr1   r,   rR   )r9   r:   sub_figsr   r   r<   r>   r>   r?   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   )rN   r   r$   r   r   r   )r6  rC      )r|  rN  r   g!<LgkX.8@i  i  )r   r   r   r  g YI_gRϫW@x   i,  )r*   r+   r   r9  r,   r  r  rR   Z
get_xticksr.   rV   rW   )	r9   Z	subfig_blZ	subfig_brr:   r   r   rB  Zticks120Zticks300r>   r>   r?   test_subfigure_ticks  s"   

r!  ztest_subfigure_scatter_size.png)rA   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   r%  r   s)r"  marker)r   rL   rb   )r   r   r1  r   r   )r"  r#  r   r   )r*   r+   r9  r,   r  r:  rG   )r9   r:   r   r  rI   r;   r>   r>   r?   test_subfigure_scatter_size  s   "r$  c                  C   sN   t jdd} |  }|d}|dd}|| t }| j|dd d S )NrB   r   r   r$   r  r&  )	r*   r+   r   r,   r  Z	bar_labelr  r  r  )r9   r  r;   r   bufferr>   r>   r?   test_subfigure_pdf  s   

r&  c                  C   s  t  jddddd} d}d}tj| d jjd	|d
 g tj| d jj|d |g tj| d jj|d |d
 g tj| d jj|d |g tj| d jj|d |d
 g tj| d jj||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 |d g tj| d jj|d dg tj| d jj||d g d S )Nr   r   r   gUUUUUU?)hspacer6  r  r  r7  r   r   r8  r  gffffff?g?r%   rU  r  r   r   r  r   )	r*   r+   r   r.   rV   rW   r  r  r  )r  r   r   r>   r>   r?   test_subfigures_wspace_hspace  s   """""r(  c                  C   sB   t  } | dd}|d   |d   t| jdksJ d S )Nr   r  r   )r*   r+   r   rG   r   r   r  )r9   Zsfsr>   r>   r?   test_subfigure_remove%  s
   r)  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   rectilinear)r*   r+   r,   rd   r  r9   r;   r   r>   r>   r?   test_add_subplot_kwargs-  &   r,  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   rd   r  r+  r>   r>   r?   test_add_axes_kwargsF  r-  r.  c                    s   t dd t \ }|jj 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$   t d jgddR    d S )Nbutton_press_eventr  r   r$   )r   r  _processr>   r9   Ztransr>   r?   single_pressd  s   $z!test_ginput.<locals>.single_pressr  r1  c                      s   t d jgddR    td jd  t d jgddR    t d jgddR    t d jgdd	R    d S )
Nr0  r1  r$   key_press_eventZ	backspacer8  r   r   r   r7  r   )r   r  r2  r
   r>   r3  r>   r?   multi_pressesj  s
      $z"test_ginput.<locals>.multi_pressesr   r6  r7  )r   r   r*   rG   Z	transDatarY  r   startZginputr.   rV   rW   )recwarnr;   r4  r8  r>   r3  r?   test_ginput_  s   r;  c                 C   s   t dd t }|jddd u sJ tdtd|jdj	  | du s)J tdt
d|jd	d	d
j	  | du s@J d S )Nr   r/  r  )timeoutr5  r   Tr0  r   r$   F)r   r   r*   r+   Zwaitforbuttonpressr   r
   r  r2  r9  r   )r:  r9   r>   r>   r?   test_waitforbuttonpressu  s   r=  c                  C   s>   t dd} | jdddd}|  dksJ | dksJ d S )Nzwhole Figurer  r$   z
sub figure)r   r   r   r  r>   r>   r?   test_kwargs_pass  s   
r>  c                 C   s   |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 d    d S 1 s=w   Y  d S )
Nr   r   r   )r   r   r   r  Zlightr   )zfigure.labelweightzfigure.labelsizezfigure.titleweightzfigure.titlesize)r   r   r   rm   rQ  )r=  r>  r>   r>   r?   test_rcparams  s   


"r?  c                  C   s   t  \} }|ddgddg |d t| }|jd |us#J |jd  dks.J |jd d | dks>J |dd | 	  |	  |
 d	ksTJ |jd 
 d
ks_J d S )Nr   r$   r   r   r  Zlinearr        Y@)r  r@  r  )r*   rG   r-   r  copydeepcopyr   r  rl  rR   Zget_xlim)r   r;   r   r>   r>   r?   test_deepcopy  s   

rC  c                  C   sF   t dd} | jd | jdksJ tt| }|jdks!J d S )Nr   r  r   i&  )r   r  r)  r  pickleloadsdumps)r9   r   r>   r>   r?   %test_unpickle_with_device_pixel_ratio  s
   
rG  c                  C   sJ   ddi} t | }tjddddg| d | |ksJ tjdddg| d d S )NrD   r  r$   r   )rC   Zgridspec_kwZAB)dictr*   rG   r  )r:   Zgs_origr>   r>   r?   test_gridspec_no_mutate_input  s
   rI  )rc  r  r   rb  r   Zsvgzc                 C   s   t  jt | i d d S )Nr  metadata)r   r  r  r  ra  r>   r>   r?   test_savefig_metadata  s   rM  )Zjpegr  r  ZtiffZwebprawZrgbac                 C   sJ   t jtdd t jt | i d W d    d S 1 sw   Y  d S )Nzmetadata not supportedrj   rJ  )re   rf   rg   r   r  r  r  rL  r>   r>   r?   test_savefig_metadata_error  s   "rO  c                  C   s|   ddddd} t g |  }tjtjjd	i | d}tjt	dd |
 |ks,J W d    d S 1 s7w   Y  d S )
Nr   r  gQ?g{Gz?)rO  Zh_padr6  r'  r   zwill be deprecatedrj   r>   )r  r  r*   r+   rm   Zlayout_enginer   re   rl   PendingDeprecationWarningZget_constrained_layout_pads)paramsexpectedr9   r>   r>   r?    test_get_constrained_layout_pads  s   "rS  c                  C   st   t  } t }| j|dd |d d| v sJ | d t }| j|dd |d d| vs8J d S )Nr   r&  r   z<g F)r   r  StringIOr  seekrg  r<  )r9   r*  r>   r>   r?   test_not_visible_figure  s   


rV  c                  C   s  t  \} }t d\}\}}|ddgddgg}| | tjtdd || W d    n1 s6w   Y  tjtdd |j||d W d    n1 sTw   Y  tjtdd |j||d W d    n1 srw   Y  tjtdd |j||d W d    n1 sw   Y  t  }t  }| }| }	| }
| }| }|
 }|ddgddgg}|ddgddgg}|ddgddgg}|| || || tjtdd || W d    d S 1 sw   Y  d S )	Nr   r$   r   rL   zdifferent Figurerj   rO   )Zcax)	r*   rG   r  r[   re   rl   rI  r+   r   )r   r   r   Zax2_1Zax2_2r  Zfig3Zfig4Z	subfig3_1Z	subfig3_2Z	subfig4_1Zax3_1Zax3_2Zax4_1Zim3_1Zim3_2Zim4_1r>   r>   r?   test_warn_colorbar_mismatch  sB   



"rW  c               	   C   s   t  } |  }| }| ||fD ]}ttj ||  W d    n1 s)w   Y  qtjt	dd || W d    n1 sFw   Y  tjt	dd |t   W d    d S 1 sew   Y  d S )Nzcannot be changedrj   )
r*   r+   r   re   rl   rm   rn   Z
set_figurerf   rg   )r9   sfig1sfig2fr>   r>   r?   test_set_figure  s   "r[  c                  C   s>   t  } | dd}t| | jD ]
\}}||u sJ qd S )NrL   r   )r*   r+   r   rP  r   r  )r9   Zsf_arrr   r   r>   r>   r?   test_subfigure_row_order  s
   r\  c                  C   s   t  } |   | jrJ |  }| jsJ |   | jrJ |jr$J | }| js-J |js2J |   | jr;J |jr@J |jrEJ d|_|jsMJ | jsRJ d S )NT)r*   r+   rR   r  r   )r9   rX  rY  r>   r>   r?    test_subfigure_stale_propagation  s$   









r]  )rA  r   r  rD  platform	threadingr   typesr   r   numpyr.   re   ZPILr   Z
matplotlibrm   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.axesr	   Zmatplotlib.backend_basesr
   r   Zmatplotlib.figurer   r   Zmatplotlib.layout_enginer   r   r   Zmatplotlib.tickerr   r   r   Zmatplotlib.pyplotZpyplotr*   Zmatplotlib.datesdatesr   machiner@   rJ   r^   rh   rq   rt   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  rA   contextr  r  infr  r  r  r  r   r$  paramr"  r+  r0  r3  rQ  rC  rE  rF  rM  rR  rS  rT  r`  rk  rr  rt  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r&  r(  r)  r,  r.  r;  r=  r>  r?  rC  rG  rI  rM  rO  rS  rV  rW  r[  r\  r]  r>   r>   r>   r?   <module>   sR   
'
#	

,

		
'


	



4




	
Q


	
  7




'








$