a
    ضa                    @   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^d^gd_d` Z\edagdbdcddde Z]edgddfdg Z^dhdi Z_edjgdgd=dbdkdldm Z`edngdodp Zaedqgdrdsdtdu Zbedvdvgd=d>dwdx Zcedygd=d>dzd{ Zdd|d} Zeed~gdbdcdd Zfdd Zgdd Zhedgdd ZiejOPdAejGHdg dedgddd Zjeddgd=dbddd Zkedgdbdcdd Zldd Zmedgd=d>dd ZnejGjHdeodddfepdddreoddfepdddrdeodfgg dddd ZqejGjHdeodddfepdddreoddfepdddrdeodfgg dddd Zredgd=d>dd Zsedgdbd=ddd Ztedgd=d>dd Zuedgdd Zvedgd=d>dd Zwdd Zxedgd=d>dd Zyedgddgd=ddd Zzedgddbddd Z{edgddbdddń Z|ddǄ Z}edgdddɄ Z~edgddd˄ Zdd̈́ 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dg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d.gd/d0 Zd1d2 Zd3d4 ZejGjHd5ejjd6d7 d8d7 gg d9dd:d; ZejGHd<g d=fg gd=fg g gdfgd>d? ZejGHd@dAej'jjfdBejjjfdCej'jjfgdDdE ZedgddFdG ZedgddHdI ZedgddJdK ZedgddLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZedXgd=d>dYdZ Zed[gd\d] Zd^d_ Zed`gd=dbddadb Zedcgdbdcddde Zedfdfgd=dbddgdh Zedigd=dbddjdk Zdldm ZG dndo doZdddpdqdrZedsdtZejGHdueÃ eĐdveg dwgdxfeÐdydzeĐdyeg d{gdxfeÐdydvdxeĐdyeg d{gdxfeÐdvd|eĐdveg dwgdxfeÐdvd}gd|eĐdvd}geg dwg d~gdxfgdd Z[[ejGHdeǃ dfeǐdvdzdfeǐdydpdyfeǐdyd}gdpdyd}gfeǐdyddyfeǐddpdfeǐddpdfeǐdyd}ddyfeǐdvdyd}ddyfeǐdyd|dyfeǐdyd}dd}f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d7 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dgdAdc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* Zed+gd,d- Zed.gd/d0 Z ed1gd2d3 Zed4gd5d6 Zed7gd8d9 Zed:gd;d< Zed=gd>d? Zd@dA ZdBdC ZdDdE ZdFdG Z	edgddHdI Z
edgddJdK ZdLdM ZdNdO ZdPdQ Zeg dRdSdT ZdUdV Ze dWdX ZdYdZ Zed[gd\d] Zd^d_ Zd`da Zedgddbdc Zddde Ze dfdg ZejGHdhg dieg did=gdjdk Zedldlgdmdn Zedogdpdq Zedrgd=d>dsdt Zedugdvdw Zedxgdydz ZejGjHd{d=dgd|d}gded~gdbd=ddd Zdd Z dd Z!ejGjHd{d=dgd|d}gdedgdbd=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 Z.edgdd Z/dd Z0dd Z1dd Z2edgd=d>dd Z3edgd=d>dd Z4edgd=d>dd Z5dd Z6dd Z7edgd=d>dd Z8eddgd=d>dd Z9e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ф Z?edgd=d>dӐdԄ Z@edgd֐dׄ ZAedgd=d>dِdڄ ZBedېdgeC dkrd ndrdsdސd߄ ZDe dd ZEe dd ZFe dd ZGe dd ZHdd ZIeg ddgddd ZJdd ZKeg ddgddd ZLdd ZMejGHdːd=ddejNdgejOg ddgedgddd ZPeddgd=d>dd ZQedgd=d>dd ZRdd  ZSeg dd=ddAddd ZTeg dd=ddAddd ZUeg d	d=ddAdd
d ZVdd ZWedgddd ZXdd ZYeg dd=dddd ZZe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" Z_ejGHd#g d$d%d& Z`d'd( Zad)d* Zbedgdd+d, Zcd-d. ZdejGHd/e+jee+jfd0ge+jge+jhd1ggd2d3 Zid4d5 Zjd6d7 Zkd8d9 Zld:d; ZmejGHd-d.d<d= Znd>d? Zod@dA ZpedBgdCdD Zqeg dEdgddFdG ZredHgdIdJ ZsedKgdLdM ZtedNgdOdP ZuedQgdRdS ZvedTgdUdV ZwedWgdXdY ZxdZd[ Zyd\d] Zzd^d_ Z{ed`gdadb Z|edgddcdd Z}dedf Z~dgdh Zdidj Zedkgdldm Zdndo ZedpgdWdqidYdrds Zdtdu Zdvdw Zdxdy Zdz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p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=drddd Zedgd=dbd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dAdcdɐdʄ ZedgdAdc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dgddsdd Zedgdd Zedgddsdd Ze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 Zʐd	d
 Zːdd Z̐dd Z͐dd ZejOPdAdd Zϐdd ZАdd Zѐdd ZҐdd ZӐdd ZejGHdddgejGHd ddgd!d" ZՐd#d$ Z֐d%d& Zאd'd( Zedgdd)d* Zedgdd+d, Zڐd-d. Zېd/d0 Zܐd1d2 ZejGHd3dd=gejGHd4dd=gd5d6 Zސd7d8 Zߐd9d: Zd;d< Zd=d> Zd?d@ ZedAgdbd=ddBdC ZedDgdbdcdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zedgdd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj Zdkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Zd{d| Z ejGHd}d.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s0J | dks@J d S )Nzx labelzy label)pltsubplots
set_xlabel
set_ylabelZ
get_xlabelZ
get_ylabelfigax r   j/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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   Zsccbarr   r   r   test_label_loc_vertical0   s    

r6   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,   r.   r2   r   r   r   test_label_loc_horizontalC   s    r<   c                 C   s   t dddj |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W d    n1 s0    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&   r9   r:   r(   r)   r,   )	
matplotlibr   r   r   r/   r   r   r0   r1   r2   r   r   r   test_label_loc_rcV   s"    


(r>   c                  C   s  t  \} }|jddd |jddd |j  dks>J |jddd |j  dksbJ |jddd |j  dksJ |jddd |jddd |j  dksJ |jddd |j  dksJ |jddd |j  dksJ d S )Nz
Test labelr8   r$   centerr'   r#   r7   )r   r   r   xaxis	get_labelget_horizontalalignmentr   yaxisr   r   r   r   test_label_shiftk   s    rD   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normalZcumsumr   ZacorrZ	correlatedotarangevlinesaxhline)	r3   r4   ZNxr-   rJ   ax_testax_refZnorm_auto_corrZlagsr   r   r   
test_acorr   s    rY   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 qd S )NrH   i   r   rI   )    rZ   r   r   .lower)markeroriginZgray_rnearest)cmapinterpolation
markersize
   )aspectxlimylimboth)rO   rP   rQ   onesshufflereshaper   spyimshowr@   tick_topplotZnonzerosetget_xlimget_ylimset_ticks_position)r3   r4   aaxs_testaxs_refr   r   r   r   test_spy   s"    



. rw   c               	   C   sl   t  \} }ddidddfD ]H}tt* |jtddfi | W d    q1 s\0    Y  qd S )Nra   r_   osolid)r]   	linestyle   )r   r   pytestraises	TypeErrorrl   rO   Zeye)r   r   Z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mpl20rZ   rh   )mplstyleuserO   rP   randadd_subplotZmatshowrm   r@   rn   rs   )r3   r4   rt   rX   r   r   r   test_matshow   s    

r   )Zformatter_ticker_001Zformatter_ticker_002Zformatter_ticker_003Zformatter_ticker_004Z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>       z)test_formatter_ticker.<locals>.<listcomp>rd   c                    s   g | ]}d | d  j  qS )      ?      ?kmr   r*   r   r   r   r      r   c                    s   g | ]}d | d  j  qS )g      ?      ?r   r   r   r   r   r      r   zx-label 001bluer   )colorZxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr=   rcParamsranger   figurer   r   ro   autoscale_view)ZxdataZydata1Z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s8J |jjsDJ |j|  |jjr\J |jjshJ |jjstJ |jjsJ t	| }t
|j tj	sJ |j j|jksJ d S )Nc                 S   s   dS )N r   r-   posr   r   r   	_formfunc   s    z4test_funcformatter_auto_formatter.<locals>._formfunc)r   r   r   r@   isDefault_majfmtisDefault_minfmtrC   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r   Z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s4J |jjs@J |j|  |jjsXJ |jjsdJ |jjspJ |jjr|J t	| }t
|j tj	sJ |j j|jksJ d S )Nz	{x}_{pos})r   r   r   r@   r   r   rC   set_minor_formatterr   ZStrMethodFormatterr   Zget_minor_formatterfmt)Zformstrr   Ztarg_strformatterr   r   r   &test_strmethodformatter_auto_formatter  s     

r   Z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)numZendpoint       @皙?皙?333333?r   d   z%08.2lf)ZtricksZmindZjedi)   #   7   K   z%05.2lf)r    3prx   )rO   linspacesinpir   ZFixedLocatorr   r   ro   rC   set_major_locatorZset_minor_locatorr   ZFormatStrFormatterr   ZFixedFormatterr@   ZLinearLocatortwinytwinx)valsZlocsZmajlZminlr   ax1r   r   r   "test_twin_axis_locators_formatters  s"    
r   c                  C   s   t  \} }| }| }t   |j r2J |j r@J |  |  |j r^J |j rlJ |j	 szJ |j sJ |j rJ |j	 rJ |j sJ |j sJ |j	 sJ d S N)
r   r   r   r   drawr@   get_visiblepatchclarC   )r   r   ax2ax3r   r   r   test_twinx_cla6  s"    r   twinr-   r*   gRQ?)rG   tolc                 C   sF  d| }d| d}t dd}| ddd}t|| }t||d ||| | ddd}t||d t|| }||| dD ]}|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 qt|  t| d S )Nr   set_scaler   r   r   logr   r   r      nonezaxes.edgecoloraxes.linewidthZ
projecting)	transform	facecolor	edgecolor	linewidthZcapstyle)rO   rT   r   getattrro   r=   pathPath
add_artistpatches	PathPatchZMOVETOZLINETO	transAxesr   r   r   )r3   r4   r   Z	twin_funcZ	set_scaler-   rW   ax_twinirX   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)Zautoscalex_onZautoscaley_onr   rd   r   lwr--r   r   r   )rO   arrayr   r   add_axesro   r   margins)r-   r*   x2y2r   r   r   r   r   r   test_twinx_axis_scalesy  s    
r   c                  C   st   t  \} }| }|d | }| s2J | r>J | }|d | }| sdJ | rpJ d S )NF)r   r   r   Zset_autoscalex_onget_autoscalex_onr   Zset_autoscaley_onget_autoscaley_on)r   r   Zax_x_onZax_x_offZax_y_onZax_y_offr   r   r   #test_twin_inherit_autoscale_setting  s    

r   c                  C   sr  t d} |  }| rJ | r*J tjd}|| | rLJ | sXJ |  t	ddtj
 d}||t| | rJ | rJ |  || t   | rJ | sJ t d}t jd|d}|jd | sJ ||t| |  | r*J |  || ||t| |  | sdJ t |  d S )	Nr   )r   r   r   r         shareyT)r   r   gcaZxaxis_invertedZyaxis_invertedrO   rP   rm   r   r   r   ro   cos	autoscalesubplotrC   Z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 sB0    Y  | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r   )r=   r   r   ro   minorticks_on)r3   r4   rW   rX   r   r   r    test_minorticks_on_rcParams_both  s    
2r  Z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   rd   ir   r   )r   r   	enumerateflatro   )r   axsr   r   y1r   r   r   test_autoscale_tiny_range  s    r  defaultc                  C   s^   t dd\} }|g d |jdddd |jdddd t| d t| d	 d S )
Nr   r   r   r{   r   Tr-   F)enableaxistightr*   )g333333ÿg333333	@)r         @)r   r   ro   r   r   rq   rr   r   r   r   r   test_autoscale_tight  s    r  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   Zdtyper   r   Tsharex)r  rb   r   )rO   rT   floatr   r   loglogsemilogxr   r   r   rq   rr   )r-   r   r   r   Z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{   r\   r^   )      r   Fr  r   T)
r   r   rm   r   rq   rr   Zuse_sticky_edgesr   Z_xmarginZ_ymargin)r   r   rf   rg   r   r   r   test_use_sticky_edges  s    r  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r{   r   r   r   r  )rO   rT   rk   r   
pcolormesh)r3   r4   Zr  r   r   r   r   test_sticky_shared_axes  s    


r   Z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)rb   r   r   )Zautoscale_onrf   rg   r{   purpler   r   z	local maxr{   r   datar{   r{   zoffset points)xyxycoordsxytext
textcoords)	rO   rT   r   r   r   r   r   ro   annotate)tsr   r   liner   r   r   test_basic_annotate   s    
r3  zarrow_simple.pngc            
      C   s   d} d}d}t | ||}tdd\}}tt|j|D ]v\}\}}|dd |dd |\} }}dtj	 | d }	|j
ddt|	t|	|	d	 | |||	d
 |	d
 d
 q8d S )N)TF)rK   r8   r'   r{   r   r      r   r   rd   )widthlength_includes_headshapehead_starts_at_zeroZ
head_widthhead_length)r   r   r   r  zipr	  set_xlimset_ylimrO   r   arrowr   r   )
r7  r8  r9  kwargsr   r
  r   r   kwargthetar   r   r   test_arrow_simple0  s$    
rB  c                  C   s$   t  \} }|jdddddd d S )Nr   )r:  )r   r   r>  _r   r   r   r   test_arrow_emptyK  s    rE  c                  C   s@   t  \} }|dddd | dks,J | dks<J d S )Nr   )皙?皙@)r   r   r>  rq   rr   rC  r   r   r   test_arrow_in_viewQ  s    rH  c                  C   sN   t  \} }|jdddd}|jd u s*J |jdddi d}|jd usJJ d S )Nfoor   r   r   r{   )r-  )r-  
arrowprops)r   r   r/  Zarrow_patch)r   r   annr   r   r   test_annotate_default_arrowX  s
    rN  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]r  r   degred)Zyunitsr   r   )r!  r!  g     V@r!  bZ   r   )r   )r   r   r   r   EpochdatetimerY  DurationrO   rT   mdatesdate2numr   r   ro   fillZautofmt_xdate)r   r0  valuedayrV  Zdtnr   r   r   r   ax4indr   r   r   test_fill_unitsa  s4    


""rg  c                   C   s   t jtdd& tjdgdgddd W d    n1 s:0    Y  t jtdd& tjdgdgdd	d
 W d    n1 s~0    Y  t jtdd& tjdgdgddd W d    n1 s0    Y  tjdgdgddd d S )Nzmarker .* redundantly definedmatchr   rx   r-   r]   z linestyle .* redundantly defined---rz   zcolor .* redundantly definedrr   r   r   )r   r   )r|   warnsUserWarningr   ro   errorbarr   r   r   r    test_plot_format_kwarg_redundant  s    444rs  Z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 )Nrx   lines.markerT	axes.gridr   r   r   rt   r[  rt   r)  r[  )r=   r   r   r   ro   )r   r   r   r)  r   r   r   test_single_point  s    

rx  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   rx   rn  ro  )	r   r   r`  ra  rO   
datetime64r   	plot_datero   )rV  Z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 )Nrd   r   rb   r   r   rb   r   r   r   gQQ?)r   	   rf   rg   )rO   rT   rk   r   ro   rp   Zravel)r3   r4   rowcolr
  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   ri   Ztwosr  r   r   rw  r   rn  )rO   r   r  r   r   r   ro   )Zptsr
  r   r   r   test_structured_data  s    r  Zaitoff_proj)rG   r  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   )   @ZaitoffZ
projection)figsize
subplot_kwrx   r   )rc   N)
rO   r   r   meshgridr   r   dictgridro   r	  )r-   r*   XYr   r   r   r   r   test_aitoff_proj  s    
r  Zaxvspan_epochc                  C   s   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   rR  rS  r   r  rU     r   r         ?)r   alphar"  )r   r   r   r   r]  r^  r_  rd  convertr   r   axvspanr<  r   t0tfrV  r   r   r   r   test_axvspan_epoch  s    r  Zaxhspan_epoch{Gz?)r   c                  C   s   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 r  )r   r   r   r   r]  r^  r_  rd  r  r   r   axhspanr=  r  r   r   r   test_axhspan_epoch  s    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  r)  )r   r   rO   rT   rk   hexbin)r   r   r)  r-   r*   r   r   r   test_hexbin_extent  s    
r  zhexbin_empty.pngc                  C   s   t  } | g g  d S r   )r   r   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  rb   )r  Zpicker  ,  r   r   )r   r   rO   rT   rk   r  r   contains)r   r   r)  r-   r*   ZhbZ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.snaprH   順 r         @r  r   r   r   T)yscalebinsZ	marginalsZreduce_C_function)r   r   rO   rP   rQ   standard_normalpowerr   r  sumr0   )nr-   r*   r   r   hr   r   r   test_hexbin_log  s    
r  c                  C   sH   t dd\} }t \}}|j| |dddd}| dksDJ d S )Nr  r  r   r   r   )r  vminvmax)rO   rT   rk   r   r   r  Zget_clim)r-   r*   r   r   r  r   r   r   test_hexbin_log_clim+  s    r  c                  C   s   t  \} }|  |g dg d | dks8J | dksHJ t   t  \} }|  |g dg d | dksJ | dksJ t  \} }|d |	dd	 | d
ksJ d S )N)r%  r   r   )r   r   r%  r   )r   r  r$  )r  r   )r   r%  r   rd   r   )rd   r   )
r   r   invert_xaxisro   rq   rr   r   invert_yaxis
set_yscaler=  r   r   r   r   test_inverted_limits2  s    
r  Znonfinite_limitsc                  C   st   t dt jd} t jdd t | }W d    n1 s<0    Y  t j| t| d < t \}}|	| | d S )Nr!  r#  ignoredivider   )
rO   rT   eerrstater   nanlenr   r   ro   r-   r*   r   r   r   r   r   test_nonfinite_limitsL  s    (r  plot_fun)r   ro   fill_betweenc                 C   s^   t jdddd}| }| }t|| g g  ||fD ] }t|| |tt|dd q8d S )Nz
2010-01-01z
2011-01-01rX  r  C0ro  )rO   rT   r   r   r   r  )r  r3   r4   r-   rW   rX   r   r   r   r   test_limits_empty_dataW  s    r  rm   )r  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 )Nr_   image.interpolationr   r   rn  rw  )r=   r   rO   indicessqrtr   r   rm   )Nr-   r*   rn  r   r   r)  r   r   r   test_imshowh  s    

r  Z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 )Nr_   r  r   r   r   r   )	clip_path)r=   r   rO   r  r  r   r   contourcollections	get_pathsget_transformmtransformsZTransformedPathrm   )	r  r-   r*   rn  r   r   r    r  Zclip_transformr   r   r   test_imshow_clip}  s    

r  c                  C   sd   ddgddgg} t  }tjtdd* |j| tddd	d
d W d   n1 sV0    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.rh  rd   r   r   )normr  r  N)r   axesr|   r}   
ValueErrorrm   mcolors	Normalize)rt   r   r   r   r   test_imshow_norm_vminvmax  s    r  Z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   rO   r   r   r  ZPolyCollectionadd_collectionZ
set_xboundZ
set_ybound)r   r   vertsr    r   r   r   test_polycollection_joinstyle  s    "
r  z	x, y1, y2r  r{   r!  r   )Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)idsc                 C   sH   t  \}}tt || || W d    n1 s:0    Y  d S r   )r   r   r|   r}   r  r  )r-   r  r   r   r   r   r   r   test_fill_between_input  s    r  z	y, x1, x2)Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc                 C   sH   t  \}}tt || || W d    n1 s:0    Y  d S r   )r   r   r|   r}   r  fill_betweenx)r*   x1r   r   r   r   r   r   test_fill_betweenx_input  s    r  Z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 )Nr!  r   r  333333?r   r   Tr  blackro  white/)wherer   hatchinterpolaterZ  )r  r   r  r   r   r   )rO   rT   r   r   r   r   ro   r  r   masked_greaterZmasked)r-   r  r   r   r   r   r   r   r   test_fill_between_interpolate  s(    r  Z#fill_between_interpolate_decreasingr   r  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"@rz  rG  )g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?r  r   r  r  rZ  r   r      X  )rO   r   r   r   ro   r  r<  r=  )r   r0  Zprofr   r   r   r   r   (test_fill_between_interpolate_decreasing  s    r  Z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~0    Y  t \}}|j| |dd |j| |dd |j| |||dddd |j| |||dddd d S )Nrd   r              rZ   r   r  invalidr  r    r[  r   Tr   r  rZ  )	rO   rT   asarrayr  r  r   r   ro   r  )r-   r  r   Zgreater2Z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  r5  r  )i@B i  r  r   r   r   r   r   symloglinearrb   i )rO   r   r   r   ro   r  
set_xscaler=  r  r   r   r   test_symlog  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   r#  r  )	linthreshTrb   皙r   )	rO   rT   r   r   r;  ro   r  r  r=  )r-   r   r
  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  r!  r   r   r   )r  g      r  g      r  g      пr   r  r         ?r         ?r   rb   )rO   r  hypotr   pcolorlist)r-   r*   r  r  r  r   r   r   test_pcolorargs_5205/  s    
r!  r  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  r5  r  r   r   皙?r   r   r   r{   rb   r  )r   
edgecolorsr[  wgouraudshading)r   r   rO   r   r  r   r   r  minptpr   Zmasked_whereabsmaxr   r  )r  r-   r*   r  r  QxZQzr  ZZmr   r   r   r   r   r   r   test_pcolormesh=  s    
 $(r-  Zpcolormesh_alphaZpdf)rG   r  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 q|
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  r5  r  r   r   r   viridis   r   r{   )r   r  )r  r   r   r   r   )r   zorderrb   r   r	  r   )r`   r  r'  r0  r%  )r`   r'  r0  )r   r   rO   r  r   r   r  r(  r)  get_cmaprT   r  ZListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  r,  ZQyr  Zvircolorsr`   r   r   r   r   re  r   r   r   r   test_pcolormesh_alphaU  s2    
$

&r6  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 qrqfd S )NFr  r   \(\?333333?Zhspacer#   r7     r   c                    s   g | ]} t j|d  qS )daysr^  	timedeltar   dbaser   r   r     r   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r     rb      r   r        r'   r   )r   r   r   subplots_adjustr^  rO   r   r   rT   r  r   r  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr   r-   r*   Zz1Zz2zr   r!   r   rA  r   test_pcolormesh_datetime_axisx  s,    


.

>

rQ  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 qhq\d S )Nr   r7  r8  r9  r:  r   c                    s   g | ]} t j|d  qS r;  r=  r?  rA  r   r   r     r   z-test_pcolor_datetime_axis.<locals>.<listcomp>r  r  rC  rb   rD  r   rE  rF  rG  r'   r   )r   r   rH  r^  rO   r   r   rT   r  r   r  rI  rJ  rK  rL  rM  rN  rO  r   rA  r   test_pcolor_datetime_axis  s*    

.

>

rR  c               	   C   s  d} t dd| }t dd| d }t ||\}}t ||d }t \}}tt |	||| W d    n1 s~0    Y  tt  |	|||j
 W d    n1 s0    Y  tt2 |j	|||d dd df dd W d    n1 s0    Y  tt2 |j	|||d dd df dd W d    n1 sT0    Y  t j|d	< tt. |	|||d dd df  W d    n1 s0    Y  t jd
d$ t jj||d	k d}W d    n1 s0    Y  tt. |	|||d dd df  W d    n1 s40    Y  g d}ddg}t ||\}}t |j}tjtdd" |j	|||dd W d    n1 s0    Y  d S )Nr5  r  r   r   r   rb   r%  r&  r   r  r	  )mask)ig  r   r   r  rd   z.are not monotonically increasing or decreasingrh  auto)rO   r   r  r  r   r   r|   r}   r~   r  TNaNr  r  r   r   zerosr8  rp  rq  )r  r-   r*   r  r  r  rD  r   r   r   r   test_pcolorargs  s:    ,.BB
>4>rX  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   rd   r{   rH   r   r  r	  r&  rb   r_   r   rO   rT   rP   rQ   randnr  diffr3   r4   r   r-   r*   r  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>rd   r   r{   rH   r   r  r	  r&  c                 S   s    g | ]}t j |d  d qS )r   r^  r_  r   r   r   r   r     r   rb   r_   )	r   r   rO   rT   rP   rQ   rZ  r  r[  r\  r   r   r   test_pcolornearestunits  s    ra  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    n1 st0    Y  d S )	Nr   r  r{   rH   zDimensions of Crh  r	  r&  )r   r   rO   rT   rP   rQ   rZ  r|   r}   r~   r  )r   r   r-   r*   r  r   r   r   test_pcolorflaterror  s    rb  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   rd   r   rH   r{   r  )rc  rb   r   rY  )	r3   r4   rc  r   r-   r*   r  r   r   r   r   r   test_pcolorauto  s    rd  	canonicalc                  C   s   t  \} }|g d d S )Nr   r   r{   r   r   ro   r   r   r   r   test_canonical  s    rh  zarc_angles.pngc            
      C   sL  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   rd   )r   r   r  r	  r2  r3  ZEllipseArcro   rO   r   deg2radr   r<  r=  )
r$  r  Zcentrer   r   r
  r   r   rl  rk  r   r   r   test_arc_angles  s2    ro  Z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   ri  r   r   rT  )re   r   yellowr   )r  r   r   r   r0  r   F)angler   rb  r0  r   equalr   )r  r   r   r0  )rO   rn  rT   r   r   r   rS   r   r   r   rb  r3  rm  r2  )ZxcenterZycenterr6  heightrr  rA  r-   r*   ZrthetaRr   r   e1e2r   r   r   test_arc_ellipse5  s:    

rx  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 )Nrx   rf  r{   r   r   rj  )r   r{   r   )r   r   r{   )r   r   mmarkersMarkerStylero   r   rr  )fixr   mr   r   r   test_marker_as_markerstyleZ  s
    
r~  	markeveryc                  C   s   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   rd   r   r   rx   r  r!   r@  mark allr  r!   r1  mark every 10+r   r  mark every 5 starting at 10rO   r   r   r  r   r   ro   r/   r  r   r   r   test_markeveryb  s    r  Zmarkevery_lineg{Gzt?)r  r   c                  C   s   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   rd   r   r   z-or  r  z-dr  r  z-sr  z-+r  r  r  r  r   r   r   test_markevery_linep  s    r  Z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 ]R\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d qd S )Nr  r   r  r/  r  r   r   rb   r   r  r{   r   r   r   r!  r   g?r   r   )\(?rd   r   r   markevery=%srx   rk  r   lsmsr  )slicer=   gridspecGridSpecr  rO   r   r   r  r   r   titlestrro   
casescolsgsdeltar-   r*   r   caser  r  r   r   r   test_markevery_linear_scales  s&    
r  Z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 ]f\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d t	d t	d qd S )Nr  r  r  r   rb   r   r  r{   r   r   r   r  r  r   r  rd   r   r   r  rx   rk  r   r  )r  g@)r"  g333333?)r  r=   r  r  r  rO   r   r   r  r   r   r  r  ro   rf   rg   r  r   r   r   #test_markevery_linear_scales_zoomed  s*    

r  Z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 ]f\}}|| }|| }	t	
|||	f  t	dt|  t	d t	d t	j||ddd|d qd S )Nr  r  r  r   rb   r   r  r{   r   r   r   r  r  r   r  rd   r   r   r  r   rx   rk  r   r  )r  r=   r  r  r  rO   r   r   r  r   r   r  r  xscaler  ro   r  r   r   r   test_markevery_log_scales  s*    


r  Z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 ]V\}}|| }|| }t	j
|||f dd t	dt|  t	j||ddd|d qld S )Nr  r  r  r   rb   r   r  r{   r   r   r   r  r  r   r  r   T)polarr  rx   rk  r   r  )r  r=   r  r  r  rO   r   r   r  r   r   r  r  ro   )	r  r  r  rn  rA  r   r  r  r  r   r   r   test_markevery_polar  s$    
r  Z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   rd   zy.      >@rn  )r  mewmecr   r   r   r[  )rO   r   r   r   ro   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_labelrv  rt   r[  )r  r  r)  )r   r   barr   )r   r)  r   r   r   r   test_bar_tick_label_single  s    
r  c                  C   s&   t  \} }|ddgtjdg d S )Nr   r   r   )r   r   r  rO   r  r   r   r   r   test_nan_bar_values  s    r  c                  C   s   t  \} }|g g  d S r   )r   r   r  r   r   r   r   test_bar_ticklabel_fail  s    r  zbar_tick_label_multiple.pngc                  C   s0   t  } | jddgddgddgddgdd	 d S )
Nr         @r   r   r   rt   r[  r?   r6  r  r  )r   r   r  r  r   r   r   test_bar_tick_label_multiple	  s    r  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 )Nr?   zytick.alignmentr   r  r   r   r   rt   r[  r  )r=   r   r   r   r  r  r   r   r   *test_bar_tick_label_multiple_old_alignment  s
    
r  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"  rG  gffffff
@g@c                 S   s   g | ]}t |qS r   r   r   r   r   r   r     r   z+test_bar_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   r   r   r   r   r      r   r?   r  r   r  r3   r4   r   x0y0r-   r*   r   r   r   test_bar_decimal_center  s    r  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 )	Nr  r  c                 S   s   g | ]}t |qS r   r   r   r   r   r   r   -  r   z,test_barh_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   r   r   r   r   r   .  r   )r   r   r   r   r?   rt  r  r   barhr  r   r   r   test_barh_decimal_center(  s    r  c                 C   s^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr  r  r  g333333?r   r   c                 S   s   g | ]}t |qS r   r   r   r   r   r   r   r   ;  r   z*test_bar_decimal_width.<locals>.<listcomp>r?   r6  r  r  )r3   r4   r-   r*   Zw0r$  r   r   r   r   test_bar_decimal_width6  s    r  c                 C   s^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr  r  r  c                 S   s   g | ]}t |qS r   r   r  r   r   r   r   I  r   z,test_barh_decimal_height.<locals>.<listcomp>r?   r  r  )r3   r4   r-   r*   Zh0r  r   r   r   r   test_barh_decimal_heightD  s    r  c                  C   sR   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   rn  r  r   r   r   r   r   r   r   r   r   r   r   r   r  get_facecolorget_edgecolorr   rectsrectr   r   r   test_bar_color_none_alphaR  s
    r  c                  C   sR   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   rn  r   r  r  r  r  r  r   r   r   test_bar_edgecolor_none_alphaZ  s
    r  zbarh_tick_label.pngc                  C   s0   t  } | jddgddgddgddgdd	 d S )
Nr   r  r   r   r   rt   r[  r?   )rt  r  r  )r   r   r  r  r   r   r   test_barh_tick_labelb  s    r  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r6  r   )xerrr6  )rt  )rt  yerrr   c                 S   s   g | ]}t j|d qS )r  r=  r   r0  r   r   r   r   ~  r   z&test_bar_timedelta.<locals>.<listcomp>r   )rd   r  N)	r   r   r  r^  r>  r  rO   r   broken_barhr   r   r   r   test_bar_timedeltaj  s<    







r  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)	rO   rP   r   
date_rangeZ
DateOffsetyearr   r   boxplot)pdr)  r  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 rZ||d tj	dd	  q2t
d
}t
||\}}t|d t|d f}	t
|	d |	d  }
|	|
_z(|  ||||
}|j  W |  n|  0 d S )Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r   rz  rb   x   )secondsr   )Zpandas.plottingr  r  r   r   r   r^  r  appendr>  rO   rT   r  r8  r  canvasr   )r  r  r  r   r   timesZy_valsZ	time_axisZy_axisr8  Z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)r  r  r  )r   r   r   rf  )r  monthrd  rc  )r  r  rd  daterc  rd   r?   r  oranger   r   )		DataFrameto_datetimegroupbyr  indexr   r   r  ro   )r  dfZmonthlydatesZ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   r   r  )r-   r6  rf  r  r   r  )r  r   r   r  r-   r6  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 q0|j|||d d S )	Nr   r   r{   r-   rx   r  )r   r  )r  )r   r   r  )r3   r4   rW   rX   r-   r*   hatchesr   r   r   r   test_bar_hatches  s     r  c                 C   sF   | j ddgdd}t|| t|j| t| t|j d S )Nr   r   float64r  )Seriesr   ro   r  )r  r-   r   r   r   test_pandas_minimal_plot  s
    
r  Z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)rb  r   )rO   r   concatenater   r   hist)Zdata0r)  r   r   r   r   r   test_hist_log  s    r  c                 C   s   |  dd}| dd}tg dD ]\}}|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	 qq$d S )
Nr   r{   )r  step
stepfilledr   r   r   histtypeT)r   r	  )r   r  r  r  )r3   r4   ru   rv   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sJ d S )Nr   r   r   
barstackedr  r   r   r   r   )r   r   r  r  r  r   rr   r   r
  r   r   r   test_hist_log_barstacked  s    
r  zhist_bar_empty.pngc                  C   s   t  } | jg dd d S )Nr  r  r   r   r  r  r   r   r   test_hist_bar_empty   s    r  zhist_step_empty.pngc                  C   s   t  } | jg dd d S )Nr  r  r  r  r   r   r   test_hist_step_empty  s    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 ]B\}}}|j| |f|dd| |	d||f  |j
dd qn|d j}	tdd |	D sJ d S )Nr   r  r{   rd   rb  TFr   r  r   r  )nrowsncolsr	  stackedz%s/%sr  r7   r   r   c                 s   s   | ]}|  | kV  qd S r   )r  r  )r   r   r   r   r   	<genexpr>  r   z(test_hist_step_filled.<locals>.<genexpr>)rO   rP   rQ   rZ  r   r   r;  r	  r  	set_titler=  r   all)
r-   Zn_binsr?  typesr   r
  Z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 )NrH   r  Tdensity)rO   rP   rQ   r  r   r   r  r)  r   r   r   r   r   test_hist_density!  s    r!  c                  C   sV   t jd} | d}g d}tj||dd\}}}t j||dd\}}t|| d S )Ni  r   )r%  rb   r  r   r   r   T)r  r  )rO   rP   ZRandomStaterZ  r   r  Z	histogramr   )rngr0  r  Zmpl_heightsrD  Z
np_heightsr   r   r   test_hist_unequal_bins_density)  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_datasets4  s    r%  bins_preprocessc                 C   s   | S r   r   r  r   r   r   <lambda>>  r   r(  c                 C   s   t | dS )Nr|  )rO   r  astyper'  r   r   r   r(  ?  r   )ra  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  rO   r   r   r   r  ra  )r&  r)  Z
date_edgesr   r   rD  r  r   r   r    test_hist_datetime_datasets_bins<  s    r*  zdata, expected_number_of_histsr   c                 C   sH   t | \}}}t|}|jdkr2d|ksDJ n|jd |ksDJ d S )Nr   r   )r   r  rO   r  ndimr8  )r)  Zexpected_number_of_histsZhistsrD  r   r   r   test_hist_with_empty_inputS  s
    

r,  zhisttype, zorderr  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	  r0  r   r   r   r   r   test_hist_zordera  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     rZ   %   0   rZ   r  r   )	r   r   r  r  r"  g      @      @g       @      "@r{   r   r  r   r9   )r  r;   r:   r   r   miterbuttsolid_joinstylesolid_capstylerb   	drawstyle
steps-post)Zmatplotlib.lineslinesrO   r   r   flattenstairsZsemilogyr  ro   r  Zadd_lineLine2Dr=  r<  )r3   r4   Zmlinesr*   r-   	test_axesr   ref_axesr   r   r   test_stairsm  s@    
(((22(22(22(22rB  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   r4  r   r   T)rb  r   r9   )r;   rb  )r  rb  r{   )r  r;   rb  rb   post)r  r   )r   r=  r>  r  rO   r  r=  r  r<  ri   r  )r3   r4   r  r  bsr@  rA  r   r   r   test_stairs_fill  s,    ""rE  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sJ t| d	 tdsJ |jd
d | jd
ksJ |  }|jg dd
d}|| d S )N)r%  r   rf  ry  r   r   edges)r   r   r   r   r   r4  r4  )	r   r>  r=  set_datarO   rT   allcloseget_datar  )r3   r4   rg   test_axr  ref_axr   r   r   test_stairs_update  s     
 rM  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  rz  r4  r5  r6  r7  r   )r   r  rz  rz  r:  r;  r   )r   r>  ro   r   r=  )r3   r4   rK  rL  r   r   r   r   test_stairs_baseline_0  s    
 rN  c                  C   s>   t   } | g dg |  dks*J |  dks:J d S )N*   )'   rj  r  )r   r   r   r>  rq   rr   r  r   r   r   test_stairs_empty  s    rQ  c                   C   sJ   t jtdd( tddgdtjdg W d    n1 s<0    Y  d S )NNan values in "edges"rh  r   r   r   )r|   r}   r  r   r>  rO   r  r   r   r   r   test_stairs_invalid_nan  s    rS  c                   C   sF   t jtdd$ tddgddg W d    n1 s80    Y  d S )NSize mismatchrh  r   r   r   )r|   r}   r  r   r>  r   r   r   r   test_stairs_invalid_mismatch  s    rU  c                  C   sZ   t ddgg d} tjtdd$ | jdtjdgd W d    n1 sL0    Y  d S )Nr   r   r   rR  rh  rF  )r   r>  r|   r}   r  rH  rO   r  r  r   r   r   test_stairs_invalid_update  s    rW  c                  C   sX   t ddgg d} tjtdd" | jtdd W d    n1 sJ0    Y  d S )Nr   r   r   rT  rh  r   rF  )r   r>  r|   r}   r  rH  rO   rT   rV  r   r   r   test_stairs_invalid_update2  s    rX  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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   r  r   r{   r   TA)r   rb  r!   rZ  r9   B)r   rb  r;   r!   r  rl  r   C)r   r  r   r!   r   D)r  r   r  r;   r!   rb      E)r   r  r   r  r!   r/  r  r&  F)r  r   r  r   r!   r   rT     r   G)r  r   r  r   r!   rb  r  r  r5  //H)r   r  r   r  r  r!   r   r$   )rO   r   r)  r  copyr  r   r   r>  r   r  r/   )r-   r*   Zynr   r   r   r   r   test_stairs_options  s2    $
&.
4rf  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>  rO   rT   r|  Zxticks)fr   r   r   r   test_stairs_datetime  s    rk  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nr%  r      r  )rO   r   r   r   rJ  )r-   r*   rP  r   r   r   contour_dat  s    "rm  Zcontour_hatchingc               
   C   s@   t  \} }}t \}}|j| ||dg dtdddd d S )Nrz  )r  \rc  rk  Zgrayrh   r   )r  r`   extendr  )rm  r   r   contourfr1  )r-   r*   rP  r   r   r   r   r   test_contour_hatching  s    rq  Z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   ZRdBug333333r  rh   )levelsr`   r  r  ro  gg^I+r*   ry   r   )rr  r5  
linestylesr  rG  r    )rr  r5  r  r  F)Zerase)
rm  r   r   rp  rO   rT   r1  r  r0   Z	add_lines)	r-   r*   rP  r   r   csZcs1Zcs2r5   r   r   r   test_contour_colorbar&  s(    
ru  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   rd   Tr  
rasterizedr   r-   r*   )r  r)  rx  )r   r   rO   rP   rQ   rZ  r   rv  )r-   r*   r   r   r)  r   r   r   test_hist2d<  s    

ry  Z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   rd   Trw  )	r   r   rO   rP   rQ   r   rZ  r   rv  r  r   r   r   test_hist2d_transposeN  s    
rz  c                  C   s>   t jd\} }t  }|tfD ]}|j| |dd q$d S )Nr  Tr  )rO   rP   r   r   r   rv  )r-   r*   r   objr   r   r   test_hist2d_density\  s    r|  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   Tr  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{   rn  r*   r[  limer  r         )0.50.60.7z0.8)r-   r*   r    r1  c2r-   r   r*   r    r1  r    r1  r  )r    r1  r)  )rO   r   r   r   r   )selfr)  r   r   r   r   r   test_scatter_plotd  s    **zTestScatter.test_scatter_plotzscatter_marker.pngr  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  r~  r  )r   r   r   r*   r[  r  )rP  r  r  r   )r  rn  gr[  r1  )r    r1  r#  r]   rx   r#   	fillstyler(  r   r   r  )r   r   r   rz  r{  rO   r   r   Zcolumn_stackr   r   )
r  r   r  r   r   rxZryarearA  r  r   r   r   test_scatter_markero  s2    zTestScatter.test_scatter_markerZ
scatter_2DrE   )r  rG   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr{   r   r  face)r    r1  r#  )rO   rT   r  r   r   r   )r  r-   r*   rP  r   r   r   r   r   test_scatter_2D  s    

zTestScatter.test_scatter_2DrF   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 )	Nr  r  c                 S   s   g | ]}t |qS r   r   r  r   r   r   r     r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   r  r   r   r   r     r   r  r  r  )rO   r   r   r   )
r  r3   r4   r  r  r-   r*   r    r1  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<0    Y  t t, tjg dg dg dd W d    n1 s0    Y  d S )Nr   r   r   r   ro  rf  )r|   r}   r  r   r   r  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.3r  rx   r   r  r"  r  ?r    r]   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )	r   r   rz  r{  get_facecolorsr8  r   get_edgecolorsget_linewidthsr  collr   r   r   test_scatter_unfilled  s    z!TestScatter.test_scatter_unfilledr  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   r  r  r-   r  r  r  r  r  )r   r   r   r  r  r  r  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 sD0    Y  tjtdd. t|dd  |dd  | W d    n1 s0    Y  tjtdd t||d W d    n1 s0    Y  d S )Nr   zsame size as x and yrh  r   zfloat array-likerI  )rO   rT   r|   r}   r  r   r   )r  r-   r   r   r   test_scatter_size_arg_size  s    
4<z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg ddtjtjgdd}t| ds2J t jg ddtjtjdgdd}t| dsfJ d S )Nrf  r   r  r   r  r   r   r   r   )r   r   rO   r  r  
same_colorr  r  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/  r  r   r   r   r  Tr    r1  r`   Zplotnonfiniter   r{   r    r1  r`   )r1  r   r   r   r1  Zset_badr   r   rO   r  r  r3   r4   r   r`   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/  r  r   r   r   r  Fr  r   r{   r  r  r  r   r   r   test_scatter_no_invalid_color  s    z)TestScatter.test_scatter_no_invalid_colorc              	   C   s`   g d}t  }tjtdd. |j|||tddddd W d	   n1 sR0    Y  d	S )
r  rf  r  rh  r  rd   r   r   )r    r  r  r  N)r   r  r|   r}   r  r   r  r  )r  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   )r  r3   r4   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 )Nrd   r   r   r  )rO   rT   r   r   rk   )r  r3   r4   r-   r   r   r   r   test_scatter_different_shapes  s
    
 z)TestScatter.test_scatter_different_shapes)r  NZrgby
conversion)rZ  N)r   N)NN)rn  r  r[  r   N)jauner  r  r   r   r{   r   r8  )r  z0.4r  r  )r  rZ  r  C5)r  r   r  r  r  r   r   r   r   rZ  z0.0r  r   r   r   zc_case, re_keyc                 C   s   dd }d}ddd}|d u r8t jjj|di ||d nJtjt|| d	( t jjj|di ||d W d    n1 sx0    Y  d S )
Nc                   S   s   dS Nr   r   r   r   r   r   get_next_color3	  s    z2TestScatter.test_scatter_c.<locals>.get_next_colorr   z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r8  r  r  )r    r#  r?  xsizeget_next_color_funcrh  )r   r  Axes_parse_scatter_color_argsr|   r}   r  )r  Zc_caseZre_keyr  r  REGEXPr   r   r   test_scatter_c1	  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{   ro  r   r   r  )r   r   rO   ri   r   )r  r3   r4   ZrgbZrgbarX   rW   r   r   r   test_scatter_single_color_cG	  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    r]   r1  r  C3lines.linewidth)rO   rT   r   r   r   r   rK   r  r   r   r   )r  r-   r   r   r   Zpcr   r   r   test_scatter_linewidthsW	  s    
z#TestScatter.test_scatter_linewidths)__name__
__module____qualname__r	   r  r  r  r
   r  r  r  r   r   contextr  r  r  r  r  r  r  r  Zparams_test_scatter_cr|   markparametrizer  r  r  r   r   r   r   r}  c  sx   









		












+


r}  )r#  c                K   s   | ||d ur|ni |fS r   r   )r    r  r#  r?  r   r   r   _paramsf	  s    r  _resultz	c, colorszparams, expected_resultr[  r   )r    r5  rn  r  r  ro  r  )r   r   r   r   c                 C   s@   dd }t jjj| d|i\}}}||jks0J t||j d S )Nc                   S   s   dS r  r   r   r   r   r   r  z	  s    z5test_parse_scatter_color_args.<locals>.get_next_colorr  )r   r  r  r  r    r   r5  )paramsZexpected_resultr  r    r5  Z_edgecolorsr   r   r   test_parse_scatter_color_argsk	  s    r  zkwargs, expected_edgecolorsr  r  r   )r   r#  )r    r   r#  )r   r   c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ksJJ d S )Nc                   S   s   dS r  r   r   r   r   r   r  	  s    z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr    r#  r   )r  r  )popr   r  r  r  )r?  Zexpected_edgecolorsr  r    r#  rD  Zresult_edgecolorsr   r   r   (test_parse_scatter_color_args_edgecolors	  s    
r  c                  C   sh   dd } t jtdd> tg dg dg}tjjj|d i d| d W d    n1 sZ0    Y  d S )	Nc                   S   s   dS r  r   r   r   r   r   r  	  s    z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 rangerh  )r   r   r  )r   r   gffffff?r   )r?  r  r  )	r|   r}   r  rO   r   r   r  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sZJ tj	t
dd tj|d}W d    n1 s0    Y  ||u sJ t  tj	t
dd tj|d}W d    n1 s0    Y  t|tjj ksJ tj	t
dd tj|d}W d    n1 s.0    Y  ||u sFJ tj	t
dd tj|d}W d    n1 sx0    Y  ||u sJ | dksJ tj	t
dd tj|d}W d    n1 s0    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_offsetr  r   r   r   __init__	  s    z,test_as_mpl_axes_api.<locals>.Polar.__init__c                    s    d| j ifS )Nr  r  r  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 deprecatedrh  y   )Zmatplotlib.projections.polarr  rO   r   r  r   r  typer|   rp  r   r   r   r   Z	_subplotsZsubplot_class_factoryZget_theta_offsetr   )r  ZprjZprj2Zprj3r   Z
ax_via_gcar   r  r   test_as_mpl_axes_api	  sX    **,,,r  c                  C   sZ   t  \} }t  \}}t | |t  u s2J | t  u sBJ t |  t | d S r   )r   r   Zscar   Zgcfr   )fig1r   fig2r   r   r   r   test_pyplot_axes	  s    

r  Z
log_scalesc                  C   sL   t  \} }|ttdd |jddd |  |jddd d S )Nr   r   r         @rA  r3  )	r   r   ro   rO   r   r   r  r  r  r   r   r   r   test_log_scales	  s
    r  c                  C   sR   t  \} }|jddd |jtd | |   krHdksNn J d S )Nr   )r  r  r   r   rd   )	r   r   rp   r@   r   r   ZMultipleLocatorrq   rr   rC  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 sF0    Y  |d tjtdd |dd W d    n1 s0    Y  d S )Nr   zAttempted to set non-positiverh  rb   rd   )	r   r   r  r|   rp  rq  r<  r  r=  r   r   r   r   test_log_scales_invalid
  s    
*
r  Z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   rd   r   r   r   r  r   r   rd   )r   F   )r-   r  r   y3r-   r  r   r  rw  )	r   r   rO   r   r   	stackplotr<  r=  r   )r   r-   r  r   r  r   r)  r   r   r   test_stackplot
  s    


r  Z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 ]}tdD ]t}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   rd   )rO   rW  r   rP   exprT   )r  r}  rt   r   jr-   r*   rP  r   r   r   layers#
  s    >z'test_stackplot_baseline.<locals>.layersr{   r   r  r   r  Zzeror4  rJ  symr   r   Zwiggler  Zweighted_wiggle)rO   rP   rQ   r   r   r  r   rU  )r  r@  r   r
  r   r   r   test_stackplot_baseline
  s    

r  c                 C   s   | S r   r   )r1  r   r   r   r(  9
  r   c                 C   s   t jd tjjt jjddddfi | }t \}}|	ddrR|
d n
|d |	d	d
sxtjd tjd< |j||fi | d S )N  r  r   )r0  r   )meansigmasizevertTr   patch_artistFr  boxplot.boxprops.linewidth)rO   rP   rQ   r   ZcbookZboxplot_statsZ	lognormalr   r   getr  r  r   Zbxp)stats_kwargstransform_stats
bxp_kwargsZlogstatsr   r   r   r   r   _bxp_test_helper8
  s    
r  zbxp_baseline.pngr  )rQ  r   c                   C   s
   t   d S r   r  r   r   r   r   test_bxp_baselineJ
  s    r  zbxp_rangewhis.pngc                   C   s   t tddgdd d S )Nr   r   Zwhisr  r  r  r   r   r   r   test_bxp_rangewhisQ
  s    r  zbxp_percentilewhis.pngc                   C   s   t tddgdd d S )Nr   _   r   r  r  r   r   r   r   test_bxp_percentilewhisX
  s    r  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   s$   t | tdD ]\}}||d< q| S NABCDr!   r;  r   statsr1  r!   r   r   r   r   c
  s    
z(test_bxp_with_xlabels.<locals>.transform)r  r  r   r   r   r   test_bxp_with_xlabels_
  s    r  zbxp_horizontal.pngr   )r  rQ  r   r   c                   C   s   t tddd d S )NFr  r  r  r   r   r   r   test_bxp_horizontalk
  s    r  zbxp_with_ylabels.png)rQ  r   r   c                  C   s   dd } t | tddd d S )Nc                 S   s$   t | tdD ]\}}||d< q| S r  r  r	  r   r   r   r   y
  s    
z(test_bxp_with_ylabels.<locals>.transformFr  r  r  r  r  r   r   r   test_bxp_with_ylabelst
  s    r  zbxp_patchartist.png)r  rQ  r   c                   C   s   t tddd d S )NT)r  r  r  r   r   r   r   test_bxp_patchartist
  s    r  zbxp_custompatchartist.pngr   c                   C   s    t tdtdddddd d S )NTrq  r   :)r   r   r  )r  boxpropsr  r  r   r   r   r   test_bxp_custompatchartist
  s    r  zbxp_customoutlier.pngc                   C   s   t ttdddddd d S )Nr   r@  r  rz   r]   mfc)Z
flierpropsr  r  r   r   r   r   test_bxp_customoutlier
  s    r  zbxp_withmean_custompoint.pngc                   C   s    t tdtdddddd d S )NTr   r@  r   r  )	showmeansZ	meanpropsr  r  r   r   r   r   test_bxp_showcustommean
  s    r  zbxp_custombox.pngc                   C   s   t ttdddddd d S )Nrl  r[  r{   rz   r   r   )r  r  r  r   r   r   r   test_bxp_custombox
  s    r  zbxp_custommedian.pngc                   C   s   t ttdddddd d S )Nrl  r[  r{   r  )Zmedianpropsr  r  r   r   r   r   test_bxp_custommedian
  s    r  zbxp_customcap.pngc                   C   s   t ttdddddd d S )Nrl  r  r{   r  )Zcappropsr  r  r   r   r   r   test_bxp_customcap
  s    r  zbxp_customwhisker.pngc                   C   s   t ttdddddd d S )Nrk  r}  r{   r  )Zwhiskerpropsr  r  r   r   r   r   test_bxp_customwhisker
  s    r  zbxp_withnotch.pngc                   C   s   t tddd d S )NT)Zshownotchesr  r  r   r   r   r   test_bxp_shownotches
  s    r   zbxp_nocaps.pngc                   C   s   t tddd d S )NF)Zshowcapsr  r  r   r   r   r   test_bxp_nocaps
  s    r!  zbxp_nobox.pngc                   C   s   t tddd d S )NF)Zshowboxr  r  r   r   r   r   test_bxp_nobox
  s    r"  zbxp_no_flier_stats.pngc                  C   s   dd } t | tddd d S )Nc                 S   s   | D ]}| dd  q| S )Nfliers)r  )r
  r1  r   r   r   r   
  s    z*test_bxp_no_flier_stats.<locals>.transformF)Z
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  Zmeanliner  r  r   r   r   r   test_bxp_showmean
  s    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
  s    r'  zbxp_scalarwidth.pngc                   C   s   t tddd d S )Nr  widthsr  r  r   r   r   r   test_bxp_scalarwidth  s    r*  zbxp_customwidths.pngc                   C   s   t tg ddd d S )N)r   r  g?g333333?r(  r  r  r   r   r   r   test_bxp_customwidths	  s    r+  zbxp_custompositions.pngc                   C   s   t tg ddd d S )N)r   r   r  rz  r  r  r  r   r   r   r   test_bxp_custompositions  s    r,  c                   C   s@   t t" ttdgdd W d    n1 s20    Y  d S )Nr   r(  r  r|   r}   r  r  r  r   r   r   r   test_bxp_bad_widths  s    r.  c                   C   sB   t t$ ttddgdd W d    n1 s40    Y  d S )Nr   r{   r  r  r-  r   r   r   r   test_bxp_bad_positions  s    r/  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  ry  rz     ra  '  r   	bootstrapnotchrp  r   r-   )r4  r5  r)  	rO   rP   rQ   r   hstackr   r   r  r=  )r-   r   r   r)  r   r   r   test_boxplot#  s    
r9  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  ry  rz  r0  r1  ra  r   r   r2  ^)r4  r  r6  r  r7  )r-   r   r   r   r   r   r   test_boxplot_sym26  s    
r;  zboxplot_sym.pngc                  C   sJ   t ddd} t d| dg} t \}}|j| | gdd |d d S )	Nry  rz  r0  r1  ra  r  r  r6  )rO   r   r8  r   r   r  r=  r  r   r   r   test_boxplot_symF  s
    r=  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  r0  r   r   r2  r   r3  )r  r   T)r4  r5  Z	autorange)	rO   rP   rQ   ri   r8  r   r   r  r=  )r-   r  r   r  r   r   r   r   test_boxplot_autorange_whiskersS  s    

r>  c                 C   sZ   t ddd}t d|dg}t| | ||g W d    n1 sL0    Y  | S )Nry  rz  r0  r1  ra  )rO   r   r8  r=   r   r  )r   rc_dictr-   r   r   r   _rc_test_bxp_helperf  s
    ,r@  Zboxplot_rc_parameters)rQ  r  r   r   c                  C   s   t jd t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gdd}ddddddddd
dddd}|||g}t||D ]\}}t|| qtjj	dd |d 
 D v sJ d S )Nr  r{   Tr   r  r2  r[  rx   r  rl  r   rn  r    r  )zboxplot.notchboxplot.whiskerszboxplot.bootstrapzboxplot.flierprops.colorboxplot.flierprops.markerz"boxplot.flierprops.markerfacecolorz"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylezboxplot.flierprops.linewidthzboxplot.boxprops.colorr  zboxplot.boxprops.linestylezboxplot.capprops.colorzboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorzboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalrA  zboxplot.patchartist-.)rA  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   s   g | ]}t |qS r   )r  r  r   r   r   r     r   z.test_boxplot_rc_parameters.<locals>.<listcomp>r   )rO   rP   rQ   r   r   r;  r@  r=   r   r   Zget_children)r   r   Zrc_axis0Zrc_axis1Zrc_axis2	dict_listr  Zrc_axisr   r   r   test_boxplot_rc_parametersn  sZ    
rE  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  ry  rz  r0  r1  ra  r  r  r        @r2  r   r   )r4  usermediansconf_intervalsr5  r6  )
rO   rP   rQ   r   r8  r   r   r   r  r=  )r-   r   r   ZCIsr   r   r   test_boxplot_with_CIarray  s    rI  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(#  rl  X   i^  i@ ix  i  r  r   Fminorwhich)
rO   r   r   r   r  r  r  rC   r  r@   )r-   r   r   r   r   test_boxplot_no_weird_whisker  s    


rN  c                  C   s   t ddd} t d| dg} t \}}tt" |j| ddgd W d    n1 s\0    Y  tt. |j| | gddgddggd W d    n1 s0    Y  d S )	Nry  rz  r0  r1  ra  r   r   )rG  	rO   r   r8  r   r   r|   r}   r  r  r  r   r   r   test_boxplot_bad_medians  s    0rP  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 sb0    Y  tt, |j| | gddgdggd W d    n1 s0    Y  d S )	Nry  rz  r0  r1  ra  r   r   )rH  rO  r  r   r   r   test_boxplot_bad_ci  s    6rQ  c                  C   sZ   t d} t \}}|| d d  dks4J |j| ddd d  dksVJ d S )Nrd   boxesr   r   r0  )rO   rT   r   r   r  r-  )r-   r|  r   r   r   r   test_boxplot_zorder  s    
rT  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sZJ qZqN|d d  dksJ |d d  dksJ d S )Nr1  rt  rx   rB  r:  zboxplot.meanprops.markerr   rl  rb   T)r  )ZwhiskersZcapsrR  Zmediansr   r#  r   Zmeans)r   r   r   rO   rT   r  Z
get_marker)r   r   Z	test_dataZ
bxp_handleZ	bxp_linesZ	each_liner   r   r   test_boxplot_marker_behavior  s    



rU  z&boxplot_mod_artists_after_plotting.pngc                  C   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d q2q&d S )N)r8  r  r  r  gQ?gQ?gQrx   r<  r   )r   r   r  	set_color)r-   r   r   Zbpkeyr{  r   r   r   &test_boxplot_mod_artist_after_plotting  s    rX  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   s   g | ]}t jjd dqS r   r  rO   rP   rR   r   rD  r   r   r   r   
  r   z1test_vert_violinplot_baseline.<locals>.<listcomp>r   r   r  r  showextremashowmediansr@  )r  r  r^  r_  r)  )rO   rP   rQ   r   r   r  
violinplotr   )r)  r   r   r   r   r   test_vert_violinplot_baseline  s    ra  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>r   r   r   r]  r   r  rO   rP   rQ   r   r`  r   r)  r   r   r   test_vert_violinplot_showmeans  s    rd  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   %  r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>r   r   r   r]  rb  rc  r   r   r    test_vert_violinplot_showextrema   s    re  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   /  r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>r   r   r   r]  rb  rc  r   r   r    test_vert_violinplot_showmedians*  s    rf  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   9  r   z0test_vert_violinplot_showall.<locals>.<listcomp>r   r   r   ?r   rF  r   r  r   r  )r  r  r^  r_  	quantilesrb  rc  r   r   r   test_vert_violinplot_showall4  s    ri  z#violinplot_vert_custompoints_10.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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   D  r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r   r   rd   r  r  r^  r_  pointsrb  rc  r   r   r   $test_vert_violinplot_custompoints_10?  s    rl  z$violinplot_vert_custompoints_200.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )NiYqVc                 S   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   N  r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r   r   r  rj  rb  rc  r   r   r   %test_vert_violinplot_custompoints_200I  s    rm  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   X  r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>r   Fr   r  r  r  r^  r_  rb  rc  r   r   r   test_horiz_violinplot_baselineS  s    ro  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   b  r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r   Fr   r   rn  rb  rc  r   r   r   !test_horiz_violinplot_showmedians]  s    rp  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   l  r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r   Fr   r   rn  rb  rc  r   r   r   test_horiz_violinplot_showmeansg  s    rq  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r   v  r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r   Fr   r   rn  rb  rc  r   r   r   !test_horiz_violinplot_showextremaq  s    rr  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   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z1test_horiz_violinplot_showall.<locals>.<listcomp>r   Fr   r   rg  r   rF  r   r  r   r  )r  r  r  r^  r_  rh  rb  rc  r   r   r   test_horiz_violinplot_showall{  s    rs  z$violinplot_horiz_custompoints_10.pngc               	   C   sF   t  } tjd dd tdD }| j|tddddddd d S )	Ni0c                 S   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r   Fr   rd   r  r  r  r^  r_  rk  rb  rc  r   r   r   %test_horiz_violinplot_custompoints_10  s    ru  z%violinplot_horiz_custompoints_200.pngc               	   C   sF   t  } tjd dd tdD }| j|tddddddd d S )	Ni<9!c                 S   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r   Fr   r  rt  rb  rc  r   r   r   &test_horiz_violinplot_custompoints_200  s    rv  c                  C   sf   t  } tjd dd tdD }tt" | j	|tdd W d    n1 sX0    Y  d S )Ni@ 3c                 S   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z1test_violinplot_bad_positions.<locals>.<listcomp>r   r   r  
r   r  rO   rP   rQ   r   r|   r}   r  r`  rc  r   r   r   test_violinplot_bad_positions  s
    rx  c                  C   sl   t  } tjd dd tdD }tt( | j	|tdg dd W d    n1 s^0    Y  d S )NiA#c                 S   s   g | ]}t jjd dqS rY  r[  r\  r   r   r   r     r   z.test_violinplot_bad_widths.<locals>.<listcomp>r   rf  )r  r)  rw  rc  r   r   r   test_violinplot_bad_widths  s
    ry  c                  C   sl   t  } tjd tjjddg}tt* | j	|ddgddggd W d    n1 s^0    Y  d S )	Nil r   rZ  r   r   r   r  rh  
r   r  rO   rP   rQ   rR   r|   r}   r  r`  rc  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 sX0    Y  tt$ | j	|g dgd W d    n1 s0    Y  d S )Niq4r   rZ  )r   r   r   ?rz  )gr   r   r  r{  rc  r   r   r   $test_violinplot_outofrange_quantiles  s    2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   rZ  )r   r   rg  rz  )rO   rP   rQ   rR   r   r`  )r3   r4   r)  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  rz  rZ  )r  r  rz  r  r   r   r{   r  r  Z	ABCDEFGHIr  )	rO   rP   rQ   r  rR   r   r   r`  values)r3   r4   r  s1s2Z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   rd   r{   r  r   r   F)r  Zmanage_ticks)
r   r   r<  rq   rO   rP   rQ   rR   r  r   )rD  r   Zold_xlimr  r   Z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sVJ t	|
 ddgksnJ dd | D dd	gksJ d S )
Nr   r{   r  r   )r  r  c                 S   s   g | ]}|  qS r   get_textr  r   r   r   r     r   z+test_boxplot_not_single.<locals>.<listcomp>r   5)r   r   r  rO   rP   r   r  r   rq   r   
get_xticksrL  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)rO  format)r   ro   r=   r   updateioBytesIOsavefigr[  r   r   r   test_tick_space_size_0  s    r  )errorbar_basicZerrorbar_mixedr  c            
   	   C   s  t dd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   r   r   )r  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr   T)r  r  r  r  rx   r  r   zVert. symmetricZnbinsrJ  )r  r   r  zHor. symmetric w/ alphar  z--or  r  r   zH, V asymmetricr  r   r#  r  )r  r  r   ecolorZcapthickzMixed sym., log yzVariable errorbarsr   r-   r*   r  r  r)  )rO   rT   r  r  r   r   r   rr  r  r   locator_paramsr  maximumZsuptitle)
r-   r*   r  r  r   r   r
  ZylowerZ
yerr_lowerr)  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sJ t| tdksJ d S )Nrd   r   r  r   r  C1C2)	r   r   rO   rT   rr  ro   r  to_rgba	get_color)rj  r   r-   r*   rv  rD  rw  Zln1r   r   r   test_errorbar_colorcycle2  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 qBd S )Nr   r   r   c                    s   g | ]}t   | qS r   )rO   r  r   r  r-   r   r   r   D  r   z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)r  r  r  r  r  rk  rx   r  )r  rz   r]   r  )r  rz   r]   r   r  )rO   rT   r   r   r;  rr  )r3   r4   r*   ZaxtZaxryir   r   r  r   test_errorbar_cycle_ecolorA  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 s0    Y  t	
t" |j|||dd W d    n1 s0    Y  t	
t$ |j||||dd	 W d    n1 s0    Y  d S )
Nr   r   r   r   r   rx   r  )r  r   r  )r   r   r   rO   rT   r  r  vstackrU  r|   r}   r  rr  )r   r   r-   r*   Zyerr1r  r  r   r   r   test_errorbar_shapeP  s    00r  Z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   rZ  )r  r  lolimsr  r   r   rx   r  magenta)r]   r  r  r  r  r  r  r   r   r{   r   @r   r   cyan)r]   r  r  r  xlolimsxuplimsr  r  r  r  capsizer   )r   r  zErrorbar upper and lower limits)
rO   rT   r  r   r   rr  Z
zeros_likeZ	full_liker<  r  )r-   r*   r  r  r  r   r   r  r  r  r  r   r   r   test_errorbar_limitsb  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   r  )rO   rT   r   rr  r  r  r  r  )r-   r*   plotlinerD  ZbarlinesZ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sLJ | dks\J d S )Nr   r   Noner1  rK   z	steps-midroundr5  r6  Zbevel)
r  r  r  r]   r  r:  Zdash_capstyleZdash_joinstyler9  r8  )rO   rT   r   rr  Zget_fillstyleZget_drawstyle)r-   r*   r  rD  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   rd   r   r   rl  r1  r  )r-   r*   r  r  r]   r  )r   r{   r   z	tab:greenr  r*   )r-   r*   r  r   r  r]   r  r   r   r  ztab:bluerC  rx   r    )r-   r*   r  r   r  r]   r  r   r  )rl  r  rC  )r1  r1  rx   )r  r*   r    )r[  r  rn  )r  r]   r  r   r  )Z
prop_cycle)r-   r*   r  )r-   r*   r  r   )r-   r*   r  r   )r   rr  r<  r   r   rc)r3   r4   r   Z_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 sd0    Y  tjtdd" |j| ||d	d W d    n1 s0    Y  tjtd
d& |j| ||ddgd W d    n1 s0    Y  tjtdd" |j| ||dd W d    n1 s*0    Y  d S )Nr   r   r   r  znot a tuple of two integersrh  rf  )
errorevery)r  r{   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	rO   r   r   r   r   r|   r}   r  rr  )r-   r*   r  r   r   r   r   test_errorbar_every_invalid  s    004r  c           	   
   C   s6  t ddd}|d|  }|d }| }|  }tdg dD ]p\}}|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  Zrgbk)r   r   r   rz  r  r   )r  r  r    r  )r    r0  r   )r  r    r   r   )r   r   rx   )r  r  r   rS  )r  r   r   r   r{   r  )r  r  r  r    r   )FTFr   r  )rO   r   r   r;  rr  ro   r  )	r3   r4   r-   r*   r  rX   rW   r   shiftr   r   r   test_errorbar_every  sB    (*
,,
,,r  
elinewidthrf  c                 C   s"   t jg dg dg d| d d S )Nrf  )r  r  )r   rr  )r  r   r   r   test_errorbar_linewidth_type  s    r  Z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   rd   r  r  Tr  r-   )r	  r  r)  rO   r   r   r   r  )d1d2r   r   r)  r   r   r   test_hist_stacked_stepfilled  s    r  Zhist_offsetc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   rd   r  r   r{   r  r   r  r   r  r  r  r   r   r   r   r   test_hist_offset  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   rd   rb   r   )rO   r   r   r   r  r=  r<  r  r   r   r   r   r   test_hist_step  s
    r  zhist_step_horiz.pngc                  C   s@   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   rd   r  r   r{   r  r  r9   )r	  r;   r  r  r   r   r   test_hist_step_horiz(  s    r  Z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   rd   r  r   r{   r  r#  rF  r  r   r  T)weightsr	  r  r  )r  r  Zw1Zw2r   r   r   r   r   test_hist_stacked_weighted1  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  )rO   r   r   r   r   stemr   r/   r  r-   r   r   r   r   r   	test_stem<  s    r  c                  C   s`   t  \} }ttd}ttd}|| ||| |j||dd |j||ddd d S )Nrd   r   )r  zb--)r  r  )r   r   r   r   r  )r   r   r-   r*   r   r   r   test_stem_argsK  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_datesX  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  Zkxr  r9   )r  r  r  r  r;   )rO   r   r   r   r   r  r   r  r   r   r   test_stem_orientation`  s    r  Z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   rd   r  r  Tr   )r	  r  r  r  r  r   r   r   "test_hist_stacked_stepfilled_alphal  s    r  Zhist_stacked_stepc                  C   s@   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   r{   r  r   rd   r  r  Tr  r  r  r   r   r   test_hist_stacked_stepu  s    r  Z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   rd   r  T)r  r  r  r  r   r   r   test_hist_stacked_density~  s    r  zhist_step_bottom.pngc                  C   s4   t ddd} t \}}|j| t ddd d S )Nr   r{   r  rd   r  )r7   r	  )rO   r   r   r   r  rT   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  r)  rD  polygonr+  r   r   r   test_hist_stepfilled_geometry  s    *$r  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  r  r   r   r   test_hist_step_geometry  s    4r  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  r7   r	  r   r   r{   r   r   r  r   r  r  r   r   r   $test_hist_stepfilled_bottom_geometry  s    *$r  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  r  r  r  r   r   r{   r   r   r  r   r  r  r   r   r   test_hist_step_bottom_geometry  s    4r  c                  C   s  g d} g d}g d}t j||g| ddd\}}}t|dksDJ |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  r  r   r  r  Zdata_1Zdata_2rD  r   r  r+  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sDJ |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  r  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sJJ |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  r7   r	  r   r   r   r{   r   r  r   r   r  rF  r  r  r   r   r   ,test_hist_stacked_stepfilled_bottom_geometry  s(    

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| dg ddd\}}}t|dksJJ |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  r  r  r   r   r   r{   r   r  r   r   r  rF  r  r  r   r   r   &test_hist_stacked_step_bottom_geometry  s     

4
4r  Z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  r  6  r  )r     r  r  r   i  )r  r  r  r0  r0  rl     )rP  rP  rP  rP  r  r  r   r   r   r   rd   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  ))gXxn?r   r!  )r!  r   g `p?)r!  r   gǟ?)r!  gˢ`?r   )gC?r!  r   )gK?r!  r   )r   r  z yellowr  r  rd   r  mid)r  r	  r  r   r!   zupper right)r   r   r   )r%   Zbbox_to_anchorZncol)r   r   r  r/   )r@  r5  labelsr   r   r   r   r   test_hist_stacked_bar  s    r  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 )Nrd   r  r   r   r   r  )r	  r7   )rO   r   r   r  tolistr  r   r   r   %test_hist_barstacked_bottom_unchanged#  s    r  c                  C   s,   t  \} }|jg tdtdgdd d S )Nrd   r  r  )r   r   r  r   r   r   r   r   test_hist_emptydata)  s    r   c                  C   s   t  \} }|jddgdd\}}}|d  dks8J |jddgdgd\}}}|d  dksfJ |jddgd d\}}}|d  dksJ |jddgdd\}}}|d  dksJ |jddgdd\}}}|d  dksJ d S )Nr   r   r  r  Z
_nolegend_Z00)r   r   r  rA   )r   r   rD  barsr   r   r   test_hist_labels.  s    r  Ztransparent_markersc                  C   s:   t jd t jd} t \}}|j| dddd d S )Nr   r  r]  r   r   )r  rc   rO   rP   rQ   r   r   ro   r   r   r   r   test_transparent_markers=  s    r  Z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 ]l\}}	t|D ]Z\}
}|| j|d |
d df||	|d| || j|d |
d df|	|d| q\qLq<|D ]}|g d qd S )Nr   r  r  r  r   )r   r   r   r   r   r   r  )r  r  r   rx   )r  r  r  r{   r-   )r  r  )rb   r   r   r   )r   r   r  r  ro   r  )r   r
  ZrcolorsZbcolorsalphaskwr   r  r  Zrcolorr  Zbcolorr   r   r   r   test_rgba_markersF  s     .r  Zmollweide_gridc                  C   s    t  } | jdd}|  d S )N	mollweider  )r   r   r   r  r   r   r   r   test_mollweide_gridW  s    r	  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 )Nr  r  ri  r   r  r{   )r   r   r   rO   r   r   r  r  r=  rU  transProjectionr   invertedr   r   )r   r   ZlonZlatllr+  Zll2r   r   r   &test_mollweide_forward_inverse_closure`  s    r  c                  C   sz   t  } | jdd}tddd}t||\}}t| | fj}|j	
 |}|j	|}tj||d d S )Nr  r  r   r     r{   )r   r   r   rO   r   r  r  r=  rU  r
  r  r   r   r   )r   r   r-   r*   r+  r  xy2r   r   r   &test_mollweide_inverse_forward_closurev  s    r  
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-Dr  r  r  rd   )r   r  rc   r   r   r   )r   r  rc   r   r  r   r   r  r  r  r   r   r   r   r    s(    	eventplotc                  C   sT  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sJ |||	|d}t }| }|j	dddd|d}t|}||ksPJ d S )Nr   rZ   r  r  )r   r   r  r  r  r  )r   r  r   )r   r   r   )r   r   r   r5  gQ?)ir%  r   r   r  rd   )r   r   r   r   r{   r   )r5  lineoffsetslinelengths)r   r    lor  r   r    r  r  )r5  r  r  r)  )
rO   rP   rQ   r  r  rT   r   r   r   r  )r~  data2r)  Znum_datasetsZcolors1Zcolors2r5  Zlineoffsets1Zlineoffsets2r  Zlinelengths1Zlinelengths2r  r   axobjZcollsZ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   rZ   r  r  N)rO   rP   rQ   r  r   r   r   r  )r~  r  r)  r   r  r   r   r   test_eventplot_defaults  s    r  r5  ))r  )z
tab:orangeztab:pinkztab:cyanZbLacK)rZ  r  N)r   r   r   r   c                 C   s   dgdgdgdgg}dd | D }t |dkr6|d }tt|t |df}t \}}t | dkrp| d } |j|| d}t||D ]\}}t	|
 | qd	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 )Nr  r   r   r    r   r   r   r     r   z)test_eventplot_colors.<locals>.<listcomp>r   r5  N)r  rO   Zbroadcast_tor  Zto_rgba_arrayr   r   r  r;  r   r  )r5  r)  expectedr   r   r  r  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sJ t	dd | D sJ 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  rd   rn  r[  r    r}  r   r   ry   Zdasheddashdotr  )r5  r   r  r   rs  rz   r{   c                 s   s   | ]}t |jtV  qd S r   )
issubclasscategoryr   )r   Zwir   r   r   r    s   z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
rO   rP   rQ   r  r   r   r   r  r  r  )Zrecwarnr~  r  r)  r   r  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   )r!  r!  r!  r!  r  r   r   r  r   r   r   r   r   test_empty_eventplot  s    r#  r)  r;   )NZverticalr9   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"  )r)  r;   optsr   r   r   r   r   test_eventplot_orientation#  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   )r  )r^  r   r  )r3   r4   Zts_1Z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\}}|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(  @  r   z$test_marker_styles.<locals>.<lambda>)rW  r   r   rd   r   )rz   r]   rc   r!   )r   r   r  sortedr=   markersr{  ro   rO   rT   ri   )r   r   r*   r]   r   r   r   test_marker_styles<  s    .r)  zrc_markerfill.pngc                  C   sP   t  \} }td}tg dD ](\}\}}|tjd< |j|| |d q"d S )Nrz  ))r#   r1  )r7   rx   )r   r:  zmarkers.fillstylerj  )r   r   rO   rT   r  r=   r   ro   )r   r   r-   idxr   r]   r   r   r   test_markers_fillstyle_rcparamsE  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 )Nrd   ))rb   rb   r  r  r  r   r  r  rb   r[  )r   r   r   r   ro   r<  r=  )r)  Zmarker_as_tupleZmarker_as_listr   r   r   r   r   test_vertex_markersO  s    r,  Zvline_hline_zorderZ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 q|d d S )Nrd   r   )r   r0  r   rZ  )r   r   r0  r   rz  r}  r   r  r{   zaxvline and axhline zorder testrn  )r  r0  r   r   )r   r   r0  zerrorbar zorder test)r   r   r   r   r   ro   rV   axvliner  rO   rW  rr  )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   rd   )r  r   r  r   r  z.-)r   r  )rd   r#  r  r  r   rd   r  r#  )r   rp   r  axliner3   r4   r   r   r   r   test_axline_loglogy  s    r2  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  ro  )r   r   r   r   r  )gffffffr  r   r  )sloper   )r   r  r  ZC4)r  r   infr  rb   r   r   )r   rp   r0  r  ro   rV   r.  r1  r   r   r   test_axline  s     r6  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   r4  r   r3  r  r4  r   r   r   r   r   r  )r   r   )r   r   r  )r   r   rb   ro  )r   rp   r0  r   ro   r1  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   r7  r9  r   r  r8  r   r  )r   r   r  r{   r   rd   ro  )r   rp   r0  r   set_size_inchesro   r1  r   r   r   test_axline_transaxes_panzoom  s    r<  c                  C   sV  t  \} }tt |d W d   n1 s60    Y  tt  |jdddd W d   n1 sp0    Y  |d tt |jddd W d   n1 s0    Y  |d |d tt |jddd W d   n1 s0    Y  |d tt$ |dd t 	  W d   n1 sH0    Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r   )r4  r   r  )
r   r   r|   r}   r~   r0  r  r  r  r   r   r   r   r   test_axline_args  s     (.
,

,
r=  )Zvlines_basicZvlines_with_nanZvlines_maskedc                  C   s  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 q| | ks
J | | ks J | |	 ks6J 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   rz  )r   r{   r  r   r   r  r   r5  r   )r   r{   r   r   r  rz  r   r?  r{   r  )r   r  )r  r  rn  rl  )r5  r   rz   r  rd   )r   r   r  r  rd   r5  )r   r   rb   r   r   r   )r^  r/  r   r/     r  r  r   )	r   r   rU   rO   r  r<  rr   r   masked_equal)r  r  r  r   r   r   r  r   r   re  x3r  x4y4r   fig3ax5Zx5Zymin5Zymax5r   r   r   test_vlines  s2    rH  c                  C   sb   t  \} }tddi4 |ddd}tj| ds@J W d    n1 sT0    Y  d S Nzlines.colorrZ  r   r   r   )r   r   r   r   rU   r5  r  r  r   r   r<  r   r   r   test_vlines_default  s    rK  )Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   s  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 q| | ks
J | | ks J | |	 ks6J t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S r>  )	r   r   hlinesrO   r  r=  rq   r   rB  )r  r  r  r   r   r   r  r   r   re  r  rC  rE  rD  r   rF  rG  Zy5Zxmin5Zxmax5r   r   r   test_hlines  s2    rM  c                  C   sb   t  \} }tddi4 |ddd}tj| ds@J W d    n1 sT0    Y  d S rI  )r   r   r   r   rL  r5  r  r  rJ  r   r   r   test_hlines_default-  s    rN  r   rY  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)rZ  r   r   r&  r  r   r   r   r   r@  )r   r   r{   r   )rZ  r   r   r  )r   rU   rL  )r3   r4   r)  Ztest_colorsZ	expect_xyZexpect_colorr   r   r   test_lines_with_colors4  s    rO  Zstep_linestylec               	   C   sN  t d } }tdd\}}| }g d}t||D ]h\}}|j| |d|dd |j| |d d|dd |j| |d d|d	d |d
dg |d
dg q8| ||d |d d}tdd\}}| }g d}t||D ]f\}}|jddd|d|d |jddd|d|d |jddd|d	|d |d
dg |d
dg qd S )Nrd   r   )rk  rl  rC  r  r   pre)r   rz   r  r   r  rC  rb   rz  )r  Y0Y1Y2r  rQ  )r   rz   r  r)  rR  rS  )	rO   rT   r   r   r=  r;  r  r<  r=  )r-   r*   r   ax_lstZ	ln_stylesr   r  r)  r   r   r   test_step_linestyleF  s(    rU  Z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)Zmatch_originalr   r  r   r   r1  ii)r   r   r   r   )r   r   r   r   r  r/  )r   r   r3  Circler   r  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsr   rV  r  r<  r=  )r   r   r    p1p2r   r   r   test_mixed_collectiond  s    

rZ  c                  C   s:   t tdtdd} |   |   dks6J d S )Nr   r   )r   r   r   r   )r   r   rO   Zint32Zint64r   Zget_subplotspecZ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?)r  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 ]\}	}
|
d }tdtt|
 }tt d|D ] \}}|j|	|
||||d q tt d|D ]*\}}|j|	|
||||dt j d qVqdS )z)Test axes.specgram in default (psd) mode.r_   r  r  rW  r   r   r  @ffffff@'@rd   r   r   r   rE  r  onesidedtwosidedr{   )NFFTFsnoverlappad_tosidesr  )rb  rc  rd  re  rf  r   r  N)r=   r   intrO   r(  rT   r  r   r   multiplyouterr  rP   rQ   r  r   ceillog2r;  r   r   r   specgramr5  LogNorm)r  rc  fstims
NFFT_freqsr-   y_freqs
NFFT_noisey_noise	all_sidesr*   rb  rd  re  r   rf  r   r   r   test_specgram  s2    
,$

rt  )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 ]\}}
|
d }tdtt|
 }tt d|	D ]"\}}|j||
||||dd q4tt d|	D ],\}}|j||
||||ddt j d	 qlqdS )z%Test axes.specgram in magnitude mode.r_   r  r  rW  r   r   r  r\  r]  r^  r   r   r   r   rE  Nrb   rd   r_  r{   Z	magnituderb  rc  rd  re  rf  rL   r  )rb  rc  rd  re  rf  rL   r   r  )r=   r   rg  rO   r(  rT   r   r   rh  ri  r  r8  rP   rQ   r  r  r   rj  rk  r;  r   r   r   rl  r5  rm  )r  rc  rn  ro  r-   r*   rp  rq  rr  rs  rb  rd  re  r   rf  r   r   r   test_specgram_magnitude  s2    
,&


rv  )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 ]\}}
|
d }tdtt|
 }dD ]}tt d|	D ]h\}}|j||
|||||d tt* |j||
|||||dd W d   n1 s0    Y  q<q$qdS )z,Test axes.specgram in angle and phase modes.r_   r  r  rW  r   r   r  r\  r]  r^  rd   r   r   r   rE  Nrb   r_  )rr  phaser{   ru  dB)rb  rc  rd  re  rf  rL   r   )r=   r   rg  rO   r(  rT   r   r   rh  ri  r  r8  rP   rQ   r  r  r   rj  rk  r;  r   r   r   rl  r|   r}   r  )r  rc  rn  ro  r-   r*   rp  rq  rr  rs  rb  rd  re  rL   r   rf  r   r   r   test_specgram_angle  s4    
,&
ry  c                  C   sF   t jtdddd\} }}}| \}}}}|dkr>|dksBJ dS )z;Test axes.specgram when Fs is None, should not throw error.r  Nr  )rc  r   rZ   `   )r   rl  rO   ri   Z
get_extent)specfreqsr0  r  rM   rN   Zfreq0Z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'.r  upperzimage.originr\   N)rO   rT   r   r   r   r   rl  )r3   r4   r0  signalr   r   r   test_specgram_origin_rcparam  s    



r  c                  C   sP   t d} t | }tt tj|dd W d   n1 sB0    Y  dS )z4Ensure passing origin as a kwarg raises a TypeError.r  r\   r  N)rO   rT   r   r|   r}   r~   r   rl  )r0  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 ]\}	}
|
d }t dtt|
 }tt d|D ]X\}}|jt|	f|
|||d|}t|d|dd ksdJ |jddd qtt d|D ]P\}}|j|	|
|||d|}t|d|dd ksJ |jddd qqd S )Nr2        Y@r   r   r  r\  r]  r^  r  r   r   r   rE  rf  r  r`  F)rf  return_linera  Tr{   )rb  rc  rd  re  r  r   ZxlabelZylabel)rg  rO   r(  rT   r   r   rh  ri  r  rP   rQ   r  r   rj  rk  r;  r   r   r   psdr  r  r  rp   csd)r  rc  rn  ro  r-   Zys_freqsrq  Zys_noiseZ
all_kwargsr  rb  rd  re  r   r?  retr   r   r   test_psd_csd  s@    ,&
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 ]2}
tt d|D ]2\}}|j|
fd|i|	\}}}|jddd qtt d|D ]<\}}|j|
fd|i|	ddi\}}}|jddd q8tt d|D ]4\}}|j|
fd|i|	\}}}|jddd qtt d|D ]4\}}|j|
fd|i|	\}}}|jddd qqd S )Nr2  r  r   r   r  r  r   r   r   rd   r{   rE  r   r_  )rc  re  rf  r   r  r   rx  )rg  r(  rO   rj  rk  rT   r   r   ri  r  rP   rQ   r8  r  r   r;  r   r   r   Zmagnitude_spectrumrp   Zangle_spectrumZphase_spectrum)r  rc  Zfstims1rb  re  r-   rp  rr  rs  r?  r*   r   rf  r{  r|  r2  r   r   r   test_spectrum7  s8    *"
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    n1 sx0    Y  d S )	Nr   T)r  r  r  r   r   r   )
r   r   r   rC   rp   rO   r  r  rW  r  )r
  r   r   r   r   test_psd_csd_edge_casesa  s    r  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r   )r   r   r   remover@   Ztick_bottomrC   Z	tick_left)r3   r4   rW   Zax_twinxZax_twinyrX   r   r   r   test_twin_removek  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f d| d| |jf d| d| |jf d| d| |jf ddi| d S )Nc                 S   s.   |  d | jd | jd d  d d S )NTF)Zset_frame_onr   set_visiblespinesr  r   r   r   make_patch_spines_invisible}  s    
z5test_twin_spines.<locals>.make_patch_spines_invisible)r   r{   r  r  )r'   )r  r  Tr   zb-)r   r{   r   zr-)r  r   r   zg-r   r   r   r   A   r   )r  r6  r*   )r  r5  r  r-   )r   r   rH  r   r   r  r'   set_positionr  ro   r<  r=  rC   r!   rV  r  r  tick_params)	r  r   hostZpar1Zpar2rX  rY  Zp3Ztkwr   r   r   test_twin_spinesz  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  )r  i-  ri  r  r   g     @@z#BEAED4ro  rF  )r   r  z#7FC97Fr   )r   r  r   r  )r   r)  )r   r  r)  )
r=   r   r   r   r   rO   r   r   ro   r  )r   r   r)  r   r   r   r   test_twin_spines_on_top  s(    


r  z(grid_which, major_visible, minor_visible))rh   TT)majorTF)rK  FTc                    sh   t jd| d t \}}|j  t fdd|jj	D sFJ tfdd|jj
D sdJ d S )NT)ru  zaxes.grid.whichc                 3   s   | ]}|j   kV  qd S r   gridliner   r   tick)major_visibler   r   r    s   z*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   s   | ]}|j   kV  qd S r   r  r  )minor_visibler   r   r    s   )r   r   r  r   r   r  r   r  r@   
majorTicks
minorTicks)Z
grid_whichr  r  r   r   r   )r  r  r   test_rcparam_grid_minor  s    
r  c                  C   s   t  \} }|  | j  |jjd j s4J |jdd | j  |jjd j r`J |jdd | j  |jjd j sJ |  | j  |jjd j rJ d S )Nr   FZvisibleT)	r   r   r  r  r   r@   r  r  r   r   r   r   r   	test_grid  s    



r  c                  C   s   t  \} }|jdddd |jjd j r2J |jdd |jjd j sTJ t ddi> |	  |jdddd |jjd j sJ W d    n1 s0    Y  d S )	NTr  rd   )resetrM  	labelsizer   rZ  ro  ru  )
r   r   r  r@   r  r  r   r  r   clearr   r   r   r   test_reset_grid  s    r  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  qPd S )NTinrd   r   r  r5  r/  r  rj  r  rF  r{   rl  )	directionlengthr6  r   padr  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r  Zdraw_without_renderingr  r@   Zreset_ticksrC   )r3   r4   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   r   r.  ro   r   rr   r   r   r   r   test_vline_limit  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@0    Y  tjtdd  | |d|d W d    n1 s~0    Y  tjtdd  |||dd W d    n1 s0    Y  tjtdd  ||d|d W d    n1 s0    Y  d S )	Nr   z"ymin must be a single scalar valuerh  )yminymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)rM   rN   z"xmax must be a single scalar value)r=   r  Znum2dater|   r}   r  )ZfvfhargsZbad_limr   r   r   test_axline_minmax  s    ...r  c                  C   s   t jddddd\} }|d g dg d |d  \}}|d  \}}|dksZJ |dksfJ |dksrJ |d	ks~J d S )
Nr   r   T)r  r  r  r   r   rf  )r   r   r  r{   r  )r   r   ro   rq   rr   )r   r
  r  r  r  r  r   r   r   test_empty_shared_subplots  s    r  c                  C   s   dD ]} t jddd\}}|d jd| dd |d  dksBJ |d  | ksVJ t jddd\}}|d jd| d |d  d	ksJ qd S )
Nboxdatalimr   T)r  r  r   )
adjustablesharer   r  rT  )r   r   
set_aspect
get_aspectZget_adjustable)r  r   r
  r   r   r   test_shared_with_aspect_1*  s    r  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szJ |d  |d  ksJ d S )	Nr   T)r  r  r   r   )r  r   r{   r   )r   r   r  ro   r   rq   rr   r  r   r   r   test_shared_with_aspect_27  s    r  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sJ |d  |d  ksJ |jj|jj	 }|D ]P}|
 }|j|j	 }|jj|jj	 }|| | }t|d
t| d
ksJ qqd S )Nr  r   T)r  r   r   r  r   r   r{   r   )r   r   r  ro   r   rq   rr   Zbbox_inchesrt  r6  get_positionviewLimr  r  )	r  r   r
  Z
fig_aspectr   r   
box_aspectZ
lim_aspectr  r   r   r   test_shared_with_aspect_3B  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  r  r   bboxextents)r   r   r   r   r   r   r   test_twin_with_aspectV  s    

r  c                  C   s   d} d}d}d}t j }| }|| | | | ks>J | |ksNJ |||\}| |kslJ | |ks|J |d | |ksJ | |ksJ |jdd |	  | | ksJ | |ksJ d S )N)r!  rW  )      $r  )r  r  FT)Zvisible_only)
r=   r   r   r   ro   rq   rr   r  Zrelimr   )r  r  r   r   r   r   r2  r   r   r   test_relim_visible_onlya  s&    

r  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    Zlarge)r  outr  N)r   r   r   r  r   r   r   r   test_text_labelsizez  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FrogsZHogsDogsLogsr   r   rj  rd   ZyellowgreenZgoldZlightskyblueZ
lightcoralr   r   r   r   )r  r  r  %1.1f%%Tr\  )exploder  r5  autopctshadow
startangle)r   r   pie)r  sizesr5  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  r  r5  r  r  r  
wedgepropsrs  )lr1  r    exr1  r  r  r    )r  r  r5  r  r  r  r  r)  )r   r  r  r   r   )r  r  r5  r  r)  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  r  r5  r  r  r  r  r?   rV  zCenter point)r   r  ->Zarc3)
arrowstyleZconnectionstylesquareZ	lightgrey)Zboxstyler   )r+  r-  rL  r  rs  )r   r  r/  r  r  r  r  r5  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  rs  r   r  r  r  r   r   r   test_pie_linewidth_2  s    r  zpie_ccw_true.pngc               
   C   s@   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nr  r  r  r  r  Tr\  )r  r  r5  r  r  r  Zcounterclockrs  r  r  r   r   r   test_pie_ccw_true  s    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  r  r5  r  r  r  r  framer?   rb   )r   r   )r{   r   rs  r  r  r   r   r   test_pie_frame_grid  s(    r  zpie_rotatelabels_true.pngc               
   C   s@   d} g d}g d}d}t j||| |ddddd t d	 d S )
N)ZHogwartsr  r  r  r  r  r  r  Tr\  )r  r  r5  r  r  r  rotatelabelsrs  r  r  r   r   r   test_pie_rotatelabels_true  s    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  r  r5  r  r  r  Zlabeldistancer  rs  g333333r  )r   r  r  rg   r/   r  r   r   r   test_pie_nolabel_but_legend  s    
r  c                  C   s   g d} g d}t ddddddd	}t j| |d
|d\}}}||fD ]}|D ]|}| |d kshJ | |d ks|J | |d ksJ | |d ksJ | |d ksJ |	 |d ksPJ qPqHd S )N)r  "   rj  )zLong name 1zLong name 2zLong name 3r?   r#   r\  anchorr5  rZ  )horizontalalignmentverticalalignmentri  rotation_moder  r   %.2f)r  r  	textpropsr  r  ri  r  r  r   )
r  r   r   r  get_haget_vaget_rotationZget_rotation_modeget_sizer  )r)  r  r  rD  textsr  Ztxr   r   r   test_pie_textprops  s&    r  c                  C   sP   t  \} }tt& |jg dg dd W d    n1 sB0    Y  d S )N)r   r   r%  )r   r   r   )r  )r   r   r|   r}   r  r  r   r   r   r   test_pie_get_negative_values1  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slJ d S )	N)r   r   r   T)r-   	normalizer   rb   g     v@r  F)r   r   r  r*  rl  )r   r   r-   t1t2r   r   r   test_normalize_kwarg_pie8  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   rR   zset_x/yticklabelsr   rd   r   rt   r[  r    r@  r  r   )Z11Z12Z13Z14)r   r   ro   rO   rT   r  
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  Z
get_yticksrL  get_yticklabels)r   r   r+   r   r   r   test_set_get_ticklabelsA  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)Z
fontweight)r   r{   r   r   r   T)rK  rZ  r[  N)r   r  r  r  r  r1  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sJ d S )
Nrd   r   r   r  c                 S   s   g | ]}|qS r   r   r  r   r   r   r   w  r   z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   s   g | ]}|  qS r   r  r  r   r   r   r   y  r   )r[  r@  rj  r  r  )r   r   ro   rO   rT   r@   	set_ticksr  set_ticklabelsr   get_ticklabels)r   r   r  r   r   r   test_subsampled_ticklabelsq  s    r  c                  C   sj   t  \} }|td |jddg tt	  |j
g d W d    n1 s\0    Y  d S )Nrd   r   r  )rt   r[  r    )r   r   ro   rO   rT   r@   r  r|   r}   r  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   r  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   rb   r   Fr  r*   rh   r   r  rM  r  )r   r   ro   Zsetpr  r  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spJ 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)rb   r   r   r   r{   r  r  c                 S   s   g | ]}|  qS r   r  r  r   r   r   r     r   z*test_tick_label_update.<locals>.<listcomp>)r   r   r  r   r   )r   r   r@   r   r   r  r<  r   r  r   r  )r   r   r  Z
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 qTd S )Nr   r   r   r   rx   )r  rd   ra  r{   r   )r   r   r   r   ro   rO   ri   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sJ | ||| d  ||| d  fksJ tdd\}}||  |dd | dksJ | ||| d  ||| d  fksJ | ||| d  ||| d  fksFJ tdd\}	}
|
|  |
jd	dd
 |
 dksJ |
 ||| d	  ||| d	  fksJ |
 ||| d  ||| d  fksJ d S )Nr   rd   r!  r   r  r   r   )r   r   皙ɿr   )r  r   )	r  r(  r+  r   r   ro   r   rq   rr   )r)  rM   rN   r  r  r  r   r  r   rF  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sJJ d S )Nr  r   r   r   r   )r  Zxmarginr   )r   r   r   r   r   ro   rp   rq   r   r   r   r   test_set_margin_updates_limits  s
    r  c                  C   s&   t  \} }|d |dg d S Nr   )r   r   r  r   r   r   r   test_length_one_hist  s    
r  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nrd   r   r   )r   r   r  r  r  r  )Zmylistr   r   r   r   r   test_pathological_hexbin  s    
r  c                  C   s(   t  \} }|jddgddgd d d S )Nr   r   ro  rg  r   r   r   r   test_color_None  s    r  c                  C   s6   t  \} }|jddgddd }d| ks2J d S )Nr   r   r  r  )r   r   ro   r  )r   r   r2  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   r/   r   r   r   r   test_numerical_hist_label  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   r/   )r   r   rt   r[  r  r   r   r   test_unicode_hist_label   s    r"  c                  C   sJ  t jdd } t \}}||  |j  |jj	 }|jj
 dksPJ |j  |j  |jj	 }|d |d kr|d |d ksJ |jj
 dksJ t \}}||  |j  |jj	 }|jj dksJ |j  |j  |jj	 }|d |d kr,|d |d ks0J |jj dksFJ d S )	Nrd   g^ 9^;r8   r   r   r'   r#   r7   )rO   rP   r   r   ro   r  r   rC   Z
offsetTextr  rB   Z
tick_rightr@   Zget_verticalalignmentrn   )r)  r   r   beforeafterr   r   r   test_move_offsetlabel  s*    



$



(r%  zrc_spines.pngc                  C   sD   ddddd} t |  t  W d    n1 s60    Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)r=   r   r   r   )r?  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    q:1 sp0    Y  q:d S )NTrh   )ru  zaxes.grid.axisr-   r*   r   r{   )r   r   r  r=   r   r   )r   Zrc_dict0Zrc_dict1Zrc_dict2rD  r   r?  r   r   r   test_rc_grid3  s    
r'  c                  C   s   ddddd} t j| d t  }|ddd}|j}|j}|jd rLJ |jd sZJ |jd rhJ |jd svJ |jd sJ |jd rJ |jd sJ |jd rJ W d    n1 s0    Y  d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightr  r   tick1Ontick2Onr   r   r   r   r@   rC   Z_major_tick_kwZ_minor_tick_kwr@  r   r   ZxaxZyaxr   r   r   test_rc_tickI  s     r1  c               	   C   s   ddddddddd} t j| d t  }|ddd}|j}|j}|jd rTJ |jd sbJ |jd rpJ |jd s~J |jd rJ |jd sJ |jd rJ |jd sJ W d    n1 s0    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/  r0  r   r   r   test_rc_major_minor_tick]  s$    r2  c                  C   s   t d} t g d}t \}}|| |d |d | |  }}t 	|t 	|ksfJ |
 dksvJ t|jddjd t|jd	djd
 d S )Nr   )r   r  r"  r2  mor  r   T)originalg      ?r   rg  rg  F)g333333?r   g      ?rg  )rO   rT   r   r   r   ro   r  rq   rr   r[  r  r   r  r  )r-   r*   r   r   rf   rg   r   r   r   test_square_plott  s    

r6  c                   C   s  t t td  W d    n1 s*0    Y  t t td d  W d    n1 s`0    Y  t t( ttdtd W d    n1 s0    Y  t t8 ttddtdddf W d    n1 s0    Y  d S )Nr  rK  r   r  rb   r   )	r|   r}   r  r   ro   rO   rW  rT   rk   r   r   r   r   test_bad_plot_args  s    (*6r7  zxy, clsr   ))r{   rz  )r   r  )r   r   r   r  r/  r  )r   r   r5  )r{   r   c                 C   s0   t  \}}t|jg | |R  |ks,J d S r   )r   r   r  
pcolorfast)r+  r)  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sLJ | dks8J q8|d d |d d |jD ]$}| dksJ | dksJ qd S )Nr   Tr  r   r  r   r  r  )r   r   r  r  r	  Z
get_yscaleZ
get_xscaler   r
  r   r   r   r   test_shared_scale  s    

r=  c                   C   sp   t t tjdd W d    n1 s,0    Y  t t tjdd W d    n1 sb0    Y  d S )NTr  r   )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`  rO   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*   errr   )r   r   r   r   r   )r   r   r  r  )r   rO   rT   ri   )Zbase_xyZ
err_cyclerZxerr_cyZyerr_cyemptyZ	xerr_onlyZ	yerr_onlyZboth_errr   r   r   generate_errorbar_inputs  s*    $

rB  r?  c                 C   s$   t  }|jf i | }|  d S r   )r   r   rr  r  )r?  r   Zebr   r   r   test_errorbar_inputs_shotgun  s    rC  Zdash_offsetc                  C   sT   t  \} }tdd}t|}tdddD ] }|j||| |dfddd q.d S )	Nr   rd   r   r   rd   rd   r   r  )r  r   r   )r   r   rO   r   Z	ones_liker   ro   )r   r   r-   r*   r  r   r   r   test_dash_offset  s
    
rE  c                  C   s   t  \} }|jddd |j }|d d| j ks:J |jddd |j }|d dksbJ |jdd d |j }|d tjd d | j ksJ d S )	Naardvarkr  )r  r  g?r!  zaxes.titlepadg      R@)r   r   r  ZtitleOffsetTransZ
get_matrixrO  r=   r   )r   r   r}  r   r   r   test_title_pad  s    


rG  c                  C   s   t  \} }dt jd< |d |jddd |jddd d|jddksPJ d|jddksdJ d|jddksxJ tt |jdd W d    n1 s0    Y  tt |jddd W d    n1 s0    Y  d S )	Nr?   zaxes.titlelocationrF  r8   r$   r'   rI  Zfail)r   r   r   r  Z	get_titler|   r}   r  r   r   r   r   test_title_location_roundtrip  s    

*rH  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   ra  r   )r  r6  r   rK  )r  r6  rM  )r   r   rO   rT   r  r  )r   r   r-   r   r   r   test_loglog  s
    rI  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r|r||j||d d	|d q|j||d d	d qL|j||d d	d |r|jd|d |rL|j	d|d qLd S )Nr{   r   r  g      rz  r  r   )rS  Zclipr   r   )rI  )r   nonpositiver   r   )rJ  )
r   r   rO   rT   r;  r   r	  r  r  r  )r   r
  r-   r*   ZmcyZmcxr   r   r   r   test_loglog_nonpos  s"    rK  c                  C   s  t  \} }|g d | d dks.J t  \} }|g dg d | d dksbJ t  \} }|g dg d | d dksJ t  \} }|t	d | dksJ | dksJ t  \} }|
t	d | dksJ | dksJ t  \} }|td | d dksBJ t  \} }|t	d | dkspJ | dksJ d S )Nr  r   )r   r   r   r   rD  r  rd   )r  g      #@)r   r   ro   Z
get_yboundr  r  Z
get_xboundr  rO   rW  r8  r  rT   rm   r   r   r   r   test_axes_margins&  s0    rL  r-   r*   )r  c                 C   s    dd }dd }||d| j  S )Nc                 S   s<   |   }|  | dd | j  }|d dks8J d S Nr   r   rb   r/  )r   r  r<  r@   get_major_locatorr   r   rn  r   r   r   	_helper_xJ  s
    z&shared_axis_remover.<locals>._helper_xc                 S   s<   |   }|  | dd | j  }|d dks8J d S rM  )r   r  r=  rC   rN  rO  r   r   r   	_helper_yQ  s
    z&shared_axis_remover.<locals>._helper_yr   )param)requestrP  rQ  r   r   r   shared_axis_removerH  s    rT  )r   r   subplots_sharedr   c                 C   s   | j dkrt }| }nf| j dkr4t \}}nN| j dkrbtjddddd\}}|d d }n | j dkrt }|g d	}||fS )
Nr   r   rU  r   r  r;  r   r   r   r   rF  rF  )rR  r   r   r   r   r   )rS  r   r   rT  r   r   r   shared_axes_generator[  s    




rW  c                 C   s   | \}}|| d S r   r   )rW  rT  r   r   r   r   r   test_remove_shared_axesl  s    rX  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   rq   r  r<  r   )r   rT  r   Z	orig_xlimr   r   r   test_remove_shared_axes_relimr  s    rY  c                  C   s   t ddd} t j| j| jf}tjddddd\}\}}|dd	 |dd	 |	| | | |	| | | |
 s|
 rJ | s| rJ | |   krd
ksn J | |   krd
ksn J d S )Nir\  r  r   r   Tr;  r  )rZ  r  )rO   rT   rP   Zrandom_sampler  r   r   r<  r=  r  r   r   rq   rr   )r  r0  r   r   r   r   r   r   test_shared_axes_autoscale{  s    "r[  c                  C   s   t  \} }|j jdd |dd |d | j  t	|j  dksVJ |
dd | j  t	|j  dksJ d S )NrT  r  r   r  rs  r   )r   r   rC   rN  Z
set_paramsr<  r  r  r   r  r=  r   r   r   r   test_adjust_numtick_aspect  s    


r\  zauto_numticks.pngc                   C   s   t dd d S )Nr   )r   r   r   r   r   r   test_auto_numticks  s    r]  zauto_numticks_log.pngc                  C   s.   t  \} }dtjd< |ddgddg d S )NZround_numbersaxes.autolimit_modeg#B;g     j@gؗҜ<rd   )r   r   r=   r   r  r   r   r   r   test_auto_numticks_log  s    
r_  c                  C   s   t  \} }|g d d S )N)r   r   )r   r   r  r   r   r   r   test_broken_barh_empty  s    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sJ dS )z9Check that timedelta works as x, dx pair for this method.r  r  r  r   r   r  r   r  r   r   gUUUUUU?N)	r   r   r^  r  r>  r  Zverticesr`  ra  )r   r   Zd0ppr   r   r   test_broken_barh_timedelta  s
     rc  c                 C   sD   | j ddd}td}tjdd}t \}}|||| d S )Nz
2000-01-01rd   )r  r  r  r  )r  rO   rT   rP   r   r   r   r  )r  timedepthr)  r   r   r   r   r   test_pandas_pcolormesh  s
    
rf  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-03rX  r  )r  r  r   r   r  r  rw  )rO   rT   r   r   r   r  r  r   r   r  re  ro   )r  r  r  r  r   Zwithout_zero_indexr   r   r   test_pandas_indexing_dates  s    rg  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   rZ  )r-   r*   xeyerY  )columnsr  r-   r*   rh  ri  r  )r  rO   rP   uniformr   r   rr  r  r   r   r   test_pandas_errorbar_indexing  s    rl  c                 C   s:   |  g dg dd}t \}}||j|d  d S )Nr  )rz  r   r   )ZXXYYrm  )r  r   r   ro   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   rw  r   )r  Zilocr   r   r  )r  Zser_1Zser_2r   r   r   r   r   test_pandas_indexing_hist  s    ro  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   rv  r   rt   r[  r?   r  )r  r   r   r   r  r%   r  r   r  r   r   r   test_pandas_bar_align_center  s    rp  c                  C   s   dd l m}  t }| |d}tjtdd |d W d    n1 sN0    Y  | 	|d}tjtdd |d W d    n1 s0    Y  d S )Nr   z;The apply_tickdir function was deprecated in Matplotlib 3.5rh  r  )
Zmatplotlib.axisr  r   r  ZXTickr|   rp  r   Zapply_tickdirZYTick)Zmaxisr   r  r   r   r   #test_tick_apply_tickdir_deprecation  s    (rq  c                  C   s   t  } | jjdddd | jjd jdks0J | jjd j dksJJ | jjd j	 dksdJ | jjd j dks~J d S )	Nr   rZ  r  )r  r  r  r   r  r  r  )
r   r   rC   set_tick_paramsr  _size	tick1liner  label1r  )Zaxis_1r   r   r   .test_axis_set_tick_params_labelsize_labelcolor  s    
rv  c                  C   s   t  } | jddddd | j| jfD ]d}|jd j dksBJ |jd j dksZJ |jd j	 dksrJ |jd j
 dks&J q&d S )Nr[  r   r   r  )r  r  r  r  r   rC  )r   r   r  r@   rC   r  r  r  Zget_linewidthZ	get_alphaget_linestyle)r   r  r   r   r   test_axes_tick_params_gridlines	  s    
rx  c                  C   s   t  } | jdddd | jdddd | jjd j du sBJ | jjd j du s\J | jjd j du svJ | jjd j du sJ d S )NFTr  )Z	labelleftZ
labelrightrM  rK  r   )	r   r   r  rC   r  ru  r   label2r  r  r   r   r    test_axes_tick_params_ylabelside  s    rz  c                  C   s   t  } | jdddd | jdddd | jjd j du sBJ | jjd j du s\J | jjd j du svJ | jjd j du sJ d S )NTFr  )labeltoplabelbottomrM  rK  r   )	r   r   r  r@   r  ru  r   ry  r  r  r   r   r    test_axes_tick_params_xlabelside#  s    r}  c                  C   s4   t   } | jtdd d\}| dks0J d S )NrZ   rm  rk  )r   r   r   ro   r   rw  )r   lnr   r   r   test_none_kwargs3  s    r  c                  C   sT   g d} t jtj| tjdg ddd}t|j| D ]\}}|jd |ks4J q4d S )Nr  r  )r   r{   r   r   r  r  r   )r   r  rO   r   Zuint8r;  r   r+  )r  r[  r   r-   r   r   r   test_bar_uint89  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   s(   g | ] }t j d dd|tjddqS   r      Canada/Easternr   tzinfor^  r  tzZgettzr   r   r   r   r   C  s   
z(test_date_timezone_x.<locals>.<listcomp>r{   r  r5  r  r   r   r  )r  UTCr   r   r   r   r}  Z
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   s(   g | ] }t j d dd|tjddqS r  r  r   r   r   r   r   T  s   
z(test_date_timezone_y.<locals>.<listcomp>r{   r  r  r   r   r  FT)r  Zxdateydater  r  r  r   r   r   test_date_timezone_yQ  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   g  s   z.test_date_timezone_x_and_y.<locals>.<listcomp>r{   r  r  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_yc  s    
r  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]r\}}|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 || q"d S )Nr{   T)r  r  r   )Fr2  Tr  rd   r}  r'  r*  rn  ro  r    rk  )r   rz   r   F)r#   r7   r8   r'   )r   r   r   r;  ro   r3  rW  r2  r  r  r  r  Zset_axisbelow)r
  settingsr   Zsettingcircr   r   r   test_axisbelowt  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  )rO  Xlabel2Titler{   )r   r   r   r   r   r   r  r  r   get_rendererget_window_extentr  r  rO   isclose)	r   r   r   Zxlabel2r  rendererZbbox_y0_titleZbbox_y1_xlabel2Zy_diffr   r   r   test_titletwiny  s    



r  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |kstJ d S )NrF  )r#   ZXlabelr  r  )r   g(\?)r   r   rH  r   r   r  r  r  r  r  Z_update_title_positionr  )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sLJ d S )Naxes.titleyr#   
xlabel topr   p=
ף?)r   r   r   r   r@   rs   r  r  r   r  r  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sTJ d S )Nr  r-   Tr  r7   r#   r|  r{  r  r   r  )
r   r   r   r   r  r  r  r   r  r  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  rF  r   r-   Tr  Boor   r   )
r   r   r   r   r   r  r  r  r   r  )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   FArZ  )r  )r   r   ro   rC   rr  get_offset_textr  r   r   r   r   test_offset_label_color  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)Zlabel1Onlabel2On)r  )r   r   ro   rC   rr  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   ro   rO   r   r  r   r   r   r   r   test_large_offset  s    r  c                  C   s^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S   s   g | ]}t  d ddd|qS r$  rz  r   r  r  r  r   r   r   r     r   z#test_barb_units.<locals>.<listcomp>r   rP  rd   r   r  )r   r   r   rO   r   r  Zbarbsr   r   r  r*   uvr   r   r   test_barb_units  s
    r  c                  C   s^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S   s   g | ]}t  d ddd|qS r  r  r  r   r   r   r     r   z%test_quiver_units.<locals>.<listcomp>r   rP  rd   r   r  )r   r   r   rO   r   r  Zquiverr  r   r   r   test_quiver_units  s
    r  c                  C   sn   t j} t \}}tdD ]N}|td\}|tdtd}|D ] }| | | | ksFJ qFqd S )Nr   r{   )	r  to_rgbr   r   r   ro   r  r  r  )r  r   r   r  r~  Z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shJ qh|jddD ]}| dksJ q|j	d	d
d |j	ddd |jddD ]}| d
ksJ q|jddD ]}| dksJ qd S )Nr   r   r   rh   r   )rM  ri  r\  rL  r-   5   )r  r  r*   r   )r  ri  r  )
r   r   ro   r@   rr  rC   rL  r  r  r  )r|  r   r   textr   r   r   test_tick_param_label_rotation  s    r  c            	      C   s  t  \} }tdD ]D}|tdtd}td|}t| 	 t|ksJ qtddD ]D}|
tdtd}td|}t| 	 t|ksdJ qdtd}dD ]@}|jtdtdfi |di}t| 	 t|ksJ qtd}tddgddD ]v\}}|jtdtdfi |di}td|}t| 	 t|ksjJ t| 	 t|ksJ qd S )	Nr{   zC{}r  r  )r   Z
facecolorsr   r   r#  )start)r   r   r   r  r  r  r  tupler  Zsqueezer  r  r  )	r   r   r  cctargetalZedge_targetelZface_targetr   r   r   test_fillbetween_cycle  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 )Nr)  r^  r  rd   r   )
r   r   r   Zset_xmarginr  rq   r@   r  r   r   )r   r   marginZxlim0Zxlim1r   Zxlim0tZxlim1tZx0tZ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 sd0    Y  d}|j|||d |j|||g|  d d S )Nr   r   r  )r   r   r   )rO   rT   r   r   r|   r}   r  r   )r  r-   r*   r5  r   r   Zc_rgbr   r   r   test_color_length_mismatch5  s    .r  c                   C   s   t jdgdd t   d S )Nr   ZLabelr  )r   r  r/   r   r   r   r   test_eventplot_legendA  s    r  c                  C   st   t  \} }|tdd |jddtddd |jddgddgdd\}}| |   krjdkspn J d S )Nr   r   r   )r8   rt  )r   r   r   r   r  )r   r   r  r   r  r  )r   r   Zrect1rect2r   r   r   test_bar_broadcast_argsF  s
    r  c                   C   s   t ddgddg tt t tj W d    n1 s@0    Y  tt t tj W d    n1 sv0    Y  tt t 	tj W d    n1 s0    Y  tt t 	tj W d    n1 s0    Y  d S )Nr   r   )
r   ro   r|   r}   r  rf   rO   r  r5  rg   r   r   r   r   test_invalid_axis_limitsQ  s    ***r  r  r  r   r  c                 C   s6   t  }|g d ||  || |  d S )Nr  )r   r   ro   r  r  r  )r  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   ro   r   r  Z	intervalx)r   r   Zxtwinr  r   r   r   r   test_twinx_knows_limitsh  s    r  c                   C   s   t jddgddgddd d S )Nr   r   rl  )r  r   )r   ro   r   r   r   r   test_zero_linewidthw  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   rr  r/   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 )Nr  rd   r   c                 S   s0   g | ](}d |d  d|d   d|  d qS )g@r{   r  r   g\(\@      @r   r   r   r   r   r     r   z%test_plot_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   r  r   r   r   r     r   c                 S   s   g | ]}t |qS r   r   r  r   r   r   r     r   )rO   rT   r   ro   )r3   r4   r  r  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   rx   r   r   )r  r  r$  )r   ro   )r3   r4   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 sZJ |j|jk sjJ 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  r  r  r  r   r   bbbb2r   r   r   test_tick_padding_tightbbox  s    


r  c                  C   s0  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 sJ |j  t ddgd	dgg}t |
  |ks,J dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r   r   rd   Nrb   r   r   333333@r   r  r   )boundsr   )rO   mgridr  r   r   r   r   r  r  apply_aspectindicate_insetr  r   r   r  get_bbox
get_points)dxdyr*   r-   rP  r   r   rf   rg   r  rec
connectorsxxr   r   r   
test_inset  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 |	  |
g d}||||d dd df  |dd	g |d
dg ||  ||\}}	t|	dksJ |j  t ddgd	dgg}
t |  |
ksJJ t ddgddgg}
t jj|  |
dd d S )Nr  r   r   rd   rb   r   )r  r  ffffff?r  r   r  r   r  r   r   g=
ףp=?gKXc'?g(\?g?g-C6?Zrtol)rO   r  r  r   r   r   r   r  r  r  
inset_axesr<  r=  r  Zindicate_inset_zoomr  r  r   r   r  r  r  r   r   r  )r  r  r*   r-   rP  r   r   Zaxin1r  r  r  r   r   r   test_zoom_inset  s6    
*



r  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r8|  |rD|  |g d|\}}|\}}	}
}| rldnd}|rxdnd}||
jd |jd   dksJ ||jd |	jd   dksJ ||	jd |jd   dksJ ||jd |
jd   dksJ dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r   r   rd   rx   )r   r   r   r   rb   r   N)	r   r   rO   rT   ro   r  r  r  r  )r  r  r   r   r   r-   r  r  Z
lower_leftZ
upper_leftZlower_rightZupper_rightZsign_xZsign_yr   r   r   test_indicate_inset_inverted  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spJ |d |jg dd	d t| jdsJ d S )
Nr  )r   r   r   r   rh   rL  r   r   r4  r8  active)r   r   r  r  rO   rI  r  r6  r   r   r   r   test_set_position  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)r  r  r  r  r  Fgư>r  )r   r   r  r7   r  r  r  Z_set_view_from_bboxrO   r   r   r  r  r   r   r   !test_spines_properbbox_after_zoom  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  rO   rV  r  r  r   r   r  r6  )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 )Nrd   r  r  rZ  r  )r   r   r   r   r   r   r   r   )r   r  rO   rP   rk  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)r1  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   rd   r  )gQ@r{   r  )r   r   r   r   r   Fr   rl  r  r  )r  )r+  r,  r-  r.  rL  )rO   r   r  r   r   r   ro   r  r  r@   r  rC   r/  Z	transDatar   r  )r-   r*   r   r   Zaxinsr   r   r   test_annotate_across_transforms(  s    
r  zsecondary_xy.pngc                  C   s   t jddddd\} }dd }t|D ]\}}|tddtdd |d	krZ|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   rd   r   T)r  rg  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S Nr  r  r   rO   r  r  r   r   r   invert=  s    z!test_secondary_xy.<locals>.invertr  r   r   Z	functionsr   c                 S   s   d|  S Nr   r   r  r   r   r   r(  I  r   z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r  r   r  r   r   r   r(  I  r   r  c                 S   s   | d S r  r   r  r   r   r   r(  J  r   c                 S   s   | d S )Nr   r   r  r   r   r   r(  J  r   rF  )r   r   r  ro   rO   rT   secondary_xaxissecondary_yaxis)r   r
  r  nnr   secaxr   r   r   test_secondary_xy9  s    r  c                  C   s   t  \} }|tddtdd tt" |jddd d W d    n1 sZ0    Y  tt |d W d    n1 s0    Y  tt |	d W d    n1 s0    Y  d S )	Nr   r  r   c                 S   s   d|  S r  r   r  r   r   r   r(  R  r   z%test_secondary_fail.<locals>.<lambda>r  r'   r7   )
r   r   ro   rO   rT   r|   r}   r  r  r  r   r   r   r   test_secondary_failN  s    0(r  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 )Nr  r  r   r  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S r  r  r  r   r   r   r  ]  s    z%test_secondary_resize.<locals>.invertr#   r  )rz  r   r5  )r   r   ro   rO   rT   r  r  r   r;  r   r  r  )r   r   r  r   r   r   test_secondary_resizeY  s    

r  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szJ |d	 t   t|j t	jsJ |d
 t   t|j t	j
sJ d S )Nr  r  r   r  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S r  r  r  r   r   r   r  k  s    z'test_secondary_minorloc.<locals>.invertr#   r  r   r  )r   r   ro   rO   rT   r  r   Z_axisZget_minor_locatorr   ZNullLocatorr  ZAutoMinorLocatorr  r   Z
LogLocator)r   r   r  r  r   r   r   test_secondary_minorlocg  s*    





r  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjsPJ d S )Nr   r#   )r   r   r  r  r@   r   r   ZScalarFormatterr  r   r   r   )r   r   r  r   r   r   test_secondary_formatter  s    


r   c                 C   sd  | j   | j  }g }t|j|jgD ]P\}}||}|rntj|j	|j
f|j|jdddddd}| | ||g7 }q(g }tg dD ]R\}}	|j|	 |}tj|j	|j
f|j|jdddddd}
| |
 ||g7 }q| }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{   )r6  rt  r   r   r   r   r0  )r7   r#   r8   r'   r   r   r  r   rZ  r   )r  r   r  r  r@   rC   r  r   r4  r  r  r6  rt  r   r  r  )r   r   r  bbaxisr  Zaxxr  Zaxisrbbspinesrt   Zspinerr  bbaxr  bbtbr   r   r   color_boxes  sP    







r  c                  C   sn  t ddiH tjddd\} }| j  t|  t| |\}}}}W d    n1 sZ0    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	 qg 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  rO  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r   )decimal     b@-]@     @F8&@r  g     @r  r!  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r   r   r   r  r   r   r  r  r  Bboxfrom_boundsr   r  r  ZtransformedtransFigurer  )r   r   r  r  r  r  r  r  r[  targetbbZaxbbr   r   r   test_normal_axes  s6    

0r  c            
      C   s&  t ddiL tjddd\} }| j  |jg g d t| |\}}}}W d    n1 s^0    Y  t|D ]\}}|d u spJ qpg dg dg d	g d
g}t|D ]*\}}tj	j
||  }	t|j|	jdd qg d}tj	j
| }	t|j|	jdd g d}tj	j
| }	t|j|	jdd d S )Nr  Fr  r  r  ZxticklabelsZyticklabelsr
  r  r  r  r#  Zatolr  )r        ^@r  r  )r   r   r   r  r   rp   r  r  r  r  r  r   r  )
r   r   r  r  r  r  r  r[  r  r  r   r   r   test_nodecorator  s*    
0r  c            
      C   s  t ddiZ tjddd\} }|jg g d |jjd | j  t	| |\}}}}W d    n1 sl0    Y  g dg d	g d
g dg}t
||D ]&\}}tjj| }	t|j|	jdd qg d}tjj| }	t|j|	jdd g d}tjj| }	t|j|	jdd d S )Nr  Fr  r  r  r  )r  r  )r        8@r  gs~8&@r  r  r  r#  r  r  )r  r  r  g     @)r   r   r   rp   r  r7   r  r  r   r  r;  r  r  r  r   r  )
r   r   r  r  r  r  targetsr  Zbbspiner  r   r   r   test_displaced_spine  s(    
0r   c               	   C   s   g dg dgg dg dgg dg dgg} t g dD ]\}}tdd	i tjd
dd\}}|j|d |j  t||\}}}}t ddgD ]2\}	}
tj	j
| | |	  }t||
 j|jdd qW d   q:1 s0    Y  q:dS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r  r  +e8&@)r  r  r  r  )r  gZӼ8[@r  88&@)g r\a@r  r  r  )r  gqq\@r  r"  )g88b@r  r  r  )r  r  Zinoutr  Fr  r  r  r  r   r   r#  r  N)r  r   r   r   r  r  r   r  r  r  r  r   r  )r  Zdnumdirsr   r   r  r  r  r  r  r   r  r   r   r   test_tickdirs  s*    
r$  c            	      C   sr  t ddiN 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 qvtjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}g dg dg}tdD ]0}tj	j
||  }t||d  j|jdd qW d    n1 sd0    Y  d S )Nr  Fr  r  r  rh   r  )rM  r  )r  g88[@r  r"  )gCiq\a@r  r!  r  r   r#  r  rK  r   r  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@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_minor_accountedfor-  s:    


r%  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr   Fr  r   Ton)r   r  r1  r   r   r   test_axis_bool_argumentsL  s    


r'  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fksFJ ||f| ksZJ ||f| ksnJ d S )Nr   rd   r   r  )r   r   r  r  rq   rr   )r   r   rM   rN   r  r  r  r   r   r   test_axis_extent_argX  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szJ d S )
Nc                 S   s   g | ]}t  d d|qS )r$  r   r  r  r   r   r   r   k  r   z(test_datetime_masked.<locals>.<listcomp>r   r  rY  r   r{  g    H&Ag    d&A)rO   r   r   r   r  r   r   ro   r`  ra  r|  rq   )r-   r*   r}  r   r   rV  r   r   r   test_datetime_maskedh  s    r)  c                  C   sD   t jg dg dgdd\} }} |d dks0J |d dks@J d S )	Nrf  )r{   r   r   r  rT  r'  r   r   rb   r  )r   r  rD  r  r   r   r   test_hist_auto_binsu  s     r+  c            
      C   s   t d\} \}}g d}|tjg }||\}}}tjdd  ||\}}	}W d    n1 sh0    Y  tj|| tj||	 d S )Nr   rf  r  r	  )r   r   rO   r  r  r  r   r   )
r   r   r   r)  Znan_datar  rG  rD  ZnanbinsZnanedgesr   r   r   test_hist_nan_data{  s    .r,  c                  C   sD   t jtjddddd\} }} |d dks0J |d dks@J d S )	Nrd   rT  rJ  T)r   r  r   rb   r   )r   r  rO   rP   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 ]8}|D ]}|j|jksDJ qD|D ]}	|	j|jks^J q^q<d S )Nrf  r   r{   )r-   rt  r  r  r0  )r   r   r  rr  r<  r   r0  )
r   r   r-   ZbarcontZ	data_lineZcaplinesZbarlinecolsr  ZcaplineZ
barlinecolr   r   r   test_bar_errbar_zorder  s    
r.  c                  C   s6   t  \} }|  |ddg | dks2J d S )Nr   r  r  )r   r   r  r  rq   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srJ d S )NrD  r  r   r  r   r  logit)F]tE?g'^P?r   r  r  rf   r  rg   re   r  r   r   )r   r   r   ro   rp   r   r  Ztransform_bboxr  rt  r6  r|   approx)r   r   r   r   r   r   $test_aspect_nonlinear_adjustable_box  s    
r4  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spJ |
 d	ksJ d S )NrD  r  rV  r   r  r   )r   r   r0  )gbeF?r1  r   r  r2  r   gS[:XL	@g'In?@)r   r   r   ro   rp   r   r  rq   r|   r3  rr   r   r   r   r   (test_aspect_nonlinear_adjustable_datalim  s    
r5  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 )Nr5  iX  r   r   r   r  r  rs  r  r  )r   r   r   ro   set_box_aspectr   r  r  r   r  r   r  )r  r   Zaxtwinr  r   bb1Zbbtr  r   r   r   test_box_aspect  s    



r8  c                  C   s   t  \} }|g d | j  |d t  \}}|d |j  |g d | j  |j  | }| }t|j|j d S )N)r   r   rg  r   r   )	r   r   r  r  r   r6  r  r   r  )r  r   r  r   r7  r  r   r   r   test_box_aspect_custom_position  s    





r9  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   )r  T)r  rg  r   )r   r   r  r  r   r  r	  r  ro  r6  rt  r   )r   r
  r  r  r   r  r   r   r   test_bbox_aspect_axes_init  s    




r:  c                  C   s4   t dd\} }|g d | j  |  d S )Nr   rf  )r   r   ro   r  r   Z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  Zinaxesr  r   r   r   r   test_invisible_axes	  s    
r<  c                  C   s<   dt jd< t  } | j }|D ]}|j dks J q d S Nr  zlines.markeredgecolor)r   r   r  r@   get_major_ticksrt  get_markeredgecolorr   Zticksr  r   r   r   "test_xtickcolor_is_not_markercolor  s
    

rA  c                  C   s<   dt jd< t  } | j }|D ]}|j dks J q d S r=  )r   r   r  rC   r>  rt  r?  r@  r   r   r   "test_ytickcolor_is_not_markercolor  s
    

rB  r  rT  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d u rt| n|}	|d	|d
 |	| ksJ |j  t	| d	 d S )Nr   r  r   Zget_autoscaleZ_onr   Zlimget_)r  r   )rT  )
r   r   rO   rT   r   r   r   r  r   r   )
r  rT  r   r   r-   r*   Zget_autoscale_onZset_limZget_limZ	post_autor   r   r   test_unautoscale!  s    

rD  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 )Nr  r  r   r   r   r   e   )r   ro   rO   r   get_pathZ_interpolation_stepsr   )r3   r4   r  r   r   r   )test_polar_interpolation_steps_variable_r5  s
    $
rG  c                  C   s6   t  \} }|dd | j  | dks2J d S )Nr   g&.>)r   g	>)r   r   r  r  r   rr   r   r   r   r   test_autoscale_tiny_sticky=  s    
rH  c                  C   sX   dt jd< dt jd< t  } | j }|D ](}|j dks@J |j dks*J q*d S )Nrq  zxtick.colorr   zxtick.labelcolor)r   r   r  r@   r>  rt  r  ru  r@  r   r   r   &test_xtickcolor_is_not_xticklabelcolorE  s    


rI  c                  C   sX   dt jd< dt jd< t  } | j }|D ](}|j dks@J |j dks*J q*d S )Nrq  zytick.colorr   zytick.labelcolor)r   r   r  rC   r>  rt  r  ru  r@  r   r   r   &test_ytickcolor_is_not_yticklabelcolorO  s    


rJ  r  c                 C   s   g | ]}|d ur|qS r   r   )r   r  r   r   r   r   Y  s   r   )r  rd   r5  c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ].\}}|	 D ]}|j
 ||ksPJ qPq@d S )Nzxtick.labelsizezytick.labelsizer-   r*   )r   r   r   r   r  r   r;  r@   rC   r>  ru  r  Z_get_tick_label_size)r  r   r   namer  r  r   r   r   test_relative_ticklabel_sizesY  s    


rL  c                  C   s\   t  } | jdddd\}}|g dg d |dd | }t|d	d
gsXJ d S )Nr   r   r  r  r  )r   r{   r   r{   r  r   r   r  )r   r   r   r   r  rq   rO   rI  )r   r   r   rf   r   r   r   test_multiplot_autoscaleg  s    rM  c                  C   sX   t  } | d}| jg d|d}| }| jdd |  | k sTJ d S )NrC  )r  r  r   r   r  r   )r8   )r   r   r   r   r  rH  r  r  )r   r  r   Zinit_posr   r   r   $test_sharing_does_not_link_positionsp  s    
rN  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   rb   r  r{   rd   ro  r   r  )
rO   r   r   ro   rk   r   r  r  rT   r  )r3   r4   r   r
  r   r   r   test_2dcolor_ploty  s    
"""&
"""rO  c                 C   s~   t ddt j d}t |}|jddddd}|jD ]}||| q6| jddddd}|jD ]}|  ||| q`d S )Nr!  r   r#  Tr;  )rO   rT   r   r   r   r	  ro   r  )r3   r4   r-   r*   r
  r   r   r   r   test_shared_axes_clear  s    


rP  c                  C   s   t jddddd\} }|jD ]}|ddgd q|d g d |jD ]}| |d  ksJJ qJ|d g d |jD ]}| |d  ksJ qd S )	Nr   r  r;  r   zo-r  )r  r   r   r   )r  r   r   r  )r   r   r	  ro   r  rq   r  rr   r<  r   r   r   test_shared_axes_retick  s    


rQ  r+   )r8   r?   r'   c                 C   sD   t  }| }|jdd| d |jd |j  | ks@J d S )Ntestr   r)   r'   )r   r   r   rC   Zset_label_positionrA   r  )r+   r   r   r   r   r   test_ylabel_ha_with_position  s
    rS  c                  C   s   t  } ddgddg }}| ||}| |}|d j|d |d fksNJ |d  dksbJ |d  dksvJ |d j|d |d fksJ |d  dksJ |d  dksJ d S )	Nr   r   r{   r   r?   r7   r#   r   r   r  	bar_labelr+  r  r  r   r  Zheightsr  r  r   r   r    test_bar_label_location_vertical  s    
rX  c                  C   s   t  } ddgddg }}| ||}| |}|d j|d |d fksNJ |d  dksbJ |d  dksvJ |d j|d |d fksJ |d  dksJ |d  dksJ d S )	Nr   r   r{   rT  r   r8   r?   r'   r   r   r  rV  r+  r  r  r   r  r)  r  r  r   r   r   "test_bar_label_location_horizontal  s    
r[  c                  C   s   t  } ddgddg }}| ||}| j|dd}|d j|d d |d fksVJ |d  dksjJ |d  dks~J |d j|d d |d fksJ |d  dksJ |d  dksJ d S )Nr   r   r{   rT  r?   )Z
label_typer   rY  rZ  r   r   r   test_bar_label_location_center  s    ""r\  c                  C   s   t  } ddgddg }}| j||dd}| |}|d j|d |d d fksVJ |d  dksjJ |d  dks~J |d j|d |d d fksJ |d  dksJ |d  d	ksJ d S )
Nr   r   r{   rT  )r  r   r?   r7   r#   rU  rW  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sRJ d S )
Nr   r   r{   rT  r  )r   r   z3.00z-4.00r   r   r  rV  r  r   r  r  r   r   r   test_bar_label_fmt  s
    r`  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dksBJ |d  dksVJ d S )	Nr   r   r{   rT  rZ  r[  )r  r   r^  r_  r   r   r   test_bar_label_labels  s
    ra  c                  C   sl   t  } | ddgtjdg}| |}dd |D ddgksBJ |d jd	ksTJ |d  d
kshJ d S )Nr   r{   r   c                 S   s   g | ]}|  qS r   r  )r   r  r   r   r   r     r   z,test_bar_label_nan_ydata.<locals>.<listcomp>r   1r   ra  r7   )r   r   r  rO   r  rV  r+  r  )r   r  r  r   r   r   test_bar_label_nan_ydata  s    
rc  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   rb   r}  rP  r  r   gffffff?r   r  r   gr  r/  )r   r   r2  r3  ZWedgerO   r   r   r   Zassert_array_almost_equal_nulpr   ZdataLimr  )r   r   Zbotr   r   r   test_patch_bounds   s    "rd  c               	   C   sL   t jtdd* tjdgdgddddd} W d    n1 s>0    Y  d S )	Nz!You passed a edgecolor/edgecolorsrh  r   r  r  rn  r[  )r]   r1  r   r   )r|   rp  rq  r   r   r  r   r   r    test_warn_ignored_scatter_kwargs  s    re  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sJ t j|gksJ t j|ksJ t j|gksJ  jrJ t j|gksJ  jd |d u sJ  jd	 |d	 u sJ tjtd
d"  jt|d   W d    n1 s>0    Y  tjtdd  jd	= W d    n1 sv0    Y  tjtdd  jd	d = W d    n1 s0    Y  tjtdd  jdd = W d    n1 s0    Y  tjtdd  jd= W d    n1 s&0    Y  |   jrDJ |   jrXJ |   jrlJ |   jrJ  jrJ  jrJ tjtdd   j|d  W d    n1 s0    Y  t j|d gksJ tjtdd   j|d	  W d    n1 s(0    Y  t j|dd  ksNJ tjtdd"  jd|d  W d    n1 s0    Y  t j|d |d |d	 gksJ tjtdd |d  jd< W d    n1 s0    Y  t j|d |d |d	 gksJ tjtdd& |dd  jdd< W d    n1 sV0    Y  t j|kstJ  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   )ro   rO   rT   r  r  r   r   r     r   z(test_artist_sublists.<locals>.<listcomp>r  r   )r   r   r  r   rI  rb   zout of rangerh  r   z'modification of the Axes.lines propertyr4  rf  r   r{   )r   r   r   r   rO   rT   rm   rW  r2  r3  r4  r  r   r  Zimagesr<  r   Ztablesr  r|   r}   
IndexErrorr  rp  r   r  r  insert)r   r<  r  r  r   r  r   r  r   test_artist_sublists  s    
2(,,(002&.&6(rh  c                  C   sh   t d} t d}t \}}|| |}t|dks<J t \}}|g g }t|dksdJ d S )Nrd   )rd   r   r   r   )rO   ri   r   r   ro   r  )r-   r*   rD  r   r2  r   r   r   test_empty_line_plotsa  s    

ri  c                  C   s\   t   } | j| j| j| jfD ]6}d}|ddgddgg|dj}|j|j	f|ks J q d S )N)rz  r  r   r   r   r{   )clim)
r   r   r   rm   r  r  r8  r  r  r  )r   Zplot_methodrj  r  r   r   r   	test_climo  s
    rk  )Nr   (  r  r   r^  r	  r   r  	itertoolsr   platformr  r   Zdateutil.tzr  ZnumpyrO   r   r   r|   r=   r   Zmatplotlib.testing.decoratorsr	   r
   r   Zmatplotlib.colorsr5  r  Zmatplotlib.datesr  r`  Zmatplotlib.figurer   Zmatplotlib.font_managerZfont_managerZmfont_managerZmatplotlib.markersr(  rz  Zmatplotlib.patchesr   r3  Zmatplotlib.pyplotZpyplotr   Zmatplotlib.tickerZtickerr   Zmatplotlib.transformsZ
transformsr  Znumpy.testingr   r   r   r   Zmatplotlib.cbookr   r   r6   r<   r>   rD   rY   rw   r   r   r   r   r   r   r   r  r  r   r   r   r  r  r  r   r  r  r  r  r   r3  rB  rE  rH  rN  rg  rs  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rW  rT   r  r  r  r  r  r  r  r!  r-  r6  rQ  rR  rX  r]  ra  rb  rd  rh  ro  rx  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%  ra  r*  r,  ZPatchr0  r<  r?  r.  rB  rE  rM  rN  rQ  rS  rU  rW  rX  rf  rk  rm  rq  ru  ry  rz  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/  r9  r;  r=  r>  r@  rE  rI  rN  rP  rQ  rT  rU  rX  ra  rd  re  rf  ri  rl  rm  ro  rp  rq  rr  rs  ru  rv  rx  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  r  r  r	  r  r  r  r  r  r  r!  r#  r%  r&  r)  r+  r,  machiner/  r2  r6  r:  r<  r=  rH  rK  rM  rN  r  rB  rO  rU  rZ  r[  rt  rv  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r.  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  r  r  r  r  r  r  r  r  r  r  r   r"  r%  r&  r'  r1  r2  r6  r7  imageZ	AxesImager   ZPcolorImagerP   ZQuadMeshrk   r   r:  r=  r>  r?  rB  rC  rE  rG  rH  rI  rK  rL  ZfixturerT  rW  rX  rY  r[  r\  r]  r_  r`  rc  rf  rg  rl  rn  ro  rp  rq  rv  rx  rz  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  r  r  r   r$  r%  r'  r(  r)  r+  r,  r-  r.  r/  r4  r5  r8  r9  r:  r;  r<  rA  rB  rD  rG  rH  rI  rJ  Zfont_scalingsrL  rM  rN  rO  rP  rQ  rS  rX  r[  r\  r]  r`  ra  rc  rd  re  rh  ri  rk  r   r   r   r   <module>   s  










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

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











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

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

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

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

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

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

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