o
    tBh8                    @   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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mZmZ d dlmZ d dlmZ d d	lmZ d dl m!Z" d dl#m$Z% d dl&m'Z( d dl)m*Z+ d dl,m-Z. d dl/m0Z1 d d
l2m3Z3m4Z4m5Z5 d dlm6Z6 d dl7m8Z8 dd Z9e dd Z:e dd Z;e dd Z<dd Z=edgddd Z>edgddd Z?dd Z@edgddd  ZAeg d!d"d# ZBd$d% ZCd&d' ZDed(gd)d* ZEd+d, ZFejGHd-d.edgd/d0d1d2 ZIed3gd4d5 ZJd6d7 ZKd8d9 ZLedgdd:d; ZMed<gd=d>d?d@ ZNejOPdAdBdC ZQejOPdAdDdE ZRejOPdAdFdG ZSedgddHdI ZTedJgd=d>dKdL ZUedMgd=d>dNdO ZVdPdQ ZWdRdS ZXdTdU ZYedVgdWdXidYdZd[ ZZd\d] Z[edgdd^d_ Z\ed`d`gdadb Z]edcgdddedfdg Z^edgddhdi Z_djdk Z`edlgdgd=dddmdndo Zaedpgdqdr Zbedsgdtdudvdw Zcedxdxgd=d>dydz Zded{gd=d>d|d} Zed~d Zfedgdddedd Zgdd Zhdd Ziedgdd ZjejOPdAejGHdg dedgddd Zkeddgd=ddddd Zledgdddedd Zmdd Znedgd=d>dd ZoejGjHdepdddfeqdddtepddfeqdddtdepdfgg dddd ZrejGjHdepdddfeqdddtepddfeqdddtdepdfgg dddd Zsedgd=d>dd Ztedgddd=ddd Zuedgd=d>dd Zvedgdd Zwedgd=d>dd Zxdd Zyedgd=d>dd Zzedgddgd=ddd Z{edgddddddĄ Z|edgddddddǄ Z}ddɄ Z~edgddd˄ Zedgddd̈́ Zddτ ZejGHddd=gedgddd҄ ZedgddՄ Zedgd=dAddd؄ Zedgd=d>ddۄ Zdd݄ Zedgd=d>dd Zedgd=dddd Zedgd=dddd Zedgd=d>dd Zedgd=d>dd ZedgdAd=ddd Zedgd=d>dd Zeddgdd Zdd Zdd Zedgdd Zed gdd Zedgddd Zedgddd Zedgddd Zedgdd	d
 Zdd Zdd Zedgdd Zdd Zdd Zdd Zdd Zdd ZejOPdAe dd Zdd Zed gd=d>d!d" Zedgdd#d$ Zd%d& Zed'gd=d>d(d) Zed*gd=d>d+d, Zed-gd=d>d.d/ Zed0gd1d2 Zd3d4 Zd5d6 ZejGjHd7ejjd8d9 d:d9 gg d;dd<d= ZejGHd>g d?fg gd?fg g gdfgd@dA ZejGHdBdCej'jjfdDejjjfdEej'jjfgdFdG ZedgddHdI ZedgddJdK ZedgddLdM ZedgddNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZedZgd=d>d[d\ Zed]gd^d_ Zedgdd`da Zdbdc Zeddgd=ddddedf Zedggdddedhdi Zedjdjgd=ddddkdl Zedmgd=ddddndo Zdpdq ZG drds dsZĐdddtdudvZedwdxZejGHdyeŃ eƐdzeg d{gd|feŐd}d~eƐd}eg dgd|feŐd}dzd|eƐd}eg dgd|feŐdzdeƐdzeg d{gd|feŐdzdgdeƐdzdgeg d{g dgd|fgdd Z[[ejGHdeɃ dfeɐdzd~dfeɐd}dtd}feɐd}dgdtd}dgfeɐd}dd}feɐddtdfeɐddtdfeɐd}ddd}feɐdzd}ddd}feɐd}dd}feɐd}dddfgdd Zʐdd Zːdd Z̐dd Zedgdd Zΐdd Zϐdd Zeddgdd Zedgd=d>dd Zi dd9 i fddZedgdWdidAddd ZedgdWdidAddd ZedgdWdidAddd ZedgdWdidAddd Zedgd=dWdidAdddd ZedgdWdidAdddd Zedgd=dWdidAddd Zedgd=dWdidAddd Zedgd=dWdidAddĐdń Zedgd=dWdidAddǐdȄ Zedgd=dWdidAddʐd˄ Zedgd=dWdidAdd͐d΄ Zedgd=dWdidAddАdф Zedgd=dWdidAddӐdԄ Zedgd=dWdidAdd֐dׄ Zedgd=dWdidAddِdڄ Zedgd=dWdidAddܐd݄ Zedgd=dWdidAddߐd Zedgd=dWdidAddd Zedgd=dWdidAddd Zedgd=dWdidAddd Zedgd=dWdidAddd Zedgd=dWdidAddd Zdd Zdd ZeddgddAddd Zedgd=dAddd Zedgd=dWdidAddd Zedd gdAdedd Zdd ZedgdWdid=d?dAddd Zed	gd=dWdidAdd
d Zedgd=dWdidAddd Zdd Zdd Zdd Zdd Zedgd=dWdidAddd Zeddgdd Zedgdd Zed gd!d" Zed#gd$d% Zed&gd'd( Zed)gd*d+ Zed,gd-d. Z ed/gd0d1 Zed2gd3d4 Zed5gd6d7 Zed8gd9d: Zed;gd<d= Zed>gd?d@ ZedAgdBdC ZdDdE ZdFdG Z	dHdI Z
dJdK ZedgddLdM ZedgddNdO ZdPdQ ZdRdS ZdTdU Zeg dVdWdX ZdYdZ Ze d[d\ Zd]d^ Zed_gd`da Zdbdc Zddde Zedgddfdg Zdhdi Ze djdk ZejGHdlg dmeg dmd?gdndo Zedpdpgdqdr Zedsgdtdu Zedvgd=d>dwdx Zedygdzd{ Zed|gd}d~ Z ejGjHdd=dgddgdedgddd=ddd Z!dd Z"dd Z#ejGjHdd=dgddgdedgddd=ddd Z$edgdd Z%edgdd Z&edgdd Z'edgd=d>dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0edgdd Z1dd Z2dd Z3dd Z4edgd=d>dd Z5edgd=d>dd Z6edgd=d>dd Z7dd Z8dd Z9edgd=d>dd Z:eddgd=d>dd Z;edgd=d>dĐdń Z<ejGHdg dǢdȐdɄ Z=edgd=d>dːd̄ Z>d͐d΄ Z?ejGHdg gg d d?ggd d?gg ggejGHdg dѢdҐdӄ Z@edgddԐdՄ ZAedgd=d>dאd؄ ZBedgdڐdۄ ZCedgd=d>dݐdބ ZDedߐdgeE dkrqd ndtdudd ZFe dd ZGe dd ZHe dd ZIe dd ZJdd ZKeg ddgddd ZLdd ZMeg ddgddd ZNdd ZOejGHdϐd?ddejPdgejQg ddgedgddd ZReddgd=d>dd ZSed gd=d>dd ZTdd ZUeg dd=ddAddd	 ZVeg d
d=ddAddd ZWeg dd=ddAddd ZXdd ZYedgddd ZZdd Z[eg dd=dddd Z\eg dd=d>dd Z]dd Z^edgddd  Z_ed!gd=d>d"d# Z`ed$d$gd=d>d%d& ZaejGHd'g d(d)d* Zbd+d, Zcd-d. Zdedgdd/d0 Zed1d2 ZfejGHd3e+jge+jhd4ge+jie+jjd5ggd6d7 Zkd8d9 Zld:d; Zmd<d= Znd>d? ZoejGHd@epdAi dBfeqdCi dDfepd?dgfi dEfeper dFdidGffdHdI ZsejGHd-d.dJdK ZtdLdM ZudNdO ZvedPgdQdR Zweg dSdgddTdU ZxedVgdWdX ZyedYgdZd[ Zzed\gd]d^ Z{ed_gd`da Z|edbgdcdd Z}edegdfdg Z~dhdi Zdjdk Zdldm Zedngdodp Zedgddqdr Zdsdt Zdudv Zdwdx Zedygdzd{ Zd|d} Zed~gdWdidYdd Zdd Zdd ZejGHd@eqdi dfeqdi dfeqer ddidfeqer ddidfepd4d?d?d.dfepdi dffdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZedgdWdidYdd ZedgdWdidYdd Zdd Zdd Zdd Zdd ZejGHddejjfdejjfededfejjfg dg dfejjfejdejdfej jfgejGHdeqddejdddgdd Zdd Zdd Zdd Zdd ZejGHde ddÄ Zedgd=d>dŐdƄ ZdǐdȄ Zdɐdʄ Zedgd=dtdd̐d̈́ Zedgd=ddddϐdЄ ZejOPdAdѐd҄ ZejddgdӍdԐdՄ Zejg d֢dӍdאd؄ Zdِdڄ Zdېd܄ Zdݐdބ Zdߐd ZedgdAdedd ZedgdAdedd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZÐdd  ZĐdd ZŐdd Zedgddudd Zed	gd
d Zedgddudd Zedgd=d>dd Zʐdd Zːdd Z̐dd Z͐dd Zΐdd Zϐdd ZАdd Zѐd d! ZҐd"d# ZӐd$d% ZԐd&d' ZՐd(d) ZejOPdAd*d+ Zאd,d- Zؐd.d/ Zِd0d1 Zڐd2d3 Zېd4d5 ZejGHd6d7d8gejGHd9d7d8gd:d; Zݐd<d= Zސd>d? Zߐd@dA ZedgddBdC ZedgddDdE ZdFdG ZdHdI ZdJdK ZejGHdLdd=gejGHdMdd=gdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZedZgddd=dd[d\ Zed]gddded^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zdtdu Zedgddvdw Zdxdy Zdzd{ Zd|d} Zd~d Zdd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z	dd Z
ejGHdd.ejGHdddd Zedgddd ZejOPdAdd Zdd Zdd ZejGHddd e"jD g d ejOPdAdd Zdd Zdd Zedgddd Zedgddd Zdd ZejGHdg ddd Zdd Zdd Zdd Zdd ZdÐdĄ ZdŐdƄ ZdǐdȄ Zdɐdʄ ZejOPdAdːd̄ Z d͐d΄ Z!dϐdЄ Z"dѐd҄ Z#dS (      )
namedtupleNDecimal)product)SimpleNamespace)ma)cycler)image_comparisoncheck_figures_equalremove_ticks_and_titles)Figure)assert_allcloseassert_array_equalassert_array_almost_equal)
rc_context)MatplotlibDeprecationWarningc                  C   sD   t  \} }|d |d | dksJ | dks J d S )Nzx labelzy label)pltsubplots
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigax r   q/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_axes.pytest_get_labels(   s
   

r   c                 C   s   |   }|jddgddgddgdd}|  |jddd |jdd	d | |}|jd
dd |  }|jddgddgddgdd}|  |jddd	d |jddd	d ||}|jd
dd	d d S )N      scatterclabelY LabeltoplocX LabelrightZ Labelyhaxr-   r   r    legendr   r   colorbar	set_labelfig_testfig_refr   sccbarr   r   r   test_label_loc_vertical0   s   

r9   c                 C   s   |   }|jddgddgddgdd}|  |jddd |jdd	d | j|d
d}|jdd	d |  }|jddgddgddgdd}|  |jddd	d |jddd	d |j|d
d}|jddd	d d S )Nr   r   r    r!   r$   bottomr&   r(   left
horizontalorientationr*   r   r+   r.   r0   r4   r   r   r   test_label_loc_horizontalC   s   r?   c                 C   s   t ddd5 |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W d    n1 s@w   Y  | }|jddgddgddgdd}|  |jdddd |jd	ddd |j|d
d}|jdddd d S )Nr)   r%   )zxaxis.labellocationzyaxis.labellocationr   r   r    r!   r$   r(   r<   r=   r*   r+   r.   )	
matplotlibr   r   r    r1   r   r   r2   r3   r4   r   r   r   test_label_loc_rcV   s$   



rA   c                  C   s  t  \} }|jddd |jddd |j  dksJ |jddd |j  dks1J |jddd |j  dksCJ |jddd |jddd |j  dks\J |jddd |j  dksnJ |jddd |j  dksJ d S )Nz
Test labelr;   r&   centerr)   r%   r:   )r   r   r   xaxis	get_labelget_horizontalalignmentr   yaxisr   r   r   r   test_label_shiftk   s   rG   png
extensionsc           	      C   s   t jd d}t jdd| }|d }|  }|j||d | }t j||ddt || }t 	| |d }||d | ||  }|
|dg| |jdddd d S )	N!N,   r   r   )maxlagsfull)mode)r,   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline)	r5   r6   Nxr/   rM   ax_testax_refnorm_auto_corrlagsr   r   r   
test_acorr   s   rb   c                 C   s  t jd t d}d|d d< t j| |d}| d}|d | |d j|dd	d
 |d}|d j|ddd |d j	
  |d jg t |d d d dR ddi |d jd|d  |d  d d d d |D ]}|j	d qxd S )NrK   i   r   rL   )    rc   r   r   .lower)markerorigingray_rnearest)cmapinterpolation
markersize
   )aspectxlimylimboth)rR   rS   rT   onesshufflereshaper   spyimshowrC   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r5   r6   aaxs_testaxs_refr   r   r   r   test_spy   s$   



. r   c               	   C   sl   t  \} }ddidddfD ]$}tt |jtddfi | W d    n1 s.w   Y  qd S )Nrk   ri   osolid)rf   	linestyle   )r   r   pytestraises	TypeErrorrv   rR   eye)r   r   unsupported_kwr   r   r   test_spy_invalid_kwargs   s   r   c                 C   sT   t jd tjdd}|  | | }|| |j	
  |j	d d S )Nmpl20rc   rr   )mplstyleuserR   rS   randadd_subplotmatshowrw   rC   rx   r~   )r5   r6   r   r_   r   r   r   test_matshow   s   

r   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005c                     sV  dd l m  m     dtjd<  fddtdD }  fddtdD } fddtdD }t 	 }|
d	 t 	 }|
d	 |j| |d
dd t 	 }|
d	 |j| |d
dd |
d t 	 }|j| |d
dd |j| |ddd |
d t 	 }|j| |d
dd |j| |ddd |
d |  d S )Nr      zlines.markeredgewidthc                    s   g | ]}| j  qS r   )sec.0r/   unitsr   r   
<listcomp>   s    z)test_formatter_ticker.<locals>.<listcomp>rn   c                       g | ]}d | d  j  qS )      ?      ?kmr   r,   r   r   r   r          c                    r   )g      ?      ?r   r   r   r   r   r      r   zx-label 001bluer   )colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr@   rcParamsranger   figurer   r   ry   autoscale_view)xdataydata1ydata2r   r   r   r   test_formatter_ticker   s0   






r   c                  C   s   dd } t   }|jjsJ |jjsJ |jjsJ |jjs"J |j|  |jjr.J |jjs4J |jjs:J |jjs@J t	| }t
|j tj	sPJ |j j|jks[J d S )Nc                 S      dS )N r   r/   posr   r   r   	_formfunc      z4test_funcformatter_auto_formatter.<locals>._formfunc)r   r   r   rC   isDefault_majfmtisDefault_minfmtrF   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r   targ_funcformatterr   r   r   !test_funcformatter_auto_formatter   s    

r   c                  C   s   d} t   }|jjsJ |jjsJ |jjsJ |jjs J |j|  |jjs,J |jjs2J |jjs8J |jjr>J t	| }t
|j tj	sNJ |j j|jksYJ d S )Nz	{x}_{pos})r   r   r   rC   r   r   rF   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr   targ_strformatterr   r   r   &test_strmethodformatter_auto_formatter  s    

r   twin_axis_locators_formattersc                  C   s
  t jddddd} t t j|  d }t|}tg d}t }|ddd}|dd	gddg |j	
| |j	| |j	td
 |j	tg d |j
t  |jtg d |jtd |jtg d |  |  d S )Nr   r      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r"   3pr   )rR   linspacesinpir   FixedLocatorr   r   ry   rF   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterrC   LinearLocatortwinytwinx)valslocsmajlminlr   ax1r   r   r   "test_twin_axis_locators_formatters  s"   
r   c                  C   s   t  \} }| }| }t   |j rJ |j r J |  |  |j r/J |j r6J |j	 s=J |j sDJ |j rKJ |j	 rRJ |j sYJ |j s`J |j	 sgJ d S N)
r   r   r   r   drawrC   get_visiblepatchclarF   )r   r   ax2ax3r   r   r   test_twinx_cla6  s"   r   twinr/   r,   gRQ?)rJ   tolc                 C   sF  d| }d| d}t dd}| ddd}t|| }t||d ||| | ddd}t||d t|| }||| dD ]Q}|dd|}	t|	|d |	|| tjj}
|tj	j
|
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j|
jgd
 |	jdtjd tjd dd qGt|  t| d S )Nr   set_scaler   r   r   logr   r   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rR   rZ   r   getattrry   r@   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r5   r6   r   	twin_func	set_scaler/   r^   ax_twinir_   r  r   r   r   test_twin_logscaleM  sD   
r  ztwin_autoscale.pngc                  C   s   t g d} d|  }t g d}d| }t }|jdddd}|j| |dd	d
 t|}|j||ddd |dd |dd d S )N)r   r   r   r   r   r   r   r   r   r   r   r   F)autoscalex_onautoscaley_onr   rn   r   lwr--r   r   r   )rR   arrayr   r   add_axesry   r   margins)r/   r,   x2y2r   r   r   r   r   r   test_twinx_axis_scalesy  s   
r(  c                  C   st   t  \} }| }|d | }| sJ | rJ | }|d | }| s2J | r8J d S )NF)r   r   r   set_autoscalex_onget_autoscalex_onr   set_autoscaley_onget_autoscaley_on)r   r   ax_x_onax_x_offax_y_onax_y_offr   r   r   #test_twin_inherit_autoscale_setting  s   

r1  c                  C   sl  t d} |  }| rJ | rJ tjd}|| | r&J | s,J |  t	ddtj
 d}||t| | rIJ | rOJ |  || t   | rbJ | shJ t d}t jd|d}|jd | sJ ||t| |  | rJ |  || ||t| |  | sJ t |  d S )	Nr   )r   r   r   r         shareyT)r   r   gcaxaxis_invertedyaxis_invertedrR   rS   rw   r   r   r   ry   cos	autoscalesubplotrF   set_invertedclose)r   r   imgr/   ax0r   r   r   r   test_inverted_cla  s>   




r@  c                 C   st   t ddd |  }|ddgddg W d    n1 s!w   Y  | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r   )r@   r   r   ry   minorticks_on)r5   r6   r^   r_   r   r   r    test_minorticks_on_rcParams_both  s   
rB  autoscale_tiny_rangeTremove_textc                  C   sL   t dd\} }t|jD ]\}}dd|  }|ddgdd| g qd S )Nr   rn   ir   r   )r   r   	enumerateflatry   )r   axsr  r   y1r   r   r   test_autoscale_tiny_range  s
   rJ  defaultc                  C   s   t dd\} }|g d |jdddd |jdddd t| d t| d	 | s3J | s9J |	 s?J |jd d
 t| d t| d	 | sYJ | s_J |	 seJ d S )Nr   r   r   r   r  Tr/   F)enableaxistightr,   )g333333ÿg333333	@)r         @)rM  )
r   r   ry   r:  r   r|   r}   r*  r,  get_autoscale_onr   r   r   r   test_autoscale_tight  s   rR  c                  C   s   t jdtd} tjdddd\}\}}|| |  || |  |jdd |jdd t  | d | d f}t	|
 | t	| | t	|
 | t	| | d	 | d f d S )
Nr   dtyper   r   Tsharex)rO  rl   r   )rR   rZ   floatr   r   loglogsemilogxr:  r   r   r|   r}   )r/   r   r   r   limsr   r   r   test_autoscale_log_shared  s   r[  c                  C   s   t  \} }|jddgddggdd t| d t| d d|_|  d	d|j  d
d|j  f}d	d|j	  d
d|j	  f}t| | t| | d|_|  t| d t| d d S )Nr   r   r   r   re   rg   )      r   Fr]  r   T)
r   r   rw   r   r|   r}   use_sticky_edgesr:  _xmargin_ymargin)r   r   rp   rq   r   r   r   test_use_sticky_edges  s   ra  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r   r   r2  r3  rU  )rR   rZ   ru   r   
pcolormesh)r5   r6   Zr?  r   r   r   r   test_sticky_shared_axes  s   


rd  offset_pointsc                  C   sf   t ddd} t dt j |  }t }|jdddd}|j| |d	d
d\}|jdddddd d S )N              @{Gz?r   F)rl   r   r   )autoscale_onrp   rq   r   purpler   r   z	local maxr   r   datar   r   zoffset points)xyxycoordsxytext
textcoords)	rR   rZ   r9  r   r   r   r   ry   annotate)tsr   r   liner   r   r   test_basic_annotate.  s   

ry  zarrow_simple.pngc            
      C   s   d} d}d}t | ||}tdd\}}tt|j|D ];\}\}}|dd |dd |\} }}dtj	 | d }	|j
ddt|	t|	|	d	 | |||	d
 |	d
 d
 qd S )N)TF)rN   r;   r)   r   r  r      r   r   rn   )widthlength_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r   r   rF  ziprG  set_xlimset_ylimrR   r   arrowr   r9  )
r}  r~  r  kwargsr   rH  r  r   kwargthetar   r   r   test_arrow_simple>  s&   
r  c                  C   s$   t  \} }|jdddddd d S )Nr   )r  )r   r   r  _r   r   r   r   test_arrow_emptyY  s   r  c                  C   s@   t  \} }|dddd | dksJ | dksJ d S )Nr   )皙?皙@)r   r   r  r|   r}   r  r   r   r   test_arrow_in_view_  s   r  c                  C   sN   t  \} }|jdddd}|jd u sJ |jdddi d}|jd us%J d S )Nfoor   r   r   r   )rs  )rs  
arrowprops)r   r   ru  arrow_patch)r   r   annr   r   r   test_annotate_default_arrowf  s
   r  zfill_units.pngdpi<   )savefig_kwargc                  C   s  dd l m  m}  |   | jdtdddd}d| j }| dd}tj	d	d
dd}t
|}tdd\}\\}}\}	}
|j|g|gddd g d}||| g dd |j|g|gddd ||||| || gg dd |	j|g|gddd |	|| d| j d| j d| j d| j gd |
j|g|gddd |
j|||| || gd| j d| j d| j d| j gdd |  d S )Nr   ET  r     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]rS  r   degred)yunitsr   r  )rf  rf  g     V@rf  bZ   r   )r	  )r   r   r   r   Epochdatetimer  DurationrR   rZ   mdatesdate2numr   r   ry   fillautofmt_xdate)r   rv  valuedayr  dtnr   r   r   r   ax4indr   r   r   test_fill_unitso  s4   


""r  c                   C   s   t jtdd tjdgdgddd W d    n1 sw   Y  t jtdd tjdgdgdd	d
 W d    n1 s?w   Y  t jtdd tjdgdgddd W d    n1 saw   Y  tjdgdgddd d S )Nzmarker .* redundantly definedmatchr   r   r/   rf   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r  )r   r   )r   warnsUserWarningr   ry   errorbarr   r   r   r    test_plot_format_kwarg_redundant  s   r  c                 C   sz   g d}t |}| }|  }|j||t |t |d^}}|ddg |j||t |t |ddgd d S )NrL  xerryerrr   )r  r  dashes)rR   r   r6  r  abs
set_dashes)r5   r6   r/   r,   r_   r^   rx  r  r   r   r   test_errorbar_dashes  s   
"(r  single_pointc                  C   s   dt jd< dt jd< td\} \}}|dgdgd |dgdgd dgdgd}td\} \}}|jd	d	d|d
 |jddd|d
 d S )Nr   lines.markerT	axes.gridr   r   r   r   r  r   ro  r  )r@   r   r   r   ry   )r   r   r   ro  r   r   r   test_single_point  s   

r  zsingle_date.pngr   )r   c                  C   sj   dt jd< ttd} dg}dg}t dd\}}|d j||  |d	d
d |d j||d	d
d d S )N)   zaxes.formatter.limits
0000-12-31g    X&Ag(\bPr   r   r   r   r  r  )	r   r   r  r  rR   
datetime64r   	plot_datery   )r  time1data1r   r   r   r   r   test_single_date  s   
r  c                 C   s|   t dd}t dddd}| d}|d | |d | |d}|d jdd	d
 |d |  d S )Nrn   r   rl   r   r   rl   r   r   r   gQQ?)r   	   rp   rq   )rR   rZ   ru   r   ry   r{   ravel)r5   r6   rowcolrH  r   r   r   test_shaped_data  s   

r  c                  C   sZ   t jddgdtfdtfgd} t d}|d jdd| d |d	 jddd
| d d S )Nr   r   r   r   rs   twosrS  r   r   r  r   r  )rR   r#  rW  r   r   r   ry   )ptsrH  r   r   r   test_structured_data  s   r  aitoff_proj)rJ   rE  r   c                  C   sz   t t j t jd} t t j d t jd d}t | |\}}tjdtddd\}}|  |j|j	|j	ddd	 d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r   )   @aitoff
projection)figsize
subplot_kwr   r  )rm   N)
rR   r   r   meshgridr   r   dictgridry   rG  )r/   r,   XYr   r   r   r   r   test_aitoff_proj  s   
r  axvspan_epochc                  C      dd l m  m}  |   | jdtdddd}| jdtdddd}| d| jd}t	
 }|j||d	d
d ||d|  |d|   d S Nr   r  r  r   r  r     r   r         ?)r	  alpharg  )r   r   r   r   r  r  r  r  convertr   r6  axvspanr  r   t0tfr  r   r   r   r   test_axvspan_epoch      r  axhspan_epoch{Gz?)r   c                  C   r  r  )r   r   r   r   r  r  r  r  r  r   r6  axhspanr  r  r   r   r   test_axhspan_epoch  r  r  zhexbin_extent.pngc                  C   sl   t  \} }tdd d}|\}}|j||g dd ||d}t  \} }|jddg d|d d S )	N  )r     r   r   333333?ffffff?)extentr   r/   r,   )r  ro  )r   r   rR   rZ   ru   hexbin)r   r   ro  r/   r,   r   r   r   test_hexbin_extent  s   
r
  zhexbin_empty.pngc                  C   s   t  } | g g  d S r   )r   r6  r	  r   r   r   r   test_hexbin_empty#  s   r  c                  C   s`   t  \} }tdd d}|\}}|j||g ddd}tddd}||d	 s.J d S )
N   r   r   r  rl   )r  picker  ,  r   r   )r   r   rR   rZ   ru   r	  r   contains)r   r   ro  r/   r,   hbmouse_eventr   r   r   test_hexbin_pickable*  s   r  zhexbin_log.pngc                  C   s   dt jd< tjd d} tj| }dd|  dtj|   }td|d	 }t  \}}|j||d
d
dtj	d}t 
| d S )NFpcolormesh.snaprK   順 r         @rP  r   r   r  T)yscalebins	marginalsreduce_C_function)r   r   rR   rS   rT   standard_normalpowerr   r	  sumr2   )nr/   r,   r   r   hr   r   r   test_hexbin_log4  s   
r"  c                  C   sH   t dd\} }t \}}|j| |dddd}| dks"J d S )Nr  r  r  r   r   )r  vminvmax)rR   rZ   ru   r   r   r	  get_clim)r/   r,   r   r   r!  r   r   r   test_hexbin_log_climG  s   r&  c                  C   s   t  \} }|  |g dg d | dksJ | dks$J t   t  \} }|  |g dg d | dksDJ | dksLJ t  \} }|d |	dd	 | d
kseJ d S )N)rj  r   r  )r   r   rj  r   )r  r'  ri  )r'  r  )r   rj  r  rn   r   )rn   r   )
r   r   invert_xaxisry   r|   r}   r=  invert_yaxis
set_yscaler  r   r   r   r   test_inverted_limitsN  s   
r+  nonfinite_limitsc                  C   st   t dt jd} t jdd t | }W d    n1 sw   Y  t j| t| d < t \}}|	| | d S )Nrf  rh  ignoredivider   )
rR   rZ   eerrstater  nanlenr   r   ry   r/   r,   r   r   r   r   r   test_nonfinite_limitsh  s   r5  plot_fun)r    ry   fill_betweenc                 C   s^   t jdddd}| }| }t|| g g  ||fD ]}t|| |tt|dd qd S )Nz
2010-01-01z
2011-01-01r  rS  C0r  )rR   rZ   r   r  r   r3  )r6  r5   r6   r/   r^   r_   r   r   r   r   test_limits_empty_datas  s   r9  rw   )rE  r   c                  C   s   dt jd< d} t| | f\}}|| d 8 }|| d 8 }t|d |d  ||  }t \}}|| d|i}t \}}|jd|d d S )Nri   image.interpolationr   r   r  r  )r@   r   rR   indicessqrtr   r   rw   )Nr/   r,   r  r   r   ro  r   r   r   test_imshow  s   

r>  imshow_clipc            	      C   s   dt jd< d} t| | f\}}|| d 8 }|| d 8 }t|d |d  ||  }t \}}||| d g}|jd }|	 d }|
 }t||}|j||d d S )Nri   r:  r   r   r  r   )	clip_path)r@   r   rR   r;  r<  r   r   contourcollections	get_pathsget_transformmtransformsTransformedPathrw   )	r=  r/   r,   r  r   r   r"   r@  clip_transformr   r   r   test_imshow_clip  s   

rH  c                  C   sf   ddgddgg} t  }tjtdd |j| tddd	d
d W d   dS 1 s,w   Y  dS )4Parameters vmin, vmax should error if norm is given.r   r   r   r  FPassing parameters norm and vmin/vmax simultaneously is not supported.r  rn   r   r   )normr#  r$  N)r   axesr   r   
ValueErrorrw   mcolors	Normalize)r   r   r   r   r   test_imshow_norm_vminvmax  s   "rQ  polycollection_joinstylec                  C   sf   t  \} }tddgddgddgddgg}tjj|gdd}|| |dd |	dd d S )Nr   r   (   )
linewidthsr   r   )
r   r   rR   r#  r   rB  PolyCollectionadd_collection
set_xbound
set_ybound)r   r   vertsr"   r   r   r   test_polycollection_joinstyle  s   "
rZ  z	x, y1, y2r  r   rf  r   )
2d_x_input2d_y1_input2d_y2_input)idsc                 C   J   t  \}}tt || || W d    d S 1 sw   Y  d S r   )r   r   r   r   rN  r7  )r/   rI  r'  r   r   r   r   r   test_fill_between_input     "r`  z	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                 C   r_  r   )r   r   r   r   rN  fill_betweenx)r,   x1r&  r   r   r   r   r   test_fill_betweenx_input  ra  rg  fill_between_interpolatec               	   C   s  t ddd} t dt j |  }dt dt j |   }tjdddd\}\}}|j| || |d	d
 |j| ||||kdddd |j| ||||kddd t j	|d}t jj
|d< |j| || |d	d
 |j| ||||kddd |j| ||||kddd d S )Nrf  r   r   333333?r  r   TrU  blackr  white/)wherer	  hatchinterpolater  )rm  r	  ro  r   r   r   )rR   rZ   r   r   r   r   ry   r7  r   masked_greatermasked)r/   rI  r'  r   r   r   r   r   r   test_fill_between_interpolate  s(   
rr  #fill_between_interpolate_decreasingr   rE  c               	   C   s   t g d} t g d}t g d}tjdd\}}||| d ||| d |j| ||||k dd	d
d |j| ||||kdd	d
d |dd |dd d S )N)gfffff@i  i  )g"@r  r  )g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?rm  r	  ro  r  r  r   r      X  )rR   r#  r   r   ry   re  r  r  )r   rv  profr   r   r   r   r   (test_fill_between_interpolate_decreasing  s   r|  fill_between_interpolate_nanc                  C   s   t d} t ddt jdddddddg
}t ddddddddt jt jg
}t jd	d
 ||k}||k}W d    n1 s?w   Y  t \}}|j| |dd |j| |dd |j| |||dddd |j| |||dddd d S )Nrn   r              rc   r   r-  invalidrv  r"   r  r   Tr   rx  r  )	rR   rZ   asarrayr2  r1  r   r   ry   r7  )r/   rI  r'  greater2greater1r   r   r   r   r   !test_fill_between_interpolate_nan  s    
 "

r  z
symlog.pdfc                  C   sX   t g d} t g d}t \}}|| | |d |d |dd d S )N)r   r   r   r     r  r{  r  )i@B i  r  r   r   r   r   r   symloglinearrl   i )rR   r#  r   r   ry   r*  
set_xscaler  r4  r   r   r   test_symlog2  s   

r  zsymlog2.pdfc                  C   sn   t ddd} tdd\}}t|g dD ]\}}|| |  |jd|d |d	 q|d
 dd d S )N2   MbP?r   r   )      4@r   r   r   rh  r  )	linthreshTrl   皙r   )	rR   rZ   r   r   r  ry   r  r  r  )r/   r   rH  r   r  r   r   r   test_symlog2>  s   r  c               	   C   s   g d} g d}t | |\}}t ||}t| tt| t| ||d dd df  t||t|d dd df  d S )N)            r]  rf  r   r   r   )r  g      r  g      r]  g      пr   r  r         ?r         ?r   rl   )rR   r  hypotr   pcolorlist)r/   r,   r  r  rc  r   r   r   test_pcolorargs_5205K  s   
&r  rb  c                  C   s*  dt jd< d} tdd| }tdd| d }t||\}}t|t| }t|t| }|d }t||d }||  |	  }t
t|d	t| k |}t d
d\}	\}
}}|
j|||d dd df d	dd |j|||d dd df dddgd |j|||dd d S )NFr  r{  r  r   r   皙?r   r   r   r   rl   rv  )r   
edgecolorsr  wgouraudshading)r   r   rR   r   r  r9  r   r  minptpr   masked_wherer  maxr   rb  )r   r/   r,   r  r  QxQzrc  Zmr   r   r   r   r   r   r   test_pcolormeshY  s   
 $(r  pcolormesh_alphapdf)rJ   rE  c               
   C   s  dt jd< d} ttdd| tdd| d \}}|}|t| }t||d }||  |  }t 	dd	}|t
d	}d
d
tt
d	  |d d df< t|}t dd\}	\\}
}\}}|
|||fD ]}|tjdddg ddd qn|
j|||d dd df |dddd |j||||dddd |j|||d dd df |ddd |j||||ddd d S )NFr  r{  r  r   r   r   viridis   r   r   )r   r  )r  r   r   r   r   )r	  zorderrl   rw  rG  r   )rj   r  r  r  r  )rj   r  r  )r   r   rR   r  r   r   r  r  r  get_cmaprZ   rO  ListedColormapr   	add_patchmpatches	Rectanglerb  )r   r  r  r  Qyrc  vircolorsrj   r   r   r   r   r  r   r   r   r   test_pcolormesh_alphaq  s2   
$

&r  zpcolormesh_datetime_axis.pngFc                     s  dt jd< t  } | jdddd tddd t fd	d
tdD }td}t	tdtd\}}|| }t 
d t |d d |d d |d dd df  t 
d t ||| tj|tj ddd}tj|d d tjf ddd}t 
d t |d dd df |d dd df |d dd df  t 
d t ||| |  D ]}| D ]}|d |d qqd S )NFr  rw  \(\?333333?hspacer%   r:     r   c                       g | ]
} t j|d  qS )daysr  	timedeltar   dbaser   r   r         z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r     rl      r   rN        r)   r   )r   r   r   subplots_adjustr  rR   r#  r   rZ   r  r;  rb  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr   r/   r,   z1z2zr   r#   r   r  r   test_pcolormesh_datetime_axis  s0   


.

>

r  zpcolor_datetime_axis.pngc                     s  t  } | jdddd tddd t fddtd	D }td	}ttd
td
\}}|| }t 	d t 
|d d |d d |d dd df  t 	d t 
||| tj|tj d	dd}tj|d d tjf d	dd}t 	d t 
|d dd df |d dd df |d dd df  t 	d t 
||| |  D ]}| D ]}|d |d qqd S )Nrw  r  r  r  r  r   c                    r  r  r  r  r  r   r   r     r  z-test_pcolor_datetime_axis.<locals>.<listcomp>r  r  r  rl   r  r   r  r  r  r)   r   )r   r   r  r  rR   r#  r   rZ   r  r;  r  r  r  r  r  r  r  r  r   r  r   test_pcolor_datetime_axis  s.   

.

>

r  c               	   C   s  d} t dd| }t dd| d }t ||\}}t ||d }t \}}tt |	||| W d    n1 s?w   Y  tt |	|||j
 W d    n1 s\w   Y  tt |j	|||d dd df dd W d    n1 sw   Y  tt |j	|||d dd df dd W d    n1 sw   Y  t j|d	< tt |	|||d dd df  W d    n1 sw   Y  t jd
d t jj||d	k d}W d    n1 sw   Y  tt |	|||d dd df  W d    n	1 sw   Y  g d}ddg}t ||\}}t |j}tjtdd |j	|||dd W d    d S 1 sNw   Y  d S )Nr{  r  r   r   r   rl   r  r  r   r-  r  )mask)ig  r   r   rK  rn   z.are not monotonically increasing or decreasingr  auto)rR   r   r  r  r   r   r   r   r   rb  TNaNrN  r1  r   r#  zerosr~  r  r  )r   r/   r,   r  r  rc  r  r   r   r   r   test_pcolorargs  sJ   $$
  $r  c                 C   s   |   }tdd}tdd}tjd tjdd}|j|||dd |  }|d d	 t|d  }|d d	 t|d  }|j|||d
d d S )Nr   rn   r   rK   r   r  rG  r  rl   ri   r   rR   rZ   rS   rT   randnrb  diffr5   r6   r   r/   r,   rc  r&  r'  r   r   r   test_pcolornearest  s   r  c                 C   s   |   }dd tdD }tdd}tjd tjdd}|j|||d	d
 |  }dd tdD }|d d t|d  }|j|||dd
 d S )Nc                 S   s   g | ]
}t j |d  qS )  r  fromtimestampr   r   r   r   r     r  z+test_pcolornearestunits.<locals>.<listcomp>rn   r   r   rK   r   r  rG  r  c                 S   s    g | ]}t j |d  d qS )r   r  r  r   r   r   r   r     s     rl   ri   )	r   r   rR   rZ   rS   rT   r  rb  r  r  r   r   r   test_pcolornearestunits  s   r  c                  C   s   t  \} }tdd}tdd}tjd tjdd}tjt	dd |j
|||dd W d    d S 1 s;w   Y  d S )	Nr   r  r   rK   zDimensions of Cr  rG  r  )r   r   rR   rZ   rS   rT   r  r   r   r   rb  )r   r   r/   r,   rc  r   r   r   test_pcolorflaterror  s   "r  snapc           	      C   s   |   }tdd}tdd}tjd tjdd}|j||||d |  }|d d t|d	  }|d d t|d	  }|j||||d d S )
Nr   rn   r  rK   r   r  )r  rl   r   r  )	r5   r6   r  r   r/   r,   rc  r&  r'  r   r   r   test_pcolorauto  s   r  	canonicalc                  C   s   t  \} }|g d d S )Nr   r   r   r   r   ry   r   r   r   r   test_canonical)  s   r  zarc_angles.pngc            
      C   sJ  d} d}d}d}t dd\}}t|jD ]\}}|d d }|d }	|tj|| |dd	 |tj|| ||	|d
 ||t	
t	|	 |d  |d |t	
t	| |d  g|t	t	|	 |d  |d |t	t	| |d  g || | || | | d9 } |d9 }|d d |d d f}|d9 }qd S )Nr   r   )r   r   r   h  r  -   r   )r  )theta1theta2r   rn   )r   r   rF  rG  r  r  EllipseArcry   rR   r9  deg2radr   r  r  )
r  r!  centrer  r   rH  r  r   r  r  r   r   r   test_arc_angles/  s4   
r  arc_ellipsec               	   C   sN  d\} }d\}}d}t t d}|d t | }|d t | }t |}t t |t | gt |t |gg}	t |	t ||g\}}|| 7 }||7 }t }
|
j	ddd}|j
||d	d
d
ddd tj| |f|||dddd}|| |
j	ddd}|j
||d	dddd tj| |f|||dddd}|| d S )N)gRQ?gp=
ף?)r   r   r  r   r2  r  )ro   r   yellowr   )r  r	  r
  r  r  r   F)angler  r  r  r3  equalr   )r  r	  r
  r  )rR   r  rZ   r9  r   r#  rY   r   r   r   r  r  r  r  )xcenterycenterr|  heightr  r  r/   r,   rthetaRr   r   e1e2r   r   r   test_arc_ellipseQ  s:   

r  c                  C   sb   t  \} }td}|jg dg d|d |jg dg d|d |jg dg d|d d S )Nr   r  r   r   r   r  )r  r   r   )r   r  r   )r   r   mmarkersMarkerStylery   r    r  )fixr   mr   r   r   test_marker_as_markerstylev  s
   
r  	markeveryc                  C      t ddd} t | t | d d  }t \}}|j| |ddd |j| |dd d	d
 |j| |dddd
 |j| |dddd
 |  d S )Nr   rn   r   r   r   rK  r#   r  mark allr  r#   rw  mark every 10+r   r  mark every 5 starting at 10rR   r   r   r<  r   r   ry   r1   r4  r   r   r   test_markevery~  s   r  markevery_lineg{Gzt?)rE  r   c                  C   r  )Nr   rn   r   r   z-orK  r  z-dr  r  z-sr  z-+r  r  r  r4  r   r   r   test_markevery_line  s   r  markevery_linear_scalesr  c            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ])\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d q@d S )Nr  r   r  r  r  r   r   rl   r   r  r   r   r   r   rf  r   g?r   r   )\(?rn   r   r   markevery=%sr   r  r  lsmsr  )slicer@   gridspecGridSpecr3  rR   r   r   rF  r   r;  titlestrry   
casescolsgsdeltar/   r,   r  caser  r  r   r   r   test_markevery_linear_scales  s(   
r.  markevery_linear_scales_zoomedc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d t	d t	d q@d S )Nr  r  r  r   rl   r   r  r   r   r   r   r  r  r   r  rn   r   r   r  r   r  r  r   )r  g@)r  g333333?)r#  r@   r$  r%  r3  rR   r   r   rF  r   r;  r&  r'  ry   rp   rq   r(  r   r   r   #test_markevery_linear_scales_zoomed  s,   

r0  markevery_log_scalesc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	d t	d t	j||ddd|d q@d S )Nr  r  r  r   rl   r   r  r   r   r   r   r  r  r   r  rn   r   r   r  r  r   r  r  r   )r#  r@   r$  r%  r3  rR   r   r   rF  r   r;  r&  r'  xscaler  ry   r(  r   r   r   test_markevery_log_scales  s,   


r3  markevery_polarc            	      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}tddd}dtj | }t| D ]+\}}|| }|| }t	j
|||f dd t	dt|  t	j||ddd|d q6d S )Nr  r  r  r   rl   r   r  r   r   r   r   r  r  r   r  r   T)polarr  r   r  r  r   )r#  r@   r$  r%  r3  rR   r   r   rF  r   r;  r&  r'  ry   )	r)  r*  r+  r  r  r  r-  r  r  r   r   r   test_markevery_polar  s&   
r6  marker_edgesc                  C   sz   t ddd} t \}}|j| t | ddddd |j| d t | ddddd |j| d	 t | ddd
dd d S )Nr   r   rn   zy.      >@r  )r"  mewmecr   r   r   r  )rR   r   r   r   ry   r   r/   r   r   r   r   r   test_marker_edges  s
    $r<  zbar_tick_label_single.pngc                  C   sP   t  } | jddddd ddd}t  \}} t  } | jdddd|d	 d S )
Nr   r   edge0)align
tick_labelr  r   r  )r?  r@  ro  )r   r6  barr   )r   ro  r   r   r   r   test_bar_tick_label_single  s   
rB  c                  C   s&   t  \} }|ddgtjdg d S )Nr   r   r  )r   r   rA  rR   r2  r   r   r   r   test_nan_bar_values  s   rC  c                  C   s   t  \} }|g g  d S r   )r   r   rA  r   r   r   r   test_bar_ticklabel_fail      rD  zbar_tick_label_multiple.pngc                  C   0   t  } | jddgddgddgddgdd	 d S )
Nr         @r   r   r   r   r  rB   r|  r@  r?  )r   r6  rA  r  r   r   r   test_bar_tick_label_multiple%     
rI  z/bar_tick_label_multiple_old_label_alignment.pngc                  C   s:   dt jd< t } | jddgddgddgdd	gdd
 d S )NrB   zytick.alignmentr   rG  r   r   r   r   r  rH  )r@   r   r   r6  rA  r  r   r   r   *test_bar_tick_label_multiple_old_alignment-  s
   

rK  c                 C   s`   |   }g d}g d}dd |D }dd |D }|j||dd |  }|j||dd d S )Nr   g @g333333@r  r  r  gffffff
@g@c                 S      g | ]}t |qS r   r   r   r   r   r   r   ;      z+test_bar_decimal_center.<locals>.<listcomp>c                 S   rN  r   r   r   r   r   r   r   <  rO  rB   r?  r   rA  r5   r6   r   x0y0r/   r,   r   r   r   test_bar_decimal_center6  s   rU  c                 C   sl   |   }g d}g d}dd |D }dd |D }|j||g ddd |  }|j||g ddd d S )	NrL  rM  c                 S   rN  r   r   r   r   r   r   r   I  rO  z,test_barh_decimal_center.<locals>.<listcomp>c                 S   rN  r   r   r   r   r   r   r   J  rO  )r   r   r   r   rB   r   r?  r   barhrR  r   r   r   test_barh_decimal_centerD  s   rY  c                 C   ^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )NrL  rM  r  g333333?r   r   c                 S   rN  r   r   r   r  r   r   r   r   W  rO  z*test_bar_decimal_width.<locals>.<listcomp>rB   r|  r?  rQ  )r5   r6   r/   r,   w0r  r   r   r   r   test_bar_decimal_widthR     r_  c                 C   rZ  )NrL  rM  r[  c                 S   rN  r   r   r\  r   r   r   r   e  rO  z,test_barh_decimal_height.<locals>.<listcomp>rB   rV  rW  )r5   r6   r/   r,   h0r!  r   r   r   r   test_barh_decimal_height`  r`  rb  c                  C   R   t  } | jddgddgdddd}|D ]}| dksJ | d	ks&J qd S )
Nr   r   r  r   r  r  r  r   r
  r   r   r   r   r   r   r   r   r   r6  rA  get_facecolorget_edgecolorr   rectsrectr   r   r   test_bar_color_none_alphan     rm  c                  C   rc  )
Nr   r   r  r   r  r  rd  rf  re  rg  rj  r   r   r   test_bar_edgecolor_none_alphav  rn  ro  zbarh_tick_label.pngc                  C   rF  )
Nr   rG  r   r   r   r   r  rB   )r   r@  r?  )r   r6  rX  r  r   r   r   test_barh_tick_label~  rJ  rp  c                  C   s^  t  \} }|jtddddtjddd |jtddddtjddtjddd t  \} }|jtddddtjddd	 |jtddddtjddtjddd
 t  \} }|jtdddtdddgtddgtjddd	 |jtdddtdddgtddgdd dD d	 |tdddtjddfgd dS )z>Smoketest that bar can handle width and height in delta units.  r   r   r   hoursr|  r   )r  r|  )r   )r   r  r   c                 S   s   g | ]}t j|d qS )rr  r  r   rv  r   r   r   r     s    z&test_bar_timedelta.<locals>.<listcomp>r  )rn   r  N)	r   r   rA  r  r  rX  rR   r#  broken_barhr   r   r   r   test_bar_timedelta  s<   







rw  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r   z1/1/2000r   )years)periodsfreq	positions)	rR   rS   r   
date_range
DateOffsetyearr   r   boxplot)pdro  rx  r   r   r   test_boxplot_dates_pandas  s   r  c                 C   s   ddl m}m} t }|d}tdddg}t|dk r2||d tj	dd	  t|dk st
d
}t
||\}}t|d t|d f}	t
|	d |	d  }
|	|
_z|  ||||
}|j  W |  d S |  w )Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r   r  rl   x   )secondsr   )pandas.plottingr  r  r   r   r   r  r3  appendr  rR   rZ   r  r~  rb  canvasr   )r  r  r  r   r   timesy_vals	time_axisy_axisr~  z_dataimr   r   r   test_pcolor_regression  s"   

r  c                 C   s   |  g dg dg dg dd}| |g d |d< |ddg dg }|j}|d }|d }t \}}|j||dd	d
 |j||ddd d S )N)rq  rq  rq  r   r   r   r  )r  monthr  r  )r  r  r  dater  rn   rB   r]  oranger  r  )		DataFrameto_datetimegroupbyr  indexr   r   rA  ry   )r  dfmonthlydatesforecastbaseliner   r   r   r   r   test_bar_pandas  s   r  c                 C   sD   | j g dg ddg dd}t \}}|j|jd|jd d S )N)r   r   r  )r   rw  r  )r/   r|  r  r  r   rt  )r  r   r   rA  r/   r|  r  r  r   r   r   r   r   test_bar_pandas_indexed  s
   r  c                 C   sh   |   }|  }ddg}ddg}ddg}tdD ]}|j|| || d|| d q|j|||d d S )	Nr   r   r   r/   r   r8  )r   rn  )rn  )r   r   rA  )r5   r6   r^   r_   r/   r,   hatchesr  r   r   r   test_bar_hatches  s    r  c                 C   s   | j ddgdd| j ddgddfD ]}t|| t|j| t| t|j q| dg di}t| t|| d S )Nr   r   float64rS  Float64r  r  )Seriesr   ry   r  r  )r  r/   r  r   r   r   test_pandas_minimal_plot  s   

r  hist_logc                  C   sH   t dddd } t d|  d|  g}t \}}|j|ddd d S )Nr   r   r  r   FT)r  r  )rR   r   concatenater   r   hist)data0ro  r   r   r   r   r   test_hist_log  s   r  c                 C   s   |  dd}| dd}tg dD ]B\}}|d|f d |d|f jdd|d |d|f jdd|d |d|f d |d d |f D ]}|jddd|d	 qHqd S )
Nr   r   )rA  step
stepfilledr   r  r   histtypeT)r  r  )r   rF  r*  r  )r5   r6   r   r   r  r  r   r   r   r   test_hist_log_2  s   r  c                  C   s   t d\} }|d jdgddggddd |d d |d jg dddd |d d | j  |d  |d  ksCJ d S )Nr   r   r   
barstackedr  r  r   r   r   )r   r   r  r*  r  r   r}   r   rH  r   r   r   test_hist_log_barstacked  s   
 r  zhist_bar_empty.pngc                  C      t  } | jg dd d S )NrA  r  r   r6  r  r  r   r   r   test_hist_bar_empty      r  zhist_step_empty.pngc                  C   r  )Nr  r  r  r  r   r   r   test_hist_step_empty'  r  r  zhist_step_filled.pngc            
      C   s   t jd t jdd} d}ddiddidd ii gd }d	gd
 dgd
  }tjdd
d\}}t|||jD ]!\}}}|j| |f|dd| |	d||f  |j
dd q7|d j}	tdd |	D siJ d S )Nr   r  r   rn   r  TFr   r  r  r  )nrowsncolsr  stackedz%s/%sr  r:   r   r   c                 s   s     | ]}|  | kV  qd S r   )rh  ri  )r   r   r   r   r   	<genexpr>>  s    z(test_hist_step_filled.<locals>.<genexpr>)rR   rS   rT   r  r   r   r  rG  r  	set_titler  r  all)
r/   n_binsr  typesr   rH  kg_typer   r  r   r   r   test_hist_step_filled.  s   
r  zhist_density.pngc                  C   s6   t jd t jd} t \}}|j| dd d S )NrK   r  Tdensity)rR   rS   rT   r  r   r   r  ro  r   r   r   r   r   test_hist_densityA  s   r  c                  C   sV   t jd} | d}g d}tj||dd\}}}t j||dd\}}t|| d S )Ni  r   )rj  rl   r]  r   r   r   T)r  r  )rR   rS   RandomStater  r   r  	histogramr   )rngrv  r  mpl_heightsr  
np_heightsr   r   r   test_hist_unequal_bins_densityI  s   
r  c                  C   sd   t  dddt  dddgt  dddt  dddgg} t \}}|j| dd |j| dd d S )N  r   r   T)r  F)r  r   r   r  r  r   r   r   test_hist_datetime_datasetsT  s   r  bins_preprocessc                 C      | S r   r   r  r   r   r   <lambda>^      r  c                 C   s   t | dS )Nr  )rR   r  astyper  r   r   r   r  _      )r  zdatetime.datetimeznp.datetime64c              	   C   s   t  dddt  dddt  dddt  dddgt  dddt  dddt  dddt  dddgg}t  dddt  dddt  dddg}t \}}|j|| |dd	\}}}tj|tj	| |j|| |d
d	\}}}tj|tj	| d S )Ni  r   r   r  r   r   r~  T)r  r  F)
r  r   r   r  rR   r   r   r   r  r  )r  ro  
date_edgesr   r   r  r  r   r   r    test_hist_datetime_datasets_bins\  s   r  zdata, expected_number_of_histsr   c                 C   sJ   t | \}}}t|}|jdkrd|ksJ d S |jd |ks#J d S )Nr   r   )r   r  rR   r  ndimr~  )ro  expected_number_of_histshistsr  r   r   r   test_hist_with_empty_inputs  s
   

r  zhisttype, zorderrA  r  r  c                 C   sH   t   }|jddg| d |jsJ |jD ]
}| |ks!J qd S )Nr   r   r  )r   r   r   r  r  
get_zorder)r  r  r   r   r   r   r   test_hist_zorder  s   

r  c                 C   s  dd l m} tg d}tg d}| dd }|d j||d d |d j||d dd	 |d || |d j||dd
 |d || |d   |d j||dd
 |d   ddd}|dd }|d j	|t
||d fddi| |d j	t
|d ||fddi| |d j	|t
||d fddi| |d |j|d |d gd|d gfi | |d |j|d |d gd|d gfi | |d dd  |d j	t
|d ||fddi| |d |jd|d g|d |d gfi | |d |jd|d g|d |d gfi | |d dd  |d j	|t
||d fddi| |d |j|d |d gd|d gfi | |d |j|d |d gd|d gfi | |d   |d j	t
|d ||fddi| |d |jd|d g|d |d gfi | |d |jd|d g|d |d gfi | |d   d S )Nr   )r     rc   %   0   rc   r  r  )	r   r   r  rP  rg  g      @      @g       @      "@r   r   r  r   r<   )r  r>   r=   r  r   miterbuttsolid_joinstylesolid_capstylerl   	drawstyle
steps-post)matplotlib.lineslinesrR   r#  r   flattenstairssemilogyrY  ry   r  add_lineLine2Dr  r  )r5   r6   mlinesr,   r/   	test_axesr   ref_axesr   r   r   test_stairs  s@   
(((22(22(22(22r  c                 C   s  g dg d}}d}|  dd }|d j||dd |d j||d	dd
 |d j|||dd |d j|||d	dd | dd }|d j|t||d ddd |d dd  |d j|t||d ddd |d dd  |d j|t||d t	t
|d | ddd |d |d  |d j|t||d t	t
|d | ddd |d |d  d S )N)r   r   r   r  r   )r   r   r   r   r  r   rz  r   r   Tr  r   r<   )r>   r  )r  r  r   )r  r>   r  rl   post)r  r   )r   r  r  r7  rR   r  r  re  r  rs   r3  )r5   r6   r!  r  bsr  r  r   r   r   test_stairs_fill  s,   ""r  c                 C   s  d}|   }|g d}|| |g d |jtdd d |g dtdd  |g d |d td t| d td	dsQJ t| d	 tds`J |jd
d | jd
ksoJ |  }|jg dd
d}|| d S )N)rj  r  r  r  r  r   edges)r   r   r   r   r   rz  r  )	r   r  r  set_datarR   rZ   allcloseget_datar  )r5   r6   rq   test_axr!  ref_axr   r   r   test_stairs_update  s    
 r	  c                 C   s\   |   }|jg dd d |  }ddd}|jtdg dfdd	i| |d
d  d S )N)r   r  r  r  r  r  r  r  )r   r  r  r  r  r  r   )r   r  ry   r   r  )r5   r6   r  r  r   r   r   r   test_stairs_baseline_0  s   
 r
  c                  C   s>   t   } | g dg |  dksJ |  dksJ d S )N*   )'   r  r  )r   r   r   r  r|   r}   r  r   r   r   test_stairs_empty  s   r  c                   C   sL   t jtdd tddgdtjdg W d    d S 1 sw   Y  d S )NNan values in "edges"r  r   r   r   )r   r   rN  r   r  rR   r2  r   r   r   r   test_stairs_invalid_nan  s   "r  c                   C   sH   t jtdd tddgddg W d    d S 1 sw   Y  d S )NSize mismatchr  r   r   r   )r   r   rN  r   r  r   r   r   r   test_stairs_invalid_mismatch  s   "r  c                  C   s\   t ddgg d} tjtdd | jdtjdgd W d    d S 1 s'w   Y  d S )Nr   r   r  r  r  r  )r   r  r   r   rN  r  rR   r2  r!  r   r   r   test_stairs_invalid_update	  s   "r  c                  C   sZ   t ddgg d} tjtdd | jtdd W d    d S 1 s&w   Y  d S )Nr   r   r  r  r  r   r  )r   r  r   r   rN  r  rR   rZ   r  r   r   r   test_stairs_invalid_update2  s   "r  ztest_stairs_options.pngc               
   C   s  t g dt g dt} }| }t j|d< t \}}|j|d | dddd |j|| d d d	dd
dd |j|| ddddd |j|d | d d dddd
dd |j|d d d d d | d d	ddd dd |j|d d d d d | dddddd |j|d d d d d | d t 	dd t
|d!dd"dd# |j|d d d d d d d$ | d d d d%ddd&d'd(d) |jd*d+ d S ),Nr   r   r   r  r   rL  r   r   r   TA)r   r  r#   r  r<   B)r   r  r>   r#   r  r  r   C)r   r!  r   r#   r   D)r!  r   r  r>   r#   rl      E)r   r!  r   r  r#   r  r  rl  F)r  r   r!  r   r#   r   r     r   G)r  r   r!  r#   r  r  rj  r{  //H)r   r!  r   r  rn  r#   r   r&   )rR   r#  r  rW  copyr2  r   r   r  r   r3  r1   )r/   r,   ynr   r   r   r   r   test_stairs_options  s2   $
&.4r#  ztest_stairs_datetime.pngc               	   C   sF   t jdd\} }|tdttdtd t jdd d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r   r   r  rR   rZ   r  xticks)fr   r   r   r   test_stairs_datetime-  s   r)  c                 C   sD   |   }|jg dddd |  }|jg ddd}|d d S )Nr  r  T)r   r  r  )r   r  	set_color)r5   r6   r  r  str   r   r   test_stairs_edge_handling6  s
   r,  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nrj  r      r  )rR   r   r9  r   r  )r/   r,   r  r   r   r   contour_datB  s   "
r.  contour_hatchingc               
   C   s@   t  \} }}t \}}|j| ||dg dtdddd d S )Nr  )rl  \r  r  grayrr   r   )r  rj   extendr  )r.  r   r   contourfr  )r/   r,   r  r   r   r   r   r   test_contour_hatchingI  s   
r4  contour_colorbarc            	   
   C   s   t  \} }}t \}}|j| ||tdddtddddd}|j| ||td	d
ddgddd}|j| ||tddddgdd}|j||d}|	| |j	|dd d S )Ngg7A`?r   RdBug333333r  rr   )levelsrj   r#  r$  r2  gg^I+r,   r   r   )r7  r  
linestylesrT  r  r"   )r7  r  rT  r  F)erase)
r.  r   r   r3  rR   rZ   r  rA  r2   	add_lines)	r/   r,   r  r   r   cscs1cs2r8   r   r   r   test_contour_colorbarR  s(   
r>  hist2dc                  C   s   dt jd< tjd tjdd d } tjdd }t  \}}|j| |ddd	 | |d
}t  \}}|jddd|dd d S )NFr  r   r   r   r   rn   Tr  
rasterizedr   r/   r,   )r  ro  rA  )r   r   rR   rS   rT   r  r   r?  )r/   r,   r   r   ro  r   r   r   test_hist2dh  s   

rB  hist2d_transposec                  C   sX   dt jd< tjd tdgd } tjdd }t  \}}|j| |ddd	 d S )
NFr  r   r   r   r   rn   Tr@  )	r   r   rR   rS   rT   r#  r  r   r?  r4  r   r   r   test_hist2d_transposez  s   
rD  c                  C   s>   t jd\} }t  }|tfD ]
}|j| |dd qd S )Nr  Tr  )rR   rS   r   r   r   r?  )r/   r,   r   objr   r   r   test_hist2d_density  s
   rF  c                "   @   s  e Zd Zedgddddd Zedgddd	d
 Zedgddgddd Zedgddd Zdd Z	dd Z
ejddd Zdd Zdd Zedgddd Zedgdd d! Zd"d# Zedgdd$d% Zedgdd&d' Zd(d)gd*fd+d,d-g d.d/fd0d1gd*fd1gd2 d*fd3gd4 d/fd3gd2 d/fd3gd5 d6fg d7d/fg d8d/fg d9d*fg d:gd/fg d:gd4 d6fg d:gd2 d/fg d:gd5 d6fg d;gd/fg d;gd4 d6fg d;gd2 d/fg d;gd5 d6fg d;gd4 g d:g d/fg d;d<d=gd6fg d;d<d=d>gd/fg d;d<d=d>g d?gd6fg d;d<d1gd*fg d;d<d=d1gd*fg d;d<d=d>d1gd*fgZejd@edAdB ZejdedgddCdD ZdEdF Zd/S )GTestScatterr    r   Trt  c                 C   s   t g dt g dg dg dg dd}t \}}|j|d d |d	 d |d
 |d d |j|d d |d	 d |d |d d |jdd	d
d|d d S )Nr   r  r   r  r   r   r   r   r  r,   r  limer  r         )0.50.60.7z0.8)r/   r,   r"   rw  c2r/   r   r,   r"   rw  r"   rw  rR  )r"   rw  ro  )rR   r#  r   r   r    )selfro  r   r   r   r   r   test_scatter_plot  s   **zTestScatter.test_scatter_plotzscatter_marker.pngrD  c           
   
   C   s   t jdd\}\}}}|jg dg dg dg dg ddd	 |jg dg dg dg dg dtjd
ddd	 d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jg dg dg dg dg d|	d	 d S )Nr   r  rH  rI  )r   r   r   r,   r  rK  )r  r  rS  r   )rv  r  gr  rw  )r"   rw  r  rf   r   r%   	fillstylern  r   r   r  )r   r   r    r  r  rR   r   r   column_stackr9  r   )
rT  r   r?  r   r   rxryarear  rY  r   r   r   test_scatter_marker  s2   
zTestScatter.test_scatter_marker
scatter_2DrH   )rE  rJ   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r   r  face)r"   rw  r  )rR   rZ   r  r   r   r    )rT  r/   r,   r  r   r   r   r   r   test_scatter_2D  s   

zTestScatter.test_scatter_2DrI   c           
      C   s   t g d}t g d}t dd |D }t dd |D }g d}g d}| }	|	j||||d | }	|	j||||d d S )	NrL  rM  c                 S   rN  r   r   r\  r   r   r   r     rO  z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   rN  r   r   r\  r   r   r   r     rO  rJ  rL  rS  )rR   r#  r   r    )
rT  r5   r6   rS  rT  r/   r,   r"   rw  r   r   r   r   test_scatter_decimal  s   z TestScatter.test_scatter_decimalc                 C   s   t t tjddgddgddgd W d    n1 sw   Y  t t tjg dg dg dd W d    d S 1 sBw   Y  d S )Nr   r   r   r   r  r  )r   r   rN  r   r    rT  r   r   r   test_scatter_color  s   "zTestScatter.test_scatter_colorc                 C   sv   t jg dg dg dtjdddg dd}| jd	ks J t| g d
g dg dg t| g d d S )Nr  r   r   r   z0.1z0.3rO  r   r  rY  r  ri  ?r"   rf   rT  )r   r  r   r   r   r   r   r   r   r   r   r   r   r   )	r   r    r  r  get_facecolorsr~  r   get_edgecolorsget_linewidthsrT  collr   r   r   test_scatter_unfilled  s   z!TestScatter.test_scatter_unfilledrK  c                 C   sl   t jg dg dg ddg dd}t| |  t| g dg dg d	g t| g d d S )
Nr  rf  rg  r/   rh  rj  rk  rl  rm  )r   r    r   rn  ro  rp  rq  r   r   r   test_scatter_unfillable  s   z#TestScatter.test_scatter_unfillablec                 C   s   t d}tjtdd t|||dd   W d    n1 s"w   Y  tjtdd t|dd  |dd  | W d    n1 sHw   Y  tjtdd t||d W d    d S 1 sgw   Y  d S )Nr  zsame size as x and yr  r   zfloat array-liker  )rR   rZ   r   r   rN  r   r    )rT  r/   r   r   r   test_scatter_size_arg_size  s   
 "z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg ddtjtjgdd}t| dsJ t jg ddtjtjdgdd}t| ds3J d S )Nr  r   rW  r
  rL  r   r   r   r   )r   r    rR   r2  rO  
same_colorri  rq  r   r   r   test_scatter_edgecolor_RGB  s   z&TestScatter.test_scatter_edgecolor_RGBc                 C   s   |  }tdd}|dd |jtdtddtjdtjgg d|dd	 |  }tdd}|jd
dgd
dgddgddg|d |jddgddgddgdd d S )Nr  r  rv  r   r  r   rL  Tr"   rw  rj   plotnonfiniter   r   r"   rw  rj   )rw  r   r   r   r  set_badr    r   rR   r2  rT  r5   r6   r   rj   r   r   r   test_scatter_invalid_color  s   $"z&TestScatter.test_scatter_invalid_colorc                 C   s~   |  }tdd}|dd |jtdtddtjdtjgg d|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  rv  r   r  r   rL  Frz  r   r   r|  r}  r  r   r   r   test_scatter_no_invalid_color
	  s   (z)TestScatter.test_scatter_no_invalid_colorc              	   C   sb   g d}t  }tjtdd |j|||tddddd W d	   d	S 1 s*w   Y  d	S )
rI  r  rJ  r  rK  rn   r   r   )r"   rL  r#  r$  N)r   rM  r   r   rN  r    rO  rP  )rT  r/   r   r   r   r   test_scatter_norm_vminvmax	  s   "z&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  }|jdddd |  }|jdgdgdgd d S )Nr   r  )r   r    )rT  r5   r6   r   r   r   r   test_scatter_single_point 	  s   z%TestScatter.test_scatter_single_pointc                 C   s^   t d}| }|j||dd|ddd | }|j|dd||ddd d S )Nrn   r   r   r  )rR   rZ   r   r    ru   )rT  r5   r6   r/   r   r   r   r   test_scatter_different_shapes'	  s
   
 $z)TestScatter.test_scatter_different_shapes)rO  Nrgby
conversion)r  N)r  N)NN)r  rX  r  r  N)jauner  r  r  r   r   r   r~  )rO  z0.4rP  rQ  )rO  r  rP  C5)rO  r   rP  r  rW  r   r   r   r   r  z0.0r  r   r   r   zc_case, re_keyc                 C   s   dd }d}ddd}|d u rt jjj|di ||d d S tjt|| d	 t jjj|di ||d W d    d S 1 s>w   Y  d S )
Nc                   S   r   Nr   r   r   r   r   r   get_next_color_	  r   z2TestScatter.test_scatter_c.<locals>.get_next_colorr  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r~  r  rj  )r"   r  r  xsizeget_next_color_funcr  )r   rM  Axes_parse_scatter_color_argsr   r   rN  )rT  c_casere_keyr  r  REGEXPr   r   r   test_scatter_c]	  s    
"zTestScatter.test_scatter_cc                 C   s   g dg}g dg}|  }|jtdtd|d |jtdd td|d |  }|jtdtd|d |jtdd td|d d S )N)r   r   皙?)r   r   r  r   r   r  r  r   r  )r   r    rR   rs   r   )rT  r5   r6   rgbrgbar_   r^   r   r   r   test_scatter_single_color_cs	  s   

"z'TestScatter.test_scatter_single_color_cc              
   C   s   t d}t \}}tdD ] }|j|t d|d| dd|d d}| |d ks/J q|j|t dddddg tddd d}t| g tddt	j
d	  d S )
Nr   r   r  r/   r   r   )r"   rf   rw  rT  C3lines.linewidth)rR   rZ   r   r   r   r    rN   rp  r   r   r   )rT  r/   r   r   r  pcr   r   r   test_scatter_linewidths	  s   
z#TestScatter.test_scatter_linewidths)__name__
__module____qualname__r	   rU  r_  rb  r
   rc  re  rs  r   r   contextrt  ru  ry  r  r  r  r  r  params_test_scatter_cr   markparametrizer  r  r  r   r   r   r   rG    sz    









	
	











+


rG  )r  c                K   s   | ||d ur
||fS i |fS r   r   )r"   r  r  r  r   r   r   _params	  s   r  _resultz	c, colorszparams, expected_resultr  r  )r"   r  r  r  rw  r  rX  )r   r   r   r   c                 C   s@   dd }t jjj| d|i\}}}||jksJ t||j d S )Nc                   S   r   r  r   r   r   r   r   r  	  r   z5test_parse_scatter_color_args.<locals>.get_next_colorr  )r   rM  r  r  r"   r   r  )paramsexpected_resultr  r"   r  _edgecolorsr   r   r   test_parse_scatter_color_args	  s   r  zkwargs, expected_edgecolorsrv  ra  r  )r
  r  )r"   r
  r  )r   r
  c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ks%J d S )Nc                   S   r   r  r   r   r   r   r   r  	  r   z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr"   r  r   )r  r  )popr   rM  r  r  )r  expected_edgecolorsr  r"   r  r  result_edgecolorsr   r   r   (test_parse_scatter_color_args_edgecolors	  s   
r  c                  C   sj   dd } t jtdd  tg dg dg}tjjj|d i d| d W d    d S 1 s.w   Y  d S )	Nc                   S   r   r  r   r   r   r   r   r  	  r   z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 ranger  )r   r   r  )r   rw  gffffff?r   )r  r  r  )	r   r   rN  rR   r#  r   rM  r  r  )r  r"   r   r   r   #test_parse_scatter_color_args_error	  s   
"r  c                     s  ddl m  G  fddd} |  }|  }tj|_|  }tjg d|d}t| ks-J tj	t
dd tj|d}W d    n1 sEw   Y  ||u sPJ t  tj	t
dd tj|d}W d    n1 slw   Y  t|tjj ks~J tj	t
dd tj|d}W d    n1 sw   Y  ||u sJ tj	t
dd tj|d}W d    n1 sw   Y  ||u sJ | dksJ tj	t
dd tj|d}W d    n1 sw   Y  ||u sJ t  tjd	|d}t|tjj ksJ t  d S )
Nr   	PolarAxesc                       s    e Zd Zdd Z fddZdS )z#test_as_mpl_axes_api.<locals>.Polarc                 S   s
   d| _ d S )Nr   theta_offsetrd  r   r   r   __init__	  s   
z,test_as_mpl_axes_api.<locals>.Polar.__init__c                    s    d| j ifS )Nr  r  rd  r  r   r   _as_mpl_axes	  s   z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r  r  r  r  r  r   r  r   r   Polar	  s    r  r  r  z5Calling gca\(\) with keyword arguments was deprecatedr  y   )matplotlib.projections.polarr  rR   r   r  r   rM  typer   r  r   r6  r=  r   	_subplotssubplot_class_factoryget_theta_offsetr;  )r  prjprj2prj3r   
ax_via_gcar   r  r   test_as_mpl_axes_api	  sb   r  c                  C   sZ   t  \} }t  \}}t | |t  u sJ | t  u s!J t |  t | d S r   )r   r   scar6  gcfr=  )fig1r   fig2r   r   r   r   test_pyplot_axes
  s   

r  
log_scalesc                  C   sL   t  \} }|ttdd |jddd |  |jddd d S )Nr   r   r        @r  r  )	r   r   ry   rR   r  r   r*  r)  r  r   r   r   r   test_log_scales
  s
   r  c                  C   sT   t  \} }|jddd |jtd | |   kr%dks(J  J d S )Nr  )r2  r  r   r   rn   )	r   r   r{   rC   r   r   MultipleLocatorr|   r}   r  r   r   r   test_log_scales_no_data&
  s   (r  c                  C   s   t  \} }|d tjtdd |dd W d    n1 s#w   Y  |d tjtdd |dd W d    d S 1 sFw   Y  d S )Nr  zAttempted to set non-positiver  rl   rn   )	r   r   r  r   r  r  r  r*  r  r   r   r   r   test_log_scales_invalid-
  s   

"r  stackplot_test_imagec                  C   s   t  } tddd}d| }d| d }d| d }| ddd}||||| |d |d	 ||||d
}t  \} }|jdddd|d |d |d	 d S )Nr   rn   r   r   r   r  r   r   rn   )r   F   )r/   rI  r'  y3r/   rI  r'  r  r  )	r   r   rR   r   r   	stackplotr  r  r   )r   r/   rI  r'  r  r   ro  r   r   r   test_stackplot7
  s   


r  stackplot_test_baselinec                  C   s   t jd dd } | dd}d|dd d f< tdd\}}|d jtd|jd	d
 |d jtd|jdd
 |d jtd|jdd
 |d jtd|jdd
 d S )Nr   c                 S   s   t || f}t| D ]A}tdD ]:}ddt j   }dt j  d }ddt j   }|d d |f  |t t || | | d   7  < qq|S )Nr   r   r   r   r   rn   )rR   r  r   rS   exprZ   )r   r
  r   r  jr/   r,   r  r   r   r   layersO
  s   <z'test_stackplot_baseline.<locals>.layersr   r   r  r   r  zeror  r  symr   r   wiggler  weighted_wiggle)rR   rS   rT   r   r   r  r   r  )r  r  r   rH  r   r   r   test_stackplot_baselineK
  s   

r  c                 C   r  r   r   )rw  r   r   r   r  e
  r  c                 C   s   t jd tjjt jjddddfi | }t \}}|	ddr)|
d n|d |	d	d
s<tjd tjd< |j||fi | d S )N  r  r   )r  r  )meansigmasizevertTr  patch_artistFr  boxplot.boxprops.linewidth)rR   rS   rT   r   cbookboxplot_stats	lognormalr   r   getr*  r  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr   r   r   r   r   _bxp_test_helperd
  s   
r  zbxp_baseline.pngrS  )r  r   c                   C   s
   t   d S r   r  r   r   r   r   test_bxp_baselinev
  s   
r  zbxp_rangewhis.pngc                   C      t tddgdd d S )Nr   r   whisr  r  r  r   r   r   r   test_bxp_rangewhis}
     r  zbxp_percentilewhis.pngc                   C   r  )Nr   _   r  r  r  r   r   r   r   test_bxp_percentilewhis
  r  r  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   $   t | tdD ]\}}||d< q| S NABCDr#   r  r  statsrw  r#   r   r   r   r  
     
z(test_bxp_with_xlabels.<locals>.transform)r  r  r  r   r   r   test_bxp_with_xlabels
  s   r  zbxp_horizontal.pngr   )rE  r  r   r   c                   C      t tddd d S )NFr  r  r  r   r   r   r   test_bxp_horizontal
  s   r  zbxp_with_ylabels.png)r  r   r   c                  C      dd } t | tddd d S )Nc                 S   r  r  r  r  r   r   r   r  
  r  z(test_bxp_with_ylabels.<locals>.transformFr  r  r  r  r   r   r   r   test_bxp_with_ylabels
  s   r  zbxp_patchartist.png)rE  r  r   c                   C   r  )NT)r  r  r  r   r   r   r   test_bxp_patchartist
     r	  zbxp_custompatchartist.pngr   c                   C       t tdtdddddd d S )NTr  r   :)r	  r
  r!  )r  boxpropsr  r  r   r   r   r   test_bxp_custompatchartist
     r  zbxp_customoutlier.pngc                   C      t ttdddddd d S )Nr  r  rX  r   rf   mfc)
flierpropsr  r  r   r   r   r   test_bxp_customoutlier
     r  zbxp_withmean_custompoint.pngc                   C   r  )NTr  r  r   r  )	showmeans	meanpropsr  r  r   r   r   r   test_bxp_showcustommean
  r  r  zbxp_custombox.pngc                   C   r  )Nr  r  r   r   r   r   )r  r  r  r   r   r   r   test_bxp_custombox
  r  r  zbxp_custommedian.pngc                   C   r  )Nr  r  r   r  )medianpropsr  r  r   r   r   r   test_bxp_custommedian
  r  r  zbxp_customcap.pngc                   C   r  )Nr  rX  r   r  )cappropsr  r  r   r   r   r   test_bxp_customcap
  r  r  zbxp_customwhisker.pngc                   C   r  )Nr  r
  r   r  )whiskerpropsr  r  r   r   r   r   test_bxp_customwhisker
  r  r   zbxp_withnotch.pngc                   C   r  )NT)shownotchesr  r  r   r   r   r   test_bxp_shownotches
  r
  r"  zbxp_nocaps.pngc                   C   r  )NF)showcapsr  r  r   r   r   r   test_bxp_nocaps
  r
  r$  zbxp_nobox.pngc                   C   r  )NF)showboxr  r  r   r   r   r   test_bxp_nobox  r
  r&  zbxp_no_flier_stats.pngc                  C   r  )Nc                 S   s   | D ]}| dd  q| S )Nfliers)r  )r  rw  r   r   r   r    s   z*test_bxp_no_flier_stats.<locals>.transformF)
showfliersr  r  r   r   r   r   test_bxp_no_flier_stats  s   
r)  zbxp_withmean_point.pngc                   C   s   t tdddd d S )NTFr  meanliner  r  r   r   r   r   test_bxp_showmean     r,  zbxp_withmean_line.pngc                   C   s   t tdddd d S )NTr*  r  r  r   r   r   r   test_bxp_showmeanasline%  r-  r.  zbxp_scalarwidth.pngc                   C   r  )Nr  widthsr  r  r   r   r   r   test_bxp_scalarwidth-  r
  r1  zbxp_customwidths.pngc                   C      t tg ddd d S )N)r   r  g?g333333?r/  r  r  r   r   r   r   test_bxp_customwidths5     r3  zbxp_custompositions.pngc                   C   r2  )N)r   r   r  r  r{  r  r  r   r   r   r   test_bxp_custompositions=  r4  r5  c                   C   sB   t t ttdgdd W d    d S 1 sw   Y  d S )Nr   r/  r  r   r   rN  r  r  r   r   r   r   test_bxp_bad_widthsE  s   "r7  c                   C   sD   t t ttddgdd W d    d S 1 sw   Y  d S )Nr   r   r{  r  r6  r   r   r   r   test_bxp_bad_positionsJ  s   "r8  r  g{Gz?)r   r   c                  C   s   t jd t ddd} t d| dg} t \}}|j| | gddd	 |d
 d| | gi}t \}}|jddd|d |d
 d S )Nr  r  r     r  '  r   	bootstrapnotchr  r   r/   )r=  r>  ro  	rR   rS   rT   r   hstackr   r   r  r  )r/   r   r   ro  r   r   r   test_boxplotO  s   
rB  zboxplot_sym2.pngc                  C   s~   t jd t ddd} t d| dg} tdd\}\}}|j| | gd	d
d |d |j| | gd	dd |d d S )Nr  r  r  r9  r:  r  r   r   r;  ^)r=  r  r?  rX  r@  )r/   r   r   r   r   r   r   test_boxplot_sym2b  s   
rD  zboxplot_sym.pngc                  C   sJ   t ddd} t d| dg} t \}}|j| | gdd |d d S )	Nr  r  r9  r:  r  r+  r  r?  )rR   r   rA  r   r   r  r  r;  r   r   r   test_boxplot_symr  s
   rF  z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                  C   s   t jd t d} t d| dg} t \}}|j| | gddd |d t \}}|j| | gddd	d
 |d d S )Nr  r9  r   r   r;  r   r<  )r'  r   T)r=  r>  	autorange)	rR   rS   rT   rs   rA  r   r   r  r  )r/   r  r   r  r   r   r   r   test_boxplot_autorange_whiskers  s   

rH  c                 C   s\   t ddd}t d|dg}t| | ||g W d    | S 1 s'w   Y  | S )Nr  r  r9  r:  r  )rR   r   rA  r@   r   r  )r   rc_dictr/   r   r   r   _rc_test_bxp_helper  s   
rJ  boxplot_rc_parameters)r  rE  r   r   c                  C   s  t jd td\} }i dddddgdd	d
ddddddddddddddddddddd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dd%d&}|||g}t||D ]	\}}t|| qjtjj	d'd( |d) 
 D v sJ d S )*Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstrapr;  zboxplot.flierprops.colorr  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorrX  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr"   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrv  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalrL  zboxplot.patchartist-.)rL  zboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylec                 S   rN  r   )r  ru  r   r   r   r     rO  z.test_boxplot_rc_parameters.<locals>.<listcomp>r   )rR   rS   rT   r   r   r  rJ  r@   r  r  get_children)r   r   rc_axis0rc_axis1rc_axis2	dict_listrN  rc_axisr   r   r   test_boxplot_rc_parameters  s~   	

rU  zboxplot_with_CIarray.pngc                  C   sv   t jd t ddd} t d| dg} t \}}t ddgd	d
gg}|j| | gdd dg|dd |	d d S )Nr  r  r  r9  r:  r  r  r  r        @r;  r   r   )r=  usermediansconf_intervalsr>  r?  )
rR   rS   rT   r   rA  r   r   r#  r  r  )r/   r   r   CIsr   r   r   test_boxplot_with_CIarray  s   rZ  zboxplot_no_inverted_whisker.pngc                  C   sP   t jg dt jd} t }||  |d |jjddd |j	d d S )N)r   i(#  r-  X   i^  i@ ix  i  rS  r  Fminorwhich)
rR   r#  r  r   rM  r  r*  rF   r  rC   )r/   r   r   r   r   test_boxplot_no_weird_whisker  s   


r_  c                  C   s   t ddd} t d| dg} t \}}tt |j| ddgd W d    n1 s.w   Y  tt |j| | gddgddggd W d    d S 1 sSw   Y  d S )	Nr  r  r9  r:  r  r   r   )rW  	rR   r   rA  r   r   r   r   rN  r  r;  r   r   r   test_boxplot_bad_medians  s    "ra  c                  C   s   t ddd} t d| dg} t \}}tt |j| | gddggd W d    n1 s1w   Y  tt |j| | gddgdggd W d    d S 1 sUw   Y  d S )	Nr  r  r9  r:  r  r   r   )rX  r`  r;  r   r   r   test_boxplot_bad_ci  s   "rb  c                  C   sZ   t d} t \}}|| d d  dksJ |j| ddd d  dks+J d S )Nrn   boxesr   r   r  )rR   rZ   r   r   r  r  )r/   r	  r   r   r   r   test_boxplot_zorder  s   
&re  c                  C   s   dt jd< dt jd< dt jd< t  \} }td}d|d	< |j|d
d}dD ]}|| D ]
}| dks7J q-q'|d d  dksEJ |d d  dksQJ d S )Nrw  r  r   rM  rC  zboxplot.meanprops.markerr   r-  rl   T)r  )whiskerscapsrc  mediansr   r'  r   means)r   r   r   rR   rZ   r  
get_marker)r   r   	test_data
bxp_handle	bxp_lines	each_liner   r   r   test_boxplot_marker_behavior  s   



ro  z&boxplot_mod_artists_after_plotting.pngc                  C   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d qqd S )N)r  r  r  r  gQ?gQ?gQr   rE  r   )r   r   r  r*  )r/   r   r   bpkeyrE  r   r   r   &test_boxplot_mod_artist_after_plotting&  s   rr  zviolinplot_vert_baseline.pngc                  C   sp   t jd dd tdD } t }|j| tddddd d| i} t \}}|jdtdddd| d d S )	Niec                 S      g | ]	}t jjd dqS r   r  rR   rS   rU   r   r  r   r   r   r   6      z1test_vert_violinplot_baseline.<locals>.<listcomp>r  r   r|  r  showextremashowmediansr  )r|  r  rz  r{  ro  )rR   rS   rT   r   r   rM  
violinplotr   )ro  r   r   r   r   r   test_vert_violinplot_baseline1  s   
r}  zviolinplot_vert_showmeans.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Niw5+c                 S   rs  rt  rv  rw  r   r   r   r   G  rx  z2test_vert_violinplot_showmeans.<locals>.<listcomp>r  r   r   ry  r   rM  rR   rS   rT   r   r|  r   ro  r   r   r   test_vert_violinplot_showmeansB     
r  zviolinplot_vert_showextrema.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nic                 S   rs  rt  rv  rw  r   r   r   r   Q  rx  z4test_vert_violinplot_showextrema.<locals>.<listcomp>r  r   r   ry  r~  r  r   r   r    test_vert_violinplot_showextremaL  r  r  zviolinplot_vert_showmedians.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nib}&c                 S   rs  rt  rv  rw  r   r   r   r   [  rx  z4test_vert_violinplot_showmedians.<locals>.<listcomp>r  r   r   ry  r~  r  r   r   r    test_vert_violinplot_showmediansV  r  r  zviolinplot_vert_showall.pngc                  C   s\   t  } tjd dd tdD }| j|tddddddgdd	gd
dgddggd d S )NiOc                 S   rs  rt  rv  rw  r   r   r   r   e  rx  z0test_vert_violinplot_showall.<locals>.<listcomp>r  r   r   ?r   r  r   r  rw  r  )r|  r  rz  r{  	quantilesr~  r  r   r   r   test_vert_violinplot_showall`  s   
r  z#violinplot_vert_custompoints_10.pngc                  C   D   t  } tjd dd tdD }| j|tdddddd d S )Ni$c                 S   rs  rt  rv  rw  r   r   r   r   p  rx  z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r  r   rn   r|  r  rz  r{  pointsr~  r  r   r   r   $test_vert_violinplot_custompoints_10k     
r  z$violinplot_vert_custompoints_200.pngc                  C   r  )NiYqVc                 S   rs  rt  rv  rw  r   r   r   r   z  rx  z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r  r   r  r  r~  r  r   r   r   %test_vert_violinplot_custompoints_200u  r  r  zviolinplot_horiz_baseline.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )Ni\dc                 S   rs  rt  rv  rw  r   r   r   r     rx  z2test_horiz_violinplot_baseline.<locals>.<listcomp>r  Fr   r|  r  r  rz  r{  r~  r  r   r   r   test_horiz_violinplot_baseline  r  r  z violinplot_horiz_showmedians.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nilo/c                 S   rs  rt  rv  rw  r   r   r   r     rx  z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r  Fr   r   r  r~  r  r   r   r   !test_horiz_violinplot_showmedians  r  r  zviolinplot_horiz_showmeans.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Ni&c                 S   rs  rt  rv  rw  r   r   r   r     rx  z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r  Fr   r   r  r~  r  r   r   r   test_horiz_violinplot_showmeans  r  r  z violinplot_horiz_showextrema.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nie!c                 S   rs  rt  rv  rw  r   r   r   r     rx  z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r  Fr   r   r  r~  r  r   r   r   !test_horiz_violinplot_showextrema  r  r  zviolinplot_horiz_showall.pngc                  C   s^   t  } tjd dd tdD }| j|tdddddddgd	d
gddgddggd d S )Ni"c                 S   rs  rt  rv  rw  r   r   r   r     rx  z1test_horiz_violinplot_showall.<locals>.<listcomp>r  Fr   r   r  r   r  r   r  rw  r  )r|  r  r  rz  r{  r  r~  r  r   r   r   test_horiz_violinplot_showall  s   
r  z$violinplot_horiz_custompoints_10.pngc               	   C   F   t  } tjd dd tdD }| j|tddddddd d S )	Ni0c                 S   rs  rt  rv  rw  r   r   r   r     rx  z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r  Fr   rn   r|  r  r  rz  r{  r  r~  r  r   r   r   %test_horiz_violinplot_custompoints_10     
r  z%violinplot_horiz_custompoints_200.pngc               	   C   r  )	Ni<9!c                 S   rs  rt  rv  rw  r   r   r   r     rx  z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r  Fr   r  r  r~  r  r   r   r   &test_horiz_violinplot_custompoints_200  r  r  c                  C   sh   t  } tjd dd tdD }tt | j	|tdd W d    d S 1 s-w   Y  d S )Ni@ 3c                 S   rs  rt  rv  rw  r   r   r   r     rx  z1test_violinplot_bad_positions.<locals>.<listcomp>r  r   r{  
r   rM  rR   rS   rT   r   r   r   rN  r|  r  r   r   r   test_violinplot_bad_positions  s   "r  c                  C   sn   t  } tjd dd tdD }tt | j	|tdg dd W d    d S 1 s0w   Y  d S )NiA#c                 S   rs  rt  rv  rw  r   r   r   r     rx  z.test_violinplot_bad_widths.<locals>.<listcomp>r  r  )r|  r0  r  r  r   r   r   test_violinplot_bad_widths  s   "r  c                  C   sn   t  } tjd tjjddg}tt | j	|ddgddggd W d    d S 1 s0w   Y  d S )	Nil r   ru  r   r   r   r  r  
r   rM  rR   rS   rT   rU   r   r   rN  r|  r  r   r   r   test_violinplot_bad_quantiles  s   "r  c                  C   s   t  } tjd tjjddg}tt | j	|g dgd W d    n1 s,w   Y  tt | j	|g dgd W d    d S 1 sLw   Y  d S )Niq4r   ru  )r   r   r   ?r  )gr   r   r  r  r  r   r   r   $test_violinplot_outofrange_quantiles  s   "r  c                 C   sV   t jd t jjddg}|  }|j|g dd | }|j|g dgd d S )N+r   ru  )r   r   r  r  )rR   rS   rT   rU   r   r|  )r5   r6   ro  r   r   r   r   %test_violinplot_single_list_quantiles  s   r  c                 C   s   t jd |jt jjddg dd}|jt jjddtdd}|t jjdd}|  |||g | |j|j|jg d S )	Nr  r  ru  )r  r  r  r  r   r  r   r  r  	ABCDEFGHIr  )	rR   rS   rT   r  rU   r  r   r|  values)r5   r6   r  s1s2s3r   r   r   test_violinplot_pandas_series  s   r  c                  C   sz   t  \} }|dd | }tjd tjddd}tjddd}|j||gddgdd	 | }t	|| d S )
Nr   r  rn   r   r  r   r   F)r|  manage_ticks)
r   r   r  r|   rR   rS   rT   rU   r  r   )r  r   old_xlimrI  r'  new_xlimr   r   r   test_manage_xticks  s   r  c                  C   s   t  \} }|jtjddgd |jtjddgd | j  | dks+J t	|
 ddgks7J dd | D dd	gksFJ d S )
Nr   r   r{  r   )rG  r  c                 S      g | ]}|  qS r   get_textru  r   r   r   r     rO  z+test_boxplot_not_single.<locals>.<listcomp>r   5)r   r   r  rR   rS   r   r  r   r|   r  
get_xticksr  r   r   r   r   test_boxplot_not_single  s   
"r  c                  C   s@   t ddgddg tjddi t } t j| ddd d S )Nr   r   z	font.sizeP   raw)r  format)r   ry   r@   r   updateioBytesIOsavefigr  r   r   r   test_tick_space_size_0"  s   r  )errorbar_basicerrorbar_mixedr  c            
   	   C   s  t jdddt jd} t |  }ddt |   }d| }t }| }|j| |ddd |	d tj
d	d	d
d\}}|d }|j| ||dd |	d |jdd |d }|j| ||ddd |	d |d }|j| ||d	| g|d	| gdd |	d |d }|d t d|| }|| }|j| ||d	| g|ddd	d |	d |d | |d}	t }| }|jd d!dd|	d" |	d d S )#Nr   r  r   rS  r   rw  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr   T)r  r  rV  r  r   r  r   zVert. symmetricnbinsr  )r  r   r  zHor. symmetric w/ alphar  z--or  r  r   zH, V asymmetricr  r  rh  rX  )r  r  r   ecolorcapthickzMixed sym., log yzVariable errorbarsr   r/   r,   r  r  ro  )rR   rZ   
longdoubler  r<  r   r   r6  r  r  r   locator_paramsr*  maximumsuptitle)
r/   r,   r  r  r   r   rH  ylower
yerr_lowerro  r   r   r   test_errorbar+  sB   


$




r  c                  C   s   t  \} }td}d| }|j||d d\}}}|j|d| d d\}}}||d| \}t| tdks>J t| tdksLJ t| tdksZJ d S )Nrn   r   r  r  r8  C1C2)	r   r   rR   rZ   r  ry   rO  to_rgba	get_color)r(  r   r/   r,   r  r  r  ln1r   r   r   test_errorbar_colorcycle`  s   
 r  c              
      s   t ddd  fddtdD }|  }| }t|g dD ]\}}|j ||d dd	d
d |j ||d dd	|d
d q!d S )Nr   r  r   c                    s   g | ]
}t   | qS r   )rR   r  r   r   r/   r   r   r   r  r  z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)r8  r  r  r  r  r  r   rj  )r  r   rf   r  )r  r   rf   r   r  )rR   rZ   r   r   r  r  )r5   r6   r,   axtaxryir   r   r  r   test_errorbar_cycle_ecoloro  s   r  c                  C   s  t  } |  }tddd}t| }ddt|  }t|d| fj}d| }t	
t |j|||dd W d    n1 sEw   Y  t	
t |j|||dd W d    n1 scw   Y  t	
t |j||||dd	 W d    d S 1 sw   Y  d S )
Nr   r  r   r   r   r   r  )r  r   r  )r   r   r6  rR   rZ   r  r<  vstackr  r   r   rN  r  )r   r   r/   r,   yerr1r  r  r   r   r   test_errorbar_shape~  s    "r  errorbar_limitsc                  C   s\  t ddd} t |  }d}d}d}t \}}|j| ||||dd t | }d|g d	< |j| |d ||||d
d t | }d|g d< |j| |d ||||dd |j| |d dd|||||dd
 d}t | d}d|ddg< |}	|}
t | }t | }d|dg< d|dg< |j| |d dd|||	|
||ddddd |d |	d d S )Nr   r  r   r   dottedr   )r  r  r!  r   T)r   r   r  r   )r  r  uplimsr!  r   )r   r  r  r   r  )r  r  lolimsr!  r   r   r   r  magenta)rf   r"  r  r  r  r  r!  r   r   r   r   @r  r   cyan)rf   r"  r  r  xlolimsxuplimsr  r  r!  r:  capsizer   )r   r  zErrorbar upper and lower limits)
rR   rZ   r  r   r   r  
zeros_like	full_liker  r  )r/   r,   r  r  r!  r   r   r  r  r  r  r   r   r   test_errorbar_limits  sH   






r  c                  C   sd   t d} t d}tj| |dddd\}}}|d u sJ |D ]}t | tdks/J qd S )Nr   r   r  )r  r  r   r8  )rR   rZ   r   r  r  r  rO  r  )r/   r,   plotliner  barlineserrbarr   r   r   test_errobar_nonefmt  s   

r  c                  C   s`   t d} t d}tj| |ddddddddd	d
d\}}}| dks&J | dks.J d S )Nr   r   Nonerw  rN   z	steps-midroundr  r  bevel)
r  r  r!  rf   rZ  r  dash_capstyledash_joinstyler  r  )rR   rZ   r   r  get_fillstyleget_drawstyle)r/   r,   r  r  r   r   r   "test_errorbar_line_specific_kwargs  s   

r  c              	   C   s  |  }|jg dg dddddd |jg dg ddd	d
ddd |jg dg ddddddd |dd tg dg dg dg dd}tjd|d |   }|jg dg ddd |jg dg ddd	d |jg dg dddd |dd d S )N)r   r  rn   r  r   r  rw  rv  )r/   r,   r  r!  rf   r  )r   r   r  z	tab:greenr  r,   )r/   r,   r  r   r!  rf   r  r  r   r  ztab:bluerN  r   r"   )r/   r,   r  r   r!  rf   r  r   r  )r  r  rN  )rw  rw  r   )rv  r,   r"   )r  rX  r  )r!  rf   r  r   rM  )
prop_cycle)r/   r,   r  )r/   r,   r  r   )r/   r,   r  r   )r   r  r  r   r   rc)r5   r6   r   _cycler   r   r   test_errorbar_with_prop_cycle  s(   r  c                  C   s8  t ddd} | d|   }|d }t  }tjtdd |j| ||dd W d    n1 s2w   Y  tjtdd |j| ||d	d W d    n1 sRw   Y  tjtd
d |j| ||ddgd W d    n1 stw   Y  tjtdd |j| ||dd W d    d S 1 sw   Y  d S )Nr   r   r   r  znot a tuple of two integersr  r  )
errorevery)ri  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rR   r   r   r   r   r   r   rN  r  )r/   r,   r  r   r   r   r   test_errorbar_every_invalid  s    "r  c           	   
   C   s6  t ddd}|d|  }|d }| }|  }tdg dD ]8\}}|d7 }|j||||dfd|d	 |j|||d
d |j||d d ||d d ||d d d|dd q |j||d |dddd |j|dd d |dd d d dd
d |j||d |ddd |j||d |tdd dtdd ddddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd |j||d |g dd g dd dddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd d S )Nr   r   r   r  rgbk)r   r   r   r  r   r  )r  r  r"   r  )r"   r  r  )r  r"   r   r   )r   r  r   )r  r  r   rd  )r  r   r   r   r   r8  )r  r  r  r"   r   )FTFr   r  )rR   r   r   r  r  ry   r#  )	r5   r6   r/   r,   r  r_   r^   r   shiftr   r   r   test_errorbar_every  sB   (*
,,
,,
r  
elinewidthr  c                 C   s"   t jg dg dg d| d d S )Nr  )r  r  )r   r  )r  r   r   r   test_errorbar_linewidth_type-  s   "r  hist_stacked_stepfilledc                  C   sj   t ddd} t ddd}t \}}|j| |fddd	 d
| |fi}t \}}|jd
dd|d d S )Nr   r   r  r   rn   r  r  Tr  r/   )r  r  ro  rR   r   r   r   r  )d1d2r   r   ro  r   r   r   test_hist_stacked_stepfilled4  s   r  hist_offsetc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   rn   r  r   r   r  r   r  r   r  r  r  r   r   r   r   r   test_hist_offsetB  s
   r  zhist_step.pngc                  C   sD   t ddd} t \}}|j| dd |dd |dd	 d S )
Nr   r   r  r  r  r   rn   rl   r   )rR   r   r   r   r  r  r  r  r   r   r   r   r   test_hist_stepL  s
   r	  zhist_step_horiz.pngc                  C   @   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   rn   r  r   r   r  r  r<   )r  r>   r  r  r   r   r   test_hist_step_horizV     r  hist_stacked_weightsc                  C   sb   t ddd} t ddd}t ddd}t d	d
d}t \}}|j| |f||fddd d S )Nr   rn   r  r   r   r  rh  rV  r  r   r  T)weightsr  r  r  )r  r  w1w2r   r   r   r   r   test_hist_stacked_weighted_  s   r  use_line_collectionzw/ line collectionzw/o line collectionzstem.pngc              	   C   sJ   t ddt j d}t \}}|j|t |dddd| d |  d S )	Nr   r   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr#   r  )rR   r   r   r   r   stemr9  r1   r  r/   r   r   r   r   r   	test_stemj  s   r  c                  C   s`   t  \} }ttd}ttd}|| ||| |j||dd |j||ddd d S )Nrn   r!  )r  zb--)r  r  )r   r   r  r   r  )r   r   r/   r,   r   r   r   test_stem_argsy  s   
r  c                  C   s@   t dd\} }tjdtjdg}ddg}||| d S )Nr   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r   r   dateutilparserparser  )r   r   xsysr   r   r   test_stem_dates  s   

r"  zstem_orientation.pngc              	   C   sB   t ddt j d}t \}}|j|t |ddd| dd d S )	Nr   r   r  r  kxr  r<   )r  r  r  r  r>   )rR   r   r   r   r   r  r9  r  r   r   r   test_stem_orientation  s   
r$  hist_stacked_stepfilled_alphac                  C   sB   t ddd} t ddd}t \}}|j| |fddd	d
 d S )Nr   r   r  r   rn   r  r  Tr   )r  r  r  r  r  r   r   r   "test_hist_stacked_stepfilled_alpha  s   r&  hist_stacked_stepc                  C   r
  )
Nr   r   r  r   rn   r  r  Tr  r  r  r   r   r   test_hist_stacked_step  r  r(  hist_stacked_normedc                  C   s@   t ddd} t ddd}t \}}|j| |fddd d S )	Nr   r   r  r   rn   r  T)r  r  r  r  r   r   r   test_hist_stacked_density  r  r*  zhist_step_bottom.pngc                  C   s4   t ddd} t \}}|j| t ddd d S )Nr   r   r  rn   r  )r:   r  )rR   r   r   r   r  rZ   r  r   r   r   test_hist_step_bottom  s   r+  c                  C   s   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgddgddgddgddgddgg}t| | d S )	Nr   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r   r  r   get_xyr  ro  r  polygonrq  r   r   r   test_hist_stepfilled_geometry  s   *$r3  c               	   C   sn   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgg}t| | d S )	Nr,  r-  r  r.  r   r   r   r   r/  r1  r   r   r   test_hist_step_geometry  s   4r4  c                  C   s   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgd
dgd
d
gdd
gddgddgg}t| | d S )Nr,  r-  r   r   r   r  r  r:   r  r   r   r   r   r   rG  r   r/  r1  r   r   r   $test_hist_stepfilled_bottom_geometry  s   *$r7  c               	   C   st   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgg}t| | d S )Nr,  r-  r5  r  r6  r   r   r   r   r   rG  r   r/  r1  r   r   r   test_hist_step_bottom_geometry  s   4r8  c                  C   s  g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgddgddgd	dgd	dgddgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg}t| | d S )Nr,  r-  r  Tr  r  r  r  r   r   r   r   r  r   r  r3  r   r0  r  data_1data_2r  r  r2  rq  r   r   r   %test_hist_stacked_stepfilled_geometry  s&   

*$
*$r>  c               	   C   s   g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t| | d S )Nr,  r-  r  Tr  r9  r   r   r   r   r  r:  r;  r   r   r   test_hist_stacked_step_geometry  s   

4
4r?  c                  C   s"  g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
d
gd	d
gg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t| | d S )Nr,  r-  r  Tr5  r  r  r  r:   r  r   r   r   r   r   rG  r   r  r  rV  r:  r;  r   r   r   ,test_hist_stacked_stepfilled_bottom_geometry  s(   

*$
*$rA  c               	   C   s   g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgg}t| | d S )Nr,  r-  r  Tr5  r  r@  r   r   r   r   r   rG  r   r  r  rV  r:  r;  r   r   r   &test_hist_stacked_step_bottom_geometry*  s    

4
4rB  hist_stacked_barc                  C   sn   g dg dg dg dg dg dg} g d}g d}t  \}}|j| d	d
d||d |jdddd d S )N)r   r   r   r   r  @  i  r  r  rz  6  ry  )r     r  r  r   i  )r  r  r  r9  r9  r-     )r  r  r  r  r  r  r   r   r   r   rn   r  )+  rH  rH  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   rf  )rf  r   g `p?)rf  r   gǟ?)rf  gˢ`?r   )gC?rf  r   )gK?rf  r   )r   r  z yellowr  rj  rn   r  mid)r  r  r?  r   r#   zupper right)r   r   r   )r'   bbox_to_anchorncol)r   r   r  r1   )r  r  labelsr   r   r   r   r   test_hist_stacked_bar?  s   rM  c                  C   sD   t ddg} tjddgddggdd| d |  ddgks J d S )Nrn   r  r   r   r   r  )r  r:   )rR   r#  r   r  tolistr  r   r   r   %test_hist_barstacked_bottom_unchangedQ  s   rO  c                  C   s,   t  \} }|jg tdtdgdd d S )Nrn   r  r  )r   r   r  r   r   r   r   r   test_hist_emptydataW  s    rP  c                  C   s   t  \} }|jddgdd\}}}|d  dksJ |jddgdgd\}}}|d  dks3J |jddgd d\}}}|d  dksIJ |jddgdd\}}}|d  dks_J |jddgdd\}}}|d  dksuJ d S )Nr   r   r  r>  
_nolegend_00)r   r   r  rD   )r   r   r  barsr   r   r   test_hist_labels\  s   rT  transparent_markersc                  C   s:   t jd t jd} t \}}|j| dddd d S )Nr   r  r  r  r   )r  rm   rR   rS   rT   r   r   ry   r  r   r   r   test_transparent_markersk  s   rW  rgba_markersc               	   C   s   t jdd\} }ddg}ddg}d dg}tdd	d
}t|D ]?\}}t|D ]6\}}	t|D ]-\}
}|| j|d |
d df||	|d| || j|d |
d df|	|d| q.q&q|D ]	}|g d q`d S )Nr   rV  rw  r  r  )r   r   r   r   r   r   r  )r"  r9  r   r   )r  r:  r  r   r/   )r:  r  )rl   r  r   r   )r   r   r  rF  ry   rN  )r   rH  rcolorsbcolorsalphaskwr  r  r  rcolorrv  bcolorr   r   r   r   test_rgba_markerst  s&   *r_  mollweide_gridc                  C   s    t  } | jdd}|  d S )N	mollweider  )r   r   r   r  r   r   r   r   test_mollweide_grid  s   rb  c                  C   s   t  } | jdd}ttj tjd}ttj d tjd d}t||\}}t| | fj	}|j
|}|j
 |}tj||d d S )Nra  r  r  r   rG  r   )r   r   r   rR   r   r   r  r  r  r  transProjectionr  invertedr   r   )r   r   lonlatllrq  ll2r   r   r   &test_mollweide_forward_inverse_closure  s   ri  c                  C   sz   t  } | jdd}tddd}t||\}}t| | fj}|j	
 |}|j	|}tj||d d S )Nra  r  r   r     r   )r   r   r   rR   r   r  r  r  r  rc  rd  r  r   r   )r   r   r/   r,   rq  rg  xy2r   r   r   &test_mollweide_inverse_forward_closure  s   rl  
test_alphac               	   C   s   t jd t jd} t \}}|j| dg dg dddd |j| d	 dg dg dddd
d |j| d dg dg ddddd |j| d dg dg dddd |j| d dg dg dddd d S )Nr   r  z-DrW  r  r  rn   )r   r  rm   r   r   r   )r   r  rm   r   r  r  r   r  r  rV  r  r   r   r   rm    s(   
	eventplotc                  C   sP  t jd t jddg } t jddg }| | }t|}g dgt|  }g dg dg dg d	g d
g dg}|| }dt dt| d  }g d}| | }	dgt|  }
g d}|
| }t }| }|j	|||	|d}t|}||ksJ |||	|d}t }| }|j	dddd|d}t|}||ksJ d S )Nr   rc   r  r  )r   r   r  rW  r  r  )r   r  r   )r   r   r   )r   r   r   r{  gQ?)irj  r   r   r  rn   )r   r   r   r   r   r   )r  lineoffsetslinelengths)r   r"   lorg  r   r"   rq  rg  )r  ro  rp  ro  )
rR   rS   rT   rN  r3  rZ   r   r   r   rn  )r  data2ro  num_datasetscolors1colors2r  lineoffsets1lineoffsets2ro  linelengths1linelengths2rp  r   axobjcollsnum_collectionsr   r   r   test_eventplot  sF   

r}  ztest_eventplot_defaults.pngc                  C   sZ   t jd t jddg } t jddg }| | }t }| }|| dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   rc   r  r  N)rR   rS   rT   rN  r   r   r   rn  )r  rr  ro  r   rz  r   r   r   test_eventplot_defaults  s   r~  r  ))rO  )z
tab:orangeztab:pinkztab:cyanbLacK)r  r  N)r   r   r   r   c                 C   s   dgdgdgdgg}dd | D }t |dkr|d }tt|t |df}t \}}t | dkr8| d } |j|| d}t||D ]\}}t	|
 | qDd	S )
zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r   r   r   c                 S   s   g | ]
}|d ur
|ndqS )Nr8  r   r   r"   r   r   r   r     r  z)test_eventplot_colors.<locals>.<listcomp>r  r  N)r3  rR   broadcast_torO  to_rgba_arrayr   r   rn  r  r   r  )r  ro  expectedr   r   rB  rr  r   r   r   r   test_eventplot_colors  s   r  z!test_eventplot_problem_kwargs.pngc              	   C   s   t jd t jdg }t jdg }||g}t }| }|j|ddgddgdd	gd	dgd
dgddgd t| dksDJ t	dd | D sOJ dS )z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   r  rn   r  r  r"   r
  r   r   r   dasheddashdotr  )r  r   rT  r  r8  r   r   c                 s   s    | ]	}t |jtV  qd S r   )
issubclasscategoryr   )r   wir   r   r   r  G  s    z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
rR   rS   rT   rN  r   r   r   rn  r3  r  )recwarnr  rr  ro  r   rz  r   r   r   test_eventplot_problem_kwargs.  s$   r  c                  C   s.   t dd\} }|jg gdgd t   d S )Nr   )rf  rf  rf  rf  r  r   r   rn  r   r   r   r   r   test_empty_eventplotK  s   r  ro  r>   )Nverticalr<   c                 C   sB   |du ri nd|i}t dd\}}|j| fi | t   dS )z#Introduced when fixing issue #6412.Nr>   r   r  )ro  r>   optsr   r   r   r   r   test_eventplot_orientationQ  s   r  c                 C   s   t  dddt  dddt  dddg}t  dddt  dddg}| }|j|dd |j|dd |  }|||g d S )	Nr  r   r   r   r   r  r   )ro  )r  r   rn  )r5   r6   ts_1ts_2r   r   r   r   test_eventplot_units_list[  s   r  zmarker_styles.pngc               	   C   sv   t  \} }tttjjjdd dD ]%\}}|j|d d t	dd  t
dd | d|d|d  |d qd S )	Nc                 S   s   t t| t |  S r   )r'  r  r  r   r   r   r  n  rO  z$test_marker_styles.<locals>.<lambda>)rq  r   r   rn   r   )r   rf   rm   r#   )r   r   rF  sortedr@   markersr  ry   rR   rZ   rs   )r   r   r,   rf   r   r   r   test_marker_stylesj  s   .r  zrc_markerfill.pngc                  C   sP   t  \} }td}tg dD ]\}\}}|tjd< |j|| |d qd S )Nr  ))r%   rw  )r:   r   )r  rC  zmarkers.fillstyler  )r   r   rR   rZ   rF  r@   r   ry   )r   r   r/   idxr   rf   r   r   r   test_markers_fillstyle_rcparamss  s   

r  zvertex_markers.pngc                  C   sr   t td} d}g d}t \}}|j| d|dd |j| d d d d|dd |ddg |ddg d S )Nrn   ))rl   rl   r  r  r  r   rv  r  rl   r  )r  r   r   r   ry   r  r  )ro  marker_as_tuplemarker_as_listr   r   r   r   r   test_vertex_markers}  s   r  vline_hline_zordererrorbar_zorderx86_64c                  C   s  t td} t }| }|j| ddd |jddddd |jddddd |jdd	ddd |jd
dddd |d t }| }t td} t	
d}t td}|j| ||dddd tdD ]}|j|dd|d |j| dd|d qg|d d S )Nrn   r   )r   r  r   r  )r   r   r  r   r  r
  r   rv  r   zaxvline and axhline zorder testr  )r  r  r   r   )r   r   r  zerrorbar zorder test)r  r   r   r   r6  ry   r\   axvliner  rR   r  r  )r/   r   r   r,   r  r  r   r   r   test_eb_line_zorder  s&   

r  c                 C   s   |   }|jddd |ddgddgd |jddd	d
 |  }|jddd |ddgddgd |jddgddgd	d
 d S )N)r   rn   )r  r   r  r   r  z.-)r   r  )rn   rh  rv  r  r   rn   r  rh  )r   r{   rX  axliner5   r6   r   r   r   r   test_axline_loglog  s   r  c                 C   s   |   }|jddd |dd |jdddd |jdd	d
d |jdddd |jdddd |jdtddd |  }|jddd |ddgddg |jddd |jdd
d |jddd |jddgddgdd |jddd d S )Nr  r  r  r  r  r  r  )r   r   r   r   r  )gffffffr]  r   r  )sloper   )r   r]  r]  C4)r]  r   infr  rl   r   r   )r   r{   r  rW  ry   r\   r  r  r   r   r   test_axline  s    r  c                 C   s   |   }|jddd |jdd|jd |jddd|jd |jd	d
d|jd |jddd|jd |  }|jddd |ddgddg |jd
dgdd
gdd |jddgd
d
gdd |jd
d
gddgdd d S )Nr  r  r  r   r  r  r  r  r  r   r  r   r   r   r  )r   r   )r   r   r  )r   r  rl   r  )r   r{   r  r  ry   r  r   r   r   test_axline_transaxes  s   r  c                 C   s   |   }|jddd |jdd|jd |jddd|jd	 |jdd
d|jd	 |jddd | dd |  }|jddd |dd |d
dgd
dg |jd
dgd
dgdd |jd
dgddgdd d S )Nr  r  r  r   r  r  r   r  r  r   r  )r   r   r  r   r   rn   r  )r   r{   r  r  set_size_inchesry   r  r   r   r   test_axline_transaxes_panzoom  s   r  c                  C   sV  t  \} }tt |d W d   n1 sw   Y  tt |jdddd W d   n1 s8w   Y  |d tt |jddd W d   n1 sYw   Y  |d |d tt |jddd W d   n1 sw   Y  |d tt |dd t 	  W d   dS 1 sw   Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r   )r  r  r  )
r   r   r   r   r   r  r  r*  rN  r   r   r   r   r   test_axline_args  s*   




"r  )vlines_basicvlines_with_nanvlines_maskedc                  C     g d} g d}t  \}}|j| d|ddd g d}dd	d
dtjdg}t jd
dd\}\}}}	|j|d|ddd g d}
tjdd	d
ddg}|j|
d|dd
dd g d}tjdd	d
dtjg}|	j|d|ddd ||||	fD ]}|dd qq| | ksJ | | ksJ | |	 ksJ t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S N)r   r   r  r   r  )r   r   r  r   r   rX  r   r  r  )r   r   r  r   r  r  r   r  r   r  )r  r  )r  r  r  r  )r  r  r   rv  rn   )r   r  r  r  rn   r{  )r   r   rl   r   r   r   )r  r  r   r     r~  r~  r   )	r   r   r[   rR   r2  r  r}   r   masked_equal)rf  rI  r  r   r&  r'  r  r   r   r  x3r  x4y4r   fig3ax5x5ymin5ymax5r   r   r   test_vlines  2   r  c                  C   d   t  \} }tddi |ddd}tj| ds J W d    d S 1 s+w   Y  d S Nzlines.colorr  r   r   r   )r   r   r   r   r[   r  rx  r  r   r   r  r   r   r   test_vlines_default,  
   "r  )hlines_basichlines_with_nanhlines_maskedc                  C   r  r  )	r   r   hlinesrR   r2  r  r|   r   r  )rI  rf  r  r   r'  r&  r  r   r   r  r  r  r  r  r   r  r  y5xmin5xmax5r   r   r   test_hlines3  r  r  c                  C   r  r  )r   r   r   r   r  r  rx  r  r  r   r   r   test_hlines_default[  r  r  r   r  r  c                 C   s   g d}|  dddj|dd|dd |  dddj|dd|dd g d}g d}| dddj|dd|dd | dddj|dd|dd d S )	N)r  r   r   rl  r  r   r   r   r   r  )r   r   r   r   )r  r   r   r  )r   r[   r  )r5   r6   ro  test_colors	expect_xyexpect_colorr   r   r   test_lines_with_colorsb  s   
r  step_linestylec               	   C   sN  t d } }tdd\}}| }g d}t||D ]4\}}|j| |d|dd |j| |d d|dd |j| |d d|d	d |d
dg |d
dg q| ||d |d d}tdd\}}| }g d}t||D ]3\}}|jddd|d|d |jddd|d|d |jddd|d	|d |d
dg |d
dg qqd S )Nrn   r   )r  r  rN  r  r   pre)r   r   rm  r   rI  r  rl   r  )r  Y0Y1Y2r  r  )r   r   rm  ro  r  r  )	rR   rZ   r   r   r  r  r  r  r  )r/   r,   r   ax_lst	ln_stylesr   r!  ro  r   r   r   test_step_linestylet  s*   r  mixed_collectionc                  C   s   t  \} }tjddddd}tjj|gdd}|ddgd	d	gg |d
dg tjj|gdd}|ddgddgg |d
dg |	g dg dg |j
d || || |dd |dd d S )N)r  r  r  r  r   )radiusr	  r
  T)match_originalr   r  r   r   r  ii)r   r   r   r   )r   r   r   r   rO  r  )r   r   r  Circler   rB  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr   r*  rV  r  r  )r   r   r"   p1p2r   r   r   test_mixed_collection  s   

r  c                  C   s:   t tdtdd} |   |   dksJ d S )Nr   r   )r   r   r   r   )r   r;  rR   int32int64r   get_subplotspecget_geometryr  r   r   r   test_subplot_key_hash  s   r  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pnggQ?)rE  r   r   c                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }ttdtj tj	
|| jdd}td| d }tjd ttj| tj| g}g d}||f||ffD ]M\}	}
|
d }tdtt|
 }tt d|D ]\}}|j|	|
||||d qtt d|D ]\}}|j|	|
||||dt j d qqrdS )z)Test axes.specgram in default (psd) mode.ri   r:  r  r  r  r   r  @ffffff@'@rn   r   r   r   r  rK  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr  )r  r  r  r  r  r  rL  N)r@   r   intrR   r  rZ   r  r   r   multiplyouterr  rS   rT   r  r   ceillog2r  r   r   r   specgramr  LogNorm)r   r  fstims
NFFT_freqsr/   y_freqs
NFFT_noisey_noise	all_sidesr,   r  r  r  r   r  r   r   r   test_specgram  s6   
,$
r  )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]O\}}
|
d }tdtt|
 }tt d|	D ]\}}|j||
||||dd qtt d|	D ]\}}|j||
||||ddt j d	 qq|dS )z%Test axes.specgram in magnitude mode.ri   r:  r  r  r  r   r  r  r  r  r   r   r   r   r  Nrl   rn   r  r   	magnituder  r  r  r  r  rO   r  )r  r  r  r  r  rO   r  rL  )r@   r   r  rR   r  rZ   r   r   r  r  r  rA  rS   rT   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  r   r  r   r   r   test_specgram_magnitude  s6   
,&

r	  )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]V\}}
|
d }tdtt|
 }dD ]?}tt d|	D ]2\}}|j||
|||||d tt |j||
|||||dd W d   n1 sw   Y  qqq|dS )z,Test axes.specgram in angle and phase modes.ri   r:  r  r  r  r   r  r  r  r  rn   r   r   r   r  Nrl   r  )r  phaser   r  dB)r  r  r  r  r  rO   r  )r@   r   r  rR   r  rZ   r   r   r  r  r  rA  rS   rT   r  r  r   r  r  r  r   r   r   r  r   r   rN  )r   r  r   r  r/   r,   r  r  r  r  r  r  r  rO   r   r  r   r   r   test_specgram_angle  s>   
,&
r  c                  C   sF   t jtdddd\} }}}| \}}}}|dkr|dks!J dS )z;Test axes.specgram when Fs is None, should not throw error.r  Nr  )r  r  rc   `   )r   r  rR   rs   
get_extent)specfreqsrv  r  rP   rQ   freq0freq1r   r   r   test_specgram_fs_none!  s   r  c                 C   sH   t d}t |}dtjd< | | dtjd< |  | dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.rj  upperzimage.originre   N)rR   rZ   r   r   r   r   r  )r5   r6   rv  signalr   r   r   test_specgram_origin_rcparam(  s   



r  c                  C   sR   t d} t | }tt tj|dd W d   dS 1 s"w   Y  dS )z4Ensure passing origin as a kwarg raises a TypeError.rj  re   r\  N)rR   rZ   r   r   r   r   r   r  )rv  r  r   r   r   test_specgram_origin_kwarg:  s
   

"r  )zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c               	   C   s  d} d}|d |d |d g|d |d |d gg}t d	| t| }td
| d| }tdtj tj|| jdd}t d	| d }tj	
d
 tj	| tj	| g}ddiddddddg}||f||ffD ]z\}	}
|
d }t dtt|
 }tt d|D ]*\}}|jt|	f|
|||d|}t|d|dd ksJ |jddd qtt d|D ]&\}}|j|	|
|||d|}t|d|dd ksJ |jddd qqpd S )Nr;        Y@r  r   r  r  r  r  r  r   r   r   r  r  rK  r  F)r  return_liner  Tr   )r  r  r  r  r  r   xlabelylabel)r  rR   r  rZ   r   r   r  r  r  rS   rT   r  r   r  r  r  r   r   r   psdr  r3  r  r{   csd)r   r  r   r  r/   ys_freqsr  ys_noise
all_kwargsr!  r  r  r  r   r  retr   r   r   test_psd_csdC  sD   ,&
r#  )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t| }t dtt| }td| d	| }tdtj t|| d
td  j	d	d}tj
d ttj
| tj
| gd }g d}||d}	||fD ]}
tt d|D ]\}}|j|
fd|i|	\}}}|jddd qwtt d|D ]\}}|j|
fd|i|	ddi\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qqkd S )Nr;  r  r  r   r  r  r   r   r   rn   r   r  r   r  )r  r  r  r   r  r  r  )r  r  rR   r  r  rZ   r   r   r  r  rS   rT   rA  r  r   r  r   r   r   magnitude_spectrumr{   angle_spectrumphase_spectrum)r   r  fstims1r  r  r/   r  r  r  r  r,   r   r  r  r  rx  r   r   r   test_spectrume  s<   ("
r(  c                  C   s   t  d} | D ]	}|jjdd q	tjdd! | d td | d 	tdtd W d    d S 1 s=w   Y  d S )	Nr   T)rd  r-  r.  r   r   r   )
r   r   r   rF   r{   rR   r1  r  r  r  )rH  r   r   r   r   test_psd_csd_edge_cases  s   "r)  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r   )r   r   r   removerC   tick_bottomrF   	tick_left)r5   r6   r^   ax_twinxax_twinyr_   r   r   r   test_twin_remove  s   
r/  ztwin_spines.pngc            	      C   s|  dd } t jdd}|jdd | }| }| }|jjd | | |jjd |	g d	g d	d
\}|	g d	g dd\}|	g d	g dd\}|
dd |dd |dd |dd |jj|  |jj|  |jj|  tddd}|jdd| d| |jdd| d| |jdd| d| |jdddi| d S )Nc                 S   s.   |  d | jd | jd d  d d S )NTF)set_frame_onr   set_visiblespinesr  r   r   r   make_patch_spines_invisible  s   
z5test_twin_spines.<locals>.make_patch_spines_invisible)r  r   ru  r  )r)   )rM  ri  Tr  zb-)r   r   r   zr-)r  r   r   zg-r   r   r  r   A   r   )r  r|  r,   )rN  r  rN  r/   r   )r   r   r  r   r   r2  r)   set_positionr1  ry   r  r  rF   r#   r*  r  r  tick_params)	r3  r   hostpar1par2r  r  p3tkwr   r   r   test_twin_spines  s0   r<  ztwin_spines_on_top.pngc                  C   s@  dt jd< dt jd< t } | ddd}tg dg dg}| }|j|d |d d d	d
 |j	|d |d d d	dd |j|d |d d dd
 |j	|d |d d ddd |d |d d d}t } | ddd}| }|jddd	|d |j	ddd	d|d |jddd|d |j	dddd|d d S )Ng      H@r  r  r   )r  iL  i  i  )rE  i-  r  r  r   g     @@z#BEAED4r  r  )r   r  z#7FC97Fr   )r  r  r  r  )r   ro  )r   r  ro  )
r@   r   r   r   r   rR   r#  r   ry   r7  )r   r   ro  r   r   r   r   test_twin_spines_on_top  s(   


r=  z(grid_which, major_visible, minor_visible))rr   TT)majorTF)r\  FTc                    sh   t jd| d t \}}|j  t fdd|jj	D s#J tfdd|jj
D s2J d S )NT)r  zaxes.grid.whichc                 3       | ]
}|j   kV  qd S r   gridliner   r   tick)major_visibler   r   r        z*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   r?  r   r@  rB  )minor_visibler   r   r    rE  )r   r   r  r   r   r  r   r  rC   
majorTicks
minorTicks)
grid_whichrD  rF  r   r   r   )rD  rF  r   test_rcparam_grid_minor  s   
rJ  c                  C   s   t  \} }|  | j  |jjd j sJ |jdd | j  |jjd j r0J |jdd | j  |jjd j sFJ |  | j  |jjd j rZJ d S )Nr   FvisibleT)	r   r   r  r  r   rC   rG  rA  r   r   r   r   r   	test_grid  s   



rM  c                  C   s   t  \} }|jdddd |jjd j rJ |jdd |jjd j s*J t ddi  |	  |jdddd |jjd j sIJ W d    d S 1 sTw   Y  d S )	NTr>  rn   )resetr^  	labelsizer   r  r  r  )
r   r   r6  rC   rG  rA  r   r  r   clearr   r   r   r   test_reset_grid  s   "rQ  c                 C   sn   || fD ] }|  }|d |jdddddddd	d
dddd |  q| jD ]}|j  |j  q(d S )NTinrn   r   r8  r{  r  r  r  r  r  r   r  )	directionlengthr|  r   padrO  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r6  draw_without_renderingrM  rC   reset_ticksrF   )r5   r6   r   r   r   r   r   test_reset_ticks   s   




r^  c                  C   s:   t  } |  }|d |g d t| d d S )Nr   )r  r   r   r   )r  r   )r   r   r6  r  ry   r   r}   r   r   r   r   test_vline_limit4  s
   
r_  zfv, fh, args)r   r  c                 C   s
  t jd}tjtd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 W d    n1 s^w   Y  tjtdd ||d|d W d    d S 1 s~w   Y  d S )	Nr   z"ymin must be a single scalar valuer  )yminymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)rP   rQ   z"xmax must be a single scalar value)r@   r  num2dater   r   rN  )fvfhargsbad_limr   r   r   test_axline_minmax<  s   "rg  c                  C   s   t jddddd\} }|d g dg d |d  \}}|d  \}}|dks-J |dks3J |dks9J |d	ks?J d S )
Nr   r   T)r  r  rV  r5  r   r  )r   r  r  r   r  )r   r   ry   r|   r}   )r   rH  rS  rf  rT  rI  r   r   r   test_empty_shared_subplotsL  s   rh  c                  C   s   dD ]E} t jddd\}}|d jd| dd |d  dks!J |d  | ks+J t jddd\}}|d jd| d |d  d	ksGJ qd S )
Nboxdatalimr   T)r  rV  r   )
adjustablesharer   rl  r  )r   r   
set_aspect
get_aspectget_adjustable)rl  r   rH  r   r   r   test_shared_with_aspect_1X  s   rr  c                  C   s   t jdddd\} }|d jddd |d ddgddg |d ddgddg t   |d  |d  ks=J |d  |d  ksKJ d S )	Nr   T)r  rV  r5  r   )rm  r   r   r  )r   r   ro  ry   r   r|   r}   r  r   r   r   test_shared_with_aspect_2e  s    rs  c            	      C   s  dD ]} t jddd\}}|d jd| d |d jd| d |d ddgd	d
g |d d	d
gddg t   |d  |d  ksIJ |d  |d  ksWJ |jj|jj	 }|D ](}|
 }|j|j	 }|jj|jj	 }|| | }t|d
t| d
ksJ qaqd S )Nri  r   T)r  r5  r   rn  r   r   r   r  )r   r   ro  ry   r   r|   r}   bbox_inchesr   r|  get_positionviewLimr  rp  )	rl  r   rH  
fig_aspectr   r   
box_aspect
lim_aspectr  r   r   r   test_shared_with_aspect_3p  s$   rz  zerr, args, kwargs, matchr  z;axis\(\) takes 0 or 1 positional arguments but 2 were given)r  z.Unrecognized string foo to axis; try on or offzthe first argument to axis*r  z1axis\(\) got an unexpected keyword argument 'foo'c                 C   sD   t j| |d tj|i | W d    d S 1 sw   Y  d S Nr  )r   r   r   rN  )errre  r  r  r   r   r   test_axis_errors  s   "r}  c                 C   sH   t  \}}t|d|  }|d |d t|jj|jj d S )Nztwin{}r   r   )r   r   r  r  ro  r   bboxextents)r   r   r   r  r   r   r   test_twin_with_aspect  s   

r  c                  C   s   d} d}d}d}t j }| }|| | | | ksJ | |ks'J |||\}| |ks6J | |ks>J |d | |ksKJ | |ksSJ |jdd |	  | | kseJ | |ksmJ d S )N)rf  r  )      $r  )r  r8  FT)visible_only)
r@   r   r   r   ry   r|   r}   r1  relimr   )rf  rI  r&  r'  r   r   rx  r   r   r   test_relim_visible_only  s&   

r  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    large)rO  outrS  N)r   r   r6  r6  r   r   r   r   test_text_labelsize  s   r  zpie_default.pngc               	   C   sD   d} g d}g d}d}t jdd\}}|j||| |ddd	d
 d S )NFrogsHogsDogsLogsr   r   r  rn   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  r  ru  %1.1f%%Tr  )exploderL  r  autopctshadow
startangle)r   r   pie)rL  sizesr  r  r  r   r   r   r   test_pie_default  s   
r  )pie_linewidth_0r  r  c                  C   s   d} g d}g d}d}t j||| |ddddd	id
 t d | |||d}t  }| }|jddddddddd	i|d	 |d t   t jddddddddd	i|d	 t d d S )Nr  r  r  r  r  Tr  r  r   r  rL  r  r  r  r  
wedgepropsr  )lrw  r"   exrw  r  r  r"   )r  rL  r  r  r  r  r  ro  )r   r  rN  r   r6  )rL  r  r  r  ro  r   r   r   r   r   test_pie_linewidth_0  s.   

r  zpie_center_radius.pngc                  C   sl   d} g d}g d}d}t j||| |ddddd	id
dd
 t jdd
dtdddtdddd t d d S )Nr  r  r  r  r  Tr  r  r   r  r   )	r  rL  r  r  r  r  r  rB   r  zCenter point)r   ri  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler	  )rq  rs  r  r~  r  )r   r  ru  r  rN  rL  r  r  r  r   r   r   test_pie_center_radius  s   


r  zpie_linewidth_2.pngc               
   C   sD   d} g d}g d}d}t j||| |ddddd	id
 t d d S )Nr  r  r  r  r  Tr  r  r   r  r  r   r  rN  r  r   r   r   test_pie_linewidth_2  s   r  zpie_ccw_true.pngc               
   C   @   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nr  r  r  r  r  Tr  )r  rL  r  r  r  r  counterclockr  r  r  r   r   r   test_pie_ccw_true     r  zpie_frame_grid.pngc                  C   s   d} g d}g d}d}t j||| |ddddd	idd
d
 t j|d d d || |ddddd	iddd
 t j||d d d | |ddddd	iddd
 t d d S )Nr  r  r  r  r  Tr  r  r   r  )	r  rL  r  r  r  r  r  framerB   rl   )r   r   )r   r   r  r  r  r   r   r   test_pie_frame_grid"  s(   r  zpie_rotatelabels_true.pngc               
   C   r  )
N)Hogwartsr  r  r  r  r  r  r  Tr  )r  rL  r  r  r  r  rotatelabelsr  r  r  r   r   r   test_pie_rotatelabels_true=  r  r  zpie_no_label.pngc                  C   sV   d} g d}g d}d}t j||| |dddd dd	 t d	 t d
d t   d S )Nr  r  r  r  r  Tr  )r  rL  r  r  r  r  labeldistancer  r  g333333ri  )r   r  rN  rq   r1   r  r   r   r   test_pie_nolabel_but_legendL  s   
r  c                  C   s   g d} g d}t ddddddd	}t j| |d
|d\}}}||fD ]C}|D ]>}| |d ks4J | |d ks>J | |d ksHJ | |d ksRJ | |d ks\J |	 |d ksfJ q(q$d S )N)rF  "   r  )zLong name 1zLong name 2zLong name 3rB   r%   r  anchorr{  r  )horizontalalignmentverticalalignmentr&  rotation_moder  r   %.2f)rL  r  	textpropsr  r  r&  r  r  r   )
r  r   r6  r  get_haget_vaget_rotationget_rotation_modeget_sizer  )ro  rL  r  r  textsr  txr   r   r   test_pie_textpropsZ  s*   r  c                  C   sR   t  \} }tt |jg dg dd W d    d S 1 s"w   Y  d S )N)r   r   rj  )r   r   r   )r  )r   r   r   r   rN  r  r   r   r   r   test_pie_get_negative_valuesp  s   "r  c                  C   sp   t  \} }g d}|j|dd}t|d d jd dk s J |j|dd}t|d d jd dks6J d S )	N)r   r   r   T)r/   	normalizer   rl   g     v@r  F)r   r   r  r  r  )r   r   r/   t1t2r   r   r   test_normalize_kwarg_piew  s   "r  zset_get_ticklabels.pngc                  C   s  t d\} }ddg}|d td |d |d  |d td |d |d  |d td |d td |d 	g ddd	g   |d 
g d
dd	g   |d |d   |d |d   |d 	|d   |d 
|d   d S )Nr   rU   zset_x/yticklabelsr   rn   r   r   r  r"   r  r  r   )11121314)r   r   ry   rR   rZ   r  
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r   r   r-   r   r   r   test_set_get_ticklabels  s   r  c                 C   s   |  }|g d |jg ddd |g d |jddgdd	 |jd
dgdd	 |   }|jg dg ddd |g d |jddgd
dgdd	 dS )z
    Test that these two are identical::

        set_xticks(ticks); set_xticklabels(labels, **kwargs)
        set_xticks(ticks, labels, **kwargs)

    )r   r   r  r  r  bold)
fontweight)r   r   r   r   r  T)r\  r  r  N)r   r  r  r  r  r  r   r   r   test_set_ticks_with_labels  s   	r  c                  C   s   t  \} }|td |jtdd  |jdd |jdd dD  t 	  dd |j
 D }|g d	ks@J d S )
Nrn   r   r   r  c                 S   s   g | ]}|qS r   r   r  r   r   r   r     r  z.test_subsampled_ticklabels.<locals>.<listcomp>
bcdefghijkc                 S   r  r   r  ru  r   r   r   r     rO  )r  r  r(  r!  r  )r   r   ry   rR   rZ   rC   	set_ticksr  set_ticklabelsr   get_ticklabels)r   r   rL  r   r   r   test_subsampled_ticklabels  s   r  c                  C   sl   t  \} }|td |jddg tt	 |j
g d W d    d S 1 s/w   Y  d S )Nrn   r   rG  )r   r  r"   )r   r   ry   rR   rZ   rC   r  r   r   rN  r  r   r   r   r   test_mismatched_ticklabels  s   "r  c                  C   s<   t  \} }|ddgddg |ddg |g  d S )Nr   r   )r   r   rA  r  r  r   r   r   r   test_empty_ticks_fixed_loc  s   r  zretain_tick_visibility.pngc                  C   sF   t  \} }t g dg d t j| dd |jdddd d S )	Nr  )r   rl   r  FrK  r,   rr   r   rN  r^  rT  )r   r   ry   setpr  r6  r   r   r   r   test_retain_tick_visibility  s   r  c                  C   st   t  \} }dd }|jt | |g d |dd |jj	  dd |j
 D }|g dks8J d S )	Nc                 S   s   | dkrdS dS )Nr   
unit valuer   r   r   r   r   r   formatter_func  s   z.test_tick_label_update.<locals>.formatter_func)rl   r   r   r   r   r]  rG  c                 S   r  r   r  rB  r   r   r   r     rO  z*test_tick_label_update.<locals>.<listcomp>)r   r   r  r   r   )r   r   rC   r   r   r  r  r   r  r   r  )r   r   r  
tick_textsr   r   r   test_tick_label_update  s   r  zo_marker_path_snap.pngH   c                  C   s~   t  \} }|d tddD ]}|jddgtd| d|d qtdddD ]}|jd	d
gtd| d|d q*d S )Nr   r   r   r   r   )r"  rn   r  r   r  )r   r   r%  r   ry   rR   rs   r   )r   r   r"  r   r   r   test_o_marker_path_snap  s   
""r  c                  C   s  ddg} d}t | d }t| }t| }tdd\}}||  |d | dks.J | ||| d  ||| d  fksDJ | ||| d  ||| d  fksZJ tdd\}}||  |dd | dksuJ | ||| d  ||| d  fksJ | ||| d  ||| d  fksJ tdd\}	}
|
|  |
jd	dd
 |
 dksJ |
 ||| d	  ||| d	  fksJ |
 ||| d  ||| d  fksJ d S )Nr   rn   rf  r   r  r   r   )r   r   皙ɿr   )r  r   )	r3  r  r  r   r   ry   r%  r|   r}   )ro  rP   rQ   r`  ra  r  r   r  r   r  r   r   r   r   test_margins  sF   








r  c                  C   sN   t jd t \} }|ddgddg |jddd | dks%J d S )NrK  r   r   r  r   )r2  xmarginr  )r   r   r   r   r   ry   r{   r|   r   r   r   r   test_set_margin_updates_limits  s
   r  )rl   z margin must be greater than -0.5r  r/   rl   r,   zACannot pass both positional and keyword arguments for x and/or y.r  z/Must pass a single positional argument for all*c                 C   sT   t j| |d t }| }|j|i | W d    d S 1 s#w   Y  d S r{  )r   r   r   r   r   r%  )r|  re  r  r  r   r   r   r   r   test_margins_errors  s
   "r  c                  C   s&   t  \} }|d |dg d S Nr   )r   r   r  r   r   r   r   test_length_one_hist4  s   
r  c                  C   s  t  } |  }|dd | dksJ | dksJ |jdd | dks,J | dks4J |jdd | dksBJ | dksJJ |dd | dksXJ | dks`J |jdd | dksnJ | dksvJ |jdd | dksJ | dksJ d S )	Nr   r  )r   r  rP  )r  )r   rP  )re   )r  rP  )	r   r   r   rW  
get_xboundr|   rX  
get_yboundr}   r   r   r   r   test_set_xy_bound:  s(   r  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nrn   r   r   )r   r   r	  r  r  r  )mylistr   r   r   r   r   test_pathological_hexbinR  s   
r  c                  C   s(   t  \} }|jddgddgd d d S )Nr   r   r  r  r   r   r   r   test_color_NoneZ  s   r  c                  C   s6   t  \} }|jddgddd }d| ksJ d S )Nr   r   rK  r  )r   r   ry   r  )r   r   rx  r   r   r   test_color_alias`  s   r  c                  C   s4   t  \} }|jtdgd tdd |  d S )Nr   r   r  )r   r   r  r   r1   r   r   r   r   test_numerical_hist_labelg  s   r  c                  C   sN   t  \} }d}d}|dd|dg}|jtdgd |d |  d S )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr   r   r  )r   r   decoder  r   r1   )r   r   r   r  rL  r   r   r   test_unicode_hist_labelm  s   r  c                  C   sD  t jdd } t \}}||  |j  |jj	 }|jj
 dks(J |j  |j  |jj	 }|d |d krH|d |d ksJJ |jj
 dksTJ t \}}||  |j  |jj	 }|jj dkstJ |j  |j  |jj	 }|d |d kr|d |d ksJ |jj dksJ d S )	Nrn   g^ 9^;r;   r   r   r)   r%   r:   )rR   rS   r   r   ry   r  r   rF   
offsetTextru  rE   
tick_rightrC   get_verticalalignmentrx   )ro  r   r   beforeafterr   r   r   test_move_offsetlabel{  s*   



$



$r  zrc_spines.pngc                  C   sF   ddddd} t |  t  W d    d S 1 sw   Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)r@   r   r   r   )rI  r   r   r   test_rc_spines  s   
"r  zrc_grid.pngc               	   C   s   t  } ddd}ddd}ddd}|||g}t|dD ] \}}t| | dd| W d    n1 s8w   Y  qd S )NTrr   )r  zaxes.grid.axisr/   r,   r   r   )r   r   rF  r@   r   r   )r   rc_dict0rc_dict1rc_dict2rS  r  rI  r   r   r   test_rc_grid  s"   
r  c                  C   s   ddddd} t j| dR t  }|ddd}|j}|j}|jd r&J |jd s-J |jd r4J |jd s;J |jd sBJ |jd rIJ |jd sPJ |jd rWJ W d    d S 1 sbw   Y  d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightr  r   tick1Ontick2Onr   r   r   r   rC   rF   _major_tick_kw_minor_tick_kwr  r   r   xaxyaxr   r   r   test_rc_tick  s"   "r  c               	   C   s   ddddddddd} t j| dR t  }|ddd}|j}|j}|jd r*J |jd s1J |jd r8J |jd s?J |jd rFJ |jd sMJ |jd rTJ |jd s[J W d    d S 1 sfw   Y  d S )NTF)r	  r  r  r
  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r   r  r  r  r  r   r   r   test_rc_major_minor_tick  s&   "r  c                  C   s   t d} t g d}t \}}|| |d |d | | }}t 	|t 	|ks3J |
 dks;J t|jddjd t|jd	djd
 d S )Nr  )r   r  rg  r  mor  r   T)originalg      ?r   r  r  F)g333333?r   g      ?r  )rR   rZ   r#  r   r   ry   rN  r|   r}   r  rp  r   ru  r  )r/   r,   r   r   rp   rq   r   r   r   test_square_plot  s   

r  c                   C   s  t t td  W d    n1 sw   Y  t t td d  W d    n1 s0w   Y  t t ttdtd W d    n1 sQw   Y  t t ttddtdddf W d    d S 1 s{w   Y  d S )Nr  r  r   r  rl   r   )	r   r   rN  r   ry   rR   r  rZ   ru   r   r   r   r   test_bad_plot_args  s   *"r  zxy, clsr   ))r   r  )r   r  )r   r   r  r  r  r,  )r  r   r{  )r   r  c                 C   s0   t  \}}t|jg | |R  |ksJ d S r   )r   r   r  
pcolorfast)rq  ro  clsr   r   r   r   r   test_pcolorfast  s   $r  c                  C   s   t jddddd\} }|d d |d d |jD ]}| dks&J | dks.J q|d d |d d |jD ]}| dksJJ | dksRJ q@d S )Nr   TrV  r5  r  r  r  r  )r   r   r  r*  rG  
get_yscale
get_xscaler   rH  r   r   r   r   test_shared_scale  s   

r#  c                   C   sr   t t tjdd W d    n1 sw   Y  t t tjdd W d    d S 1 s2w   Y  d S )NTrU  r4  )r   r   r   r   r;  r   r   r   r   test_shared_bool   s   "r$  c                   C   s   t tddg dS )z4Violin plot should handle point mass pdf gracefully.r   N)r   r|  rR   r#  r   r   r   r   test_violin_point_mass'  s   r%  c               	   C   s   t dtdgt dtdg } t ddg dg dg dgtdtdd g}t d|}t d	|}t dg gt dg g t dg d g t d	g d g }| | }| | }| | | }g ||||S )
Nr/   r   r,   r|  r   )r   r   r   r   r   )r   r   r  r  )r   rR   rZ   rs   )base_xy
err_cyclerxerr_cyyerr_cyempty	xerr_only	yerr_onlyboth_errr   r   r   generate_errorbar_inputs,  s*   $

r.  r  c                 C   s$   t  }|jdi | }|  d S )Nr   )r   r6  r  r*  )r  r   ebr   r   r   test_errorbar_inputs_shotgunB  s   r0  dash_offsetc                  C   sT   t  \} }tdd}t|}tdddD ]}|j||| |dfddd qd S )	Nr   rn   r   r   rn   rn   r   rv  )r!  r   r   )r   r   rR   r   	ones_liker   ry   )r   r   r/   r,   r  r   r   r   test_dash_offsetI  s   
r4  c                  C   s   t  \} }|jddd |j }|d d| j ksJ |jddd |j }|d dks1J |jdd d |j }|d tjd d | j ksMJ d S )	Naardvarkr8  )rU  r  g?rf  zaxes.titlepadg      R@)r   r   r  titleOffsetTrans
get_matrixr  r@   r   )r   r   r
  r   r   r   test_title_padR  s   


$r8  c                  C   s   t  \} }dt jd< |d |jddd |jddd d|jddks(J d|jddks2J d|jddks<J tt |jdd W d    n1 sRw   Y  tt |jddd W d    d S 1 sow   Y  d S )	NrB   zaxes.titlelocationr5  r;   r&   r)   r  fail)r   r   r   r  	get_titler   r   rN  r   r   r   r   test_title_location_roundtripb  s   

"r;  z
loglog.pngc                  C   sN   t  \} }tdd}|j||d dd |jddd |jd	dd
d d S )Nr   r  r   r   r"  r  r   )rT  r|  r   r\  )rT  r|  r^  )r   r   rR   rZ   rX  r6  )r   r   r/   r   r   r   test_loglogt  s
   r<  ztest_loglog_nonpos.pngc                  C   s   t dd\} }tdd}|d }d|d< d|d< ttg dd	d
|jD ]?\\}}}||krI|r>|j||d d	|d q&|j||d d	d q&|j||d d	d |r\|jd|d |re|j	d|d q&d S )Nr   r   r  g      r  rK  r  )r  clipr   r   )r  )r   nonpositiver"  r  )r>  )
r   r   rR   rZ   r  r   rG  rX  r  r*  )r   rH  r/   r,   mcymcxr   r   r   r   test_loglog_nonpos}  s&   rA  c                  C   s~  t  \} }|g d | d dksJ t  \} }|g dg d | d dks1J t  \} }|g dg d | d dksKJ t  \} }|t	d | dksaJ | dksiJ t  \} }|
t	d | dksJ | dksJ t  \} }|td | d dksJ t  \} }|t	d | dksJ | dksJ d S )Nr,  r   )r   r   r   r   r2  r  rn   )r]  g      #@)r   r   ry   r  rA  rX  r  r  rR   r  r  r  rZ   rw   r   r   r   r   test_axes_margins  s0   rB  )r  c                 C   s    dd }dd }||d| j  S )Nc                 S   <   |   }|  | dd | j  }|d dksJ d S Nr   r   rl   r  )r   r*  r  rC   get_major_locatorr   r   r  r   r   r   	_helper_x  
   z&shared_axis_remover.<locals>._helper_xc                 S   rC  rD  )r   r*  r  rF   rE  rF  r   r   r   	_helper_y  rH  z&shared_axis_remover.<locals>._helper_yr   )param)requestrG  rI  r   r   r   shared_axis_remover  s   rL  )r6  r   subplots_sharedr$  c                 C   s   | j dkrt }| }||fS | j dkr t \}}||fS | j dkr:tjddddd\}}|d d }||fS | j dkrJt }|g d	}||fS )
Nr6  r   rM  r   r  r  r   r$  r   r   r  r  )rJ  r   r   r6  r   r$  )rK  r   r   r  r   r   r   shared_axes_generator  s   
	


rO  c                 C   s   | \}}|| d S r   r   )rO  rL  r   r   r   r   r   test_remove_shared_axes  s   rP  c                  C   s`   t jddddd\} }|d d }|d d  }|  |dd t|d d  | d S )Nr   r  r  r   r   r   )r   r   r|   r*  r  r   )r   r  r   	orig_xlimr   r   r   test_remove_shared_axes_relim  s   rR  c                  C   s   t ddd} t j| j| jf}tjddddd\}\}}|dd	 |dd	 |	| | | |	| | | |
 s@|
 rBJ | sJ| rLJ | |   kr[d
ks^J  J | |   krmd
kspJ  J d S )Nir  rS  r   r   Tr  r  )rS  r  )rR   rZ   rS   random_sampler  r   r   r  r  rA  r*  r,  r|   r}   )r  rv  r   r   r   r   r   r   test_shared_axes_autoscale  s   $(rU  c                  C   s   t  \} }|j jdd |dd |d | j  t	|j  dks+J |
dd | j  t	|j  dksBJ d S )Nr  r  r   r  r  r   )r   r   rF   rE  
set_paramsr  ro  r  r   r3  r  r   r   r   r   test_adjust_numtick_aspect  s   


rW  zauto_numticks.pngc                   C   s   t dd d S )Nr  )r   r   r   r   r   r   test_auto_numticks  s   rX  zauto_numticks_log.pngc                  C   s.   t  \} }dtjd< |ddgddg d S )Nround_numbersaxes.autolimit_modeg#B;g     j@gؗҜ<rn   )r   r   r@   r   rX  r   r   r   r   test_auto_numticks_log  s   
r[  c                  C   s   t  \} }|g d d S )N)r   r   )r   r   rv  r   r   r   r   test_broken_barh_empty  rE  r\  c                  C   s   t  \} }tdddddd}||tjddfgddg}| d jd t|ks/J | d jd	 t|d
 ksAJ dS )z9Check that timedelta works as x, dx pair for this method.rq  r  r  r   r   rr  r   r  r   r   gUUUUUU?N)	r   r   r  rv  r  rC  verticesr  r  )r   r   d0ppr   r   r   test_broken_barh_timedelta  s
    (ra  c                 C   sD   | j ddd}td}tjdd}t \}}|||| d S )Nz
2000-01-01rn   )ry  r  rM  r  )r}  rR   rZ   rS   r   r   r   rb  )r  timedepthro  r   r   r   r   r   test_pandas_pcolormesh!  s
   
rd  c                 C   sp   t jdddd}t t tt|}| ||d}t }|t |j	d dk 
 }|jdd	|d
 d S )Nz2005-02z2005-03r  rS  )r  r  r   r   r  r  r  )rR   rZ   r   r#  r   r3  r  r   r6  r  r!  ry   )r  r  r  r  r   without_zero_indexr   r   r   test_pandas_indexing_dates*  s   rf  c                 C   sF   | j tjjddg dg dd}t \}}|jdddd	|d
 d S )N)r   r  ru  )r/   r,   xeyer  )columnsr  r/   r,   rg  rh  r  )r  rR   rS   uniformr   r   r  r  r   r   r   test_pandas_errorbar_indexing5  s   rk  c                 C   s:   |  g dg dd}t \}}||j|d  d S )Nr  )r  r   r   )XXYYrm  )r  r   r   ry   r  r  r   r   r   test_pandas_index_shape=  s   rn  c                 C   s8   | j g dd}|jdd  }t \}}|| d S )N)
r   r   r   r   r   r  r  r  r  r   r  r   )r  ilocr   r   r  )r  ser_1ser_2r   r   r   r   r   test_pandas_indexing_histC  s   rr  c                 C   sh   |  tdtdd}td\}}|j|j|d dkdf |j|d dkdf dd |j  d S )Nr   r  r   r   r  rB   rP  )r  r   r   r   rA  r'   r  r   r  r   r   r   test_pandas_bar_align_centerJ  s   rs  c                  C   s   dd l m}  t }| |d}tjtdd |d W d    n1 s'w   Y  | 	|d}tjtdd |d W d    d S 1 sJw   Y  d S )Nr   z;The apply_tickdir function was deprecated in Matplotlib 3.5r  r  )
matplotlib.axisrN  r   rM  XTickr   r  r   apply_tickdirYTick)maxisr   rC  r   r   r   #test_tick_apply_tickdir_deprecationW  s   "ry  c                  C   s   t  } | jjdddd | jjd jdksJ | jjd j dks%J | jjd j	 dks2J | jjd j dks?J d S )	Nr   r  r  )rO  rV  rS  r   rP  rv  r8  )
r   r;  rF   set_tick_paramsrG  _size	tick1liner  label1r  )axis_1r   r   r   .test_axis_set_tick_params_labelsize_labelcolori  s   
r  c                  C   s   t  } | jddddd | j| jfD ]2}|jd j dks!J |jd j dks-J |jd j	 dks9J |jd j
 dksEJ qd S )Nr  r   r   r  )rX  rZ  rY  r[  r   rN  )r   r;  r6  rC   rF   rG  rA  r  get_linewidth	get_alphaget_linestyle)r   rN  r   r   r   test_axes_tick_params_gridlinesv  s   
r  c                  C   s   t  } | jdddd | jdddd | jjd j du s!J | jjd j du s.J | jjd j du s;J | jjd j du sHJ d S )NFTr>  )	labelleft
labelrightr^  r\  r   )	r   r;  r6  rF   rG  r}  r   label2rH  r  r   r   r    test_axes_tick_params_ylabelside  s   r  c                  C   s   t  } | jdddd | jdddd | jjd j du s!J | jjd j du s.J | jjd j du s;J | jjd j du sHJ d S )NTFr>  )labeltoplabelbottomr^  r\  r   )	r   r;  r6  rC   rG  r}  r   r  rH  r  r   r   r    test_axes_tick_params_xlabelside  s   r  c                  C   s4   t   } | jtdd d\}| dksJ d S )Nrc   r  r  )r   r   r   ry   r   r  )r   lnr   r   r   test_none_kwargs  s   r  c                  C   sT   g d} t jtj| tjdg ddd}t|j| D ]\}}|jd |ks'J qd S )Nr,  rS  )r   r   r  r   r=  rP  r   )r   rA  rR   r#  uint8r  r  rq  )r   r  r   r/   r   r   r   test_bar_uint8  s
    r  zdate_timezone_x.pngr   c                  C   sj   dd t dD } tjdd tddd tj| dgd dd	 tddd tj| dgd d
d	 d S )Nc              
   S   (   g | ]}t j d dd|tjddqS   r      Canada/Easternr   tzinfor  r  tzgettzr   r   r   r   r     
    

z(test_date_timezone_x.<locals>.<listcomp>r   r  r{  ru  r   r   r  )r  UTCr   r   r   r;  r  
time_indexr   r   r   test_date_timezone_x  s   r  zdate_timezone_y.pngc                  C   sr   dd t dD } tjdd tddd tjdgd | dd	d
d tddd tjdgd | dd	d
d d S )Nc              
   S   r  r  r  r   r   r   r   r     r  z(test_date_timezone_y.<locals>.<listcomp>r   r  ru  r   r   r  FT)r  xdateydater  r  r  r   r   r   test_date_timezone_y  s   r  zdate_timezone_x_and_y.pngc                     sn   t jj  fddtdD } tjdd tddd tj| | dd	d
 tddd tj| | dd	d
 d S )Nc              	      s    g | ]}t j d dd| dqS )r  r   r  r  r  r   r  r   r   r     s    z.test_date_timezone_x_and_y.<locals>.<listcomp>r   r  ru  r   r   r  T)r  r  z
US/Eastern)r  timezoneutcr   r   r   r;  r  r  r   r  r   test_date_timezone_x_and_y  s   
r  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]A\}}|jddddd tjd	d
d}|| |jdddd |j	ddddd |j
d d  d || | |ksRJ qd S )Nr   T)r  rV  r5  )Frx  Tr  rn   r
  rm  rp  r  r  r"   r  )r   r   r  F)r%   r:   r;   r)   )r   r   r   r  ry   r  r  r  r  r6  r2  r1  set_axisbelowget_axisbelow)rH  settingsr   settingcircr   r   r   test_axisbelow  s   

r  c            	      C   s   t jd t jdd\} }| }|d}|d}| j  | j	 }|
|j}|
|j}|| }t|ds>J d S )Nr   r  )r  Xlabel2Titler   )r   r   r   r   r   r   r  r  r   get_rendererget_window_extentrT  rI  rR   isclose)	r   r   r   xlabel2r&  rendererbbox_y0_titlebbox_y1_xlabel2y_diffr   r   r   test_titletwiny  s   



r  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |ks:J d S )Nr  )r%   Xlabelr  r  )r   g(\?)r   r   r  r   r   r  r&  r5  r  r  _update_title_positionru  )r   r   r   r   r  r   r   r   test_titlesetpos  s   




r  c                  C   sP   d t jd< t \} }|jd |d | j  |j	
 d dks&J d S )Naxes.titleyr%   
xlabel topr   p=
ף?)r   r   r   r   rC   r~   r  r  r   r&  ru  r   r   r   r   test_title_xticks_top  s   


r  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dks*J d S )Nr  r/   TrN  r:   r%   r  r  r  r   r  )
r   r   r   r   r6  r  r  r   r&  ru  r   r   r   r   test_title_xticks_top_both  s   


r  c                  C   s`   d t jd< t } | g d}|jdddddd |d}| j  |	 d dks.J d S )	Nr  )r   r]  r  r   r/   Tr  Boor   r   )
r   r   r   r   r$  r6  r  r  r   ru  )r   r   ttr   r   r   test_title_no_move_off_page(  s   


r  c                  C   sB   t  \} }|g d |jjdd |j  dksJ d S )Ng   @Ag   eAg   FAr  )rV  )r   r   ry   rF   rz  get_offset_textr  r   r   r   r   test_offset_label_color5  s   r  c                  C   s`   t  \} }|g d |jjddd |j  sJ |jjdd |j  r.J d S )Nr  FT)label1Onlabel2On)r  )r   r   ry   rF   rz  r  r   r   r   r   r   test_offset_text_visible=  s   r  c                  C   s6   t  \} }|dtddg d  | j  d S )Nr   r   g-q=gqىE)r   r   ry   rR   r#  r  r   r   r   r   r   test_large_offsetF  s   r  c                  C   ^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S      g | ]}t  d ddd|qS r  r  r   r~  r  r\  r   r   r   r   N  r   z#test_barb_units.<locals>.<listcomp>r   r  rn   r   r  )r   r   r   rR   r   r3  barbsr   r   r  r,   uvr   r   r   test_barb_unitsL  
   r  c                  C   r  )Nc              	   S   r  r  r  r\  r   r   r   r   V  r   z%test_quiver_units.<locals>.<listcomp>r   r  rn   r   r  )r   r   r   rR   r   r3  quiverr  r   r   r   test_quiver_unitsT  r  r  c                  C   sn   t j} t \}}tdD ]'}|td\}|tdtd}|D ]}| | | | ks3J q#qd S )Nr   r   )	rO  to_rgbr   r   r   ry   rA  r  rh  )r  r   r   r  r  brsbrr   r   r   test_bar_color_cycle\  s   r  c                  C   s  t dd\} \}}|ddgddg |ddgddg |jjddd |jjddd |jddD ]
}| dks>J q4|jddD ]
}| dksOJ qE|j	d	d
d |j	ddd |jddD ]
}| d
ksnJ qd|jddD ]
}| dksJ qud S )Nr   r   r   rr   r   )r^  r&  r  r]  r/   5   )rN  rW  r,   r   )rN  r&  r>  )
r   r   ry   rC   rz  rF   r  r  r  r6  )r	  r   r   textr   r   r   test_tick_param_label_rotationf  s    r  c            	      C   s  t  \} }tdD ]"}|tdtd}td|}t| 	 t|ks,J q
tddD ]"}|
tdtd}td|}t| 	 t|ksTJ q2td}dD ] }|jtdtdfi |di}t| 	 t|ks|J q\td}tddgddD ]8\}}|jtdtdfi |di}td|}t| 	 t|ksJ t| 	 t|ksJ qd S )	Nr   zC{}r  rv  )r	  
facecolorsr   r
  r  )start)r   r   r   r7  rO  r  r  tuplern  squeezere  rF  ro  )	r   r   r  cctargetaledge_targetelface_targetr   r   r   test_fillbetween_cycley  s(   
 
 r  c                  C   s   dt jd< t  \} }d}|| |ddgddg | \}}|j }|||g\}}|ddg\}}	|	| | }
t	||
 ||
 g||	g d S )Nro  rZ  r  rn   r   )
r   r   r   set_xmarginrY  r|   rC   rD  r  r   )r   r   marginxlim0xlim1r  xlim0txlim1tx0tx1tr,  r   r   r   test_log_margins  s   


r  c                  C   s   d} t | t | }}t | d }t \}}tt |j|||d W d    n1 s2w   Y  d}|j|||d |j|||g|  d d S )Nr   r   r  )r   r   r   )rR   rZ   r   r   r   r   rN  r    )r=  r/   r,   r  r   r   c_rgbr   r   r   test_color_length_mismatch  s   r  c                   C   s   t jdgdd t   d S )Nr   Labelr  )r   rn  r1   r   r   r   r   test_eventplot_legend  s   r  c                  C   sv   t  \} }|tdd |jddtddd |jddgddgdd\}}| |   kr6dks9J  J d S )Nr  r   r   )r;   r   )r   r   r   rw  rv  )r   r   rA  r   rX  ri  )r   r   rect1rect2r   r   r   test_bar_broadcast_args  s
   (r  c                   C   s   t ddgddg tt t tj W d    n1 s w   Y  tt t tj W d    n1 s;w   Y  tt t 	tj W d    n1 sVw   Y  tt t 	tj W d    d S 1 srw   Y  d S )Nr   r   )
r   ry   r   r   rN  rp   rR   r2  r  rq   r   r   r   r   test_invalid_axis_limits  s   "r  r2  r  r  r  c                 C   s6   t  }|g d ||  || |  d S )NrL  )r   r;  ry   r  r*  rA  )r2  r  r   r   r   r   test_minorticks_on  s
   

r  c                  C   sv   t  \} }|dd | }|ddgddg t  \}}|dd |ddgddg t|jj|jj d S )Nr   r   r   r   )r   r   r  r   ry   r   rv  	intervalx)r   r   xtwinr  r   r   r   r   test_twinx_knows_limits  s   r  c                   C   s   t jddgddgddd d S )Nr   r   r  )r!  r   )r   ry   r   r   r   r   test_zero_linewidth  s   r  c                  C   s<   t  \} }|jg g g dd |jg g g dd |  d S )Nzempty y)r  r#   zempty x)r  r#   )r   r   r  r1   r   r   r   r   test_empty_errorbar_legend  s   r  c                 C   s\   t ddd}dd |D }dd |D }dd |D }|  || | || d S )NrK  rn   r   c                 S   s0   g | ]}d |d  d|d   d|  d qS )g@r   r  r   g\(\@      @r   r   r   r   r   r     s   0 z%test_plot_decimal.<locals>.<listcomp>c                 S   rN  r   r   r\  r   r   r   r     rO  c                 S   rN  r   r   r\  r   r   r   r     rO  )rR   rZ   r   ry   )r5   r6   rS  rT  r/   r,   r   r   r   test_plot_decimal  s   r	  c                 C   s0   |   jddddd |  jddddd d S )Nr   r   r  r   )r  r  r  )r   ry   )r5   r6   r   r   r   test_markerfacecolor_none_alpha  s   r	  c                  C   sn   dt jd< dt jd< t  \} }|| j }|d || j }|j|jk s-J |j|jk s5J dS )z5Test that tick padding gets turned off if axis is offr  zxtick.directionzytick.directionoffN)	r   r   r   get_tightbboxr  r  rN  rS  rT  r   r   bbbb2r   r   r   test_tick_padding_tightbbox  s   


r	  c                  C   s.  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||ddddf  |d |	  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d\}
}|du sxJ |j  t ddgd	dgg}t |
  |ksJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r   r   rn   Nrl   r   r   333333@r   rG  r   )boundsr   )rR   mgridr#  r   r9  r   r   rb  ro  apply_aspectindicate_insetr  r   r#  r  get_bbox
get_points)dxdyr,   r/   r  r   r   rp   rq   rl  rec
connectorsxxr   r   r   
test_inset  s&   
*
,

r	  c                  C   sz  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
g d}||||d dd df  |dd	g |d
dg ||  ||\}}	t|	dksJ |j  t ddgd	dgg}
t |  |
ksJ t ddgddgg}
t jj|  |
dd d S )Nr		  r   r   rn   rl   r   )r  r  ffffff?r	  r   r
	  r   rG  r  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rR   r	  r#  r   r9  r   r   rb  ro  r	  
inset_axesr  r  rp  indicate_inset_zoomr3  r  r   r#  r  r	  r	  r   r   ru  )r	  r	  r,   r/   r  r   r   axin1r	  r	  r	  r   r   r   test_zoom_inset-  s6   
*




r	  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r|  |r"|  |g d|\}}|\}}	}
}| r6dnd}|r<dnd}||
jd |jd   dksNJ ||jd |	jd   dks^J ||	jd |jd   dksnJ ||jd |
jd   dks~J dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r   r   rn   r   )r   r   r   r  rl   r   N)	r   r   rR   rZ   ry   r(  r)  r	  rk  )r	  r	  r   r   r   r/   rl  r	  
lower_left
upper_leftlower_rightupper_rightsign_xsign_yr   r   r   test_indicate_inset_invertedN  s   
   $r&	  c                  C   s   t  \} }|d |jg ddd t| jdsJ |d |jg ddd t| jds8J |d |jg dd	d t| jdsQJ d S )
Nr  )r   r   rw  rw  rr   r]  r   r   r  r  active)r   r   ro  r5  rR   r  ru  r|  r   r   r   r   test_set_positionh  s   


r(	  c                  C   sd   t  \} }|jj| j }|ddd dd |jj| j }tj	j
| | dd d S )N)rD  rD  rj  rj  rR  Fgư>r	  )r   r   r2  r:   r  r  r  _set_view_from_bboxrR   r   r   r	  r	  r   r   r   !test_spines_properbbox_after_zoomu  s   r*	  c                  C   sH   t  \} }t|  |tjdd | j }tj	|
|jd d S )Nr   r  i  )r   r   r   r  rR   r  r  r  r   r   r	  r|  )r   r   r  r   r   r   test_gettightbbox_ignore_nan  s
   
r+	  c                 C   s^   t dd}| jtjjdd|d}| jtjjdd|d}| jg d|d}t||| d S )Nrn   r~  r  ru  r  )r   r   r   r   r   r   r   r   )r   r  rR   rS   rj  r   r    )r  r^  r/   r,   r"   r   r   r   "test_scatter_series_non_zero_index  s
   
r,	  c                   C   s"   t g g  t jg g g g d d S )N)rw  r"   )r   r    r   r   r   r   test_scatter_empty_data  s   r-	  zannotate_across_transforms.pngc               	   C   s   t ddd} t |  t |  }tjdd\}}|| | |g d}|d |j	
d |j
d |jd	| d
 |d
 f|jd|jtddd d S )Nr   rn   r  )gQ@r   ru  )rw  r   r   r   r   Fr   r-  r  r  )r  )rq  rr  rs  rt  r  )rR   r   r  r   r   r   ry   r	  ro  rC   r1  rF   ru  	transDatar  r  )r/   r,   r   r   axinsr   r   r   test_annotate_across_transforms  s   

r0	  zsecondary_xy.pngc                  C   s   t jddddd\} }dd }t|D ]A\}}|tddtdd |d	kr-|j}n|j}|d
||fd |ddd dd fd |ddd dd fd |d qd S )Nr   r   rn   r   T)r  r$  c                 S   8   t jdd d|  W  d    S 1 sw   Y  d S Nr-  r.  r   rR   r1  r  r   r   r   invert     $z!test_secondary_xy.<locals>.invertr  r   r   	functionsrw  c                 S   s   d|  S Nr   r   r  r   r   r   r        z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r9	  r   r  r   r   r   r    r:	  r  c                 S      | d S r9	  r   r  r   r   r   r    r:	  c                 S   r;	  )Nr   r   r  r   r   r   r    r:	  r  )r   r   rF  ry   rR   rZ   secondary_xaxissecondary_yaxis)r   rH  r5	  nnr   secaxr   r   r   test_secondary_xy  s   
r@	  c                  C   s   t  \} }|tddtdd tt |jddd d W d    n1 s-w   Y  tt |d W d    n1 sGw   Y  tt |	d W d    d S 1 sbw   Y  d S )	Nr   r  r   c                 S   s   d|  S r  r   r  r   r   r   r    r:	  z%test_secondary_fail.<locals>.<lambda>r7	  r)   r:   )
r   r   ry   rR   rZ   r   r   rN  r<	  r=	  r   r   r   r   test_secondary_fail  s   "rA	  c                  C   sr   t jdd\} }|tddtdd dd }|jd||fd | j  | d	 t	|
 jg d
 d S )Nr1	  ru  r   r  c                 S   r2	  r3	  r4	  r  r   r   r   r5	    r6	  z%test_secondary_resize.<locals>.invertr%   r7	  )r  r  r  )r   r   ry   rR   rZ   r<	  r  r   r  r   ru  r  )r   r   r5	  r   r   r   test_secondary_resize  s   

rB	  c                  C   s   t jdd\} }|tddtdd dd }|jd||fd}t|j t	j
s.J |  t|j t	js=J |d	 t   t|j t	jsQJ |d
 t   t|j t	j
seJ d S )Nr1	  ru  r   r  c                 S   r2	  r3	  r4	  r  r   r   r   r5	    r6	  z'test_secondary_minorloc.<locals>.invertr%   r7	  r  r  )r   r   ry   rR   rZ   r<	  r   _axisget_minor_locatorr   NullLocatorrA  AutoMinorLocatorr  r   
LogLocator)r   r   r5	  r?	  r   r   r   test_secondary_minorloc  s*   





rH	  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjs(J d S )Nr  r%   )r   r   r  r<	  rC   r   r   ScalarFormatterr  r   r   r   r   r   r?	  r   r   r   test_secondary_formatter  s   


rK	  c                  C   s*   t  \} }|d}t|dksJ d S )Nr%   z<SecondaryAxis:>)r   r   r<	  reprrJ	  r   r   r   test_secondary_repr  s   
rM	  c                 C   sd  | j   | j  }g }t|j|jgD ](\}}||}|r7tj|j	|j
f|j|jdddddd}| | ||g7 }qg }tg dD ])\}}	|j|	 |}tj|j	|j
f|j|jdddddd}
| |
 ||g7 }qE| }tj|j	|j
f|j|jd	d
dddd}| | |}||}tj|j	|j
f|j|jdddddd}| | |}||||fS )zS
    Helper for the tests below that test the extents of various axes elements
    r  r,   r  Nr   )r|  r   r  r
  r	  r  r  )r:   r%   r;   r)   r   r   r  r   r  r   )r  r   r  rF  rC   rF   r	  r   r  rS  rT  r|  r   r  r2  r  )r   r   r  bbaxisr>	  axxr	  axisrbbspinesr   spinerr  bbaxr	  bbtbr   r   r   color_boxes  sP   







rU	  c                  C   sn  t ddi$ tjddd\} }| j  t|  t| |\}}}}W d    n1 s-w   Y  g dg dg}t|D ]\}}tj	j
||  }	t|j|	jdd	 q>g d
g dg dg dg}t|D ]\}}tj	j
||  }	t|j|	jdd	 qfg d}tj	j
| }	t|j|	jdd	 g d}tj	j
| }	t|j|	jdd	 | | jj}
t|
| jdd	 d S )N_internal.classic_modeFr  r  r  r  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r   )decimal     b@-]@     @F8&@r[	  g     @r]	  rf  r[	  Nё\]@r^	        @gR!@ra	  r^	  rb	  r[	  g]@r]	  rb	  )g+e`U@gbhR@g{G@g{Gȏ@)r   r   r   r  r   r=  rU	  rF  rE  Bboxfrom_boundsr   r	  ru  transformedtransFigurer  )r   r   rN	  rQ	  rS	  rT	  r  r>	  r  targetbbaxbbr   r   r   test_normal_axes+  s8   

rk	  c            
      C   s&  t ddi& tjddd\} }| j  |jg g d t| |\}}}}W d    n1 s/w   Y  t|D ]
\}}|d u sBJ q8g dg dg d	g d
g}t|D ]\}}tj	j
||  }	t|j|	jdd qUg d}tj	j
| }	t|j|	jdd g d}tj	j
| }	t|j|	jdd d S )NrV	  Fr  rW	  rX	  xticklabelsyticklabelsrZ	  r_	  r`	  rc	  rh  atolrd	  )r[	        ^@r]	  rb	  )r   r   r   r  r   r{   rU	  rF  rE  re	  rf	  r   r	  )
r   r   rN	  rQ	  rS	  rT	  r>	  r  r  ri	  r   r   r   test_nodecoratorR  s,   
rr	  c            
      C   s  t ddi- tjddd\} }|jg g d |jjd | j  t	| |\}}}}W d    n1 s6w   Y  g dg d	g d
g dg}t
||D ]\}}tjj| }	t|j|	jdd qNg d}tjj| }	t|j|	jdd g d}tjj| }	t|j|	jdd d S )NrV	  Fr  rW	  rX	  rl	  )rM  r  )r[	        8@r]	  gs~8&@r_	  r`	  rc	  rh  ro	  rd	  )r[	  rs	  r]	  g     @)r   r   r   r{   r2  r:   r5  r  r   rU	  r  rE  re	  rf	  r   r	  )
r   r   rN	  rQ	  rS	  rT	  targetsr  bbspineri	  r   r   r   test_displaced_spinep  s*   
rv	  c               	   C   s   g dg dgg dg dgg dg dgg} t g dD ]W\}}tdd	iE tjd
dd\}}|j|d |j  t||\}}}}t ddgD ]\}	}
tj	j
| | |	  }t||
 j|jdd qKW d   n1 sow   Y  qdS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r[	  rq	  r]	  +e8&@)r[	  rq	  r^	  rb	  )r[	  gZӼ8[@r]	  88&@)g r\a@r  r^	  rb	  )r[	  gqq\@r]	  rx	  )g88b@r\	  r^	  rb	  )rR  r  inoutrV	  Fr  rW	  rX	  r  r   r   rh  ro	  N)rF  r   r   r   r6  r  r   rU	  rE  re	  rf	  r   r	  )rt	  dnumdirsr   r   rN	  rQ	  rS	  rT	  r>	  r   ri	  r   r   r   test_tickdirs  s2   
r|	  c            	      C   sn  t ddi tjddd\} }| j  |jddd t| |\}}}}t| |\}}}}g d	g d
g}tdD ]}tj	j
||  }t||d  j|jdd q:tjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}g dg dg}tdD ]}tj	j
||  }t||d  j|jdd qW d    d S 1 sw   Y  d S )NrV	  Fr  rW	  rX	  rr   r  )r^  rS  )r[	  g88[@r]	  rx	  )gCiq\a@ra	  rw	  rb	  r   rh  ro	  r\  r   r  )r[	  gPUUUUUB@r]	  gVUUUUT@)gz6P@rq	  goTT@rb	  )r   r   r   r  r   r6  rU	  r   rE  re	  rf	  r   r	  rA  )	r   r   rN	  rQ	  rS	  rT	  rt	  r   ri	  r   r   r   test_minor_accountedfor  s>   


"r}	  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr2  Fr	  r3  Ton)r   rN  r  r   r   r   test_axis_bool_arguments  s   


r	  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rn   r   r  r   r   rN  r  r|   r}   r   r   rP   rQ   r`  ra  r  r   r   r   test_axis_extent_arg  s   r	  c                  C   sr   t  \} }d}d}d}d}|j||||d}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rn   r   r  )rP   rQ   r`  ra  r	  r	  r   r   r   test_axis_extent_arg2  s   r	  c                  C   s~   t dd tddD } t g d}t j|d}t \}}|| | t	t 
d}| d| d	| fks=J d S )
Nc                 S   s   g | ]	}t  d d|qS )r  r   r  r  r   r   r   r     rx  z(test_datetime_masked.<locals>.<listcomp>r   r  r  r   r  g    H&Ag    d&A)rR   r#  r   r   rp  r   r   ry   r  r  r  r|   )r/   r,   r
  r   r   r  r   r   r   test_datetime_masked  s    r	  c                  C   sD   t jg dg dgdd\} }} |d dksJ |d dks J d S )	Nr  )r   r  r   r  r  r  r   r   rl   r  )r   r  r  r  r   r   r   test_hist_auto_bins  s    r	  c            
      C   s   t d\} \}}g d}|tjg }||\}}}tjdd ||\}}	}W d    n1 s4w   Y  tj|| tj||	 d S )Nr   r  r-  r  )r   r   rR   r2  r  r1  r   r   )
r   r   r   ro  nan_datar  r  r  nanbinsnanedgesr   r   r   test_hist_nan_data   s   r	  c                  C   sD   t jtjddddd\} }} |d dksJ |d dks J d S )	Nrn   r  r  T)r   r  r   rl   r   )r   r  rR   rS   r   r	  r   r   r   test_hist_range_and_density  s
   r	  c            
      C   sz   t  \} }g d}|j|||ddd}|jj\}}}|jD ]}|D ]
}|j|jks,J q"|D ]
}	|	j|jks9J q/qd S )Nr  r   r   )r/   r   r  r  r  )r   r   rA  r  r  r  r  )
r   r   r/   barcont	data_linecaplinesbarlinecolsrA  capline
barlinecolr   r   r   test_bar_errbar_zorder  s   
r	  c                  C   s6   t  \} }|  |ddg | dksJ d S )Nr   r  r  )r   r   r(  r  r|   r   r   r   r   test_set_ticks_inverted$  s   r	  c                  C   sv   t jdd} |  }|ddgddg |jddddd	d
d |d | j| }|j	|j
 tdks9J d S )Nr2  ru  rw  r  r  r  logit)F]tE?g'^P?r   rj  r2  rp   r  rq   ro   rl  r   r   )r   r   r   ry   r{   r%  rh	  transform_bboxru  r   r|  r   approx)r   r   r   r   r   r   $test_aspect_nonlinear_adjustable_box+  s   
r	  c                  C   s   t jdd} | g d}|ddgddg |jdddd	d
dd |d |  | t	ddgks8J |
 d	ks@J d S )Nr2  ru  rN  rw  r  r  )r   r   r	  )gbeF?r	  r   rk  r	  r   gS[:XL	@g'In?@)r   r   r$  ry   r{   r%  r	  r|   r   r	  r}   r   r   r   r   (test_aspect_nonlinear_adjustable_datalim8  s   
r	  c                  C   s   t  \} }| }|ddg |d t  \}}|d |ddgddg |jdd	d
 | j  |j  |	 }|	 }|	 }t
|j|j t
|j|j d S )Nr{  iX  r   r   r   r  r  r  rj  rn  )r   r   r   ry   set_box_aspectr%  ro  r  r   ru  r   r  )r  r   axtwinr  r   bb1bbtr	  r   r   r   test_box_aspectG  s   



r	  c                  C   s   t  \} }|g d | j  |d t  \}}|d |j  |g d | j  |j  | }| }t|j|j d S )N)r   r   r  r   r   )	r   r   r5  r  r   r	  ru  r   r  )r  r   r  r   r	  r	  r   r   r   test_box_aspect_custom_positiona  s   





r	  c                  C   sn   t jddtdddd\} }| j  | j }g }|jD ]}||}||j	|j
g qt||d  d S )Nr   r   r   )rx  T)r  r$  r   )r   r   r  r  r   r  rG  r  r2  r|  r   r   )r   rH  r  r  r   r	  r   r   r   test_bbox_aspect_axes_initx  s   




r	  c                  C   s4   t dd\} }|g d | j  |  d S )Nr   r  )r   r   ry   r  r   redraw_in_framer   r   r   r   test_redraw_in_frame  s   
r	  c                  C   sB   t  \} }| jdd usJ |d | jdd u sJ d S )N)r  r  F)r   r   r  inaxesr1  r   r   r   r   test_invisible_axes  s   
r	  c                  C   <   dt jd< t  } | j }|D ]}|j dksJ qd S Nrk  zlines.markeredgecolor)r   r   rM  rC   get_major_ticksr|  get_markeredgecolorr   ticksrC  r   r   r   "test_xtickcolor_is_not_markercolor     

r	  c                  C   r	  r	  )r   r   rM  rF   r	  r|  r	  r	  r   r   r   "test_ytickcolor_is_not_markercolor  r	  r	  rN  r  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d u r:| n|}	|d	|d
 |	| ksIJ |j  t	| d	 d S )Nr   r  r   get_autoscale_onr   limget_)r]  r   )r  )
r   r   rR   rZ   r   r    r  r  r   r   )
rN  r  r   r   r/   r,   rQ  set_limget_lim	post_autor   r   r   test_unautoscale  s   

r	  c                 C   s`   | j dddtjd gddg\}d| _|j ddtdtjd dtddd d S )Nr5  r  r   r   r   r   e   )r   ry   rR   r   get_path_interpolation_stepsr   )r5   r6   r  r   r   r   )test_polar_interpolation_steps_variable_r  s
   $
r	  c                  C   s6   t  \} }|dd | j  | dksJ d S )Nr   g&.>)r   g	>)r   r   rA  r  r   r}   r   r   r   r   test_autoscale_tiny_sticky  s   
r	  c                  C   X   dt jd< dt jd< t  } | j }|D ]}|j dks J |j dks)J qd S )Nr  zxtick.colorr   zxtick.labelcolor)r   r   rM  rC   r	  r|  r  r}  r	  r   r   r   &test_xtickcolor_is_not_xticklabelcolor     


r	  c                  C   r	  )Nr  zytick.colorr   zytick.labelcolor)r   r   rM  rF   r	  r|  r  r}  r	  r   r   r   &test_ytickcolor_is_not_yticklabelcolor  r	  r	  r  c                 C   s   g | ]}|d ur|qS r   r   )r   r  r   r   r   r     s    r   )r  rn   r{  c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ]\}}|	 D ]}|j
 ||ks6J q(q d S )Nzxtick.labelsizezytick.labelsizer/   r,   )r   r   r   r   r  r   r  rC   rF   r	  r}  r  _get_tick_label_size)r  r   r   namerN  rC  r   r   r   test_relative_ticklabel_sizes  s   


r	  c                  C   s\   t  } | jdddd\}}|g dg d |dd | }t|d	d
gs,J d S )Nr   r   r  rU  rL  )r   r   r   r   r'  r   r   r 	  )r   r   r   r    r  r|   rR   r  )r   r   r   rp   r   r   r   test_multiplot_autoscale  s   r	  c                  C   sX   t  } | d}| jg d|d}| }| jdd |  | k s*J d S )Nr  )r  r  r   r   rU  r   )r;   )r   r   r   r$  ru  r  r	  r  )r   r?  r   init_posr   r   r   $test_sharing_does_not_link_positions  s   
 r	  c                 C   sz  t g d}| d}|d jddgddg|dd |d jddgddg|dd |d jddgddg|dd |d jt d	|dd
 |d j	t d	t d	|dd
 |d}|d jddgddg|dd |d jddgddg|dd |d jddgddg|dd |d jt d	|dd
 |d j	t d	t d	|dd
 d S )Nr   r   r   r   r   rl   r  r   rn   r  r  r  )
rR   r#  r   ry   ru   r    r  r  rZ   rA  )r5   r6   r   rH  r   r   r   test_2dcolor_plot  s   
"""&
"""*r	  c                 C   s~   t ddt j d}t |}|jddddd}|jD ]}||| q| jddddd}|jD ]}|  ||| q0d S )Nrf  r   rh  Tr  )rR   rZ   r   r   r   rG  ry   rP  )r5   r6   r/   r,   rH  r   r   r   r   test_shared_axes_clear  s   


r	  c                  C   s   t jddddd\} }|jD ]
}|ddgd q|d g d |jD ]}| |d  ks3J q%|d g d |jD ]}| |d  ksNJ q@d S )	Nr   r  r  r   zo-r  )r]  r   r   r   )r]  r   r   rG  )r   r   rG  ry   r  r|   r  r}   r"  r   r   r   test_shared_axes_retick   s   


r	  r-   )r;   rB   r)   c                 C   sD   t  }| }|jdd| d |jd |j  | ks J d S )Ntestr   r+   r)   )r   r   r   rF   set_label_positionrD   r  )r-   r   r   r   r   r   test_ylabel_ha_with_position/  s
   r	  c                  C   s   t  } ddgddg}}| ||}| |}|d j|d |d fks'J |d  dks1J |d  dks;J |d j|d |d fksJJ |d  dksTJ |d  dks^J d S )	Nr   r   r   r   rB   r:   r%   r   r6  rA  	bar_labelrq  r  r  r   r   heightsrk  rL  r   r   r    test_bar_label_location_vertical8     
r	  c                  C   s   t  } ddgddg}}| ||}| |}|d j|d |d fks'J |d  dks1J |d  dks;J |d j|d |d fksJJ |d  dksTJ |d  dks^J d S )	Nr   r   r   r	  r   r;   rB   r)   r   r6  rX  r	  rq  r  r  r   r!  r0  rk  rL  r   r   r   "test_bar_label_location_horizontalE  r	  r	  c                  C   s   t  } ddgddg}}| ||}| j|dd}|d j|d d |d fks+J |d  dks5J |d  dks?J |d j|d d |d fksPJ |d  dksZJ |d  dksdJ d S )Nr   r   r   r	  rB   )
label_typer   r	  r	  r   r   r   test_bar_label_location_centerR  s   ""r	  c                  C   s   t  } ddgddg}}| j||dd}| |}|d j|d |d d fks+J |d  dks5J |d  dks?J |d j|d |d d fksPJ |d  dksZJ |d  d	ksdJ d S )
Nr   r   r   r	  )r  r   rB   r:   r%   r	  r	  r   r   r   !test_bar_label_location_errorbars_  s   
""r	  c                  C   sV   t  } | ddgddg}| j|dd}|d  dksJ |d  d	ks)J d S )
Nr   r   r   r	  r  )r   r   z3.00z-4.00r   r6  rA  r	  r  r   rk  rL  r   r   r   test_bar_label_fmtl  s
   r	  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dks!J |d  dks+J d S )	Nr   r   r   r	  r  r  )rL  r   r	  r	  r   r   r   test_bar_label_labelst  s
   r	  c                  C   sl   t  } | ddgtjdg}| |}dd |D ddgks!J |d jd	ks*J |d  d
ks4J d S )Nr   r   r   c                 S   r  r   r  )r   r  r   r   r   r     rO  z,test_bar_label_nan_ydata.<locals>.<listcomp>r   1r   r]  r:   )r   r6  rA  rR   r2  r	  rq  r  )r   rS  rL  r   r   r   test_bar_label_nan_ydata|  s   
r	  c               	   C   sp   t  \} }|tddddd dtdtj d d	  }tj	t
d
|d  d|d f|jjd d S )N)r   rl   r  r  r  r   gffffff?r   rG  r   gr  r  )r   r   r  r  WedgerR   r   r   r   assert_array_almost_equal_nulpr#  dataLimr	  )r   r   botr   r   r   test_patch_bounds  s   "r	  c               	   C   sN   t jtdd tjdgdgddddd} W d    d S 1 s w   Y  d S )	Nz!You passed a edgecolor/edgecolorsr  r   r  rj  r  r  )rf   rw  r	  r
  )r   r  r  r   r    r  r   r   r    test_warn_ignored_scatter_kwargs  s   "r	  c                     s   t  \}   fddtdD } tdtd} td} t	
ddd} ddd}t j|gks@J t j|gksJJ t j|ksSJ t j|gks]J  jrbJ t j|gkslJ  jd |d u swJ  jd	 |d	 u sJ tjtd
d  jt|d   W d    n1 sw   Y  tjtdd  jd	= W d    n1 sw   Y  tjtdd  jd	d = W d    n1 sw   Y  tjtdd  jdd = W d    n1 sw   Y  tjtdd  jd= W d    n	1 sw   Y  |   jrJ |   jr'J |   jr1J |   jr;J  jrAJ  jrGJ tjtdd  j| W d    n	1 s`w   Y  tjtdd  j| W d    n	1 s~w   Y  tjtdd  j| W d    n	1 sw   Y  tjtdd  j| W d    n	1 sw   Y  t j|gksJ t j|gksJ t j|gksJ t j|gksJ tjtdd  j|d  W d    n	1 sw   Y  t j|d gksJ tjtdd  j|d	  W d    n	1 s3w   Y  t j|dd  ksFJ tjtdd  jd|d  W d    n	1 sbw   Y  t j|d |d |d	 gkszJ tjtdd |d  jd< W d    n	1 sw   Y  t j|d |d |d	 gksJ tjtdd |dd  jdd< W d    n	1 sw   Y  t j|ksJ  jg d g |dddksJ g d j dddg|ksJ d S )Nc              	      s&   g | ]}  t||d  d qS )r   r   )ry   rR   rZ   r\  r  r   r   r     s   & z(test_artist_sublists.<locals>.<listcomp>r  r   )r   r   r  r   r  rl   zout of ranger  r   z'modification of the Axes.lines propertyz'modification of the Axes.texts propertyz-modification of the Axes.collections propertyz(modification of the Axes.images propertyz)modification of the Axes.patches propertyrz  r  r   r   )r   r   r   r    rR   rZ   rw   r  r  r  r  r  r  rB  imagesr  r  tablesr  r   r   
IndexErrorr3  r  r   r*  r  insert)r   r  r  r  r   r  r   r  r   test_artist_sublists  s   


&&(&r	  c                  C   sh   t d} t d}t \}}|| |}t|dksJ t \}}|g g }t|dks2J d S )Nrn   )rn   r   r   r   )rR   rs   r   r   ry   r3  )r/   r,   r  r   rx  r   r   r   test_empty_line_plots  s   

r	  c                  C   s\   t   } | j| j| j| jfD ]}d}|ddgddgg|dj}|j|j	f|ks+J qd S )N)r  r  r   r   r   r   )clim)
r   r   r   rw   r  rb  r  rL  r#  r$  )r   plot_methodr	  rL  r   r   r   	test_clim  s   r	  r9	  ($  rB  r   r  rY	  r   r  	itertoolsr   platformr  r   dateutil.tzr  numpyrR   r   r   r   r@   r   matplotlib.testing.decoratorsr	   r
   r   matplotlib.colorsr  rO  matplotlib.datesr  r  matplotlib.figurer   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesr  r  matplotlib.pyplotpyplotr   matplotlib.tickertickerr   matplotlib.transforms
transformsrE  numpy.testingr   r   r   r   matplotlib.cbookr   r   r9   r?   rA   rG   rb   r   r   r   r   r   r   r   r   r  r  r  r(  r1  r@  rB  rJ  r   r  rR  r[  ra  rd  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r"  r&  r+  r5  r9  r>  rH  rQ  rZ  r  rZ   r`  rg  rr  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r.  r0  r3  r6  r<  rB  rC  rD  rI  rK  rU  rY  r_  rb  rm  ro  rp  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Patchr  r  r  r  r  r  r	  r
  r  r  r  r  r  r#  r)  r,  r.  r4  r>  rB  rD  rF  rG  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  r  r  r  r   r"  r$  r&  r)  r,  r.  r1  r3  r5  r7  r8  rB  rD  rF  rH  rJ  rU  rZ  r_  ra  rb  re  ro  rr  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  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r"  r$  r&  r(  r*  r+  r3  r4  r7  r8  r>  r?  rA  rB  rM  rO  rP  rT  rW  r_  rb  ri  rl  rm  r}  r~  r  r  r  r  r  r  r  r  machiner  r  r  r  r  r  r  r  r  r  r2  r  r  r  r  r  r  r	  r  r  r  r  r#  r(  r)  r/  r<  r=  rJ  rM  rQ  r^  r_  r  r\   r  r  rg  rh  rr  rs  rz  r   rN  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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  image	AxesImager   PcolorImagerS   QuadMeshru   r   r  r#  r$  r%  r.  r0  r4  r8  r;  r<  rA  rB  fixturerL  rO  rP  rR  rU  rW  rX  r[  r\  ra  rd  rf  rk  rn  rr  rs  ry  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  r  r  r  r  r  r  r  r	  r	  r	  r	  r	  r&	  r(	  r*	  r+	  r,	  r-	  r0	  r@	  rA	  rB	  rH	  rK	  rM	  rU	  rk	  rr	  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	  font_scalingsr	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r   r   r   r   <module>   s   











'
*

2












	
!

































!


!






!
$















	













+



  *	;

		
	
>


	

	
	
	


	
	
	
	
	
	


				

	
	4
.
+
	
	




	



+*

	
&
&
 !"
	
 

,















	


$




"
".
!			

	



!
	
.'





	
	
	
	a