U
    FvfX                    @   s\4  d dl Z d dlm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
mZ d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZ d d
l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/Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z7 d dl8m9Z: d dl;m<Z= d dl>m?Z@ d dlAmBZC d dlDmEZEmFZFmGZG d dlHmIZImJZJmKZK eJdgddd ZLdd ZMdd ZNeJ dd ZOeJ dd ZPeJ dd ZQdd  ZReJdgdd!d" ZSeJdgdd#d$ ZTeJdgdd%d& ZUd'd( ZVeJdgdd)d* ZWeId+d,d-d.d/gd0d1 ZXd2d3 ZYd4d5 ZZeId6gd7d8 Z[d9d: Z\ej]^d;d<eJdgd=d>d?d@ Z_eIdAgdBdC Z`dDdE ZadFdG ZbdHdI ZcdJdK ZdeJdgddLdM ZeeIdNgdOdPdQdR ZfejghdSdTdU ZiejghdSdVdW ZjejghdSdXdY ZkeJdgddZd[ ZleId\gdOdPd]d^ ZmeId_gdOdPd`da Zndbdc Zoddde Zpdfdg Zqdhdi ZreIdjgdkdlidmdndo Zsdpdq ZteJdgddrds ZueIdtdtgdudv ZveIdwgdxdydzd{ ZweJdgdd|d} Zxd~d ZyeIdgdgdOdxddd ZzeIdgdd Z{eIdgdddd Z|eIddgdOdPdd Z}eIddgdOdPdd Z~dd ZeIdgdxdydd ZeIdgdxdOddd Zdd Zdd ZeIdgdd ZejghdSej]^ddddgeJdgddd ZeIddgdOdxddd ZeIdgdxe dkrVdnd ddd Zdd ZeIdgdOdPdd Zej]j^dedddfedddeddfeddddedfgdddgddd Zej]j^dedddfedddeddfeddddedfgdddgdddǄ ZeIdgdOdPddʄ ZeIdgdxdOddd̈́ ZeIdgdOdPddЄ ZeIdgddӄ ZeIdgdOdPddք Zdd؄ ZeIdgdOdPddۄ ZeIdgdgddd߄ ZeIdgddgdOddd Zej]^dddgeJdgddd ZeIdgdxdydd ZeIdgdxdydd Zdd Zdd ZeJdgddd ZeJdgddd Zdd Zdd Zej]^dddOgeJdgddd ZeId gdd ZeIdgdOdSddd ZeIdgdOdPdd Zd	d
 ZeIdgdOdPdd ZeIdgdOdddd ZeIdgdOdddd ZeIdgdOdPdd ZeIdgdOdPdd ZeIdgdSdOddd ZeId gdOdPd!d" ZeId#gdOdPd$d% ZeId&d&gd'd( Zd)d* Zd+d, ZeId-gd.d/ ZeId0gd1d2 ZeJdgdd3d4 ZeJdgdd5d6 ZeJdgdd7d8 ZeJdgdd9d: Zd;d< Zd=d> ZeId?gd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZejghdSeJ dNdO Zej]^dPdQdRdQdSgdQfdTdUdVgdWdXdYgdZd[d\gdZd[d\gdSfdTdUdVgdWdXdYgd]d^dSgd]d^dSgdSfdTdUdVgdWdXdYgd_dSdSdSgd_fgd`da Zdbdc Zddde ZeIdfgdOdPdgdh ZeJdgddidj ZŐdkdl ZeIdmgdOdPdndo Zǐdpdq ZeIdrgdOdPdsdt ZeIdugdOdPdvdw ZeIdxgdydz Zːd{d| Z̐d}d~ Zej]j^dejjΐdd dd gdddgddd Zej]^dg dRfg gdRfg g gdfgdd Zej]^ddej,jjfdejjjfdej,jjfgdd ZeJdgddd ZeJdgddd ZeJdgddd ZeJdgddd Zِdd Zڐdd Zېdd Zܐdd Zݐdd ZeIdgdOdPdd ZeIdgdd ZeJdgddd Zdd ZeIdgdOdxddd ZeIdgdxe dkr"dnd ddd ZeIddgdOdxddd ZeIdgdOdxddd Zdd ZG dd dZdddddZeddZej]^de edUed d dRdRggdÍfedĐdōededRd d dRggdÍfedĐdUdÍededRd d dRggdÍfedUdƍedUed d dRdRggdÍfedUdgdƍedUdged d dRdRgd dd dRggdÍfgdɐdʄ Z[[ej]^de dfedUdōdfedĐddfedĐdgddĐdgfedĐd̍dfed͐ddfedΐddfedĐdǐdύdfedUdĐdǐdЍdfedĐdƍdfedĐdǐdэdfgdҐdӄ ZdԐdՄ Zd֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ Zdސd߄ ZeIddgdd ZeIdgdOdPdd Zi dd i fddZeIdgdkdidSddd ZeIdgdkdidSddd ZeIdgdkdidSddd ZeIdgdkdidSddd ZeIdgdOdkdidSdddd ZeIdgdkdidSdddd ZeId gdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSdd	d
 Z eIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeIdgdOdkdidSddd ZeId gdOdkdidSdd!d" ZeId#gdOdkdidSdd$d% Z	eId&gdOdkdidSdd'd( Z
eId)gdOdkdidSdd*d+ ZeId,gdOdkdidSdd-d. ZeId/gdOdkdidSdd0d1 ZeId2gdOdkdidSdd3d4 Zd5d6 Zd7d8 ZeId9gdkdidSdd:d; ZeId<gdkdidSdd=d> Zd?d@ ZeIdAdAgdBdSdCdDdE ZeIdFgdkdidSddGdH ZeIdIgdOdSddJdK ZeIdLgdOdkdidSddMdN ZeIdOdPgdSdydQdR ZdSdT ZeIdUgdkdidOdRdSdVdWdX ZeIdYgdOdkdidSddZd[ ZeId\gdOdkdidSdd]d^ Zd_d` Zdadb Zdcdd Zdedf Z eIdggdOdkdidSddhdi Z!eIdjdjgdkdl Z"eIdmgdndo Z#eIdpgdqdr Z$eIdsgdtdu Z%eIdvgdwdx Z&eIdygdzd{ Z'eId|gd}d~ Z(eIdgdd Z)eIdgdd Z*eIdgdd Z+eIdgdd Z,eIdgdd Z-eIdgdd Z.eIdgdd Z/dd Z0dd Z1dd Z2dd Z3eJdgddd Z4eJdgddd Z5dd Z6dd Z7dd Z8eIdddgdd Z9eIdgdgdOddd Z:dd Z;eJ dd Z<dd Z=eIdgdd Z>dd Z?dd Z@eJdgddd ZAdd ZBdd ZCeJ dd ZDej]^ddRddgedRddgdRgdÐdĄ ZEeJdgddŐdƄ ZFeIdǐdgdȐdɄ ZGeIdgdːd̄ ZHeIdgdOdPdΐdτ ZIeIdgdѐd҄ ZJeIdgdԐdՄ ZKej]j^ddOdgdאdgdeIdgdxdOddڐdۄ ZLdܐd݄ ZMdސd߄ ZNdd ZOej]j^ddOdgdאdgdeIdgdxdOddd ZPeIdgdd ZQeIdgdd ZReIdgdd ZSeIdgdOdPdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd  Z\eIdgdd Z]dd Z^dd Z_dd	 Z`eId
gdOdPdd ZaeIdgdOdPdd ZbeIdgdOdPdd Zcdd Zddd ZeeIdgdOdPdd ZfeIddgdOdPdd ZgeIdgdOdPdd Zhej]^dd d!d"gd#d$ Zid%d& ZjeId'gdOdPd(d) Zkd*d+ Zlej]^d,g gg d dRggd dRgg ggej]^d-dd.d/gd0d1 ZmeJdgdd2d3 ZneId4gdOdPd5d6 ZoeId7gd8d9 ZpeId:gdOdPd;d< ZqeId=d>ge d?krd nddd@dA ZreJ dBdC ZseJ dDdE ZteJ dFdG ZueJ dHdI ZvdJdK ZweIdLdMdNgdgddOdP ZxdQdR ZyeIdSdTdUgdgddVdW ZzdXdY Z{ej]^d,dRddej|dZgej}dRddd[dZgd[geJdgdd\d] Z~eId^d^gdOdPd_d` ZeIdagdOdPdbdc Zddde ZeIdfdgdhdigdOdjdSdkdldm ZeIdndodpdqgdOdjdSdkdrds ZeIdtdudvdwgdOdjdSdkdxdy Zdzd{ ZeJdgdd|d} Zd~d ZeIddddgdOdddd ZeIddddddddgdOdPdd Zdd ZeJdgddd ZeIdgdOdPdd ZeIddgdOdPdd Zej]^ddddgdd Zdd Zdd ZeJdgddd Zdd Zej]^de7je7jdge7je7jdggdd Zdd Zdd Zdd Zdd Zdd Zej]^dedi dfedi dfedRdgfi dfee ddidffdd ZddÄ Zej]^d;d<dĐdń ZdƐdǄ ZdȐdɄ ZeIdgdːd̄ ZeId͐d͐dgdgdxd΍dϐdЄ ZeIdgdxdydҐdӄ ZeIdgdxdydՐdք ZeIdgdxdydؐdل ZeIdgdxdydېd܄ ZeIdgdxdydސd߄ ZeIdgdd Zdd Zdd Zdd ZeJ dd ZeJ dd ZeIdgdd Zdd ZeJdgddd Zdd Zdd Zdd Zdd ZeIdgdd Zdd  ZeIdgdkdidmdd Zdd Zdd Zej]^ded	i d
fedi d
fee dQdid
fee ddid
feddRdRd<dfeddQdRidfedi dffdd Zdd Zdd Zdd Zdd Zdd ZÐdd ZĐdd  ZŐd!d" ZeId#gdkdidmd$d% ZeId&gdkdidmd'd( ZȐd)d* Zɐd+d, Zʐd-d. Zːd/d0 Zej]^d1d2ej͐jfd3ej͐jfeϐdZeϐd[fej͐jfdRdd[d4d5gd dRddgfej͐jfejѐѐd6ejѐѐd6fejjfgej]^d,ed7Ӑd8ejѐdd[dgd9d: ZՐd;d< Z֐d=d> Zאd?d@ ZؐdAdB Zej]^dCeك dDdE ZeIdFgdOdPdGdH ZېdIdJ ZܐdKdL Zej]^dMdOdgdNdO ZeIdPgdOdddQdR ZeIdSgdOdxddTdU ZejghdSdVdW ZejdQdgdXdYdZ Zejd[d\d]d^gdXd_d` Zdadb Zdcdd Zdedf Zdgdh ZejghdSdidj ZejghdS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d}d~ Zdd Zdd Zdd Zdd Zdd Zdd ZeIdgdddd ZeIdgdd ZeIdgdddd ZeIdgdOdPdd Zdd Zdd Zdd Z dd Zej]j^ddddgdd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jghdSdd Zdd Zdd Zdd Zdd ZdÐdĄ Zej]^dŐdƐdgej]^dȐdƐdgdɐdʄ Zdːd̄ Zd͐d΄ ZdϐdЄ ZeJdgddѐd҄ ZeJdgddӐdԄ ZdՐdք Zdאd؄ Zdِdڄ ZeIdgdOdxddܐd݄ Zdސd߄ Zdd Zej]^dddOgej]^dddOgdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#eIdgdxdOddd Z$eIdgdxdydd Z%dd Z&dd Z'dd Z(dd Z)d d Z*eIdgdOdxddd Z+dd Z,dd Z-d	d
 Z.dd Z/dd Z0dd Z1eJdgddd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dd Z8dd  Z9d!d" Z:d#d$ Z;d%d& Z<d'd( Z=d)d* Z>d+d, Z?d-d. Z@d/d0 ZAd1d2 ZBd3d4 ZCej]^d5d<ej]^d6d7d8d9 ZDeJdgdd:d; ZEejghdSd<d= ZFd>d? ZGd@dA ZHej]^dBdCdD e'jID d4dWd7g ejghdSdEdF ZJdGdH ZKdIdJ ZLeJdgddKdL ZMeJdgddMdN ZNdOdP ZOej]^dQdRdSdTgdUdV ZPdWdX ZQdYdZ ZRd[d\ ZSd]d^ ZTd_d` ZUdadb ZVdcdd ZWeIdegdfdg ZXdhdi ZYdjdk ZZej]^dldmdndnj[gdodp Z\dqdr Z]dsdt Z^dudv Z_dwdx Z`dydz Zad{d| ZbejghdSd}d~ Zcdd Zddd Zeej]^ddej]^d,ddedigdd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd ZneJdgddd ZoeIdgdxdydd Zpdd Zqdd Zrdd ZsejghdSdd ZtdS (      N)
namedtupleDecimal)partial)product)SimpleNamespace)ma)cycler)
rc_context)MatplotlibDeprecationWarning)Figure)Axes)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titlespng
extensionsc                 C   s   |   }|d d S NF)subplotsset_visiblefig_testfig_refax r    >/tmp/pip-unpacked-wheel-7vhvci0g/matplotlib/tests/test_axes.pytest_invisible_axes1   s    r"   c                  C   sD   t  \} }|d |d | dks0t| dks@td S )Nzx labelzy label)pltr   
set_xlabel
set_ylabelZ
get_xlabelAssertionErrorZ
get_ylabelfigr   r    r    r!   test_get_labels7   s
    

r)   c                  C   sH   t  \} }|d |d |d |d t|dksDtd S )NlabeltitlexyzH<Axes: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r#   r   	set_label	set_titler$   r%   reprr&   r'   r    r    r!   	test_repr?   s    



r1   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cr*   Y LabeltoplocX LabelrightZ Labelr-   har,   r?   r   r4   legendr%   r$   colorbarr.   r   r   r   Zsccbarr    r    r!   test_label_loc_verticalJ   s    

rF   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 )Nr2   r3   r4   r5   r7   bottomr9   r;   left
horizontalorientationr=   r   r>   r@   rA   rD   r    r    r!   test_label_loc_horizontal]   s    rL   c              	   C   s   t ddd` |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W 5 Q R X | }|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<   r8   )zxaxis.labellocationzyaxis.labellocationr2   r3   r4   r5   r7   r;   rI   rJ   r=   r>   r@   )	
matplotlibr
   r   r4   rB   r%   r$   rC   r.   rD   r    r    r!   test_label_loc_rcp   s"    


rN   c                  C   s  t  \} }|jddd |jddd |j  dks>t|jddd |j  dksbt|jddd |j  dkst|jddd |jddd |j  dkst|jddd |j  dkst|jddd |j  dkstd S )Nz
Test labelrH   r9   centerr<   r8   rG   )	r#   r   r$   xaxis	get_labelget_horizontalalignmentr&   r%   yaxisr'   r    r    r!   test_label_shift   s    rT   c           	      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   r2   maxlagsfullmoder-   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r   r   ZNxr,   rX   ax_testax_refZnorm_auto_corrZlagsr    r    r!   
test_acorr   s    rm   c           	      C   s   t jd d}t j|d  }t |t j}|d }|  }|j	||d | }t j
||ddt || }t | |d }||d | ||  }||dg| |jdddd	 d S )
NrU   3   
   r2   rW   rY   rZ   r   r\   )r_   r`   ra   randrc   ceilastypeint64r   rd   re   rf   rg   rh   ri   rj   r    r    r!   test_acorr_integers   s    rt   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t |d d d dddi |d jd|d  |d  d d d d |D ]}|j	d qd S )NrU   i   r   rV   )    ru   r3   r2   .lower)markeroriginZgray_rnearest)cmapinterpolation
markersizero   )aspectxlimylimboth)rv   )r_   r`   ra   onesshufflereshaper   spyimshowrP   tick_topplotZnonzerosetget_xlimget_ylimset_ticks_position)r   r   aaxs_testaxs_refr   r    r    r!   test_spy   s&    



( 
 r   c               
   C   sT   t  \} }ddidddfD ]0}tt |jtddf| W 5 Q R X qd S )Nr|   rz   osolid)rx   	linestyle   )r#   r   pytestraises	TypeErrorr   r_   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mpl20ru   r   )mplstyleuser_   r`   rp   add_subplotZmatshowr   rP   r   r   )r   r   r   rl   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>   s     z)test_formatter_ticker.<locals>.<listcomp>ro   c                    s   g | ]}d | d  j  qS )      ?      ?kmr   r-   r   r    r!   r      s     c                    s   g | ]}d | d  j  qS )      ?      ?r   r   r   r    r!   r      s     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registerrM   rcParamsranger#   figurer   r$   r   autoscale_view)ZxdataZydata1Zydata2r   r    r   r!   test_formatter_ticker   s0    






r   c                  C   s   dd } t   }|jjs t|jjs,t|jjs8t|jjsDt|j|  |jjr\t|jjsht|jjstt|jjstt	
| }t|j t	j
st|j j|jkstd S )Nc                 S   s   dS )N r    r,   posr    r    r!   	_formfunc  s    z4test_funcformatter_auto_formatter.<locals>._formfunc)r#   r   r   rP   isDefault_majfmtr&   isDefault_minfmtrS   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t|jjs(t|jjs4t|jjs@t|j|  |jjsXt|jjsdt|jjspt|jjr|tt	
| }t|j t	j
st|j j|jkstd S )Nz	{x}_{pos})r#   r   r   rP   r   r&   r   rS   set_minor_formatterr   ZStrMethodFormatterr   Zget_minor_formatterfmt)Zformstrr   Ztarg_strformatterr    r    r!   &test_strmethodformatter_auto_formatter3  s     

r   Ztwin_axis_locators_formattersc                  C   s  t jddddd} t t j|  d }t|}tddd	g}t }|ddd}|dd
gddg |j	
| |j	| |j	td |j	tdddg |j
t  |jtddddg |jtd |jtddddg |  |  d S )Nr   r2      T)numZendpoint       @皙?皙?333333?d   z%08.2lfZtricksZmindZjedi   #   7   K   z%05.2lfr6   3pr   )r_   linspacesinpir#   ZFixedLocatorr   r   r   rS   set_major_locatorZset_minor_locatorr   ZFormatStrFormatterr   ZFixedFormatterrP   ZLinearLocatortwinytwinx)valsZlocsZmajlZminlr(   ax1r    r    r!   "test_twin_axis_locators_formattersL  s&    
r   c                  C   s   t  \} }| }| }t   |j r2t|j r@t|	  |	  |j r^t|j rlt|j
 szt|j st|j rt|j
 rt|j st|j st|j
 std S N)r#   r   r   r   drawrP   get_visibler&   patchclarS   )r(   r   ax2ax3r    r    r!   test_twinx_clae  s"    r   twinr,   r-   RQ?)r   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_scaler2   r   r3   logr2   r3   r      nonezaxes.edgecoloraxes.linewidthZ
projecting)	transform	facecolor	edgecolor	linewidthZcapstyle)r_   rg   r   getattrr   rM   pathPath
add_artistpatches	PathPatchMOVETOZLINETO	transAxesr   r   r   )r   r   r   Z	twin_funcZ	set_scaler,   rk   ax_twinirl   r   r    r    r!   test_twin_logscale|  sJ    
   r  ztwin_autoscale.pngc                  C   s   t dddg} d|  }t dddg}d| }t }|jdddd}|j| |dd	d
 t|}|j||ddd |dd |dd d S )Nr   r   r2   r3   r   r   r2   r2   F)Zautoscalex_onZautoscaley_onr   ro   r   lwr--r   r  )r_   arrayr#   r   add_axesr   r   margins)r,   r-   x2y2r(   r   r   r    r    r!   test_twinx_axis_scales  s    
r  c                  C   st   t  \} }| }|d | }| s2t| r>t| }|d | }| sdt| rptd S r   )	r#   r   r   Zset_autoscalex_onget_autoscalex_onr&   r   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   s  t d} |  }| rt| r*ttjd}|| | rLt| sXt|	  t
ddtj d}||t| | rt| rt|	  || t   | rt| st| jD ]}|  qt d}t jd|d}|jd | st||t| |	  | r>t|	  || ||t| |	  | sxtt |  d S )	Nr   )r   r   r3   r         shareyT)r#   r   gcaZxaxis_invertedr&   yaxis_invertedr_   r`   r   r   r   r   r   cos	autoscaleaxesremovesubplotrS   Zset_invertedclose)r(   r   imgr,   ax0r   r    r    r!   test_inverted_cla  sB    






r  c            	   	      s   t jtdd G  fdddt} W 5 Q R X t jtdd G  fdddt}W 5 Q R X G dd d| }G  fd	d
d
t}G  fdddt}G dd d|}t }| |||||fD ]6}d ||ddddg} std |   stqd S )NzOverriding `Axes.cla`matchc                       s   e Zd Z fddZdS )z(test_subclass_clear_cla.<locals>.ClaAxesc                    s   d d S NTr    selfcalledr    r!   r     s    z,test_subclass_clear_cla.<locals>.ClaAxes.claN)__name__
__module____qualname__r   r    r%  r    r!   ClaAxes  s   r*  c                       s   e Zd Z fddZ  ZS )z-test_subclass_clear_cla.<locals>.ClaSuperAxesc                    s   dt    d S r"  )superr   r#  	__class__r&  r    r!   r     s    z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla)r'  r(  r)  r   __classcell__r    r%  r-  r!   ClaSuperAxes  s   r0  c                   @   s   e Zd ZdS )z+test_subclass_clear_cla.<locals>.SubClaAxesNr'  r(  r)  r    r    r    r!   
SubClaAxes  s   r2  c                       s   e Zd Z fddZdS )z*test_subclass_clear_cla.<locals>.ClearAxesc                    s   d d S r"  r    r#  r%  r    r!   clear  s    z0test_subclass_clear_cla.<locals>.ClearAxes.clearN)r'  r(  r)  r3  r    r%  r    r!   	ClearAxes  s   r4  c                       s   e Zd Z fddZ  ZS )z/test_subclass_clear_cla.<locals>.ClearSuperAxesc                    s   dt    d S r"  )r+  r3  r#  r,  r    r!   r3    s    z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear)r'  r(  r)  r3  r.  r    r%  r/  r!   ClearSuperAxes  s   r5  c                   @   s   e Zd ZdS )z-test_subclass_clear_cla.<locals>.SubClearAxesNr1  r    r    r    r!   SubClearAxes!  s   r6  Fr   r2   )r   warnsPendingDeprecationWarningr   r   r&   r   )	r*  r0  r2  r4  r5  r6  r(   
axes_classr   r    r%  r!   test_subclass_clear_cla  s0      r:  c                  C   s*   t  D ]} d| jkrd| jkstqd S )Nr:  r   )r   __subclasses__r)  __dict__r&   )klassr    r    r!   !test_cla_not_redefined_internally2  s    
r>  c              	   C   s`   t ddd" |  }|ddgddg W 5 Q R X | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r2   )rM   r
   r   r   minorticks_onr   r   rk   rl   r    r    r!    test_minorticks_on_rcParams_both:  s    
rA  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 )Nr3   ro   ir   r2   )r#   r   	enumerateflatr   )r(   axsr  r   y1r    r    r!   test_autoscale_tiny_rangeE  s    rH  defaultc                  C   s   t dd\} }|ddddg |jdddd |jdd	dd t| d
 t| d | sjt|	 svt|
 st|jd d t| d
 t| d | st|	 st|
 std S )Nr2   r3   r   r   Tr,   F)enableaxistightr-   )g333333ÿg333333	@)r         @)rJ  )r#   r   r   r  r   r   r   r  r&   r  get_autoscale_onr'   r    r    r!   test_autoscale_tightN  s    rO  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dtyper3   r2   Tsharex)rL  r}   r   )r_   rg   floatr#   r   loglogsemilogxr  r   r   r   r   )r,   r(   r   r   Zlimsr    r    r!   test_autoscale_log_sharedf  s    rV  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   r2   r3   r   rw   ry   )      r   FrX  r   T)
r#   r   r   r   r   r   Zuse_sticky_edgesr  Z_xmarginZ_ymargin)r(   r   r   r   r    r    r!   test_use_sticky_edgesx  s    rY  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r   r   r  r  rQ  )r_   rg   r   r   
pcolormesh)r   r   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)r}   r   r   )Zautoscale_onr   r   r   purpler  r   z	local maxr   r2   datar   r   zoffset points)xyxycoordsxytext
textcoords)	r_   rg   r  r   r#   r   r   r   annotate)tsr(   r   liner    r    r!   test_basic_annotate  s    
 ro  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)rY   rH   r<   r   r   r3      r   r   ro   )widthlength_includes_headshapehead_starts_at_zeroZ
head_widthhead_length)r   r#   r   rD  ziprE  set_xlimset_ylimr_   r   arrowr   r  )
rs  rt  ru  kwargsr(   rF  r  r   kwargthetar    r    r!   test_arrow_simple  s$    
r~  c                  C   s$   t  \} }|jdddddd d S )Nr   )rv  )r#   r   rz  _r   r    r    r!   test_arrow_empty  s    r  c                  C   s@   t  \} }|dddd | dks,t| dks<td S )Nr2   )皙?皙@)r#   r   rz  r   r&   r   r  r    r    r!   test_arrow_in_view  s    r  c                  C   sN   t  \} }|jdddd}|jd ks*t|jdddi d}|jd k	sJtd S )Nfoor   r2   r3   r   )ri  )ri  
arrowprops)r#   r   rk  Zarrow_patchr&   )r(   r   annr    r    r!   test_annotate_default_arrow  s
    r  c                  C   sp   t  \} }t|jj}ttjj}t|	 t|	 ksDt
t| | D ]\}}||ksVt
qVdS )z?Check that the signature of Axes.annotate() matches Annotation.N)r#   r   inspect	signaturerk  
parametersmtextZ
Annotationlistkeysr&   rw  values)r(   r   Zannotate_paramsZannotation_paramsp1p2r    r    r!   test_annotate_signature  s    r  zfill_units.pngdpi<   )savefig_kwargc                  C   s  dd l m  m}  |   | jdtdddd}d| j }| dd}tj	d	d
dd}t
|}tdd\}\\}}\}	}
|j|g|gddd ddddg}||| ddddgd |j|g|gddd ||||| || gddddg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]rP  r3   degred)Zyunitsr   r2   r]  g     V@bZ   r   )r   )r   r   r   r   Epochdatetimer  Durationr_   rg   mdatesdate2numr#   r   r   fillZautofmt_xdate)r   rl  valuedayr  Zdtnr(   r   r   r   ax4indr    r    r!   test_fill_units  s6    


 
""r  c                	   C   s   t jtdd tjdgdgddd W 5 Q R X t jtdd tjdgdgdd	d
 W 5 Q R X t jtdd tjdgdgddd W 5 Q R X tjdgdgddd d S )Nzmarker .* redundantly definedr   r   r   r,   rx   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r   )r   r   )r   r7  UserWarningr#   r   errorbarr    r    r    r!    test_plot_format_kwarg_redundant  s       r  c                 C   s~   ddddg}t |}| }|  }|j||t |t |d^}}|ddg |j||t |t |ddgd d S )Nr2   r3   r   r   xerryerr)r  r  Zdashes)r_   r   r  r  absZ
set_dashes)r   r   r,   r-   rl   rk   rn  r  r    r    r!   test_errorbar_dashes  s    
"r  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 )Nr   lines.markerT	axes.gridr3   r   r2   r   r  r   re  r  )rM   r   r#   r   r   )r(   r   r   re  r    r    r!   test_single_point   s    

r  zsingle_date.pngr   )r   c                  C   sj   dt jd< ttd} dg}dg}t dd\}}|d j||  |d	d
d |d j||d	d
d d S )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr3   r2   r   r   r  r  )	r#   r   r  r  r_   
datetime64r   	plot_dater   )r  Ztime1data1r(   r   r    r    r!   test_single_date2  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 )Nro   r2   r}   r   r   r}   r2   r3   r2   gQQ?)r   	   r   r   )r_   rg   r   r   r   r   Zravel)r   r   rowcolrF  r    r    r!   test_shaped_dataA  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r2   r2   r3   r3   r   ZtwosrP  r3   r   r  r2   r  )r_   r  rS  r#   r   r   r   )ZptsrF  r    r    r!   test_structured_dataP  s    r  Zaitoff_proj)r   rC  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
       r3   )   @ZaitoffZ
projection)figsize
subplot_kwr   r   )r~   N)
r_   r   r   meshgridr#   r   dictgridr   rE  )r,   r-   XYr(   r   r    r    r!   test_aitoff_projZ  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   r  r  r2   r  r     r   r         ?)r   alphar^  )r   r   r   r   r  r  r  r  convertr#   r  axvspanrx  r   t0tfr  r   r    r    r!   test_axvspan_epochk  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  r  r  r#   r  axhspanry  r  r    r    r!   test_axhspan_epochz  s    r  zhexbin_extent.pngc                  C   st   t  \} }tdd d}|\}}|j||ddddgd ||d}t  \} }|jd	d
ddddg|d d S )N  )r3     r   r   333333?ffffff?)extentr   r,   r-   )r  re  )r#   r   r_   rg   r   hexbin)r(   r   re  r,   r-   r    r    r!   test_hexbin_extent  s    
r  zhexbin_empty.pngc                  C   s8   t  \} }|g g  t  \} }|jg g dd d S )Nr   bins)r#   r   r  r'   r    r    r!   test_hexbin_empty  s    r  c                  C   sd   t  \} }tdd d}|\}}|j||ddddgdd}td	d
d}||d s`td S )N   r3   r   r   r   r  r  r}   )r  Zpicker  ,  r   r   )	r#   r   r_   rg   r   r  r   containsr&   )r(   r   re  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.snaprU   順 r         @rM  r3   r   r   T)yscaler  	marginalsreduce_C_function)r#   r   r_   r`   ra   standard_normalpowerr   r  sumrC   )nr,   r-   r(   r   hr    r    r!   test_hexbin_log  s    
 r  zhexbin_linear.pngr   rC  c                  C   s^   t jd d} t j| }dd|  dt j|   }t \}}|j||ddt jd d S )	NrU   r  r   r  rM  ro   r   T)Zgridsizer   r  )r_   r`   ra   r  r#   r   r  r  )r  r,   r-   r(   r   r    r    r!   test_hexbin_linear  s    r
  c                  C   sH   t dd\} }t \}}|j| |dddd}| dksDtd S )Nr  r  r   r3   r   )r  vminvmax)r_   rg   r   r#   r   r  Zget_climr&   )r,   r-   r(   r   r  r    r    r!   test_hexbin_log_clim  s    r  c                  C   s   t  \} }|  |ddddgddddg | dks@t| dksPtt   t  \} }|  |ddddgddddg | d	kst| d
kstt  \} }|	d |
dd | dkstd S )Nra  r3   r   r2   r   )r   r  r`  )r  r   )r   ra  r   ro   )ro   r2   )r#   r   invert_xaxisr   r   r&   r   r  invert_yaxis
set_yscalery  r'   r    r    r!   test_inverted_limits  s    
r  Znonfinite_limitsc               	   C   s`   t dt jd} t jdd t | }W 5 Q R X t j| t| d < t \}}|	| | d S )Nr]  r_  ignoredivider3   )
r_   rg   eerrstater   nanlenr#   r   r   r,   r-   r(   r   r    r    r!   test_nonfinite_limits  s    r  plot_funr4   r   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-01r  rP  C0r  )r_   rg   r   r   r   r  )r  r   r   r,   rk   rl   r   r    r    r!   test_limits_empty_data  s    r  r   )rC  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 )Nrz   image.interpolationr   r3   r  r  )rM   r   r_   indicessqrtr#   r   r   )Nr,   r-   r  r(   r   re  r    r    r!   test_imshow  s    

r$  Zimshow_clip)aarch64ppc64les390xgףp=
?)r   r   c            	      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 )Nrz   r   r   r3   r   r   )	clip_path)rM   r   r_   r!  r"  r#   r   contourcollections	get_pathsget_transformmtransformsZTransformedPathr   )	r#  r,   r-   r  r(   r   r6   r(  Zclip_transformr    r    r!   test_imshow_clip   s    

r.  c               	   C   sP   ddgddgg} t  }tjtdd  |j| tddd	d
d W 5 Q R X dS )4Parameters vmin, vmax should error if norm is given.r2   r3   r   r   LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r   ro   r   r   )normr  r  N)r#   r  r   r   
ValueErrorr   mcolors	Normalize)r   r   r    r    r!   test_imshow_norm_vminvmax=  s    r6  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 )Nr2   r3   (   )
linewidthsr   r   )
r#   r   r_   r  r   r*  ZPolyCollectionadd_collection
set_xbound
set_ybound)r(   r   vertsr6   r    r    r!   test_polycollection_joinstyleG  s    "
r=  z	x, y1, y2r  r   r]  r3   Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)idsc              	   C   s4   t  \}}tt || || W 5 Q R X d S r   )r#   r   r   r   r3  r  r,   rG  r  r(   r   r    r    r!   test_fill_between_inputR  s    r@  z	y, x1, x2Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc              	   C   s4   t  \}}tt || || W 5 Q R X d S r   )r#   r   r   r   r3  fill_betweenx)r-   x1r  r(   r   r    r    r!   test_fill_betweenx_inputc  s    rC  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]  r3   r  333333?r   r2   TrQ  blackr  white/)wherer   hatchinterpolater  )rH  r   rJ  r   r   r   )r_   rg   r   r   r#   r   r   r  r   Zmasked_greaterZmasked)r,   rG  r  r(   r   r   r    r    r!   test_fill_between_interpolatet  s(    rK  Z#fill_between_interpolate_decreasingc               	   C   s   t dddg} t dddg}t ddd	g}tjd
d\}}||| d ||| d |j| ||||k dddd |j| ||||kdddd |dd |dd d S )Ngfffff@i  i  g"@r  r  g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?rH  r   rJ  r  r  r   r      X  )r_   r  r#   r   r   rA  rx  ry  )r   rl  Zprofr(   r   r    r    r!   (test_fill_between_interpolate_decreasing  s$        rR  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
 |j| |dd
 |j| ||||kdddd |j| ||||kdddd d S )Nro   r              ru   r   rM  r6   r  r   Tr   rO  r  )r_   rg   asarrayr  r#   r   r   r  r?  r    r    r!   !test_fill_between_interpolate_nan  s    
 "  rY  z
symlog.pdfc               
   C   sp   t ddddddddg} t d	d
ddddddg}t \}}|| | |d |d |dd d S )Nr   r2   r3   r      r  rq  rT  i@B i  r  r   r   symloglinearr}   i )r_   r  r#   r   r   r  
set_xscalery  r  r    r    r!   test_symlog  s    

r^  zsymlog2.pdfc                  C   st   t ddd} tdd\}}t|dddd	d
gD ],\}}|| |  |jd|d |d q2|d dd	 d S )N2   MbP?r   r2         4@r   r   r   r_  r[  )	linthreshTr}   皙)	r_   rg   r#   r   rw  r   r]  r  ry  )r,   r(   rF  r   rc  r    r    r!   test_symlog2  s    re  c                  C   s   dddddddg} dddd	dd
dddddddg}t | |\}}t ||}t| tt| t| ||d dd df  t||t|d dd df  d S )N            rX  r]  r   r   r   g      g      g      пr   r        ?      ?r}   )r_   r  hypotr#   pcolorr  )r,   r-   r  r  r[  r    r    r!   test_pcolorargs_5205  s         
rl  rZ  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  rq  rf  r   r3   皙?r   r   r2   r   r}   rM  r  
edgecolorsr  wgouraudshading)r#   r   r_   r   r  r  r   rj  minptpr   masked_wherer  maxr   rZ  )r  r,   r-   r  r  QxQzr[  Zmr(   r   r   r   r    r    r!   test_pcolormesh  s    
 $(r{  Zpcolormesh_smallZepsc                  C   s6  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 |	jD ]}|  q"d S )Nr   rf  r   r3   rm  r   r   r2   r}   rM  rn  r  rp  rq  rr  )r_   r   r  r  r   rj  rt  ru  r   rv  r  rw  r#   r   rZ  r  set_axis_off)r  r,   r-   r  r  rx  ry  r[  rz  r(   r   r   r   r   r    r    r!   test_pcolormesh_small  s      $(
r}  Zpcolormesh_alphapdf)r   rC  c                  C   s  dt jd< d} ttdd| tdd| d \}}|}|t| }t||d }||  |  }t	j
d d	}|td	}d
d
ttd	  |d d df< t|}t dd\}	\\}
}\}}|
|||fD ]&}|tjddddddd
g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  rq  rf  r   r3   r   viridis   r   r   )r   rf  r  r   r   )r   zorderr}   rN  rE  r2   )r{   r  rs  r  rq  )r{   rs  r  )r#   r   r_   r  r   r   rj  rt  ru  r   	colormaps	resampledrg   r4  ZListedColormapr   	add_patchmpatches	RectanglerZ  )r  r  r  rx  ZQyr[  Zvircolorsr{   r(   r   r   r   r  r   r    r    r!   test_pcolormesh_alpha	  s<    
$
   
 
 &r  z
dims,alphard  )r   r   c                 C   sN   |   }tjdd|ftdd }|| |  }|j|d ddd|d	 d S )
Nr   rZ  rP  r3   ).r   grayr   r2   )r{   r  r  r  )r   r_   r   rS  rZ  )r   r   Zdimsr  r   r6   r    r    r!   test_pcolormesh_rgba,  s
    
r  zpcolormesh_datetime_axis.pngc                     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  rN  \(\?333333?Zhspacer8   rG     r2   c                    s   g | ]} t j|d  qS daysr  	timedeltar   dbaser    r!   r   ?  s     z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r     r}      r   rK        r<   r   )r#   r   r   subplots_adjustr  r_   r  r   rg   r  r  rZ  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr(   r,   r-   Zz1Zz2zr   r*   r    r  r!   test_pcolormesh_datetime_axis7  s,    


.

>

r  zpcolor_datetime_axis.pngc                     s  t  } | jdddd tddd t fddtd	D }td	}ttd
td
\}}|| }t 	d t 
|d d |d d |d dd df  t 	d t 
||| tj|tj d	dd}tj|d d tjf d	dd}t 	d t 
|d dd df |d dd df |d dd df  t 	d t 
||| |  D ]*}| D ]}|d |d qhq\d S )NrN  r  r  r  r  r2   c                    s   g | ]} t j|d  qS r  r  r  r  r    r!   r   X  s     z-test_pcolor_datetime_axis.<locals>.<listcomp>r  r  r  r}   r  r   r  r  r  r<   r   )r#   r   r  r  r_   r  r   rg   r  r  rk  r  r  r  r  r  r  r  r    r  r!   test_pcolor_datetime_axisS  s*    

.

>

r  c               	   C   s  d} t dd| }t dd| d }t ||\}}t ||d }t \}}tt |	||| W 5 Q R X tt |	|||j
 W 5 Q R X tt( |j	|||d dd df dd W 5 Q R X tt( |j	|||d dd df dd W 5 Q R X t j|d	< tt$ |	|||d dd df  W 5 Q R X t jd
d t jj||d	k d}W 5 Q R X tt$ |	|||d dd df  W 5 Q R X dd	dg}ddg}t ||\}}t |j}tjtdd |j	|||dd W 5 Q R X d S )Nrq  rf  r   r3   r   r}   rq  rr  r   r  invalidmaskig  r2   r1  ro   .are not monotonically increasing or decreasingr   auto)r_   r   r  rj  r#   r   r   r   r   rZ  Tr  r3  r  r   r  zerosrt  r7  r  )r  r,   r-   r  r  r[  r  r   r    r    r!   test_pcolorargsl  s:    ,,
((
r  c               	   C   s4  t ddd} t dddg| j}|jjdks6tt jj	| |d}t
| t ddd	} t ddd	}t | |\}}t dt j | t dt j |  }t ddgd
 |j}|jjdkstt jj	||d}t
||| t jj	||d}	t jj	||d}
tjtdd t
|	|
| W 5 Q R X d S )NrZ  r3   r   FTr  r   r2   ro   r   r  r   )r_   rg   r   broadcast_tort  flagsZ	writeabler&   r   r  r#   rZ  r   r  r   r   r  r   r7  r  rk  )r,   ZxmaskZmasked_xr-   r  r  r[  r  Zmasked_ZZmasked_XZmasked_Yr    r    r!   test_pcolorargs_with_read_only  s&    
(r  c                 C   s   |   }tdd}tdd}tjd tjdd}|j|||dd |  }|d d	 t|d  }|d d	 t|d  }|j|||d
d d S )Nr   ro   r   rU   r3   r  rE  rr  r}   rz   r   r_   rg   r`   ra   randnrZ  diffr   r   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     s     z+test_pcolornearestunits.<locals>.<listcomp>ro   r   r   rU   r3   r  rE  rr  c                 S   s    g | ]}t j |d  d qS )r   r  r  r   r    r    r!   r     s     r}   rz   )	r   r   r_   rg   r`   ra   r  rZ  r  r  r    r    r!   test_pcolornearestunits  s    r  c               	   C   sn   t  \} }tdd}tdd}tjd tjdd}tjt	dd |j
|||dd W 5 Q R X d S )	Nr   r  r   rU   zDimensions of Cr   rE  rr  )r#   r   r_   rg   r`   ra   r  r   r   r   rZ  r(   r   r,   r-   r[  r    r    r!   test_pcolorflaterror  s    r  c               	   C   s`   t  \} }ttdtd\}}|| }tjtdd |j|||dd W 5 Q R X d S )Nr   r   z.*one smaller than Xr   rE  rr  )	r#   r   r_   r  rg   r   r   r   rZ  r  r    r    r!   test_samesizepcolorflaterror  s
    r  snapFc           	      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   ro   r   rU   r   r  )r  r}   r3   r  )	r   r   r  r   r,   r-   r[  r  r  r    r    r!   test_pcolorauto  s    r  	canonicalc                  C   s    t  \} }|dddg d S Nr2   r3   r   r#   r   r   r'   r    r    r!   test_canonical  s    r  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 )Nr3   r2   )r   r   r   h  r  -   r   r  )theta1theta2r   ro   )r#   r   rD  rE  r  r  ZEllipseArcr   r_   r  deg2radr   rx  ry  )
rp  r  Zcentrer   r(   rF  r  r   r  r  r    r    r!   test_arc_angles  s2    r  Zarc_ellipsec               	   C   sH  d\} }d\}}d}t t d}|d t | }|d t | }t |}t t |t | gt |t |gg}	t |	||g\}}|| 7 }||7 }t }
|
j	ddd}|j
||d	d
d
ddd tj| |f|||dddd}|| |
j	ddd}|j
||d	dddd tj| |f|||dddd}|| d S )N)gRQ?gp=
ף?)r   r   r  r   r  r  )r   r   yellowr2   )r  r   r   r   r  r3   F)angler   r  r  r  equalr   )r  r   r   r  )r_   r  rg   r  r   r  rf   r#   r   r   r  r  r  r  )Zxcenterycenterrr  heightr  r}  r,   r-   ZrthetaRr(   r   e1e2r    r    r!   test_arc_ellipse  sH    
    
   r  c                  C   sn   t  \} }td}|jdddgdddg|d |jdddgdddg|d |jdddgdddg|d d S )Nr   r2   r3   r   r  r   r   )r#   r   mmarkersMarkerStyler   r4   r  )fixr   mr    r    r!   test_marker_as_markerstyle6  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   ro   r   r   r   rI  r*   r  mark allr  r*   rm  mark every 10+r   r  mark every 5 starting at 10r_   r   r   r"  r#   r   r   rB   r  r    r    r!   test_markevery>  s    r  Zmarkevery_lineg{Gzt?)rC  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   ro   r   r   z-orI  r  z-dr  r  z-sr  z-+r  r  r  r  r    r    r!   test_markevery_lineL  s    r  Zmarkevery_linear_scalesra  c            
      C   s   d dddddg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  rT  r   r   r}   r   r  r   r   r   r   r]  r   ?r   r2   )\(?ro   r3   r   markevery=%sr   r  r   lsmsr  )slicerM   gridspecGridSpecr  r_   r   r   rD  r#   r  r+   strr   
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dddg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  rT  r   r   r}   r   r  r   r   r   r   r  r  r2   r  ro   r3   r   r  r   r  r   r  )rZ  g@)rm  g333333?)r  rM   r  r  r  r_   r   r   rD  r#   r  r+   r  r   r   r   r  r    r    r!   #test_markevery_linear_scales_zoomedw  s2     
   
r  Zmarkevery_log_scalesc            
      C   s   d dddddg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  rT  r   r   r}   r   r  r   r   r   r   r  r  r2   r  ro   r3   r   r  r   r   r  r   r  )r  rM   r  r  r  r_   r   r   rD  r#   r  r+   r  xscaler  r   r  r    r    r!   test_markevery_log_scales  s2     
   

r  Zmarkevery_polarc            	      C   s   d dddddg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 qnd S )Nr  r  r  rT  r   r   r}   r   r  r   r   r   r   r  r  r2   r  r3   Tpolarr  r   r  r   r  )r  rM   r  r  r  r_   r   r   rD  r#   r  r+   r  r   )	r  r  r  r  r}  r  r  r  r  r    r    r!   test_markevery_polar  s,     
   r  Zmarkevery_linear_scales_nansc            
      C   s   d dddddg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j |d d<  |dd < |dd< t	| D ]R\}}|| }|| }	t
|||	f  t
dt|  t
j||ddd|d qd S )Nr  r  r  rT  r   r   r}   r   r  r   r   r   r   r  r  r2   r  ro   r3   r   r`  F   r  r   r  r   r  )r  rM   r  r  r  r_   r   r   r  rD  r#   r  r+   r  r   r  r    r    r!   !test_markevery_linear_scales_nans  s0     
   &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   r2   ro   zy.      >@r  )r  mewmecr   r   r3   r  )r_   r   r#   r   r   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   r2   edge0)align
tick_labelr  r   r  )r  r  re  )r#   r  barr   )r   re  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   r2   r   )r#   r   r  r_   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 )
Nr2         @r3   r   r   r   r  rO   rr  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 )NrO   zytick.alignmentr2   r  r3   r   r   r   r  r  )rM   r   r#   r  r  r  r    r    r!   *test_bar_tick_label_multiple_old_alignment  s
    
r  c                 C   sh   |   }ddddg}ddddg}d	d
 |D }dd
 |D }|j||dd |  }|j||dd d S )Nr    @333333@r  rm  r  ffffff
@皙@c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r     s     z+test_bar_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r     s     rO   r  r   r  r   r   r   x0y0r,   r-   r    r    r!   test_bar_decimal_center  s    r   c                 C   s|   |   }ddddg}ddddg}d	d
 |D }dd
 |D }|j||ddddgdd |  }|j||ddddgdd d S )Nr   r  r  r  rm  r  r  r  c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r   #  s     z,test_barh_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r   $  s     r   r2   rO   r  r  r   barhr  r    r    r!   test_barh_decimal_center  s    r$  c                 C   sj   ddddg}ddddg}d	d
ddg}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr   r  r  r  rm  r  r  r  r  333333?r2   r3   c                 S   s   g | ]}t |qS r    r   r   r  r    r    r!   r   1  s     z*test_bar_decimal_width.<locals>.<listcomp>rO   rr  r  r  )r   r   r,   r-   Zw0rp  r   r    r    r!   test_bar_decimal_width,  s    r(  c                 C   sj   ddddg}ddddg}d	d
ddg}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr   r  r  r  rm  r  r  r  r  r%  r2   r3   c                 S   s   g | ]}t |qS r    r   r&  r    r    r!   r   ?  s     z,test_barh_decimal_height.<locals>.<listcomp>rO   r!  r"  )r   r   r,   r-   Zh0r  r   r    r    r!   test_barh_decimal_height:  s    r)  c                  C   sR   t  } | jddgddgdddd}|D ]$}| dks<t| d	ks(tq(d S )
Nr2   r3   r   r   r   r  r  r   r   r   r   r   r   r2   r   r   r   r#   r  r  get_facecolorr&   get_edgecolorr   rectsrectr    r    r!   test_bar_color_none_alphaH  s
    r3  c                  C   sR   t  } | jddgddgdddd}|D ]$}| dks<t| d	ks(tq(d S )
Nr2   r3   r   r   r  r   r*  r,  r+  r-  r0  r    r    r!   test_bar_edgecolor_none_alphaP  s
    r4  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 )
Nr2   r  r3   r   r   r   r  rO   )r  r  r  )r#   r  r#  r  r    r    r!   test_barh_tick_labelX  s    r5  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.  r2   r   r   hoursrr  r3   )r  rr  )r  )r  r  r   c                 S   s   g | ]}t j|d qS )r7  r  r   rl  r    r    r!   r   t  s     z&test_bar_timedelta.<locals>.<listcomp>r   )ro   r  N)	r#   r   r  r  r  r#  r_   r  broken_barhr'   r    r    r!   test_bar_timedelta`  s<    







r<  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r3   z1/1/2000r2   )years)periodsfreq	positions)	r_   r`   rp   
date_rangeZ
DateOffsetyearr#   r   boxplot)pdre  r=  r    r    r!   test_boxplot_dates_pandasz  s     
rF  c                  C   s   t jdd} td\}}|d j| dddgdddgd |d	 j| dddgdd |d
 j| dddgd |d j| ddddgd |d j| ddd |d j| dd |d j| dddgd |d j| dd |d |  d S )Nr   r   r  r   r   r   r   )	capwidthswidthsr2   r3   rG  r   r   rZ  rH  r  r  )r_   r`   rp   r#   r   rD  )re  r(   rF  r    r    r!   test_boxplot_capwidths  s     rK  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 5 |  X d S )Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r2   r  r}   x   )secondsr   )Zpandas.plottingrL  rM  r#   r   r   r  r  appendr  r_   rg   r  rt  rZ  canvasr   )rE  rL  rM  r(   r   timesZy_valsZ	time_axisZy_axisrt  Zz_dataimr    r    r!   test_pcolor_regression  s     

rV  c                 C   s   |  dddgdddgdddgdddgd}| |dddg |d	< |d	d
g d	g }|j}|d
 }|d
 }t \}}|j||ddd |j||ddd d S )Nr6  r2   r3   r   )rC  monthr  r  rC  rW  r  dater  ro   rO   r'  oranger   r  )		DataFrameZto_datetimegroupbyr  indexr#   r   r  r   )rE  dfZmonthlydatesZforecastbaseliner(   r   r    r    r!   test_bar_pandas  s    r`  c                 C   sJ   | j dddgdddgddd	d
gd}t \}}|j|jd|jd d S )Nr   r   r  r   rN  r  )r,   rr  r2   r3   r   r\  r9  )rZ  r#   r   r  r,   rr  rE  r]  r(   r   r    r    r!   test_bar_pandas_indexed  s
    rc  c                 C   sh   |   }|  }ddg}ddg}ddg}tdD ]"}|j|| || d|| d q0|j|||d d S )	Nr2   r3   r   r,   r   r  )r   rI  rI  )r   r   r  )r   r   rk   rl   r,   r-   hatchesr  r    r    r!   test_bar_hatches  s     rf  )r,   rr  r*   expected_labelscontainer_labelr,   r2   
_nolegend_r   r  r6   ro   r  r   ABCr  r  barsc           	      C   sJ   t  \}}|j| ||d}dd |D }||ks6t| |ksFtd S )Nr  c                 S   s   g | ]}|  qS r    )rQ   )r   r  r    r    r!   r     s     z#test_bar_labels.<locals>.<listcomp>)r#   r   r  r&   rQ   )	r,   rr  r*   rg  rh  r  r   bar_containerZ
bar_labelsr    r    r!   test_bar_labels  s
    ro  c               	   C   s   t  \} }tt$ |jddgddgdddgd W 5 Q R X t  \} }tt  |jddgddgdgd W 5 Q R X d S )	Nr,   r-   r2   r3   r  r  r[  r  )r#   r   r   r   r3  r  r  r    r    r!   test_bar_labels_length  s    (rp  c                 C   s   | j ddgdd| j ddgddfD ]4}t|| t|j| t| t|j q$| ddddgi}t| t|| d S )Nr2   r3   float64rP  ZFloat64r  r   )Seriesr#   r   r\  rZ  )rE  r,   r]  r    r    r!   test_pandas_minimal_plot  s    

rs  Zhist_logc                  C   sH   t dddd } t d|  d|  g}t \}}|j|ddd d S )Nr   r2   r  r   FT)r  r   )r_   r   concatenater#   r   hist)Zdata0re  r(   r   r    r    r!   test_hist_log  s    rv  c                 C   s   |  dd}| dd}tdddg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 )Nr3   r   r  step
stepfilledr   r   r2   histtypeT)r   rz  )r   rD  r  ru  )r   r   r   r   r  rz  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dddgddd |d d | j  |d  |d  kstd S )Nr3   r   r2   
barstackedry  r   )r#   r   ru  r  rS  r   r   r&   r(   rF  r    r    r!   test_hist_log_barstacked  s    
r~  zhist_bar_empty.pngc                  C   s   t  } | jg dd d S )Nr  ry  r#   r  ru  r  r    r    r!   test_hist_bar_empty(  s    r  c                  C   s   t jd t t jjddddddt j} tj| ddd	}|d
 }t	dt
|D ]<}||d   }||  }|d d |d d ksVtqVd S )NrU   r   r   r  sizer   r2   r   )r  r  r3   )r_   r`   ra   cliprb   rr   Zfloat16r#   ru  r   r  Zget_cornersr&   )r  r  Zbcr  ZrleftZrrightr    r    r!   test_hist_float16/  s      r  zhist_step_empty.pngc                  C   s   t  } | jg dd d S )Nrw  ry  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 std S )Nr   r  r   ro   r  TFr3   rw  r   rx  )nrowsncolsrz  stackedz%s/%sr_  rG   r   r   c                 s   s   | ]}|  | kV  qd S r   )r.  r/  )r   r   r    r    r!   	<genexpr>U  s     z(test_hist_step_filled.<locals>.<genexpr>)r_   r`   ra   r  r#   r   rw  rE  ru  r/   ry  r   allr&   )
r,   Zn_binsr{  typesr(   rF  Zkg_typer   r   r    r    r!   test_hist_step_filledE  s    
r  zhist_density.pngc                  C   s6   t jd t jd} t \}}|j| dd d S )NrU   r  Tdensity)r_   r`   ra   r  r#   r   ru  re  r(   r   r    r    r!   test_hist_densityX  s    r  c                  C   s^   t jd} | d}ddddddg}tj||d	d
\}}}t j||d	d
\}}t|| d S )Ni  r   ra  r}   rX  r   r2   r   T)r  r  )r_   r`   ZRandomStater  r#   ru  Z	histogramr   )rngrl  r  Zmpl_heightsr  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  r2   r3   T)r  F)r  r#   r   ru  r  r    r    r!   test_hist_datetime_datasetsk  s    r  bins_preprocessc                 C   s   | S r   r    r  r    r    r!   <lambda>u      r  c                 C   s   t | dS )Nr  )r_   rX  r  r    r    r!   r  v  r  r  zdatetime.datetimeznp.datetime64c              	   C   s   t  dddt  dddt  dddt  dddgt  dddt  dddt  dddt  dddgg}t  dddt  dddt  dddg}t \}}|j|| |dd	\}}}tj|tj	| |j|| |d
d	\}}}tj|tj	| d S )Ni  r2   r   rU  r3   r   rS  T)r  r  F)
r  r#   r   ru  r_   r   r   r   r^  r  )r  re  Z
date_edgesr(   r   r  r  r    r    r!    test_hist_datetime_datasets_binss  s"      r  zdata, expected_number_of_histsc                 C   sH   t | \}}}t|}|jdkr2d|ksDtn|jd |ksDtd S )Nr2   r   )r#   ru  r_   rX  ndimr&   rt  )re  Zexpected_number_of_histsZhistsr  r    r    r!   test_hist_with_empty_input  s
    

r  zhisttype, zorderr  rw  rx  c                 C   sH   t   }|jddg| d |js(t|jD ]}| |ks.tq.d S )Nr2   r3   ry  )r#   r   r   ru  r   r&   
get_zorder)rz  r  r   r   r    r    r!   test_hist_zorder  s
    

r  c                 C   s  dd l m} tddddddddg}td	d
dddddddg	}| 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| |d |j|d |d gd|d gf| |d dd  |d j	t
|d ||fddi| |d |jd|d g|d |d gf| |d |jd|d g|d |d gf| |d dd  |d j	|t
||d fddi| |d |j|d |d gd|d gf| |d |j|d |d gd|d gf| |d   |d j	t
|d ||fddi| |d |jd|d g|d |d gf| |d |jd|d g|d |d gf| |d   d S ) Nr   rZ     ru   %   0   r  r   r   r   r  rM  r^        @      @       @      "@r   r3   r_  r2   rI   )r_  rK   rJ   r   miterbuttsolid_joinstylesolid_capstyler}   	drawstyle
steps-post)Zmatplotlib.lineslinesr_   r  r   flattenstairsZsemilogyrU  r   rR  Zadd_lineLine2Dry  rx  )r   r   Zmlinesr-   r,   	test_axesr   ref_axesr    r    r!   test_stairs  s@    
(((..(..(..(..r  c                 C   s  dddddgddddddg }}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 )Nr2   r3   r   r   r   r   rp  Tr  rI   )rK   r  )r_  r  )r_  rK   r  r}   post)rw  r  )r   r  r  r  r_   rR  ry  rA  rx  r   r  )r   r   r  r  bsr  r  r    r    r!   test_stairs_fill  s4     ""    r  c                 C   s  d}|   }|dddg}|| |dddg |jtdd d |dddgtdd  |dddg |d td t| d tddstt| d tdst|jdd	 | j	dkst|  }|jdddgdd	}|| d S )
N)ra  r   r2   r3   r   r   edgesr   rp  r  )
r   r  ry  set_datar_   rg   allcloseget_datar&   r_  )r   r   r   test_axr  ref_axr    r    r!   test_stairs_update  s     
 r  c                 C   sb   |   }|jdddgd d |  }ddd}|jtdddddgfd	d
i| |dd  d S )Nr   rZ  r  r  r  r  r  r   r  r  r   )r   r  r   r   ry  )r   r   r  r  r   r    r    r!   test_stairs_baseline_0	  s    
$r  c                  C   s>   t   } | g dg |  dks*t|  dks:td S )N*   )'   r  r  )r#   r   r   r  r   r&   r   r  r    r    r!   test_stairs_empty	  s    r  c                	   C   s6   t jtdd tddgdtjdg W 5 Q R X d S )NNan values in "edges"r   r2   r3   r   )r   r   r3  r#   r  r_   r  r    r    r    r!   test_stairs_invalid_nan	  s    r  c                	   C   s2   t jtdd tddgddg W 5 Q R X d S )NSize mismatchr   r2   r3   r   )r   r   r3  r#   r  r    r    r    r!   test_stairs_invalid_mismatch	  s    r  c               	   C   sH   t ddgdddg} tjtdd | jdtjdgd W 5 Q R X d S )Nr2   r3   r   r  r   r  )r#   r  r   r   r3  r  r_   r  r  r    r    r!   test_stairs_invalid_update 	  s    r  c               	   C   sF   t ddgdddg} tjtdd | jtdd W 5 Q R X d S )Nr2   r3   r   r  r   r   r  )r#   r  r   r   r3  r  r_   rg   r  r    r    r!   test_stairs_invalid_update2&	  s    r  ztest_stairs_options.pngc               
   C   s  t dddddgt ddddgt } }| }t j|d< t \}}|j|d | dddd	 |j|| d d d
dddd |j|| ddddd |j|d | d d dddddd |j|d d d d d | d d
ddd dd |j|d d d d d | dddddd |j|d d d d d | d t 	dd t
|d!dd"dd# |j|d d d d d d d$ | d d d d%ddd&d'd(d) |jd*d+ d S ),Nr2   r3   r   r   r   r   Trj  )r   r  r*   r  rI   rk  )r   r  rK   r*   rY  r  rl  )r   r  r  r*   r   D)r  r  r_  rK   r*   r}      E)r   r  r  r_  r*   r  rV  rb  F)r_  r   r  r  r*   r   r     r   G)r_  r   r  r*   r  rU  rE  rq  //H)r   r  r  r_  rI  r*   r   r9   )r_   r  rr   rS  copyr  r#   r   r  r   r  rB   )r,   r-   Zynr(   r   r    r    r!   test_stairs_options,	  sF    .
  &   .   4  r  ztest_stairs_datetime.pngc               	   C   sF   t jdd\} }|tdttdtd t jdd d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r#   r   r  r_   rg   r  xticks)fr   r    r    r!   test_stairs_datetimeD	  s    r  c                 C   sH   |   }|jdddgddd |  }|jdddgdd}|d d S )Nr2   r3   r   r  T)r   r  r  )r   r  	set_color)r   r   r  r  str    r    r!   test_stairs_edge_handlingM	  s
    r  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nra  r      rP  )r_   r   r  r   r  )r,   r-   r  r    r    r!   contour_datY	  s    "r  Zcontour_hatchingc               
   C   sD   t  \} }}t \}}|j| ||dddddgtjd ddd	 d S )
Nr  rG  \r  r  r  r   r   )re  r{   extendr  )r  r#   r   contourfr   r  )r,   r-   r  r(   r   r    r    r!   test_contour_hatching`	  s     r  Zcontour_colorbarc            	   
   C   s   t  \} }}t \}}|j| ||tdddtj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  r   )levelsr{   r  r  r  gg^I+r-   r   r3   )r  r  
linestylesr8  r  r6   )r  r  r8  r  F)Zerase)r  r#   r   r  r_   rg   r   r  r)  rC   Z	add_lines)	r,   r-   r  r(   r   csZcs1Zcs2rE   r    r    r!   test_contour_colorbari	  s(    
r  hist2dc                  C   s   dt jd< tjd tjdd d } tjdd }t  \}}|j| |ddd	 | |d
}t  \}}|jddd|dd d S )NFr  r   r   r3   r   ro   Tr  
rasterizedr   r,   r-   )r  re  r  )r#   r   r_   r`   ra   r  r   r  )r,   r-   r(   r   re  r    r    r!   test_hist2d	  s    

r  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   r3   ro   Tr  )	r#   r   r_   r`   ra   r  r  r   r  r  r    r    r!   test_hist2d_transpose	  s    
r  c                  C   s>   t jd\} }t  }|tfD ]}|j| |dd q$d S )Nr  Tr  )r_   r`   r#   r   r   r  )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	e
jdddide iddiddig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/d0 Zd1d2gd3fd4d5d6d7d8d9d:gd;fd<d=gd3fd=gd> d3fd?gd@ d;fd?gd> d;fd?gdA dBfdCdDdEdFgd;fdCdGdEdHgd;fdCd?dEdHgd3fdIddggd;fdIddggd@ dBfdIddggd> d;fdIddggdA dBfdIddd?ggd;fdIddd?ggd@ dBfdIddd?ggd> d;fdIddd?ggdA dBfdIddd?ggd@ dIddgg d;fdIddd?gdGdJgdBfdIddd?gdGdJdHgd;fdIddd?gdGdJdHddIdggdBfdIddd?gdGd=gd3fdIddd?gdGdJd=gd3fdIddd?gdGdJdHd=gd3fgZe
jdKedLdM Zejd edgddNdO ZdPdQ Zd;S )RTestScatterr4   r   Tr  c                 C   s   t ddddgt ddddgdddd	gd
dddgddddg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 )Nr   r   r3   rZ  r   r  r-   r  limerT  r         0.50.60.7z0.8)r,   r-   r6   rm  c2r,   r   r6   rm  r6   rm  r  )r6   rm  re  )r_   r  r#   r   r4   )r$  re  r(   r   r    r    r!   test_scatter_plot	  s     
 

**zTestScatter.test_scatter_plotzscatter_marker.pngrB  c           
   
   C   s2  t jdd\}\}}}|jddddgddddgddd	d
gddddgdddd	gdd |jddddgddddgddd	d
gddddgdddd	gtjdddd d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jddddgddddgddd	d
gddddgdddd	g|	d d S )Nr   r  r   r3   rZ  r   r2   r   r   r-   r  r  r  r`  r7  r   rM  r  grm  )r6   rm  ro  rx   r   r8   	fillstylerd  r   r  )r#   r   r4   r  r  r_   r   r   Zcolumn_stackr  r   )
r$  r(   r  r   r   rxZryarear}  r<  r    r    r!   test_scatter_marker	  s2    








zTestScatter.test_scatter_markerZ
scatter_2Dr   )rC  r   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r3   r  face)r6   rm  ro  )r_   rg   r  r#   r   r4   )r$  r,   r-   r  r(   r   r    r    r!   test_scatter_2D	  s    

zTestScatter.test_scatter_2Dr   c           
      C   s   t ddddg}t ddddg}t d	d
 |D }t dd
 |D }ddddg}ddddg}| }	|	j||||d | }	|	j||||d d S )Nr   r  r  r  rm  r  r  r  c                 S   s   g | ]}t |qS r    r   r&  r    r    r!   r   	  s     z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r&  r    r    r!   r   	  s     r  r-   r  r  rT  r   r  r  r  )r_   r  r   r4   )
r$  r   r   r  r  r,   r-   r6   rm  r   r    r    r!   test_scatter_decimal	  s    z TestScatter.test_scatter_decimalc              	   C   sn   t t" tjddgddgddgd W 5 Q R X t t( tjdddgdddgdddgd W 5 Q R X d S )Nr2   r3   r   r   r  r   )r   r   r3  r#   r4   r#  r    r    r!   test_scatter_color	  s    &zTestScatter.test_scatter_colorr{  r{   r  r2  r  r   r  c              	   C   s   d}t jt|d tjg g f| W 5 Q R X t jt|d& tjddgddgfdg i| W 5 Q R X tjg g fdg i| tjddgddgfdddgi| d S )	Nz"No data for colormapping provided r   r2   r3   r   r   r6   r   )r   r7  Warningr#   r4   )r$  r{  Z
warn_matchr    r    r!   test_scatter_color_warning	  s    *z&TestScatter.test_scatter_color_warningc                 C   s   t jdddgdddgdddgtjdd	d
dddgd}| jdksHtt| ddddgddddgddddgg t|	 dddg d S )Nr   r2   r3   r   0.10.3r  r   r   r  rm  rD  ?r6   rx   r8  )r   r   r   r   r   )
r#   r4   r  r  get_facecolorsrt  r&   r   get_edgecolorsget_linewidthsr$  collr    r    r!   test_scatter_unfilled	  s    

z!TestScatter.test_scatter_unfilledrI  c                 C   s   t jdddgdddgdddgdd	d
dgd}t| |  t| ddddgddddgddddgg t| d	d
dg d S )Nr   r2   r3   r   r
  r  r  r,   rm  rD  r  r  r   r   r   )r#   r4   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 5 Q R X tjtdd$ t|dd  |dd  | W 5 Q R X tjtdd t||d W 5 Q R X d S )Nr   zsame size as x and yr   r2   zfloat array-liker  )r_   rg   r   r   r3  r#   r4   )r$  r,   r    r    r!   test_scatter_size_arg_size
  s    
 (z&TestScatter.test_scatter_size_arg_sizec                 C   sp   t jdddgdtjtjgdd}t| ds4tt jddddgdtjtjdgdd}t| dsltd S )Nr2   r3   r   r  r   r   r2   r   r   r2   )r#   r4   r_   r  r4  
same_colorr/  r&   r  r    r    r!   test_scatter_edgecolor_RGB
  s    z&TestScatter.test_scatter_edgecolor_RGBc                 C   s   |  }tjd d}|dd |jtdtddtjdtjgddddg|dd	 |  }tj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  rM  r2   r   r3   r   Tr6   rm  r{   Zplotnonfiniter   r6   rm  r{   )rm  r   	r   r   r  r  Zset_badr4   r   r_   r  r$  r   r   r   r{   r    r    r!   test_scatter_invalid_color&
  s     
 $z&TestScatter.test_scatter_invalid_colorc                 C   s   |  }tjd d}|dd |jtdtddtjdtjgddddg|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  rM  r2   r   r3   r   Fr  r   r  r  r  r    r    r!   test_scatter_no_invalid_color6
  s     
 z)TestScatter.test_scatter_no_invalid_colorc              	   C   sN   dddg}t  }tjtdd$ |j|||tdddd	d
 W 5 Q R X dS )r/  r2   r3   r   r0  r   r1  ro   r   r   )r6   r2  r  r  N)r#   r  r   r   r3  r4   r4  r5  )r$  r,   r   r    r    r!   test_scatter_norm_vminvmaxB
  s    
 z&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  }|jdddd |  }|jdgdgdgd d S )Nr2   rW  )r   r4   )r$  r   r   r   r    r    r!   test_scatter_single_pointL
  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 )Nro   r3   r   rW  )r_   rg   r   r4   r   )r$  r   r   r,   r   r    r    r!   test_scatter_different_shapesS
  s
    
 z)TestScatter.test_scatter_different_shapes)r  NZrgby
conversion)r  N)r   N)NNr  r  r  r   N)jauner#  r$  r   r   r   r   rt  r  z0.4r  r  r  C5r2   z0.0zc_case, re_keyc              	   C   s   dd }d}ddd}|d k	r0t jt|| dn(t|trRt|dkrRt jd	dnt }| t	j
jj|d
i ||d W 5 Q R X d S )Nc                   S   s   dS Nr   r    r    r    r    r!   get_next_color
  s    z2TestScatter.test_scatter_c.<locals>.get_next_colorr   z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)rt  r#  r   r   (argument looks like a single numeric RGBrE  )r6   ro  r{  xsizeget_next_color_func)r   r   r3  r   r  r  r7  
contextlibnullcontextr   r  r   _parse_scatter_color_args)r$  Zc_caseZre_keyr'  r)  REGEXPZassert_contextr    r    r!   test_scatter_c
  s*    
   zTestScatter.test_scatter_cc                 C   s   dddgg}ddddg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 )	Nr2   r   皙?r   r  r   r3   rW  )r   r4   r_   r   r   )r$  r   r   ZrgbZrgbarl   rk   r    r    r!   test_scatter_single_color_c
  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tq|j|t dddddtddd
d}t	| tddt
jd	 f d S )Nr   r   rl  r,   r   r2   )r6   rx   rm  r8  C3lines.linewidth)N)r_   rg   r#   r   r   r4   rY   r  r&   r   r   r   )r$  r,   r(   r   r  Zpcr    r    r!   test_scatter_linewidths
  s    
z#TestScatter.test_scatter_linewidths) r'  r(  r)  r   r  r  r  r   r  r  r   markparametrizer4  r5  r	  r  r   r   contextr  r  r  r  r  r   r!  r"  Zparams_test_scatter_cr/  r1  r4  r    r    r    r!   r  	  s   











		








 +


r  )ro  c                K   s   | ||d k	r|ni |fS r   r    )r6   r)  ro  r{  r    r    r!   _params
  s    r8  _resultz	c, colorszparams, expected_result)r6   r  r  rW  r  r  r   c                 C   s@   dd }t jjj| d|i\}}}||jks0tt||j d S )Nc                   S   s   dS r&  r    r    r    r    r!   r'  
  s    z5test_parse_scatter_color_args.<locals>.get_next_colorr*  )r   r  r   r-  r6   r&   r   r  )paramsZexpected_resultr'  r6   r  Z_edgecolorsr    r    r!   test_parse_scatter_color_args
  s    r;  zkwargs, expected_edgecolorsr  r  r   )r   ro  )r6   r   ro  )r   r   c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ksJt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_colorr6   ro  r3   )r)  r*  )popr   r  r   r-  r&   )r{  Zexpected_edgecolorsr'  r6   ro  r  Zresult_edgecolorsr    r    r!   (test_parse_scatter_color_args_edgecolors
  s        r=  c               	   C   sX   dd } t jtdd8 tdddgddd	gg}tjjj|d i d
| d W 5 Q R X 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 ranger   r   r   r  rN  gffffff?r3   r{  r)  r*  )	r   r   r3  r_   r  r   r  r   r-  )r'  r6   r    r    r!   #test_parse_scatter_color_args_error
  s        r?  c                  C   sz   G dd d} |  }|  }t j|_tjddddg|d}t|tksHtt  tj	d|d}t|tksntt  d S )Nc                   @   s   e Zd Zdd Z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   s   t d| jifS )Nr@  )r   r@  r#  r    r    r!   _as_mpl_axes  s    z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r'  r(  r)  rA  rB  r    r    r    r!   Polar  s   rC  r   r2   r  y   )
r_   r   r@  r#   r  typer   r&   r  r  )rC  ZprjZprj2r   r    r    r!   test_as_mpl_axes_api  s    rF  c                  C   sZ   t  \} }t  \}}t | |t  ks2t| t  ksBtt |  t | d S r   )r#   r   Zscar  r&   Zgcfr  )fig1r   fig2r   r    r    r!   test_pyplot_axes  s    

rI  c                  C   s   t  \} }|ttdd |jddd |  |jddd dd |j	|j
fD \}}|d	d
dddddddddddddddgkst|ddddddd ddddgkstd S )!Nr   r   r         @r  r  c                 S   s   g | ]}d d |  D qS )c                 S   s   g | ]}|  |j fqS r    )Zget_loclabel1get_textr:  r    r    r!   r   0  s     z.test_log_scales.<locals>.<listcomp>.<listcomp>)Z_update_ticks)r   rK  r    r    r!   r   /  s   z#test_log_scales.<locals>.<listcomp>)r   z$\mathdefault{9^{0}}$)r  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$)r   r   )r  r   )rM  r   )r^  r   )r  r   )r  r   )r  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   )gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)rJ  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   )r#   r   r   r_   r   r   r  r  r]  rP   rS   r&   )r(   r   r  Zyticksr    r    r!   test_log_scales)  sP    


rN  c                  C   sR   t  \} }|jddd |jtd | |   krHdksNn t	d S )Nr   )r  r  r2   r2   ro   )
r#   r   r   rP   r   r   ZMultipleLocatorr   r   r&   r  r    r    r!   test_log_scales_no_dataU  s    rP  c               	   C   sp   t  \} }|d tjtdd |dd W 5 Q R X |d tjtdd |dd W 5 Q R X d S )Nr   zAttempt to set non-positiver   r}   ro   )	r#   r   r]  r   r7  r  rx  r  ry  r'   r    r    r!   test_log_scales_invalid\  s    

rQ  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gd |d |d	 d S )Nr   ro   r   r   r2   r  r3   r   ro   )r   r  )r,   rG  r  y3r,   rG  r  rS  r  C1C2)re  r  )	r#   r   r_   r   r   	stackplotrx  ry  r   )r(   r,   rG  r  rS  r   re  r    r    r!   test_stackplotf  s    


rW  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   r2   r   r3   r   ro   )r_   r  r   r`   exprg   )r  r  r   r  jr,   r-   r  r    r    r!   layers  s    >z'test_stackplot_baseline.<locals>.layersr   r   r`  r3   r  Zzeror  r  symr2   r   Zwiggler  Zweighted_wiggle)r_   r`   ra   r#   r   rV  r   r  )rZ  r  r(   rF  r    r    r!   test_stackplot_baseline{  s    

r]  c                 C   s   | S r   r    )rm  r    r    r!   r    r  c                 C   s   t jd tjjt jjddddf| }t \}}|	ddrN|
d n
|d |	d	d
sttjd tjd< |j||f| d S )N  ri  r   )r  r   )Zmeansigmar  vertTr   patch_artistFr3  boxplot.boxprops.linewidth)r_   r`   ra   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_helper  s    
rg  zbxp_baseline.pngr7  )r  r   c                   C   s
   t   d S r   rg  r    r    r    r!   test_bxp_baseline  s    ri  zbxp_rangewhis.pngc                   C   s   t tddgdd d S )Nr   r   Zwhisrd  rg  r  r    r    r    r!   test_bxp_rangewhis  s    rm  zbxp_percentilewhis.pngc                   C   s   t tddgdd d S )Nr   _   rj  rk  rl  r    r    r    r!   test_bxp_percentilewhis  s    ro  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*   rw  r  statsrm  r*   r    r    r!   r     s    
z(test_bxp_with_xlabels.<locals>.transform)re  rh  r   r    r    r!   test_bxp_with_xlabels  s    rv  zbxp_horizontal.pngr   )rC  r  r   r   c                   C   s   t tddd d S )NFr`  rf  rl  r    r    r    r!   test_bxp_horizontal  s    ry  zbxp_with_ylabels.png)r  r   r   c                  C   s   dd } t | tddd d S )Nc                 S   s$   t | tdD ]\}}||d< q| S rp  rr  rs  r    r    r!   r     s    
z(test_bxp_with_ylabels.<locals>.transformFrw  re  rf  rl  ru  r    r    r!   test_bxp_with_ylabels  s    r{  zbxp_patchartist.png)rC  r  r   c                   C   s   t tddd d S )NT)ra  rx  rl  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 )NTr  r   :)r   r   r  )ra  boxpropsrx  rl  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  r   rx   mfc)Z
flierpropsrx  rl  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	meanpropsrx  rl  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 )Nr  r  r   r   r   r  )r~  rx  rl  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 )Nr  r  r   r  )Zmedianpropsrx  rl  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 )Nr  r  r   r  )Zcappropsrx  rl  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 )Nr  r  r   r  )Zwhiskerpropsrx  rl  r    r    r    r!   test_bxp_customwhisker  s    r  zbxp_withnotch.pngc                   C   s   t tddd d S )NT)Zshownotchesrx  rl  r    r    r    r!   test_bxp_shownotches'  s    r  zbxp_nocaps.pngc                   C   s   t tddd d S )NF)Zshowcapsrx  rl  r    r    r    r!   test_bxp_nocaps/  s    r  zbxp_nobox.pngc                   C   s   t tddd d S )NF)Zshowboxrx  rl  r    r    r    r!   test_bxp_nobox7  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<  )rt  rm  r    r    r!   r   D  s    z*test_bxp_no_flier_stats.<locals>.transformF)Z
showfliersrz  rl  ru  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meanlinerx  rl  r    r    r    r!   test_bxp_showmeanM  s    r  zbxp_withmean_line.pngc                   C   s   t tdddd d S )NTr  rx  rl  r    r    r    r!   test_bxp_showmeanaslineU  s    r  zbxp_scalarwidth.pngc                   C   s   t tddd d S )Nr  rJ  rx  rl  r    r    r    r!   test_bxp_scalarwidth]  s    r  zbxp_customwidths.pngc                   C   s   t tddddgdd d S )Nr   r  g?g333333?rJ  rx  rl  r    r    r    r!   test_bxp_customwidthse  s    r  zbxp_custompositions.pngc                   C   s   t tddddgdd d S )Nr2   r   rZ  r  r@  rx  rl  r    r    r    r!   test_bxp_custompositionsm  s    r  c                	   C   s,   t t ttdgdd W 5 Q R X d S )Nr2   rJ  rx  r   r   r3  rg  r  r    r    r    r!   test_bxp_bad_widthsu  s    r  c                	   C   s.   t t ttddgdd W 5 Q R X d S )Nr3   r   r@  rx  r  r    r    r    r!   test_bxp_bad_positionsz  s    r  zbxp_custom_capwidths.pngc                   C   s   t tddddgdd d S )Nr]  r   r   r   rI  rx  rl  r    r    r    r!   test_bxp_custom_capwidths  s    r  zbxp_custom_capwidth.pngc                   C   s   t tddd d S )Nr  rI  rx  rl  r    r    r    r!   test_bxp_custom_capwidth  s    r  c                	   C   s,   t t ttdgdd W 5 Q R X d S )Nr2   rI  rx  r  r    r    r    r!   test_bxp_bad_capwidths  s    r  rD  g{Gz?)r   r   c                  C   s   t jd t ddd} t d| dg} t \}}|j| | gddd	 |d
 d| | gi}t \}}|jddd|d |d
 d S )Nr^  r  r     r  '  r2   	bootstrapnotchr  r   r,   )r  r  re  	r_   r`   ra   r   hstackr#   r   rD  ry  )r,   r(   r   re  r    r    r!   test_boxplot  s    
r  zboxplot_custom_capwidths.pngc                  C   sF   t ddd} t d| dg} t \}}|j| | gdddgd	 d S )
Nr  r  r  r  r  r2   r_  r   )r  rG  )r_   r   r  r#   r   rD  r  r    r    r!   test_boxplot_custom_capwidths  s    r  zboxplot_sym2.pngc                  C   s~   t jd t ddd} t d| dg} tdd\}\}}|j| | gd	d
d |d |j| | gd	dd |d d S )Nr^  r  r  r  r  r  r2   r3   r  ^)r  r[  r  r  r  )r,   r(   r   r   r    r    r!   test_boxplot_sym2  s    
r  zboxplot_sym.pngc                  C   sJ   t ddd} t d| dg} t \}}|j| | gdd |d d S )	Nr  r  r  r  r  r  r[  r  )r_   r   r  r#   r   rD  ry  r  r    r    r!   test_boxplot_sym  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^  r  r   r3   r  r2   r  )r  r   T)r  r  Z	autorange)	r_   r`   ra   r   r  r#   r   rD  ry  )r,   rG  r   rH  r   r    r    r!   test_boxplot_autorange_whiskers  s    

r  c              	   C   sF   t ddd}t d|dg}t| | ||g W 5 Q R X | S )Nr  r  r  r  r  )r_   r   r  rM   r
   rD  )r   rc_dictr,   r    r    r!   _rc_test_bxp_helper  s
    r  Zboxplot_rc_parameters)r  rC  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 kstd S )Nr^  r   Tr   rn  r  r  r   r  r  r   r  r6   rM  )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.colorrb  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.verticalr  zboxplot.patchartist-.)r  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    )rE  r:  r    r    r!   r   &  s     z.test_boxplot_rc_parameters.<locals>.<listcomp>r2   )r_   r`   ra   r#   r   rw  r  rM   r   r   Zget_childrenr&   )r(   r   Zrc_axis0Zrc_axis1Zrc_axis2	dict_listrK  Zrc_axisr    r    r!   test_boxplot_rc_parameters  sZ    
r  zboxplot_with_CIarray.pngc                  C   sv   t jd t ddd} t d| dg} t \}}t ddgd	d
gg}|j| | gdd dg|dd |	d d S )Nr^  r  r  r  r  r  rf  r  rg        @r  r   r2   )r  usermediansconf_intervalsr  r  )
r_   r`   ra   r   r  r#   r   r  rD  ry  )r,   r(   r   ZCIsr    r    r!   test_boxplot_with_CIarray)  s     r  zboxplot_no_inverted_whisker.pngc               	   C   s\   t jddddddddgt jd	} t }||  |d
 |jjddd |j	d d S )Nr   i(#  r  X   i^  i@ ix  i  rP  r   Fminorwhich)
r_   r  rq  r#   r  rD  r  rS   r  rP   )r,   r   r    r    r!   test_boxplot_no_weird_whisker;  s    

r  c               	   C   s   t ddd} t d| dg} t \}}tt |j| ddgd W 5 Q R X tt$ |j| | gddgddggd W 5 Q R X d S )	Nr  r  r  r  r  r2   r3   )r  	r_   r   r  r#   r   r   r   r3  rD  r  r    r    r!   test_boxplot_bad_mediansG  s    r  c               	   C   s   t ddd} t d| dg} t \}}tt |j| | gddggd W 5 Q R X tt" |j| | gddgdggd W 5 Q R X d S )	Nr  r  r  r  r  r2   r3   )r  r  r  r    r    r!   test_boxplot_bad_ciQ  s    "r  c                  C   sZ   t d} t \}}|| d d  dks4t|j| ddd d  dksVtd S )Nro   boxesr   r3   r  )r_   rg   r#   r   rD  r  r&   )r,   r  r   r    r    r!   test_boxplot_zorder[  s    
r  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sZtqZqN|d d  dkst|d d  dkstd S )Nrm  r  r   r  r  zboxplot.meanprops.markerr   r  r}   T)r  )ZwhiskersZcapsr  Zmediansr   r  r   Zmeans)r#   r   r   r_   rg   rD  
get_markerr&   )r(   r   Z	test_dataZ
bxp_handleZ	bxp_linesZ	each_liner    r    r!   test_boxplot_marker_behaviorb  s    



r  z&boxplot_mod_artists_after_plotting.pngc                  C   sR   dddddddg} t  \}}|j| dd}|D ]}|| D ]}|d	 q<q0d S )
Nr  r  r  Q?gQ?gQr   r  r   )r#   r   rD  r  )r,   r(   r   Zbpkeyr  r    r    r!   &test_boxplot_mod_artist_after_plottingt  s    r  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  r_   r`   rb   r   r  r    r    r!   r     s     z1test_vert_violinplot_baseline.<locals>.<listcomp>r   r   rA  r  showextremashowmediansr  )rA  r  r  r  re  )r_   r`   ra   r   r#   r  
violinplotr   )re  r   r(   r    r    r!   test_vert_violinplot_baseline  s     r  zviolinplot_vert_showmeans.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Niw5+c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z2test_vert_violinplot_showmeans.<locals>.<listcomp>r   r2   r   r  r#   r  r_   r`   ra   r   r  r   re  r    r    r!   test_vert_violinplot_showmeans  s    r  zviolinplot_vert_showextrema.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nic                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z4test_vert_violinplot_showextrema.<locals>.<listcomp>r   r   r2   r  r  r  r    r    r!    test_vert_violinplot_showextrema  s    r  zviolinplot_vert_showmedians.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nib}&c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z4test_vert_violinplot_showmedians.<locals>.<listcomp>r   r   r2   r  r  r  r    r    r!    test_vert_violinplot_showmedians  s    r  zviolinplot_vert_showall.pngc                  C   s\   t  } tjd dd tdD }| j|tddddddgdd	gd
dgddggd d S )NiOc                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z0test_vert_violinplot_showall.<locals>.<listcomp>r   r2   r   ?r   r  r   r  rN  r  )rA  r  r  r  	quantilesr  r  r    r    r!   test_vert_violinplot_showall  s    r  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 r  r  r  r    r    r!   r     s     z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r   r   ro   rA  r  r  r  pointsr  r  r    r    r!   $test_vert_violinplot_custompoints_10  s     r  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 r  r  r  r    r    r!   r     s     z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r   r   r  r  r  r  r    r    r!   %test_vert_violinplot_custompoints_200  s     r  zviolinplot_horiz_baseline.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )Ni\dc                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z2test_horiz_violinplot_baseline.<locals>.<listcomp>r   Fr   rA  r`  r  r  r  r  r  r    r    r!   test_horiz_violinplot_baseline  s     r  z violinplot_horiz_showmedians.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nilo/c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r   Fr   r2   r  r  r  r    r    r!   !test_horiz_violinplot_showmedians  s     r  zviolinplot_horiz_showmeans.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Ni&c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r   Fr2   r   r  r  r  r    r    r!   test_horiz_violinplot_showmeans  s     r  z violinplot_horiz_showextrema.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nie!c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r   Fr   r2   r  r  r  r    r    r!   !test_horiz_violinplot_showextrema  s     r  zviolinplot_horiz_showall.pngc                  C   s^   t  } tjd dd tdD }| j|tdddddddgd	d
gddgddggd d S )Ni"c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z1test_horiz_violinplot_showall.<locals>.<listcomp>r   Fr2   r   r  r   r  r   r  rN  r  )rA  r`  r  r  r  r  r  r  r    r    r!   test_horiz_violinplot_showall  s     r  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 r  r  r  r    r    r!   r     s     z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r   Fr   ro   rA  r`  r  r  r  r  r  r  r    r    r!   %test_horiz_violinplot_custompoints_10   s      r  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 r  r  r  r    r    r!   r     s     z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r   Fr   r  r  r  r  r    r    r!   &test_horiz_violinplot_custompoints_200
  s      r  c               	   C   sR   t  } tjd dd tdD }tt | j	|tdd W 5 Q R X d S )Ni@ 3c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     s     z1test_violinplot_bad_positions.<locals>.<listcomp>r   r   r@  
r#   r  r_   r`   ra   r   r   r   r3  r  r  r    r    r!   test_violinplot_bad_positions  s
    r  c               	   C   sZ   t  } tjd dd tdD }tt  | j	|tddddgd W 5 Q R X d S )	NiA#c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r   !  s     z.test_violinplot_bad_widths.<locals>.<listcomp>r   r2   r3   r   )rA  rH  r  r  r    r    r!   test_violinplot_bad_widths  s
    r  c               	   C   sX   t  } tjd tjjddg}tt  | j	|ddgddggd W 5 Q R X d S )	Nil r   r  r   r   r   r  r  
r#   r  r_   r`   ra   rb   r   r   r3  r  r  r    r    r!   test_violinplot_bad_quantiles&  s
    r  c               	   C   s   t  } tjd tjjddg}tt | j	|ddddggd W 5 Q R X tt | j	|d	ddd
ggd W 5 Q R X d S )Niq4r   r  r   r   r   ?r  grh  r  r  r    r    r!   $test_violinplot_outofrange_quantiles1  s    "r  c                 C   sZ   t jd t jjddg}|  }|j|dddgd | }|j|dddggd d S )N+r   r  r   r   r  r  )r_   r`   ra   rb   r   r  )r   r   re  r   r    r    r!   %test_violinplot_single_list_quantiles@  s    r  c              	   C   s   t jd |jt jjddddddddd	gd
}|jt jjddtdd
}|t jjdd}|  |||g | |j|j|jg d S )Nr  r  r  r  r  rZ  r   r   r   ra  Z	ABCDEFGHIrU  )	r_   r`   ra   rr  rb   r  r   r  r  )r   r   rE  s1s2Zs3r    r    r!   test_violinplot_pandas_seriesP  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   ro   r   r  r2   r3   F)rA  Zmanage_ticks)
r#   r   rx  r   r_   r`   ra   rb   rD  r   )r  r   Zold_xlimrG  r  new_xlimr    r    r!   test_manage_xticksZ  s    r  c                  C   s   t  \} }|jtjddgd |jtjddgd | j  | dksVt	t
| ddgksnt	dd | D dd	gkst	d S )
Nr   r   r@  r   )r  rJ  c                 S   s   g | ]}|  qS r    rL  r:  r    r    r!   r   m  s     z+test_boxplot_not_single.<locals>.<listcomp>r   5)r#   r   rD  r_   r`   rp   rS  r   r   r&   r  
get_xticksr  r'   r    r    r!   test_boxplot_not_singlef  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   r2   z	font.sizeP   raw)r  format)r#   r   rM   r   updateioBytesIOsavefigr  r    r    r!   test_tick_space_size_0p  s    r  Zerrorbar_basicZerrorbar_mixedc            
   	   C   s  t jdddt jd} t |  }ddt |   }d| }t }| }|j| |ddd |	d tj
d	d	d
d\}}|d }|j| ||dd |	d |jdd |d }|j| ||ddd |	d |d }|j| ||d	| g|d	| gdd |	d |d }|d t d|| }|| }|j| ||d	| g|ddd	d |	d |dd |d | |d }	t }| }|jd!d"dd|	d# |	d d S )$Nr   r   r   rP  r   rN  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr3   T)r  r  rR  r  r   r  r   zVert. symmetricZnbinsr  )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 yr  zVariable errorbarsr   r,   r-   r  r  re  )r_   rg   Z
longdoublerX  r"  r#   r   r  r  r/   r   locator_paramsr  maximumry  Zsuptitle)
r,   r-   r  r  r(   r   rF  ZylowerZ
yerr_lowerre  r    r    r!   test_errorbary  sH    


$

  


r  Zmixed_errorbar_polar_capsc                  C   s  t  } t jddd}dddg}dgd }|j||dd	d
d tjd d tjd g}ddg}|j||dtj dd
d dtj d d dtj d d dtj d g}dgd }ddd	gd	ddgg}dddgdddgg}	|j||||	d
d dg}
dg}|j|
|dd	d
d dS )z
    Mix several polar errorbar use cases in a single test figure.

    It is advisable to position individual points off the grid. If there are
    problems with reproducibility of this test, consider removing grid.
    rN  r   r  r2   r3   r   r  ffffff?r   r   r  r  r   r   g?r  r  r  r   r   rm  r   r    @@ro   N)r#   r   r  r  r_   r   )r(   r   Zth_symZr_symZth_longZr_longZth_asymZr_asymr  r  Zth_overZr_overr    r    r!   test_mixed_errorbar_polar_caps  s     	

0
r  c                  C   s   t  \} }td}d| }|j||d d\}}}|j|d| d d\}}}||d| \}t| tdks|t	t| tdkst	t| tdkst	d S )Nro   r3   rW  r   r  rT  rU  )
r#   r   r_   rg   r  r   r4  to_rgba	get_colorr&   )r  r   r,   r-   r  r  r  Zln1r    r    r!   test_errorbar_colorcycle  s    
r  c              
      s   t ddd  fddtdD }|  }| }t|dddd	gD ]>\}}|j ||d
 dddd |j ||d
 dd|dd qFd S )Nr   r   r   c                    s   g | ]}t   | qS r    )r_   rX  )r   r  r,   r    r!   r     s     z.test_errorbar_cycle_ecolor.<locals>.<listcomp>r  rT  rU  r2  r  r  r   rE  )r  r   rx   r  )r  r   rx   r   r  )r_   rg   r   r   rw  r  )r   r   r-   ZaxtZaxryir   r    r  r!   test_errorbar_cycle_ecolor  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 5 Q R X t	
t |j|||dd W 5 Q R X t	
t |j||||dd	 W 5 Q R X d S )
Nr   r   r   r   r3   r   r  )r  r   r  )r#   r   r  r_   rg   rX  r"  vstackr  r   r   r3  r  )r(   r   r,   r-   Zyerr1r  r  r    r    r!   test_errorbar_shape  s    r  Zerrorbar_limitsc                  C   s`  t ddd} t |  }d}d}d}t \}}|j| ||||dd t | }d|d	d
dg< |j| |d ||||dd t | }d|dddg< |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   rJ  r   r   dottedr   )r  r  r  r   Tr2   r   r  r   )r  r  uplimsr  r   r3   r   r  r   r  )r  r  lolimsr  r   r   r   magenta)rx   r  r  r  r  r  r  r   r   r   rZ  r	  r   r   Zcyan)rx   r  r  r  xlolimsxuplimsr  r  r  r  capsizer   )r   rJ  zErrorbar upper and lower limits)
r_   rg   rX  r#   r   r  Z
zeros_likeZ	full_likerx  r/   )r,   r-   r  r  r  r(   r   r  r  r  r  r    r    r!   test_errorbar_limits  sX    

   



     
r  c                  C   sd   t d} t d}tj| |dddd\}}}|d ks:t|D ] }t | tdks>tq>d S )Nr   r2   r   r  r  )	r_   rg   r#   r  r&   r  r  r4  r  )r,   r-   plotliner  ZbarlinesZerrbarr    r    r!   test_errorbar_nonefmt2  s    

r  c                  C   s`   t d} t d}tj| |ddddddddd	d
d\}}}| dksLt| dks\td S )Nr   r2   Nonerm  rY   z	steps-midroundr  r  Zbevel)
r  r  r  rx   r   r  Zdash_capstyleZdash_joinstyler  r  )r_   rg   r#   r  Zget_fillstyler&   Zget_drawstyle)r,   r-   r  r  r    r    r!   "test_errorbar_line_specific_kwargs=  s    

 r   c              	   C   s$  |  }|jdddgdddgdddd	d
 |jdddgdddgdddddd |jdddgdddgdddddd |dd tdddgdddgd	ddgdddgd}tjd|d |   }|jdddgdddgdd |jdddgdddgddd |jdddgdddgddd  |dd d S )!Nr3   r   ro   r   r2   r   r  rm  rM  )r,   r-   r  r  rx   r  r   z	tab:greenr}  r-   )r,   r-   r  r   r  rx   r  r   rZ  ztab:bluer  r   r6   )r,   r-   r  r   r  rx   r  rU  r  r  r  )r  rx   r  r   r  )Z
prop_cycler,   r-   r  )r,   r-   r  r   )r,   r-   r  r   )r   r  rx  r	   r#   rc)r   r   r   Z_cycler    r    r!   test_errorbar_with_prop_cycleN  s6           r#  c               	   C   s   t ddd} | d|   }|d }t  }tjtdd |j| ||dd W 5 Q R X tjtdd |j| ||d	d W 5 Q R X tjtd
d |j| ||ddgd W 5 Q R X tjtdd |j| ||dd W 5 Q R X d S )Nr   r2   r   rZ  znot a tuple of two integersr   r2   r3   r   )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	r_   r   r#   r   r   r   r   r3  r  )r,   r-   r  r   r    r    r!   test_errorbar_every_invalidc  s     r&  c               	   C   s  t   } tjtdd, | jdgdgdgdggdgdggd W 5 Q R X tjtdd" | jdgdgdgdggd W 5 Q R X tjtdd" | jdgdgdgdggd	 W 5 Q R X tjtdd6 td
}dd |D }| j||t	j
ddd	 W 5 Q R X d S )Nz''xerr' must not contain negative valuesr   r   rX  r2   )r,   r-   r  r  )r,   r-   r  z''yerr' must not contain negative valuesr!  r   c                 S   s"   g | ]}t  d d|d d qS )rO  r  r3   r2   r  r&  r    r    r!   r     s     z/test_xerr_yerr_not_negative.<locals>.<listcomp>r1  r  )r#   r   r   r   r   r3  r  r_   rg   r  r  )r   r,   r-   r    r    r!   test_xerr_yerr_not_negativet  s,    0&&

r(  c           	   
   C   s>  t ddd}|d|  }|d }| }|  }tdddddgD ]p\}}|d7 }|j||||d	fd	|d
 |j|||dd |j||d d	 ||d d	 ||d d	 d	|dd qD|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 |dddgd dddg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   r2   r   rZ  Zrgbkr3   r  r  r   )r%  r  r6   r	  )r6   r  r   )r  r6   r   r   )r2   r   r   )r  r  r   r  )r  r   r   r   r  )r%  r  r  r6   r   FTr   rT  )r_   r   r   rw  r  r   r  )	r   r   r,   r-   r  rl   rk   r   shiftr    r    r!   test_errorbar_every  sX     (  *
  ,,    ,,  r*  
elinewidthc                 C   s(   t jdddgdddgdddg| d d S )Nr2   r3   r   )r  r+  )r#   r  )r+  r    r    r!   test_errorbar_linewidth_type  s    r,  c                 C   s   |   }td}tddtjtjdg}tddtjtjdg}|||| |  }|ddgddgddg |jdgdgdgdd	 d S )
Nr   r2   r3   r   r   rZ  r   r  r   )r   r   r_   r  r  r  )r   r   r   xsysesr    r    r!   test_errorbar_nan  s    r1  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 )Nr2   r   r  r   ro   r`  rx  Tr  r,   )rz  r  re  r_   r   r#   r   ru  )d1d2r(   r   re  r    r    r!   test_hist_stacked_stepfilled  s    r5  Zhist_offsetc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   ro   r`  r2   r   r  r   r  r   r2  r3  r4  r(   r   r    r    r!   test_hist_offset  s
    r7  zhist_step.pngc                  C   sD   t ddd} t \}}|j| dd |dd |dd	 d S )
Nr2   r   r  rw  ry  r   ro   r}   r   )r_   r   r#   r   ru  ry  rx  r3  r(   r   r    r    r!   test_hist_step  s
    r9  zhist_step_horiz.pngc                  C   s@   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   ro   r`  r2   r   r  rw  rI   )rz  rK   r2  r6  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   ro   r`  r2   r   r  r_  r  r0  r   rx  T)weightsrz  r  r2  )r3  r4  Zw1Zw2r(   r   r    r    r!   test_hist_stacked_weighted  s    r<  use_line_collectionzw/ line collectionzw/o line collectionzstem.pngc              
   C   s   t ddt j d}t \}}| rB|j|t |ddddd n8tjt	d	d
$ |j|t |dddddd W 5 Q R X |
  d S )Nr   r3   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr*   
deprecatedr   F)rA  rB  rC  r*   r=  )r_   r   r   r#   r   stemr  r   r7  r   rB   r=  r,   r(   r   r    r    r!   	test_stem  s$          rG  c                  C   s   dd } t  \}}dddg}dddg}| ||d	dd
g|fd | |||||fd | |j||dd||fd | |||d||fd | |j||ddd||fd | |j|ddd	dd
g|fd | ||dd	dd
g|fd dS )z5Test that stem() correctly identifies x and y values.c                 S   s8   t t| j \}}||d ks$t||d ks4td S Nr   r2   )mapr  
markerliner  r&   )stem_containerexpectedr,   r-   r    r    r!   _assert_equal  s    z%test_stem_args.<locals>._assert_equalr2   r   r   r  r  r  r   r3   )rL  r  rA  zb--)rA  rC  Nr#   r   rE  rM  r(   r   r,   r-   r    r    r!   test_stem_args  s    

 rQ  c                  C   s  ddd} t  \}}dddg}ddd	g}| |||d
dd | |j||ddd
dd | |j||ddddd | |||ddddd | |||ddddd | |j||ddddddd | |j||ddddddd | |j||ddddddd | |j||ddddddd | |j||ddddddd | |j||dddddd | |j||ddddddd | |j||ddddddd dS )zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 S   sl   |dk	rt | j |st|dk	r<t | j |s<t|dk	rV| j |ksVt| j dkshtdS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr  )r4  r  Z	stemlinesr  r&   rJ  r  get_linestyle)rK  	linecolormarkercolorrx   r    r    r!   rM  *  s    z*test_stem_markerfmt.<locals>._assert_equalr2   r   r   r  r  r  r  r   )rT  rx   r,   )rB  r  r  )rS  rT  rx   r  Zgxr@  r  r   rN  )rA  rB  )NNNrO  rP  r    r    r!   test_stem_markerfmt(  s      


                    rU  c                  C   s@   t dd\} }tjdtjdg}ddg}||| d S )Nr2   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r#   r   dateutilparserparserE  )r(   r   r.  r/  r    r    r!   test_stem_datesi  s    

rY  zstem_orientation.pngc              
   C   s~   t ddt j d}t \}}| rB|j|t |ddddd n8tjt	d	d
$ |j|t |dddddd W 5 Q R X d S )Nr   r3   r`  r>  Zkxr?  rI   )rA  rB  rC  rK   rD  r   F)rA  rB  rC  r=  rK   )
r_   r   r   r#   r   rE  r  r   r7  r   rF  r    r    r!   test_stem_orientationq  s"        rZ  Zhist_stacked_stepfilled_alphac                  C   sB   t ddd} t ddd}t \}}|j| |fddd	d
 d S )Nr2   r   r  r   ro   r`  rx  Tr   )rz  r  r  r2  r6  r    r    r!   "test_hist_stacked_stepfilled_alpha  s    r[  Zhist_stacked_stepc                  C   s@   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr2   r   r  r   ro   r`  rw  Tr  r2  r6  r    r    r!   test_hist_stacked_step  s    r\  Zhist_stacked_normedc                  C   s@   t ddd} t ddd}t \}}|j| |fddd d S )	Nr2   r   r  r   ro   r`  T)r  r  r2  r6  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 )Nr2   r   r  ro   rx  )rG   rz  )r_   r   r#   r   ru  rg   r8  r    r    r!   test_hist_step_bottom  s    r^  c                  C   s   ddddg} ddddddg}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 )Nr   r2   r3   r   rx  r  rz  r#   ru  r   get_xyr  re  r  polygonrg  r    r    r!   test_hist_stepfilled_geometry  s    *     rd  c               	   C   sz   ddddg} ddddddg}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   r2   r3   r   rw  r_  r`  rb  r    r    r!   test_hist_step_geometry  s    4re  c                  C   s   ddddg} ddddddg}t j|| dddg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   r2   r3   r   r   rx  r  rG   rz  r   r  r`  rb  r    r    r!   $test_hist_stepfilled_bottom_geometry  s     *     rg  c               	   C   s   ddddg} ddddddg}t j|| dddg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   r2   r3   r   r   rw  rf  r   r  r`  rb  r    r    r!   test_hist_step_bottom_geometry  s    4rh  c                  C   s*  ddddg} ddddddg}dddg}t j||g| ddd\}}}t|dksRt|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   r2   r3   r   Trx  r  r  rz  r   r#   ru  r  r&   r   ra  r  Zdata_1Zdata_2r  r   rc  rg  r    r    r!   %test_hist_stacked_stepfilled_geometry  s:    


*     
*     rl  c               	   C   s   ddddg} ddddddg}dddg}t j||g| ddd\}}}t|dksRt|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   r2   r3   r   Trw  ri  r   rj  rk  r    r    r!   test_hist_stacked_step_geometry  s    


4
4rm  c                  C   s2  ddddg} ddddddg}dddg}t j||g| ddddgdd\}}}t|dksZt|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   r2   r3   r   Tr   rx  r  r  rG   rz  r   r  r   rZ  r  rj  rk  r    r    r!   ,test_hist_stacked_stepfilled_bottom_geometry  s<    


*     
*     ro  c               	   C   s   ddddg} ddddddg}dddg}t j||g| ddddgdd\}}}t|dksZt|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   r2   r3   r   Tr   rw  rn  r   r  r   rZ  r  rj  rk  r    r    r!   &test_hist_stacked_step_bottom_geometry  s     


4
4rp  Zhist_stacked_barc                  C   s   dddddddddddd	gdd
ddddgdddddddgddddddddddddgddddddddddddddgddddddddddddgg} ddddddg}dd d!d"d#g}t  \}}|j| dd$d%||d& |jd'd(d)d* d S )+Nr   r  @  i  r  r  rQ  6  rP     r`  rU  i  rP  r  r     r  r  r   ro   i+  r   r  )gXxn?r   r]  )r]  r   g `p?)r]  r   gǟ?)r]  gˢ`?r   )gC?r]  r   )gK?r]  r   r   rY  z yellowr  rE  r|  mid)r  rz  r  r   r*   zupper right)r   r   r2   )r:   Zbbox_to_anchorr  )r#   r   ru  rB   )r  r  labelsr(   r   r    r    r!   test_hist_stacked_bar)  s&       rw  c                  C   sD   t ddg} tjddgddggdd| d |  ddgks@td S )Nro   r  r   r2   r3   r|  )rz  rG   )r_   r  r#   ru  tolistr&   r  r    r    r!   %test_hist_barstacked_bottom_unchanged;  s    ry  c                  C   s,   t  \} }|jg tdtdgdd d S )Nro   rw  ry  )r#   r   ru  r   r'   r    r    r!   test_hist_emptydataA  s    rz  c                  C   s   t  \} }|jddgdd\}}}|d  dks8t|jddgdgd\}}}|d  dksft|jddgd d\}}}|d  dkst|jddgdd\}}}|d  dkst|jddgdd\}}}|d  dkstd S )Nr   r2   r  r  ri  Z00)r#   r   ru  rQ   r&   )r(   r   r  rm  r    r    r!   test_hist_labelsF  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  r~   r_   r`   ra   r#   r   r   r  r    r    r!   test_transparent_markersU  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 ]}|ddddg qd S )Nr3   r  r  )r2   r   r   r   r  )r   r   r2   r   r   r   r  )r  r  r2   r   )r  r  r  r   r,   )r  r  r}   r   r   r   )r#   r   r  rD  r   rK  )r(   rF  ZrcolorsZbcolorsalphaskwr  r  rY  ZrcolorrM  Zbcolorr   r    r    r!   test_rgba_markers^  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_grido  s    r  c                  C   s   t  } | jdd}ttj tjd}ttj d tjd ddd }t||\}}t| | fj	}|j
|}|j
 |}tj||d d S )	Nr  r  r  r   rt  r2   r}   r   )r#   r   r   r_   r   r   r  r  r  r  transProjectionr   invertedr   r   )r(   r   ZlonZlatllrg  Zll2r    r    r!   &test_mollweide_forward_inverse_closurex  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   r2     r   )r#   r   r   r_   r   r  r  r  r  r  r  r   r   r   )r(   r   r,   r-   rg  r  xy2r    r    r!   &test_mollweide_inverse_forward_closure  s    r  
test_alphac               	   C   s   t jd t jd} t \}}|j| ddddgddddgddd |j| d	 dddddgddddgdddd
 |j| d ddddgdddgdddd
 |j| d dddddgddddgddd |j| d dddddgdddgddd d S )Nr   r`  z-Dr2   r   r  ro   )r   r  r~   r  r3   )r   r  r~   r  r  r   rZ  r  r|  r  r    r    r!   r    s2           	eventplotc                  C   sr  t jd t jddg } t jddg }| | }t|}dddggt|  }dddgdddgdddgdddgdddgdddgg}|| }dt dt| d	  }d
dddddg}| | }	d	gt|  }
ddddddg}|
| }t }| }|j	|||	|d}t|}||ks&t
|||	|d}t }| }|j	dddd|d}t|}||ksnt
d S )Nr   ru   r  rZ  r2   r  rh  rq  Q?ira  r   ro   r   r3   r   )r  lineoffsetslinelengths)r   r6   lor  r   r6   r  r  )r  r  r  re  )r_   r`   ra   rx  r  rg   r#   r   r   r  r&   )r  data2re  Znum_datasetsZcolors1Zcolors2r  Zlineoffsets1Zlineoffsets2r  Zlinelengths1Zlinelengths2r  r(   axobjZcollsZnum_collectionsr    r    r!   test_eventplot  sH    

 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   ru   r  rZ  N)r_   r`   ra   rx  r#   r   r   r  )r  r  re  r(   r  r    r    r!   test_eventplot_defaults  s    r  r  )r  )z
tab:orangeztab:pinkztab:cyanZbLacK)r  )r   r2   r   N)r2   r   r2   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   r2   r3   r   c                 S   s   g | ]}|d k	r|ndqS )Nr  r    r   r6   r    r    r!   r   	  s     z)test_eventplot_colors.<locals>.<listcomp>r   r  N)r  r_   r  r4  Zto_rgba_arrayr#   r   r  rw  r   r  )r  re  rL  r(   r   r*  r  r   r    r    r!   test_eventplot_colors  s    r  c               	   C   s  t  \} }|jdddgddddggdd	}|d  dks@t|d  dksTt|jdddgddddggd
dgd	}|d  d
kst|d  dksttjtdd, |jdddgddddggd
ddgd	 W 5 Q R X tjtdd |jdddgd
dgd	 W 5 Q R X d S )Nr   r3   r   r2   r   r   r  r  r  r   zalpha and positions are unequalr   r  )r#   r   r  	get_alphar&   r   r   r3  )r(   r   r*  r    r    r!   test_eventplot_alpha  s     $0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st	t
dd | D st	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  ro   r  r  r6   r  r3   r2   r   Zdasheddashdotr  )r  r   r8  r   r  r   r   c                 s   s   | ]}t |jtV  qd S r   )
issubclasscategoryr   )r   Zwir    r    r!   r  F  s   z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)r_   r`   ra   rx  r#   r   r   r  r  r&   r  )Zrecwarnr  r  re  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 )Nr2   )r]  r]  r]  r]  r  r#   r   r  r   r'   r    r    r!   test_empty_eventplotJ  s    r  re  rK   ZverticalrI   c                 C   s>   |dkri nd|i}t dd\}}|j| f| t   dS )z#Introduced when fixing issue #6412.NrK   r2   r  )re  rK   optsr(   r   r    r    r!   test_eventplot_orientationP  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 )	NrO  r2   r3   r   r   r  r   )r  )r  r   r  )r   r   Zts_1Zts_2r   r    r    r!   test_eventplot_units_listZ  s    r  zmarker_styles.pngc               	   C   s   t  \} }ttjjjdd d}|d d
|}t|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  rE  r  r    r    r!   r  q  r  z$test_marker_styles.<locals>.<lambda>)r  r   r3   r   ro   r   )r   rx   r~   r*   )r   )r#   r   sortedrM   markersr  r  rD  r   r_   rg   r   )r(   r   r  r-   rx   r    r    r!   test_marker_stylesi  s    

. 
 r  zrc_markerfill.pngc                  C   sR   t  \} }td}tdddgD ](\}\}}|tjd< |j|| |d q$d S )Nr  )r8   rm  )rG   r   )r   r  zmarkers.fillstyler  )r#   r   r_   rg   rD  rM   r   r   )r(   r   r,   idxr   rx   r    r    r!   test_markers_fillstyle_rcparamsy  s    

r  zvertex_markers.pngc                  C   sv   t td} d}ddddg}t \}}|j| d|dd	 |j| d d d
 d|dd	 |d
dg |d
dg d S )Nro   )r}   r}   r  r  r  r  r  r  r  r   rM  r  r}   r  )r  r   r#   r   r   rx  ry  )re  Zmarker_as_tupleZmarker_as_listr(   r   r    r    r!   test_vertex_markers  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 )Nro   r   )r  r  r2   r  )r   r  r  r   r  r  r3   rM  r   zaxvline and axhline zorder testr  )r  r  r  r   )r  r   r  zerrorbar zorder test)r  r   r#   r   r  r   ri   axvliner/   r_   r  r  )r,   r(   r   r-   r  rY  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   ro   )ra  r2   r  r   r  z.-)r2   ra  )ro   r_  rM  rW  r2   ro   ra  r_  )r   r   rT  axliner   r    r    r!   test_axline_loglog  s    r  c                 C   s   |   }|jddd |dd |jdddd |jdd	d
d |jdddd |jdddd |jdtddd |  }|jddd |ddgddg |jddd |jdd
d |jddd |jddgddgdd |jddd d S )Nr  r  r  r  r\  rT  r  )r   r   r2   r   rU  )gffffffrX  r   r2  )sloper   )r2   rX  rX  ZC4)rX  r2   infr%  r}   r2   r   )r   r   r  rS  r   ri   r  r   r    r    r!   test_axline  s     r  c                 C   s   |   }|jddd |jdd|jd |jddd|jd |jd	d
d|jd |jddd|jd |  }|jddd |ddgddg |jd
dgdd
gdd |jddgd
d
gdd |jd
d
gddgdd d S )Nr  r  r  r2   r  r   r  rT  r  r   r   r   r   r   rU  )r   r   )r   r2   r2  )r   r   r}   r  )r   r   r  r   r   r   r    r    r!   test_axline_transaxes  s    r  c                 C   s   |   }|jddd |jdd|jd |jddd|jd	 |jdd
d|jd	 |jddd | dd |  }|jddd |dd |d
dgd
dg |jd
dgd
dgdd |jd
dgddgdd d S )Nr  r  r  r2   r  r  r3   rT  r  r   rU  )r   r   rR  r   r   ro   r  )r   r   r  r   set_size_inchesr   r   r    r    r!   test_axline_transaxes_panzoom  s    r  c               	   C   s   t  \} }tt |d W 5 Q R X tt |jdddd W 5 Q R X |d tt |jddd W 5 Q R X |d |d tt |jddd W 5 Q R X |d tt |dd t 	  W 5 Q R X dS )z3Exactly one of *xy2* and *slope* must be specified.r  r  r2   )r  r   r\  N)
r#   r   r   r   r   r  r]  r  r3  r   r'   r    r    r!   test_axline_args  s     



r  Zvlines_basicZvlines_with_nanZvlines_maskedc                  C   s  dddddg} dddddg}t  \}}|j| d|d	dd
 ddddddg}ddddtjdg}t jddd\}\}}}	|j|d|d	dd
 ddddddg}
tjdddddg}|j|
d|dddd ddddddg}tjddddtjg}|	j|d|ddd
 ||||	fD ]}|dd q| | ks0t| | ksFt| |	 ks\tt  \}}tj	ddddddgd}tj	ddddddgd}tj	ddddddgd}|j|||ddd
 |dd d S Nr3   r   r   r   r  ir  r   r  r  r   rZ  )r   r  )r  r  r  r  )r  r   r   rM  ro   rq  r2   r}   r  r  r   r     rS  )
r#   r   rh   r_   r  rx  r   r&   r   masked_equal)rB  rG  rG  r   r  r  rH  r   r   r  x3rS  x4y4r   fig3ax5Zx5Zymin5Zymax5r    r    r!   test_vlines
  s2    r  c               	   C   sN   t  \} }tddi* |ddd}tj| ds@tW 5 Q R X d S Nzlines.colorr  r   r   r2   )	r#   r   r   r
   rh   r  r  r  r&   r(   r   r  r    r    r!   test_vlines_default2  s    r  Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   s  dddddg} dddddg}t  \}}|j| d|d	dd
 ddddddg}ddddtjdg}t jddd\}\}}}	|j|d|d	dd
 ddddddg}
tjdddddg}|j|
d|dddd ddddddg}tjddddtjg}|	j|d|ddd
 ||||	fD ]}|dd q| | ks0t| | ksFt| |	 ks\tt  \}}tj	ddddddgd}tj	ddddddgd}tj	ddddddgd}|j|||ddd
 |dd d S r  )
r#   r   hlinesr_   r  ry  r   r&   r   r  )rG  rB  rG  r   r  r  rH  r   r   r  rS  r  r  r  r   r  r  Zy5Zxmin5Zxmax5r    r    r!   test_hlines9  s2    r  c               	   C   sN   t  \} }tddi* |ddd}tj| ds@tW 5 Q R X d S r  )	r#   r   r   r
   r  r  r  r  r&   r  r    r    r!   test_hlines_defaulta  s    r  r   r   c                 C   s   dddddg}|  dddj|dd|d	d
 |  dddj|dd|d	d
 dddd	g}ddddg}| dddj|dd|d	d
 | dddj|dd|d	d
 d S )Nr  r   r   rb  rY  r3   r2   r   r   r  r   )r   rh   r  )r   r   re  Ztest_colorsZ	expect_xyZexpect_colorr    r    r!   test_lines_with_colorsh  s&        r  Zstep_linestylec               	   C   sV  t d } }tdd\}}| }ddddg}t||D ]h\}}|j| |d|dd	 |j| |d
 d|dd	 |j| |d d|dd	 |ddg |ddg q<| ||d
 |d d}tdd\}}| }ddddg}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 )Nro   r3   r  r  r  r}  r   pre)r  r   rH  r2   ru  r  r}   r  )r  Y0Y1Y2r  r  )r  r   rH  re  r  r  )	r_   rg   r#   r   r  rw  rw  rx  ry  )r,   r-   r(   ax_lstZ	ln_stylesr   r  re  r    r    r!   test_step_linestylez  s(    r  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 |	ddddgddddgg |j
d || || |dd |dd d S )N)r  r  r   r   r   radiusr   r   T)Zmatch_originalr   rT  r2   r   r  iir   r   r   r  r  )r#   r   r  Circler   r*  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsr   r  r9  rx  ry  )r(   r   r6   r  r  r    r    r!   test_mixed_collection  s    

r  c                  C   s:   t tdtdd} |   |   dks6td S )Nr   r2   )r   r2   r   r   )	r#   r  r_   Zint32rs   r   Zget_subplotspecZget_geometryr&   r  r    r    r!   test_subplot_key_hash  s    r  zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)rC  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}dddg}||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 qXqdS )z)Test axes.specgram in default (psd) mode.rz   r   r  r  r   r   rU  @ffffff@'@ro   r   r2   r3   r  rI  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr\  )r  r  r  r  r  r   r2  N)rM   r   intr_   rt  rg   rt  r   r   multiplyouterr  r`   ra   r  rp   rq   log2rw  r#   r   r   specgramr  LogNorm)r  r  fstims
NFFT_freqsr,   y_freqs
NFFT_noisey_noise	all_sidesr-   r  r  r  r   r  r    r    r!   test_specgram  s8    
,$
 
  r  zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}dddg}	||f||ffD ]\}}
|
d }tdtt|
 }tt d|	D ]"\}}|j||
||||dd q6tt d|	D ],\}}|j||
||||ddt j d	 qnqdS )z%Test axes.specgram in magnitude mode.rz   r   r  r  r   r   rU  r  r  r  r   r   r2   r3   r  Nr}   ro   rI  r  r  r   Z	magnituder  r  r  r  r  r[   r\  )r  r  r  r  r  r[   r   r2  )rM   r   r  r_   rt  rg   r   r   r  r  r  r  r`   ra   rt  r  rp   rq   r  rw  r#   r   r   r  r  r  )r  r  r  r  r,   r-   r  r  r  r  r  r  r  r   r  r    r    r!   test_specgram_magnitude  s<    
,&

  
   r  zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}dddg}	||f||ffD ]\}}
|
d }tdtt|
 }dD ]n}tt d|	D ]R\}}|j||
|||||d tt  |j||
|||||dd W 5 Q R X q>q&qdS )z,Test axes.specgram in angle and phase modes.rz   r   r  r  r   r   rU  r  r  r  ro   r   r2   r3   r  Nr}   rI  r  r  )r  phaser   r  dB)r  r  r  r  r  r[   r   )rM   r   r  r_   rt  rg   r   r   r  r  r  r  r`   ra   rt  r  rp   rq   r  rw  r#   r   r   r  r   r   r3  )r  r  r  r  r,   r-   r  r  r  r  r  r  r  r[   r   r  r    r    r!   test_specgram_angle  s<    
,&

    r  c                  C   sF   t jtdddd\} }}}| \}}}}|dkr>|dksBtdS )z;Test axes.specgram when Fs is None, should not throw error.r  Nr\  )r  r   ru   `   )r#   r  r_   r   Z
get_extentr&   )specfreqsrl  rU  r]   r^   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.originrw   N)r_   rg   r   r#   r   r   r  )r   r   rl  signalr    r    r!   test_specgram_origin_rcparam.  s    



r  c               	   C   s<   t d} t | }tt tj|dd W 5 Q R X dS )z4Ensure passing origin as a kwarg raises a TypeError.r  rw   rW  N)r_   rg   r   r   r   r   r#   r  )rl  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sdt|jddd qtt d|D ]P\}}|j|	|
|||d|}t|d|dd kst|jddd qqd S )Nr        Y@r   r   rU  r  r  r  r  r   r2   r3   r  r  rI  r  F)r  return_liner  Tr   )r  r  r  r  r  r   xlabelZylabel)r  r_   rt  rg   r   r   r  r  r  r`   ra   r  rp   rq   r  rw  r#   r   r   psdrt  r  rc  r&   r   csd)r  r  r  r  r,   Zys_freqsr  Zys_noiseZ
all_kwargsr/  r  r  r  r   r{  retr    r    r!   test_psd_csdI  sD    ,& 
 r  z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t| }t dtt| }td| d	| }tdtj t|| d
td  j	d	d}tj
d ttj
| tj
| gd }dddg}||d}	||fD ]0}
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 q:t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 )Nr  r  r   r   rU  r  r3   r   r2   ro   r   r  r   rI  r  r  )r  r  r  r   r  r   r  )r  rt  r_   rq   r  rg   r   r   r  r  r`   ra   r  r  rp   rw  r#   r   r   Zmagnitude_spectrumr   Zangle_spectrumZphase_spectrum)r  r  Zfstims1r  r  r,   r  r  r  r{  r-   r   r  r  r  rn  r    r    r!   test_spectrumk  s8    *"

r  c               	   C   sr   t  d} | D ]}|jjdd qtjdd6 | d td | d 	tdtd W 5 Q R X d S )	Nr3   T)r  r  r  r   r   r2   )
r#   r   r   rS   r   r_   r  r  r  r  rF  r   r    r    r!   test_psd_csd_edge_cases  s    r  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r   )r   r   r   r  rP   Ztick_bottomrS   Z	tick_left)r   r   rk   Zax_twinxZax_twinyrl   r    r    r!   test_twin_remove  s    
r  ztwin_spines.pngc            	      C   s  dd } t jdd}|jdd | }| }| }|jjd | | |jjd |	d	d
dgd	d
dgd\}|	d	d
dgd	ddgd\}|	d	d
dgdddg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   r   spinesr  r    r    r!   make_patch_spines_invisible  s    
z5test_twin_spines.<locals>.make_patch_spines_invisible)r   r   rL  rh  )r<   )r  rD  Tr   r2   r3   zb-r   zr-r`  r   r   zg-r   A   r   )r  rr  r-   )rK  r  rK  r,   )r#   r   r  r   r   r  r<   set_positionr   r   rx  ry  rS   r*   r  r  r  tick_params)	r  r(   hostZpar1Zpar2r  r  Zp3Ztkwr    r    r!   test_twin_spines  s0    r  ztwin_spines_on_top.pngc                  C   sH  dt jd< dt jd< t } | ddd}tddddgd	d
ddg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   r3  r2   r  iL  i  i  rr  i-  r  r  r   g     @@z#BEAED4r  r  )r   r  z#7FC97Fr   )r  rY  r  rY  )r   re  )r   r  re  )
rM   r   r#   r   r   r_   r  r   r   r  )r(   r   re  r   r    r    r!   test_twin_spines_on_top  s(    


r  z(grid_which, major_visible, minor_visible)r   TT)majorTF)r  FTc                    sh   t jd| d t \}}|j  t fdd|jj	D sFt
tfdd|jjD sdt
d S )NT)r  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   rS  r   r  rP   
majorTicksr&   
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 s4t	|jdd | j  |jjd j r`t	|jdd | j  |jjd j st	|  | j  |jjd j rt	d S )Nr   FZvisibleT)
r#   r   r  rS  r   rP   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 r2t|jdd |jjd j sTtt 	ddi4 |
  |jdddd |jjd j stW 5 Q R X d S )	NTr  ro   )resetr  	labelsizer   r  r  r  )r#   r   r
  rP   r  r  r   r&   r  r
   r3  r'   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inro   r   r  rq  r  rT  r  rU  r  r   r  )	directionlengthrr  r   padr  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r
  draw_without_renderingr  rP   Zreset_ticksrS   )r   r   r(   r   r    r    r!   test_reset_ticks&  s*    
        


r(  c                  C   s>   t  } |  }|d |ddddg t| d d S )Nr   rd  r   r   r   )rd  r   )r#   r   r  r  r   r   r   r'   r    r    r!   test_vline_limit:  s
    
r)  zfv, fh, args)r2   r  c              	   C   s   t jd}tjtdd | ||dd W 5 Q R X tjtdd | |d|d W 5 Q R X tjtdd |||dd W 5 Q R X tjtdd ||d|d W 5 Q R X d S )	Nr2   z"ymin must be a single scalar valuer   yminymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)r]   r^   z"xmax must be a single scalar value)rM   r^  Znum2dater   r   r3  )ZfvfhargsZbad_limr    r    r!   test_axline_minmaxB  s    r/  c                  C   s   t jddddd\} }|d dddgdddg |d  \}}|d  \}}|dks^t|dksjt|dksvt|dkstd S )	Nr2   r3   T)r  r  rR  r  r   r   r   rZ  )r#   r   r   r   r   r&   )r(   rF  r  rB  r  rG  r    r    r!   test_empty_shared_subplotsR  s    r0  c                  C   s   dD ]} t jddd\}}|d jd| dd |d  dksBt|d  | ksVtt jddd\}}|d jd| d |d  d	kstqd S )
Nboxdatalimr3   T)r  rR  r   )
adjustablesharer2   r4  r  )r#   r   
set_aspect
get_aspectr&   Zget_adjustable)r4  r(   rF  r    r    r!   test_shared_with_aspect_1^  s    r9  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szt|d  |d  kstd S )	Nr3   T)r  rR  r  r   )r5  r2   r   r   )r#   r   r7  r   r   r   r&   r   r}  r    r    r!   test_shared_with_aspect_2k  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st|d  |d  kst|jj	|jj
 }|D ]P}| }|j	|j
 }|jj	|jj
 }|| | }t|d
t| d
kstqqd S )Nr1  r3   T)r  r  r   r6  r2   r   r   r   )r#   r   r7  r   r   r   r&   r   Zbbox_inchesr  rr  get_positionviewLimr  r8  )	r4  r(   rF  Z
fig_aspectr   r   
box_aspectZ
lim_aspectrL  r    r    r!   test_shared_with_aspect_3v  s     
r>  c               	   C   sJ   t jddddd\} }|d d tjtdd |   W 5 Q R X d S )	Nr2   r3   TrR  r  r   r  zset_aspect\(..., adjustable=r   )r#   r   rK  r   r   RuntimeErrorr'  )r(   r  r    r    r!   test_shared_aspect_error  s    rA  zerr, args, kwargs, matchr   z@axis\(\) takes from 0 to 1 positional arguments but 2 were given)r  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zthe first argument to axis*r  z1axis\(\) got an unexpected keyword argument 'foo'c              	   C   s*   t j| |d tj|| W 5 Q R X d S Nr   )r   r   r#   rK  )errr.  r{  r!  r    r    r!   test_axis_errors  s    rD  c               	   C   s  t  } tjtdd | d W 5 Q R X tjtdd | d W 5 Q R X tjtdd | jddd W 5 Q R X tjtdd | 	d W 5 Q R X tjtdd | j
d	d
 W 5 Q R X tjtdd | jddd	d W 5 Q R X tjtdd | jddd	d W 5 Q R X tjtdd | jdd	d W 5 Q R X tjtdd | jdd	d W 5 Q R X tjtdd | jdd	d W 5 Q R X tjtdd | jdd	d W 5 Q R X d S )Nzunknown value for which: 'foo'r   r  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer2   )Z	scilimitszSpecifying 'loc' is disallowedrH   )r:   r,   r8   )r:   r-   zCannot pass both 'left'r   )rH   r]   zCannot pass both 'right')r<   r^   zCannot pass both 'bottom')rG   r+  zCannot pass both 'top')r8   r,  )r#   r  r   r   r3  Zget_xaxis_transformZget_yaxis_transformr   Zset_prop_cycleZ
set_anchorZticklabel_formatr$   r%   rx  ry  r  r    r    r!   test_axis_method_errors  s.    rE  c                 C   sH   t  \}}t|d|  }|d |d t|jj|jj d S )Nztwin{}r   r3   )r#   r   r   r  r7  r   bboxextents)r   r(   r   r   r    r    r!   test_twin_with_aspect  s    

rH  c                  C   s   d} d}d}d}t j }| }|| | | | ks>t| |ksNt|||\}| |kslt| |ks|t|d | |kst| |kst|j	dd |
  | | kst| |kstd S )N)r]  r  )      $rb  )rI  r  FT)Zvisible_only)rM   r   r   r   r   r   r&   r   r   Zrelimr   )rB  rG  r  r  r(   r   rn  r    r    r!   test_relim_visible_only  s&    

rJ  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_labelsize  s    rM  zpie_default.pngc               	   C   sL   d} ddddg}dddd	g}d
}t jdd\}}|j||| |dddd d S )NFrogsZHogsDogsLogsr   r   r  ro   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  rZ  rL  %1.1f%%Tr  )exploderv  r  autopctshadow
startangle)r#   r   pie)rv  sizesr  rX  rG  r   r    r    r!   test_pie_default  s      r^  Zpie_linewidth_0)r   r   c                  C   s   d} ddddg}dddd	g}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 )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  r   r   rX  rv  r  rY  rZ  r[  
wedgepropsr  )lrm  r6   exrm  rb  ra  r6   )rX  rv  r  rY  rZ  r[  r`  re  )r#   r\  rK  r   r  )rv  r]  r  rX  re  r(   r   r    r    r!   test_pie_linewidth_0  s>      
   
   rc  zpie_center_radius.pngc                  C   st   d} ddddg}dddd	g}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 )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  r   r   r   r   )	rX  rv  r  rY  rZ  r[  r`  rO   r  zCenter point)r2   r  ->Zarc3)
arrowstyleZconnectionstylesquareZ	lightgrey)Zboxstyler   )rg  ri  r  rF  r  )r#   r\  rk  r  rK  rv  r]  r  rX  r    r    r!   test_pie_center_radius  s&        

rh  zpie_linewidth_2.pngc               
   C   sL   d} ddddg}dddd	g}d
}t j||| |dddddid t d d S )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  r   r3   r_  r  r#   r\  rK  rg  r    r    r!   test_pie_linewidth_2,  s      rj  zpie_ccw_true.pngc               
   C   sH   d} ddddg}dddd	g}d
}t j||| |ddddd t d d S )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  )rX  rv  r  rY  rZ  r[  Zcounterclockr  ri  rg  r    r    r!   test_pie_ccw_true;  s      rk  zpie_frame_grid.pngc                  C   s   d} ddddg}dddd	g}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 )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  r   r   r  )	rX  rv  r  rY  rZ  r[  r`  framerO   r}   )r   r3   )r   r   r  ri  rg  r    r    r!   test_pie_frame_gridJ  s:             rm  zpie_rotatelabels_true.pngc               
   C   sH   d} ddddg}dddd	g}d
}t j||| |ddddd t d d S )N)ZHogwartsrO  rP  rQ  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  )rX  rv  r  rY  rZ  r[  rotatelabelsr  ri  rg  r    r    r!   test_pie_rotatelabels_truee  s      ro  zpie_no_label.pngc                  C   s^   d} ddddg}dddd	g}d
}t j||| |dddd dd	 t d t dd t   d S )NrN  r   r   r  ro   rR  rS  rT  rU  rV  rW  Tr  )rX  rv  r  rY  rZ  r[  Zlabeldistancern  r  g333333rD  )r#   r\  rK  r   rB   rg  r    r    r!   test_pie_nolabel_but_legendt  s       
rp  c                  C   s   dddg} dddg}t ddd	d
ddd}t j| |d|d\}}}||fD ]}|D ]|}| |d kslt| |d kst| |d kst| |d kst|	 |d kst|
 |d ksTtqTqLd S )Nrs  "   r  zLong name 1zLong name 2zLong name 3rO   r8   r  anchorrq  r  )horizontalalignmentverticalalignmentr  rotation_moder  r   %.2f)rv  rY  	textpropsrs  rt  r  ru  r  r   )r  r#   r  r\  get_har&   get_vaget_rotationZget_rotation_modeget_sizer  )re  rv  rw  r  textsrY  Ztxr    r    r!   test_pie_textprops  s(    

 r}  c               	   C   s@   t  \} }tt  |jdddgdddgd W 5 Q R X d S )Nr   ra  r   r   r   )rX  )r#   r   r   r   r3  r\  r'   r    r    r!   test_pie_get_negative_values  s    r~  c                  C   sr   t  \} }dddg}|j|dd}t|d d jd dk sBt|j|d	d}t|d d jd dksntd S )
Nr   r   T)r,   	normalizer   r}   g     v@ra  F)r#   r   r\  r  r  r&   )r(   r   r,   t1t2r    r    r!   test_normalize_kwarg_pie  s    
r  c                    sH   dddg}d |   j| d |  |\}} fdd|D  d S )Nr   r   r  rd  c                    s   g | ]}|  qS r    Z	set_hatch)r   rp  rd  r    r!   r     s     z)test_pie_hatch_single.<locals>.<listcomp>)r   r\  )r   r   r,   wedgesr  r    rd  r!   test_pie_hatch_single  s
    
r  c                 C   sP   dddg}dddg}|   j||d |  |\}}dd t||D  d S )	Nr   r   rG  r  rv   rd  c                 S   s   g | ]\}}| |qS r    r  )r   rp  hpr    r    r!   r     s     z(test_pie_hatch_multi.<locals>.<listcomp>)r   r\  rw  )r   r   r,   rI  r  r  r    r    r!   test_pie_hatch_multi  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 	ddd	d
gddg   |d 
ddddgddg   |d |d   |d |d   |d 	|d   |d 
|d   d S )Nr3   rb   zset_x/yticklabelsr   ro   r2   r   r  r6   r  rZ  r   Z11Z12Z13Z14)r#   r   r   r_   rg   r/   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r(   r   r?   r    r    r!   test_set_get_ticklabels  s      r  c               	   C   s@   t  \} }dddg}tt |jj|dd W 5 Q R X dS )z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r2   r3   r   r   r  N)r#   r   r   r   r3  rP   	set_ticks)r(   r   ticksr    r    r!   0test_set_ticks_kwargs_raise_error_without_labels  s    
r  c                 C   s   |  }|ddddg |jddddgd	d
 |dddg |jddgdd |jddgdd |   }|jddddgddddgd	d
 |dddg |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)

    r2   r3   r   rZ  r   r  r6   r  bold)Z
fontweightr   r   T)r  rj  rk  N)r   r  r  r  r  r   r    r    r!   test_set_ticks_with_labels  s    	 r  c               	   C   s
  t   } tjtdd | ddgd W 5 Q R X tjtdd t t	
dd W 5 Q R X tjtdd t t	
dd	 W 5 Q R X tjtdd$ t jt	
ddtdd
 W 5 Q R X tjtdd$ t jt	
dd	tdd
 W 5 Q R X d S )Nzmust be a sequencer   r3   r  r
  z
must be 1Dr   r  r  rv  )r#   r   r   r   r   r   r  r3  r  r_   rg   r   r   r  r    r    r!   test_xticks_bad_args  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 }|d	d
dddgkstd S )Nro   r   r   r   c                 S   s   g | ]}|qS r    r    r  r    r    r!   r   	  s     z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   s   g | ]}|  qS r    r  r:  r    r    r!   r     s     r  r  r  r  rY  )r#   r   r   r_   rg   rP   r  r  set_ticklabelsr   get_ticklabelsr&   )r(   r   rv  r    r    r!   test_subsampled_ticklabels  s    r  c               	   C   sX   t  \} }|td |jddg tt	 |j
dddg W 5 Q R X d S )Nro   r   r  r   r  r6   )r#   r   r   r_   rg   rP   r  r   r   r3  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 )Nr2   r3   )r#   r   r  r  r  r'   r    r    r!   test_empty_ticks_fixed_loc  s    r  zretain_tick_visibility.pngc                  C   sJ   t  \} }t dddgdddg t j| dd |jdd	dd
 d S )Nr   r2   r3   r}   r   Fr  r-   r   rK  r  r  )r#   r   r   Zsetpr  r
  r'   r    r    r!   test_retain_tick_visibility  s    r  c                  C   s   t  \} }dd }|jt | |dddddg |dd	 |jj	  d
d |j
 D }|dddddgks|td S )Nc                 S   s   | dkrdS dS )Nr2   
unit valuer   r    r   r    r    r!   formatter_func-  s    z.test_tick_label_update.<locals>.formatter_funcr}   r   r2   r3   r   rX  r  c                 S   s   g | ]}|  qS r    r  r  r    r    r!   r   6  s     z*test_tick_label_update.<locals>.<listcomp>r   r  )r#   r   rP   r   r   r  rx  r   rS  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   r2   r   r3   r   )r  ro   r  r   r   )r#   r   r
  r   r   r_   r   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\t| ||| d  ||| d  fkst|	 ||| d  ||| d  fksttdd\}}||  |dd | dkst| ||| d  ||| d  fkst|	 ||| d  ||| d  fksFttdd\}	}
|
|  |
jd	dd
 |
 dkst|
 ||| d	  ||| d	  fkst|
	 ||| d  ||| d  fkstd S )Nr2   ro   r]  r   r  r   r3   )r   r3   皙ɿr   )r  r   )
r  rt  rw  r#   r   r   r
  r&   r   r   )re  r]   r^   r+  r,  rG  r   rH  r   r  r   r    r    r!   test_marginsE  sF    





r  c                  C   sN   t jd t \} }|ddgddg |jddd | dksJtd S )NrI  r2   r3   r   r   )r  Zxmarginr   )	r   r   r   r#   r   r   r   r   r&   r'   r    r    r!   test_set_margin_updates_limitsi  s
    r  )r}   z!margin must be greater than -0\.5r  r}   r-   z@Cannot pass both positional and keyword arguments for x and/or y)r2   r2   r2   z&Must pass a single positional argumentc              	   C   s:   t j| |d" t }| }|j|| W 5 Q R X d S rB  )r   r   r#   r   r   r
  )rC  r.  r{  r!  r(   r   r    r    r!   test_margins_errorsq  s    r  c                  C   s&   t  \} }|d |dg d S Nr2   )r#   r   ru  r'   r    r    r!   test_length_one_hist  s    
r  c                  C   s   t  } |  }|dd | dks,t| dks<t|jdd | dksXt| dksht|jdd | dkst| dkst|dd | dkst|	 dkst|jdd | dkst|	 dkst|jdd | dks
t|	 dkstd S )	Nr   r  )r   r  rM  )r  )r   rM  )rw   )r  rM  )
r#   r   r   r:  
get_xboundr&   r   r;  
get_yboundr   r'   r    r    r!   test_set_xy_bound  s(    r  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nro   r   r2   )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 )Nr2   r3   r  r  r'   r    r    r!   test_color_None  s    r  c                  C   s6   t  \} }|jddgddd }d| ks2td S )Nr   r2   r  rW  )r#   r   r   r  r&   r(   r   rn  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   ru  r   rB   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   decoderu  r   rB   )r(   r   r   r  rv  r    r    r!   test_unicode_hist_label  s    r  c                  C   sJ  t jdd } t \}}||  |j  |jj	 }|jj
 dksPt|j  |j  |jj	 }|d |d kr|d |d kst|jj
 dkstt \}}||  |j  |jj	 }|jj dkst|j  |j  |jj	 }|d |d kr,|d |d ks0t|jj dksFtd S )	Nro   g^ 9^;rH   r   r2   r<   r8   rG   )r_   r`   r#   r   r   rS  r   rS   Z
offsetTextr;  rR   r&   Z
tick_rightrP   Zget_verticalalignmentr   )re  r(   r   beforeafterr    r    r!   test_move_offsetlabel  s*    



$



(r  zrc_spines.pngc               	   C   s0   ddddd} t |  t  W 5 Q R X d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rM   r
   r#   r   )r  r    r    r!   test_rc_spines  s    r  zrc_grid.pngc               
   C   sl   t  } ddd}ddd}ddd}|||g}t|dD ],\}}t| | dd| W 5 Q R X q:d S )NTr   )r  zaxes.grid.axisr,   r-   r2   r   )r#   r   rD  rM   r
   r   )r(   Zrc_dict0Zrc_dict1Zrc_dict2r  r  r  r    r    r!   test_rc_grid  s    
r  c               	   C   s   ddddd} t j| d t  }|ddd}|j}|j}|jd rLt|jd sZt|jd rht|jd svt|jd st|jd rt|jd st|jd rtW 5 Q R X d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightr"  r2   tick1Ontick2On	r#   r
   r   r   rP   rS   _major_tick_kwr&   _minor_tick_kwr  r(   r   ZxaxZyaxr    r    r!   test_rc_tick  s"     r  c               	   C   s   ddddddddd} t j| d t  }|ddd}|j}|j}|jd rTt|jd sbt|jd rpt|jd s~t|jd rt|jd st|jd rt|jd stW 5 Q R X d S )NTF)r  r  r  r  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r2   r  r  r  r  r    r    r!   test_rc_major_minor_tick  s*       r  c                  C   s   t d} t ddddg}t \}}|| |d |d | |  }}t 	|t 	|ksjt
| dkszt
t|jd	d
jd t|jdd
jd d S )Nr   r   r  r^  r  morf  r2   T)original)      ?r   r  r  F)g333333?r   g      ?r  )r_   rg   r  r#   r   r   rK  r   r   r  r&   r8  r   r;  rG  )r,   r-   r(   r   r   r   r    r    r!   test_square_plot0  s     

  r  c                	   C   s   t t td  W 5 Q R X t t td d  W 5 Q R X t t ttdtd W 5 Q R X t t. ttddtdddf W 5 Q R X d S )Nr  r  r   r  r}   r2   )	r   r   r3  r#   r   r_   r  rg   r   r    r    r    r!   test_bad_plot_args?  s    "r  zxy, clsr    ))r   r  )r3   rZ  r  r  )r   r   rq  )r   r   c                 C   s,   t  \}}t|j| |f |ks(td S r   )r#   r   rE  
pcolorfastr&   )rg  re  clsr(   r   r    r    r!   test_pcolorfastJ  s    r  c                  C   s   t jddddd\} }|d d |d d |jD ]$}| dksLt| dks8tq8|d d |d d |jD ]$}| dkst| dkstqd S )Nr3   Tr?  r  r   r  r\  )r#   r   r]  r  rE  Z
get_yscaler&   Z
get_xscaler(   rF  r   r    r    r!   test_shared_scale]  s    

r  c                	   C   sH   t t tjdd W 5 Q R X t t tjdd W 5 Q R X d S )NTrQ  r  )r   r   r   r#   r  r    r    r    r!   test_shared_boolo  s    r  c                   C   s   t tddg dS )z4Violin plot should handle point mass pdf gracefully.r   N)r#   r  r_   r  r    r    r    r!   test_violin_point_massv  s    r  c               
   C   s   t dtdgt dtdg } t dddddddgdddddgdddddg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 }| | }| | }| | | }||||S )	Nr,   r   r-   rC  r2   )r3   r   r  r  )r	   r_   rg   r   )Zbase_xyZ
err_cyclerZxerr_cyZyerr_cyemptyZ	xerr_onlyZ	yerr_onlyZboth_errr    r    r!   generate_errorbar_inputs{  s*    $

r  r{  c                 C   s    t  }|jf | }|  d S r   )r#   r  r  r  )r{  r   Zebr    r    r!   test_errorbar_inputs_shotgun  s    r  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   ro   r   r3   ro   ro   r   rM  )r  r  r   )r#   r   r_   r   Z	ones_liker   r   )r(   r   r,   r-   rY  r    r    r!   test_dash_offset  s
    
r  c                  C   s   t  \} }|jddd |j }|d d| j ks:t|jddd |j }|d dksbt|jdd d |j }|d tjd d | j kstd S )	Naardvarkr  r   r  g?r]  zaxes.titlepadrM  )	r#   r   r/   ZtitleOffsetTransZ
get_matrixr  r&   rM   r   )r(   r   r  r    r    r!   test_title_pad  s    


r  c               	   C   s   t  \} }dt jd< |d |jddd |jddd d|jddksPtd|jddksdtd|jddksxttt |jdd W 5 Q R X tt |jddd W 5 Q R X d S )	NrO   zaxes.titlelocationr  rH   r9   r<   r  Zfail)	r#   r   r   r/   Z	get_titler&   r   r   r3  r'   r    r    r!   test_title_location_roundtrip  s    

r  rR  c                 C   s   t jdd| d\}}|d jddd |d jddd |  |d j \}}|d j \}}||  krxd	ks~n td S )
Nr3   r2   rQ  r   rj  ir  rk  r   )r#   r   r/   r'  r+   r;  r&   )rR  r(   rF  r,   rG  r  r    r    r!   test_title_location_shared  s    r  z
loglog.pngc                  C   sN   t  \} }tdd}|j||d dd |jddd |jd	dd
d d S )Nr2   rU  r   r   r  r  r3   )r  rr  r   r  )r  rr  r  )r#   r   r_   rg   rT  r
  )r(   r   r,   r    r    r!   test_loglog  s
    r  ztest_loglog_nonpos.pngc                  C   s   t dd\} }tdd}|d }d|d< d|d< ttdd	d
gdd|jD ]~\\}}}||kr|r~|j||d d|d q|j||d dd qN|j||d dd |r|jd|d |rN|j	d|d qNd S )Nr   r2   rU  g      r  r1  r   r  r  r   r3   )r  )r  nonpositiver  r   )r  )
r#   r   r_   rg   rw  r   rE  rT  r]  r  )r(   rF  r,   r-   ZmcyZmcxr   r    r    r!   test_loglog_nonpos  s"    r  c                  C   s  t  \} }|ddddg | d dks2tt  \} }|ddddgddddg | d dksntt  \} }|ddddgddddg | d dkstt  \} }|t	
d | dkst| dkstt  \} }|t	
d | dkst| dks&tt  \} }|t	d | d dksXtt  \} }|t	
d | dkst| dkstd S )	Nr   r2   r3   r   r  rR  ro   )rX  g      #@)r#   r   r   r  r&   r  r#  r  rk  r_   r  r  ru  rg   r   r'   r    r    r!   test_axes_margins  s0    r  )r:  c                 C   s    dd }dd }||d| j  S )Nc                 S   s<   |   }|  | dd | j  }|d dks8td S Nr   r   r}   r  )r   r  rx  rP   get_major_locatorr&   r   r   r  r    r    r!   	_helper_x  s
    z&shared_axis_remover.<locals>._helper_xc                 S   s<   |   }|  | dd | j  }|d dks8td S r  )r   r  ry  rS   r  r&   r  r    r    r!   	_helper_y  s
    z&shared_axis_remover.<locals>._helper_yr   )param)requestr  r  r    r    r!   shared_axis_remover  s    r  r  r   subplots_sharedr	  c                 C   s   | j dkrt }| }nj| j dkr4t \}}nR| j dkrbtjddddd\}}|d d }n$| j dkrt }|d	d	d
d
g}||fS )Nr  r   r  r3   r  r?  r   r	  r   r  )r  r#   r   r  r   r	  )r  r(   r   r  r    r    r!   shared_axes_generator"  s    




r  c                 C   s   | \}}|| d S r   r    )r  r  r(   r   r    r    r!   test_remove_shared_axes3  s    r  c                  C   s`   t jddddd\} }|d d }|d d  }|  |dd t|d d  | d S )Nr3   r  r?  r   r2   r   )r#   r   r   r  rx  r   )r(   r  r   Z	orig_xlimr    r    r!   test_remove_shared_axes_relim9  s    r  c                  C   s   t ddd} t j| j| jf}tjddddd\}\}}|dd	 |dd	 |	| | | |	| | | |
 s|
 rt| s| rt| |   krd
ksn t| |   krd
ksn td S )Nir  r7  r3   r2   Tr?  r  )r  r  )r_   rg   r`   Zrandom_sampler  r#   r   rx  ry  r)  r  r&   r  r   r   )ra  rl  r(   r   r   r    r    r!   test_shared_axes_autoscaleB  s    "r  c                  C   s   t  \} }|j jdd |dd |d | j  t	|j  dksVt
|dd | j  t	|j  dkst
d S )Nr  r   r   r  r  r3   )r#   r   rS   r  Z
set_paramsrx  r7  rS  r   r  r&   ry  r'   r    r    r!   test_adjust_numtick_aspectS  s    


r  c                  C   sL   t  dd} | jD ]0}| |   kr@dddgksn tqd S )Nr   r   r   r2   )r#   r   r   rE  r  r  r&   r  r    r    r!   test_auto_numticks_  s    
r  c                  C   sv   t  \} }dtjd< |ddgddg t| tddd	k	 sNt
t| td
ddk	 srt
d S )NZround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<ro   irS  r   r  r   )r#   r   r   r   rT  r_   log10r  rg   r  r&   r  r'   r    r    r!   test_auto_numticks_logf  s
    
$r  c                  C   s   t  \} }|g d d S )N)r   r   )r#   r   r;  r'   r    r    r!   test_broken_barh_emptyp  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^t	| d jd	 t|d
 kst	dS )z9Check that timedelta works as x, dx pair for this method.r6  rU  r  r   r2   r7  r3   r  r3   r   gUUUUUU?N)
r#   r   r  r;  r  r+  Zverticesr  r  r&   )r(   r   Zd0ppr    r    r!   test_broken_barh_timedeltau  s
     r  c                 C   sD   | j ddd}td}tjdd}t \}}|||| d S )Nz
2000-01-01ro   )r>  r  r  r  )rB  r_   rg   r`   rp   r#   r   rZ  )rE  timedepthre  r(   r   r    r    r!   test_pandas_pcolormesh~  s
    
r  c                 C   sj   t jdddd}t tt|}| ||d}t }|t |j	d dk 
 }|jdd	|d
 d S )Nz2005-02z2005-03r  rP  )r^  r  r3   r2   r^  r  r  )r_   rg   r   r   r  rZ  r#   r  r  r\  r  r   )rE  r^  r  r]  r   Zwithout_zero_indexr    r    r!   test_pandas_indexing_dates  s    r  c                 C   sP   | j tjjddddddgddd	d
dgd}t \}}|jdddd|d d S )N)r   r   r  r,   r-   ZxeZyer2   r3   r   r   r   )columnsr\  r  )rZ  r_   r`   uniformr#   r   r  rb  r    r    r!   test_pandas_errorbar_indexing  s    
r  c                 C   s>   |  dddgdddgd}t \}}||j|d  d S )	Nr   r   rZ  r  r2   r3   )ZXXYYr  )rZ  r#   r   r   r\  rb  r    r    r!   test_pandas_index_shape  s    r  c                 C   sH   | j ddddddddddg
d}|jdd  }t \}}|| d S )Nr2   r3   r   r   r   r  )rr  Zilocr#   r   ru  )rE  Zser_1Zser_2r(   r   r    r    r!   test_pandas_indexing_hist  s     r  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 )Nr3   r  r2   r   r  rO   r  )rZ  r   r#   r   r  r:   rS  r   rb  r    r    r!   test_pandas_bar_align_center  s    r   c            	      C   s   t  j} | jdd}| jdd}| j| jdd}| j| jdd}||ksRt||ks^t| jdddd	d
 | jdd}| jdd}| |}| |}||kst| j|kst||kst| j|kstd S )Nr  r  r  T)reverser   r  rK  r   )r  r!  r  r  )	r#   r  rS   Zget_tick_paramsZ_translate_tick_paramsr  r  r&   set_tick_params)	rK  Zinitial_major_style_translatedZinitial_minor_style_translatedZtranslated_major_kwZtranslated_minor_kwZnew_major_style_translatedZnew_minor_style_translatedZnew_major_styleZnew_minor_styler    r    r!   test_axis_get_tick_params  s2    
   

r  c                  C   s   t  } | jjdddd | jjd jdks0t| jjd j dksJt| jjd j	
 dksdt| jjd j	 dks~td S )	Nr   r  rK  )r  r!  r  r   rM  rM  r  )r#   r  rS   r  r  _sizer&   	tick1liner  rK  r{  )Zaxis_1r    r    r!   .test_axis_set_tick_params_labelsize_labelcolor  s    
r  c                  C   s   t  } | jddddd | j| jfD ]d}|jd j dksBt|jd j	 dksZt|jd j
 dksrt|jd j dks&tq&d S )Nr  r   r   r  )r#  r%  r$  r&  r   r  )r#   r  r
  rP   rS   r  r  r  r&   Zget_linewidthr  rR  )r   rK  r    r    r!   test_axes_tick_params_gridlines  s    
r  c                  C   s   t  } | jdddd | jdddd | jjd j dksBt| jjd j dks\t| jj	d j dksvt| jj	d j dkstd S )NFTr  )Z	labelleftZ
labelrightr  r  r   )
r#   r  r
  rS   r  rK  r   r&   label2r  r  r    r    r!    test_axes_tick_params_ylabelside  s    r	  c                  C   s   t  } | jdddd | jdddd | jjd j dksBt| jjd j dks\t| jj	d j dksvt| jj	d j dkstd S )NTFr  )labeltoplabelbottomr  r  r   )
r#   r  r
  rP   r  rK  r   r&   r  r  r  r    r    r!    test_axes_tick_params_xlabelside  s    r  c                  C   s4   t   } | jtdd d\}| dks0td S )Nru   r  r  )r#   r   r   r   r   rR  r&   )r   lnr    r    r!   test_none_kwargs  s    r  c                  C   s\   ddddg} t jtj| tjdddddgdd	}t|j| D ]\}}|jd |ks<tq<d S )
Nr   r2   r3   r   rP  r   r   r
  r  )	r#   r  r_   r  Zuint8rw  r   rg  r&   )r.  r  r   r,   r    r    r!   test_bar_uint8  s    $r  zdate_timezone_x.pngr   c                  C   sj   dd t dD } tjdd tddd tj| dgd dd	 tddd tj| dgd d
d	 d S )Nc              
   S   s(   g | ] }t j d dd|tjddqS   r3      Canada/Easternr   tzinfor  rV  tzZgettzr   r    r    r!   r     s   
z(test_date_timezone_x.<locals>.<listcomp>r   r  rq  rL  r3   r2   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   '  s   
z(test_date_timezone_y.<locals>.<listcomp>r   r  rL  r3   r2   r  FT)r  Zxdateydater  r  r  r    r    r!   test_date_timezone_y$  s       r  zdate_timezone_x_and_y.pngc                     sn   t jj  fddtdD } tjdd tddd tj| | dd	d
 tddd tj| | dd	d
 d S )Nc              	      s    g | ]}t j d dd| dqS )r  r3   r  r  r'  r   r  r    r!   r   :  s   z.test_date_timezone_x_and_y.<locals>.<listcomp>r   r  rL  r3   r2   r  T)r  r  z
US/Eastern)r  timezoneutcr   r#   r   r  r  r  r    r  r!   test_date_timezone_x_and_y6  s    
r"  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]\}}|jddddd tjd	d
d}|| |jdddd |j	ddddd |j
d d  d || | |ks"tq"d S )Nr   T)r  rR  r  )Frn  TrR  ro   r  rc  rf  r  r  r6   r  )r   r   r   F)r8   rG   rH   r<   )r#   r   r   rw  r   r  r  r  r  r
  r  r   Zset_axisbelowZget_axisbelowr&   )rF  settingsr   Zsettingcircr    r    r!   test_axisbelowG  s    
 
r%  c            	      C   s   t jd t jdd\} }| }|d}|d}| j  | j	 }|
|j}|
|j}|| }t|ds|td S )Nr   r  )r  Xlabel2Titler   )r#   r   r   r   r   r$   r/   rS  r   get_rendererget_window_extentr  rG  r_   iscloser&   )	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sttd S )Nr  )r8   ZXlabelr&  r'  )r   g(\?)r#   r   r  r   r$   r/   r+   r	  rS  r(  Z_update_title_positionr;  r&   )r(   r   r   r   r+  r    r    r!   test_titlesetposj  s    




r-  c                  C   sP   d t jd< t \} }|jd |d | j  |j	
 d dksLtd S )Naxes.titleyr8   
xlabel topr2   p=
ף?)r   r   r#   r   rP   r   r/   rS  r   r+   r;  r&   r'   r    r    r!   test_title_xticks_topy  s    


r1  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dksTt
d S )Nr.  r,   TrK  rG   r8   r  r
  r/  r2   r0  )r   r   r#   r   r
  r/   rS  r   r+   r;  r&   r'   r    r    r!   test_title_xticks_top_both  s    
   

r3  zleft, center)rH   r   )r   rO   )rH   rO   zleft title movedzcenter title keptzboth titles alignedc                 C   s   d t jd< t \}}|d |j| dd || |  | r`|s`|j d dkst	nT| s|r|j
 d dkst	n4|j d }|j
 d }|dkst	||kst	d S )Nr.  g   vH7BrH   r9   r2   r   )r   r   r#   r   ry  r/   r'  Z_left_titler;  r&   r+   )rH   rO   r(   r   Zyleftr  r    r    r!   test_title_above_offset  s    


r4  c                  C   sd   d t jd< t } | ddddg}|jdddddd |d	}| j  |	 d
 dks`t
d S )Nr.  r   rX  r  r   r,   Tr2  Boor2   r   )r   r   r#   r   r	  r
  r/   rS  r   r;  r&   )r(   r   ttr    r    r!   test_title_no_move_off_page  s    
   

r7  c                  C   sD   t  \} }|dddg |jjdd |j  dks@td S )N   @A   eA   FAr  )r!  )r#   r   r   rS   r  get_offset_textr  r&   r'   r    r    r!   test_offset_label_color  s    r<  c                  C   sb   t  \} }|dddg |jjddd |j  s>t|jjdd |j  r^td S )Nr8  r9  r:  FT)Zlabel1Onlabel2On)r=  )r#   r   r   rS   r  r;  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 )Nr2   r   g-q=gqىE)r#   r   r   r_   r  rS  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  r  r   rS  r'  r&  r    r    r!   r     s     z#test_barb_units.<locals>.<listcomp>r   r  ro   r   r`  )r#   r   r   r_   r   r  Zbarbsr(   r   r^  r-   uvr    r    r!   test_barb_units  s
    rD  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     s     z%test_quiver_units.<locals>.<listcomp>r   r  ro   r   r`  )r#   r   r   r_   r   r  ZquiverrA  r    r    r!   test_quiver_units  s
    rE  c                  C   sn   t j} t \}}tdD ]N}|td\}|tdtd}|D ] }| | | | ksFt	qFqd S )Nr   r   )
r4  to_rgbr#   r   r   r   r  r  r.  r&   )rF  r(   r   rY  r  Zbrsbrr    r    r!   test_bar_color_cycle  s    rH  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shtqh|j	ddD ]}| dkstq|j
d	d
d |j
ddd |jddD ]}| d
kstq|j	ddD ]}| dkstqd S )Nr2   r3   r   r   r   )r  r  r  r  r,   5   )rK  r"  r-   r   )rK  r  r  )r#   r   r   rP   r  rS   r  rz  r&   r  r
  )r  r   r   textr    r    r!   test_tick_param_label_rotation  s    rK  c            	      C   s  t  \} }tdD ]D}|tdtd}td|}t| 	 t|kst
qtddD ]D}|tdtd}td|}t| 	 t|ksdt
qdtd}dD ]<}|jtdtdf|di}t| 	 t|kst
qtd}tddgddD ]r\}}|jtdtdf|di}td|}t| 	 t|ksbt
t| 	 t|kst
qd S )	Nr   zC{}rZ  rM  )r   Z
facecolorsr   r   ro  )start)r#   r   r   r  r4  r  r  tupler  Zsqueezer&   rA  rD  r  )	r(   r   rY  cctargetalZedge_targetelZface_targetr    r    r!   test_fillbetween_cycle  s&    

rR  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 )Nre  r  r0  ro   r   )
r#   r   r   Zset_xmarginrU  r   rP   r,  r   r   )r(   r   marginZxlim0Zxlim1r   Zxlim0tZxlim1tZx0tZx1tr  r    r    r!   test_log_margins  s    


rT  c               	   C   s   d} t | t |  }}t | d }t \}}tt |j|||d W 5 Q R X tjdd |j||dd W 5 Q R X |j||dg|  d d S )Nr   r2   rW  r(  r   )r   r   r   )	r_   rg   r#   r   r   r   r3  r4   r7  )r#  r,   r-   r  r(   r   r    r    r!   test_color_length_mismatch'  s    rU  c                   C   s   t jdgdd t   d S )Nr   ZLabelr  )r#   r  rB   r    r    r    r!   test_eventplot_legend3  s    rV  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 td S )Nr   r2   r   )rH   r  )r   r   r   rN  r  )r#   r   r  r   r#  r/  r&   )r(   r   Zrect1rect2r    r    r!   test_bar_broadcast_args8  s
    rX  c                	   C   s   t ddgddg tt t tj W 5 Q R X tt t tj W 5 Q R X tt t 	tj W 5 Q R X tt t 	tj W 5 Q R X d S rH  )
r#   r   r   r   r3  r   r_   r  r  r   r    r    r    r!   test_invalid_axis_limitsC  s    rY  r  r[  r   r  c                 C   s:   t  }|ddddg ||  || |  d S )Nr2   r3   r   r   )r#   r  r   r]  r  r?  )r  r  r   r    r    r!   test_minorticks_onP  s
    

rZ  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 )Nr2   r3   r   r   )r#   r   r  r   r   r   r<  Z	intervalx)r(   r   ZxtwinrH  r   r    r    r!   test_twinx_knows_limitsZ  s    r[  c                   C   s   t jddgddgddd d S )Nr   r2   r  )r  r  )r#   r   r    r    r    r!   test_zero_linewidthi  s    r\  c                  C   s<   t  \} }|jg g g dd |jg g g dd |  d S )Nzempty y)r  r*   zempty x)r  r*   )r#   r   r  rB   r'   r    r    r!   test_empty_errorbar_legendn  s    r]  c                 C   s\   t ddd}dd |D }dd |D }dd |D }|  || | || d S )Nr1  ro   r   c                 S   s0   g | ](}d |d  d|d   d|  d qS )g@r   r	  r3   g\(\@      @r    r   r    r    r!   r   x  s     z%test_plot_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r&  r    r    r!   r   y  s     c                 S   s   g | ]}t |qS r    r   r&  r    r    r!   r   z  s     )r_   rg   r   r   )r   r   r  r  r,   r-   r    r    r!   test_plot_decimalu  s    r_  c                 C   s0   |   jddddd |  jddddd d S )Nr   r   r   r   )r  r  rp  )r   r   )r   r   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 sZt|j	|j	k sjtdS )z5Test that tick padding gets turned off if axis is offrK  zxtick.directionzytick.directionoffN)
r#   r   r   get_tightbboxrS  r(  rK  r  r&   r  r(   r   bbbb2r    r    r!   test_tick_padding_tightbbox  s    


rf  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kst|j  t ddgd	dgg}t |
  |ks,tdS )z:
    Ensure that inset_ax argument is indeed optional
    r0  r0  r2   r   ro   Nr}   r   r   333333@r3   r  r   )boundsr   )r_   mgridr  r   r  r#   r   rZ  r7  apply_aspectindicate_insetr&   rS  r   r  r  get_bbox
get_points)dxdyr-   r,   r  r(   r   r   r   r2  rec
connectorsxxr    r    r!   
test_inset  s&    
*
,

rt  c                  C   s  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
ddddg}||||d dd df  |d	d
g |ddg ||  ||\}}	t|	dkst|j  t d	dgd
dgg}
t |  |
ksNtt ddgddgg}
t jj|  |
dd d S )Nrg  r2   r   ro   r}   r   r  r  r   rh  r3   r  r   r   g=
ףp=?gKXc'?g(\?g?g-C6?Zrtol)r_   rj  r  r   r  r#   r   rZ  r7  rk  
inset_axesrx  ry  r8  Zindicate_inset_zoomr  r&   rS  r   r  r  rm  rn  r   r   r;  )ro  rp  r-   r,   r  r(   r   Zaxin1rq  rr  rs  r    r    r!   test_zoom_inset  s:    
*




  rw  zinset_polar.pngc                  C   sh   t  \} }|jddddgdd}t|ts0ttddd}dtj | }|	|| |	|| d S )	Nr   r   r  Tr  r   r3   r_  )
r#   r   rv  r   r   r&   r_   rg   r   r   )r  r   axinsr  r}  r    r    r!   test_inset_polar  s    ry  c                  C   s4   t  \} }|jddddgdd}t|ts0td S )Nr   r   Zhammerr  )r#   r   rv  r   r   r&   r  r   rx  r    r    r!   test_inset_projection  s    r{  c                  C   s8   t  \} }|jddddgtjd}t|tjs4td S )Nr   r   )r9  )r#   r   rv  AAr   r   r&   rz  r    r    r!   test_inset_subclass  s    r}  
x_inverted
y_invertedc                 C   s  t dd\}\}}td}|||d | r8|  |rD|  |ddddg|\}}|\}}	}
}| rpdnd}|r|dnd}||
jd |jd   dkst	||jd |	jd   dkst	||	jd |jd   dkst	||jd |
jd   dkst	d	S )
zR
    Test that the inset lines are correctly located with inverted data axes.
    r2   r3   ro   r   r   r   r}   r   N)
r#   r   r_   rg   r   r  r  rl  r  r&   )r~  r  r(   r   r   r,   r2  ri  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ddddgdd t| jdsBt|d |jddddgdd t| jdsxt|d |jddddgd	d t| jdstd S )
Nr  r   rN  r   r  r   r  r  active)	r#   r   r7  r	  r_   r  r;  rr  r&   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)rq  rq  r  r  r  Fgư>ru  )r#   r   r  rG   r)  rS  r(  _set_view_from_bboxr_   r   r   rn  rc  r    r    r!   !test_spines_properbbox_after_zoom  s      r  c                  C   sV  t  \} }d}d}|| |j|d |d d |d tjj|| dd tjj||	 dd |d	 d
}d}| }|	 }tj|d |d  d tj|d |d  d tjj||dd tj|| |d | }|	 }tj|d |d  d tj|d |d  d tjj||dd tjj||dd d S )NrX  r   )r}   r3   r   r2   r*  )r  r  r   r  Zatol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r#   r   rx  ry  r  r_   r   r   r   r   )r(   r   r   r   r  Znew_ylimZres_xlimZres_ylimr    r    r!   test_limits_after_scroll_zoom  s0    



r  c                  C   sH   t  \} }t|  |tjdd | j }tj	|
|jd d S )Nr2   r5  i  )r#   r   r   rJ  r_   r  rS  r(  r   r   rb  rr  )r(   r   r+  r    r    r!   test_gettightbbox_ignore_nan@  s
    
r  c              	   C   sj   t dd}| jtjjdd|d}| jtjjdd|d}| jddddddddg|d}t||| d S )Nro   rS  r  r  ra  r2   r   )r   rr  r_   r`   r  r#   r4   )rE  r>  r,   r-   r6   r    r    r!   "test_scatter_series_non_zero_indexH  s
    
r  c                   C   s"   t g g  t jg g g g d d S )N)rm  r6   )r#   r4   r    r    r    r!   test_scatter_empty_dataQ  s    r  zannotate_across_transforms.pngc               	   C   s   t ddd} t |  t |  }tjdd\}}|| | |ddddg}|d	 |j	
d
 |j
d
 |jd| d |d f|jd|jtddd d S )Nr   ro   r  )gQ@r   rL  rN  r   r   r   Fr   r  r\  rd  )re  )rg  rh  ri  rj  r  )r_   r   rX  r   r#   r   r   rv  r7  rP   r   rS   rk  Z	transDatar   r  )r,   r-   r(   r   rx  r    r    r!   test_annotate_across_transformsW  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 )Nr2   r3   r	  T)r  r  c              
   S   s,   t jdd d|  W  5 Q R  S Q R X d S Nr  r  r2   r_   r  r  r    r    r!   invertl  s    z!test_secondary_xy.<locals>.invertrU  r   r   Z	functionsrN  c                 S   s   d|  S Nr3   r    r  r    r    r!   r  x  r  z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r  r    r  r    r    r!   r  x  r  r  c                 S   s   | d S r  r    r  r    r    r!   r  y  r  c                 S   s   | d S )Nr   r    r  r    r    r!   r  y  r  r  )r#   r   rD  r   r_   rg   secondary_xaxissecondary_yaxis)r(   rF  r  nnr   secaxr    r    r!   test_secondary_xyh  s    r  c               	   C   s   t  \} }|tddtdd tt |jddd d W 5 Q R X tt |d W 5 Q R X tt |	d W 5 Q R X d S )	Nr3   rU  r   c                 S   s   d|  S r  r    r  r    r    r!   r    r  z%test_secondary_fail.<locals>.<lambda>r  r<   rG   )
r#   r   r   r_   rg   r   r   r3  r  r  r'   r    r    r!   test_secondary_fail}  s    r  c                  C   sv   t jdd\} }|tddtdd dd }|jd||fd | j  | d	 t	|
 jd
dddg d S )Nr	  rL  r3   rU  c              
   S   s,   t jdd d|  W  5 Q R  S Q R X d S r  r  r  r    r    r!   r    s    z%test_secondary_resize.<locals>.invertr8   r  )r  r   r  r   r  )r#   r   r   r_   rg   r  rS  r   r  r   r;  rG  )r(   r   r  r    r    r!   test_secondary_resize  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\t|  t|j t	jszt|d	 t   t|j t	jst|d
 t   t|j t	j
std S )Nr	  rL  r3   rU  c              
   S   s,   t jdd d|  W  5 Q R  S Q R X d S r  r  r  r    r    r!   r    s    z'test_secondary_minorloc.<locals>.invertr8   r  r   r\  )r#   r   r   r_   rg   r  r   Z_axisZget_minor_locatorr   ZNullLocatorr&   r?  ZAutoMinorLocatorr]  r   Z
LogLocator)r(   r   r  r  r    r    r!   test_secondary_minorloc  s*    





r  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjsPtd S )Nr   r8   )r#   r   r]  r  rP   r   r   ZScalarFormatterrS  r   r   r   r&   r(   r   r  r    r    r!   test_secondary_formatter  s    


 r  c                  C   s*   t  \} }|d}t|dks&td S )Nr8   z<SecondaryAxis: >)r#   r   r  r0   r&   r  r    r    r!   test_secondary_repr  s    
r  zaxis_options.pngc               	   C   s   t dd\} }tdD ]\}}|d|f dd |d|f | |d|f tjddd	d
d |d|f dd |d|f | |d|f tjddd	d
d qd S )Nr3   r   )ZscaledrL  imager   r   )r2   g	@)r   r   r   r   rM  r  r2   )r2   g      @)r2   r   )r   ri  r  )r#   r   rD  r   rK  r   r  r  )r(   r  r  optionr    r    r!   test_axis_options  s      r  c                 C   sh  | 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ddd	d
g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   )rr  r  r   r   r   r   r  rG   r8   rH   r<   r   r   r  r3   r  r2   )rS  r   r(  rD  rP   rS   rb  r  r  r  r  rr  r  r   r  r)  )r(   r   r+  bbaxisr  Zaxxrd  Zaxisrbbspinesr   ZspinerrW  bbaxre  bbtbr    r    r!   color_boxes  sx    



     

     

     


     
r  c               	   C   sz  t ddi> tjddd\} }| j  t|  t| |\}}}}W 5 Q R X dddd	gd
dddgg}t|D ]*\}}tj	j
||  }	t|j|	jdd qpddddgddddgddddgddddgg}t|D ]*\}}tj	j
||  }	t|j|	jdd qddddg}tj	j
| }	t|j|	jdd ddddg}tj	j
| }	t|j|	jdd | | jj}
t|
| jdd d S )N_internal.classic_modeFr  rZ  rZ  r  r  g     ^@g8R@g     @g     @@g8`U@gX@g     J@g     @r3   )decimal     b@-]@     @F8&@     @r]  Nё\]@      @R!@]@g+e`U@gbhR@g{G@g{Gȏ@)r
   r#   r   rS  r   r  r  rD  r-  Bboxfrom_boundsr   ri  r;  ZtransformedtransFigurer)  )r(   r   r  r  r  r  rO  r  r  targetbbZaxbbr    r    r!   test_normal_axes  s6    







r  c            
   	   C   s*  t ddiB tjddd\} }| j  |jg g d t| |\}}}}W 5 Q R X t|D ]\}}|d ks\tq\ddd	d
gddd	dgddd
dgddd
dgg}t|D ]*\}}t	j
j||  }	t|j|	jdd qddd	dg}t	j
j| }	t|j|	jdd ddd	dg}t	j
j| }	t|j|	jdd d S )Nr  Fr  r  r  ZxticklabelsZyticklabelsr  r  r  r  r  r]  r  r  r  r_  r  r        ^@)r
   r#   r   rS  r   r   r  rD  r&   r-  r  r  r   ri  )
r(   r   r  r  r  r  r  r  rO  r  r    r    r!   test_nodecorator%  s*    




r  c            
   	   C   s  t ddiP tjddd\} }|jg g d |jjd | j  t	| |\}}}}W 5 Q R X dd	d
dgddd
dgddddgddddgg}t
||D ]&\}}tjj| }	t|j|	jdd qddd
dg}tjj| }	t|j|	jdd dd	d
dg}tjj| }	t|j|	jdd d S )Nr  Fr  r  r  r  )r  rd  r  g      8@r  gs~8&@r  r]  r  r  r  r  r_  r  r  g     @)r
   r#   r   r   r  rG   r	  rS  r   r  rw  r-  r  r  r   ri  )
r(   r   r  r  r  r  targetsrO  Zbbspiner  r    r    r!   test_displaced_spineC  s(    




r  c               
   C   s   ddddgddddggddddgd	d
ddggddddgddddggg} t dddg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 5 Q R X qTdS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    r  r  r  +e8&@r  r  gZӼ8[@88&@g r\a@rP  gqq\@g88b@r  r  rK  Zinoutr  Fr  r  r  rL  r   r3   r_  r  N)rD  r
   r#   r   r
  rS  r   r  r-  r  r  r   ri  )r  Zdnumdirsr(   r   r  r  r  r  r  r   r  r    r    r!   test_tickdirs^  s.    






  r  c            	   	   C   sl  t ddiT tjddd\} }| j  |jddd t| |\}}}}t| |\}}}}d	d
ddgddddgg}tdD ].}tj	j
||  }t||d  j|jdd q~tjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}d	dddgddddgg}tdD ]0}tj	j
||  }t||d  j|jdd q,W 5 Q R X d S )Nr  Fr  r  r  r   rK  )r  r  r  g88[@r  r  gCiq\a@r  r  r  r3   r_  r  r  r   r  gPUUUUUB@gVUUUUT@gz6P@r  goTT@)r
   r#   r   rS  r   r
  r  r   r-  r  r  r   ri  r?  )	r(   r   r  r  r  r  r  r  r  r    r    r!   test_minor_accountedfort  sB    


  



  r  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr  Fra  r  Ton)r   rK  r   r    r    r!   test_axis_bool_arguments  s    


r  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fksFt||f| ksZt||f| ksntd S )Nr   ro   r   r  r#   r   rK  rM  r&   r   r   r(   r   r]   r^   r+  r,  r  r    r    r!   test_axis_extent_arg  s    r  c                  C   sr   t  \} }d}d}d}d}|j||||d}t|||||fksFt||f| ksZt||f| ksntd S )Nr   ro   r   r  )r]   r^   r+  r,  r  r  r    r    r!   test_axis_extent_arg2  s    r  c                  C   sJ   t jdddgddddggdd\} }} |d	 dks6t|d
 dksFtd S )Nr2   r3   r   r   r   rZ  r  r  r   r}   )r#   ru  r&   r  r  r    r    r!   test_hist_auto_bins  s    &r  c            
   	   C   s   t d\} \}}dddg}|tjg }||\}}}tjdd ||\}}	}W 5 Q R X tj|| tj||	 d S )Nr3   r2   r   r  r  )r#   r   r_   r  ru  r  r   r   )
r(   r   r   re  Znan_datar  r  r  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s0t|d dks@td S )	Nro   r  r  T)r   r  r   r}   r2   )r#   ru  r_   r`   rp   r&   r  r    r    r!   test_hist_range_and_density  s     r  c            
      C   s|   t  \} }dddg}|j|||ddd}|jj\}}}|jD ]8}|D ]}|j|jksFtqF|D ]}	|	j|jks`tq`q>d S )Nr2   r3   r   r   )r,   r  r  r  r  )r#   r   r  r  r  r   r  r&   )
r(   r   r,   ZbarcontZ	data_lineZcaplinesZbarlinecolsr  ZcaplineZ
barlinecolr    r    r!   test_bar_errbar_zorder  s    

r  c                  C   sR   t  \} }|  |ddg | dks2t|dg | dksNtd S )Nr   r  r\  r}   r  )r#   r   r  r  r   r&   r'   r    r    r!   test_set_ticks_inverted  s    r  c                  C   sv   t jdd} |  }|ddgddg |jddddd	d
d |d | j| }|j	|j
 tdksrtd S )Nr  rL  rN  r  r   rO  logit)F]tE?g'^P?r2   r2  r  r   r  r   r   r4  r   r3   )r#   r   r   r   r   r
  r  Ztransform_bboxr;  r  rr  r   approxr&   )r(   r   r   r    r    r!   $test_aspect_nonlinear_adjustable_box  s      
r  c                  C   s   t jdd} | ddddg}|ddgddg |jddd	d
ddd |d |  | t	ddgkstt
| d
kst
d S )Nr  rL  r   r  rN  r  r   )r2   r   r  )gbeF?r  r2   r3  r  r   gS[:XL	@g'In?@)r#   r   r	  r   r   r
  rk  r   r   r  r&   r   r'   r    r    r!   (test_aspect_nonlinear_adjustable_datalim   s      
r  c                  C   s   t  \} }| }|ddg |d | dks<tt  \}}|d |ddgddg |jd	d
d | j	
  |j	
  | }| }| }t|j|j t|j|j d S )Nrq  iX  r2   r   r   r3   rZ  r  r  r2  r6  )r#   r   r   r   set_box_aspectZget_box_aspectr&   r
  r7  rS  r   r;  r   rG  )rG  r   ZaxtwinrH  r   bb1Zbbtre  r    r    r!   test_box_aspect  s     



r  c                  C   s   t  \} }|ddddg | j  |d t  \}}|d |j  |ddddg | j  |j  | }| }t|j|j d S )Nr   r  r   r   )	r#   r   r	  rS  r   r  r;  r   rG  )rG  r   rH  r   r  re  r    r    r!   test_box_aspect_custom_position*  s    





r  c                  C   sn   t jddtdddd\} }| j  | j }g }|jD ] }||}||j	|j
g q:t||d  d S )Nr3   r   r2   )r=  T)r  r  r   )r#   r   r  rS  r   r(  rE  r)  r  rr  r  r   )r(   rF  r+  r]  r   rd  r    r    r!   test_bbox_aspect_axes_initA  s    




r  c               	   C   s   t  \} }tjtdd |d W 5 Q R X tjtdd |d W 5 Q R X tjtdd |tj W 5 Q R X tjtdd |tj  W 5 Q R X d S )Nzmust be finite and positiver   r}   r   )r#   r   r   r   r3  r7  r_   r  r'   r    r    r!   test_set_aspect_negativeP  s    r  c                  C   s6   t dd\} }|dddg | j  |  d S r  )r#   r   r   rS  r   Zredraw_in_framer'   r    r    r!   test_redraw_in_frame\  s    
r  c                  C   sB   t  \} }| jdd k	s t|d | jdd ks>td S )N)r  r  F)r#   r   rS  Zinaxesr&   r   r'   r    r    r!   test_invisible_axes_eventsc  s    
r  c                  C   s<   dt jd< t  } | j }|D ]}|j dks tq d S NrF  zlines.markeredgecolor)r#   r   r  rP   get_major_ticksr  get_markeredgecolorr&   r   r  r  r    r    r!   "test_xtickcolor_is_not_markercolork  s
    

r  c                  C   s<   dt jd< t  } | j }|D ]}|j dks tq d S r  )r#   r   r  rS   r  r  r  r&   r  r    r    r!   "test_ytickcolor_is_not_markercolors  s
    

r  rK  r  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d krt| n|}	|d	|d
 |	| kst|j	  t
| d	 d S )Nr   rd  r   Zget_autoscaleZ_onr   Zlimget_r  )r  )r#   r   r_   rg   r   r4   r   r&   rS  r   r   )
rK  r  r(   r   r,   r-   rN  Zset_limZget_limZ	post_autor    r    r!   test_unautoscale{  s    

r  c                 C   s`   | j dddtjd gddg\}d| _|j ddtdtjd dtddd d S )Nr   r  r   r3   r2   r   e   )r   r   r_   r   get_pathZ_interpolation_stepsr   )r   r   ra  r    r    r!   )test_polar_interpolation_steps_variable_r  s    $
 r  c                  C   s6   t  \} }|dd | j  | dks2td S )Nr   g&.>)r   g	>)r#   r   r  rS  r   r   r&   r'   r    r    r!   test_autoscale_tiny_sticky  s    
r  c                  C   sX   dt jd< dt jd< t  } | j }|D ](}|j dks@t|j dks*tq*d S )Nr  zxtick.colorr   zxtick.labelcolor)	r#   r   r  rP   r  r  r  r&   rK  r  r    r    r!   &test_xtickcolor_is_not_xticklabelcolor  s    


r  c                  C   sX   dt jd< dt jd< t  } | j }|D ](}|j dks@t|j dks*tq*d S )Nr  zytick.colorr   zytick.labelcolor)	r#   r   r  rS   r  r  r  r&   rK  r  r    r    r!   &test_ytickcolor_is_not_yticklabelcolor  s    


r  r  c                 C   s   g | ]}|d k	r|qS r   r    )r   r  r    r    r!   r     s    r   c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ].\}}|	 D ]}|j
 ||ksPtqPq@d S )Nzxtick.labelsizezytick.labelsizer,   r-   )r   r   r#   r   rS  r   rw  rP   rS   r  rK  r{  Z_get_tick_label_sizer&   )r  r(   r   namerK  r  r    r    r!   test_relative_ticklabel_sizes  s    


r  c                  C   sd   t  } | jdddd\}}|ddddgddddg |dd | }t|d	d
gs`td S )Nr3   r2   r  rQ  r   r   r  r   r   r^  )	r#   r   r   r4   r  r   r_   r  r&   )r(   r   r   r   r    r    r!   test_multiplot_autoscale  s    r  c                  C   s\   t  } | d}| jddddg|d}| }| jdd |  | k sXtd S )Nr  r  r   rQ  r   rH   )	r#   r   r   r	  r;  r  rn  r  r&   )r(   r  r   Zinit_posr    r    r!   $test_sharing_does_not_link_positions  s    
r  c              	   C   s  t dddg}| d}|d jddgddg|dd	 tjd
d( |d jddgddg|dd	 W 5 Q R X |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   r2   r3   r}   rW  r(  r   r   ro   r  r   r  )r_   r  r   r   r   r   r7  r4   rw  ru  rg   r  )r   r   r   rF  r    r    r!   test_2dcolor_plot  s    
","&
"""r  c                 C   s~   t ddt j d}t |}|jddddd}|jD ]}||| q6| jddddd}|jD ]}|  ||| q`d S )Nr]  r3   r_  Tr?  )r_   rg   r   r   r   rE  r   r3  )r   r   r,   r-   rF  r   r    r    r!   test_shared_axes_clear  s    


r  c                  C   s   t jddddd\} }|jD ]}|ddgd q|d dddd	g |jD ]}| |d  ksNtqN|d dddd
g |jD ]}| |d  kstqd S )Nr3   r  r?  r   zo-r  rX  r2   r   r  )	r#   r   rE  r   r  r   r&   r  r   r  r    r    r!   test_shared_axes_retick  s    


r  r?   rH   rO   r<   c                 C   sD   t  }| }|jdd| d |jd |j  | ks@td S )Ntestr2   r>   r<   )r   r   r%   rS   Zset_label_positionrQ   rx  r&   )r?   r(   r   r    r    r!   test_ylabel_ha_with_position  s
    r  c                  C   s   t  } ddgddg }}| ||}| |}|d j|d |d fksNt|d  dksbt|d  dksvt|d j|d |d fkst|d  dkst|d  dkstd S )	Nr2   r3   r   r   rO   rG   r8   r#   r  r  	bar_labelrg  r&   rx  ry  r   r.  Zheightsr1  rv  r    r    r!    test_bar_label_location_vertical  s    
r  c                  C   s   t  } |   ddgddg }}| ||}| |}|d j|d |d fksVt|d  dksjt|d  dks~t|d j|d |d fkst|d  dkst|d  dkstd S )	Nr2   r3   r   r  r   rO   r8   rG   )	r#   r  r  r  r  rg  r&   rx  ry  r  r    r    r!   *test_bar_label_location_vertical_yinverted  s    
r  c                  C   s   t  } ddgddg }}| ||}| |}|d j|d |d fksNt|d  dksbt|d  dksvt|d j|d |d fkst|d  dkst|d  dkstd S 	Nr2   r3   r   r  r   rH   rO   r<   r#   r  r#  r  rg  r&   rx  ry  r   r/  rH  r1  rv  r    r    r!   "test_bar_label_location_horizontal)  s    
r  c                  C   s   t  } |   ddgddg }}| ||}| |}|d j|d |d fksVt|d  dksjt|d  dks~t|d j|d |d fkst|d  dkst|d  dkstd S r  )	r#   r  r  r#  r  rg  r&   rx  ry  r  r    r    r!   ,test_bar_label_location_horizontal_yinverted6  s    
r  c                  C   s   t  } |   ddgddg }}| ||}| |}|d j|d |d fksVt|d  dksjt|d  dks~t|d j|d |d fkst|d  dkst|d  dkstd S 	Nr2   r3   r   r  r   r<   rO   rH   )	r#   r  r  r#  r  rg  r&   rx  ry  r  r    r    r!   ,test_bar_label_location_horizontal_xinvertedD  s    
r  c                  C   s   t  } |   |   ddgddg }}| ||}| |}|d j|d |d fks^t|d  dksrt|d 	 dkst|d j|d |d fkst|d  dkst|d 	 dkstd S r  )
r#   r  r  r  r#  r  rg  r&   rx  ry  r  r    r    r!   -test_bar_label_location_horizontal_xyinvertedR  s    
r  c                  C   s   t  } ddgddg }}| ||}| j|dd}|d jdksFt|d  dksZt|d  dksnt|d jdkst|d  dkst|d  dkstd S )	Nr2   r3   r   r  rO   Z
label_typer   r  r  r  r    r    r!   test_bar_label_location_centera  s    r  z%test_centered_bar_label_nonlinear.svgc                  C   sT   t  \} }|dddgdddg}|d |dd  |j|d	d
 |  d S )Nr6   r  r   r  i  iX  r   r2   rO   r   )r#   r   r#  r]  rx  r  r|  )r  r   rn  r    r    r!   !test_centered_bar_label_nonlinearn  s    
r  c                  C   sp   t  \} }d}tdddgdddgD ]0\}}|jd|||d	}|j|d
d ||7 }q&|d d |   d S )Nr   r   r  r6   ro   r  r`  r  )r*   rH   rO   r   )r#   r   rw  r#  r  rx  r'  )r(   r   lastr*   r  rn  r    r    r!   +test_centered_bar_label_label_beyond_limitsx  s    
r  c                  C   s   t  } ddgddg }}| j||dd}| |}|d j|d |d d fksVt|d  dksjt|d  dks~t|d j|d |d d fkst|d  dkst|d  d	kstd S )
Nr2   r3   r   r  r  r   rO   rG   r8   r  r  r    r    r!   !test_bar_label_location_errorbars  s    
""r  r   rv  z{:.2f}c                 C   sV   t  }|ddgddg}|j|| d}|d  dks>t|d  dksRtd S )	Nr2   r3   r   r  r-  r   z3.00z-4.00r#   r  r  r  rL  r&   )r   r   r1  rv  r    r    r!   test_bar_label_fmt  s
    r  c               	   C   sH   t  } | ddgddg}tjtdd | j|dd}W 5 Q R X d S )	Nr2   r3   r   r  zstr or callabler   ro   r-  )r#   r  r  r   r   r   r  )r   r1  r  r    r    r!   test_bar_label_fmt_error  s    r	  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dksBt|d  dksVtd S )	Nr2   r3   r   r  rj  rk  r  r   r  )r   r1  rv  r    r    r!   test_bar_label_labels  s
    r
  c                  C   sl   t  } | ddgtjdg}| |}dd |D ddgksBt|d jd	ksTt|d  d
kshtd S )Nr3   r   r2   c                 S   s   g | ]}|  qS r    r  r   ra  r    r    r!   r     s     z,test_bar_label_nan_ydata.<locals>.<listcomp>r   1r   r  rG   )	r#   r  r  r_   r  r  r&   rg  ry  r   rm  rv  r    r    r!   test_bar_label_nan_ydata  s    
r  c                  C   st   t  } |   | ddgtjdg}| |}dd |D ddgksJt|d jd	ks\t|d 	 d
ksptd S )Nr3   r   r2   c                 S   s   g | ]}|  qS r    r  r  r    r    r!   r     s     z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>r   r  r   r  rG   )
r#   r  r  r  r_   r  r  r&   rg  ry  r  r    r    r!   !test_bar_label_nan_ydata_inverted  s    
r  c                  C   sJ  t  \} }|jdddgtjddgdddgd}||}dd	 |D d
ddgksVtt| dsjtt  \} }|jdddgdddgdtjdgd}||}dd	 |D dddgkstt| dstt  \} }|jdddgtjddgtjtjdgd}||}dd	 |D d
ddgks0tt| dsFtd S )Nr2   r3   r   r   rN  r  r  c                 S   s   g | ]}|  qS r    r  r  r    r    r!   r     s     z&test_nan_barlabels.<locals>.<listcomp>r   r  2)r]  r  r   c                 S   s   g | ]}|  qS r    r  r  r    r    r!   r     s     r  )rX  r  c                 S   s   g | ]}|  qS r    r  r  r    r    r!   r     s     )	r#   r   r  r_   r  r  r&   r  r   )r(   r   rm  rv  r    r    r!   test_nan_barlabels  s    $
$
(
r  c               	   C   sr   t  \} }|tjd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   r}   r  r  rP  r   r9  gffffff?r   rt  r3   gr0  r  )r#   r   r  r  ZWedger_   r   r   r   Zassert_array_almost_equal_nulpr  ZdataLimri  )r(   r   Zbotr    r    r!   test_patch_bounds  s      r  c                	   C   s8   t jtdd  tjdgdgddddd W 5 Q R X d S )	Nz!You passed a edgecolor/edgecolorsr   r   r  r  r  r  )rx   rm  r   r   )r   r7  r  r#   r4   r    r    r    r!    test_warn_ignored_scatter_kwargs  s    r  c               	      s(  t  \}   fddtdD } tdtd} td} t	
ddd} ddd}t j|gkstt j|gkstt j|kstt j|gkst jrtt j|gkst jd |d kst jd	 |d	 ksttjtd
d  jt|d   W 5 Q R X  jdddg |dksPtdddg j d|ksnt jd |dkstd j d|kst|   jrt|   jrt|   jrt jrt|   jrt jD ]}|  q t jdks$td S )Nc              	      s&   g | ]}  t||d  d qS )r   r   )r   r_   rg   r&  r  r    r!   r     s     z(test_artist_sublists.<locals>.<listcomp>rZ  r   )r   r   r  r   r  r}   zout of ranger   r2   r3   r   r$  )r2   r3   r   )r2   r3   r   )r2   r3   r   )r2   r3   r   )r#   r   r   r4   r_   rg   r   r  r  r  r  rJ  r  r*  r&   Zimagesr  r   Ztablesr|  r   r   
IndexErrorr  r  )r(   r  r  rU  r   rJ  r  r    r  r!   test_artist_sublists  s@    

r  c                  C   sh   t d} t d}t \}}|| |}t|dks<tt \}}|g g }t|dksdtd S )Nro   )ro   r   r   r2   )r_   r   r#   r   r   r  r&   )r,   r-   r  r   rn  r    r    r!   test_empty_line_plots   s    

r  z
fmt, match))r  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))Zrkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\)stringc              	   C   sV   t  \}}|d k	r |dd}tjtd| d d |jd| |d W 5 Q R X d S )Nnotzneither a data key norz\Az\Zr   r  r  )r#   r   replacer   r   r3  r   )r   r!  re  r(   r   r    r    r!   test_plot_format_errors   s
    	r  c                  C   s~  t  \} }|dddgd}|d  dks2t|d  dksFtt  \} }|dddgd}|d  dksxtt  \} }|ddgddgdd}| j  |d  dkst| d 	 dkstt  \} }|ddgddgdd}| j  |d  dkst| d 	 dks0tt  \} }|dddgd	}|d  d
ksdt|d  dksztd S )Nr2   r3   r   z1.0r   )r   r   r   r   r  r  Zk3r   rM  )
r#   r   r   r  r&   r  rS  r   r  rL  r  r    r    r!   test_plot_format.   s*    

r  c                  C   s   t  \} }|jddddid | }| j  | d  dksJt|	 d  dksbtt  \} }|jdddddid | }| j  | d  dkst|
 d  dkst|	 d  dkstd S )Nr   r  r  r3   r  r   r6   )r#   r   r   rB   rS  r   Z	get_textsrL  r&   r  r  )r(   r   Zlegr    r    r!   test_automatic_legendF   s    

r  c                	   C   s  t jtdd tjdddgdd W 5 Q R X t jtdd6 tjdddgdddgdddgdddgd	d
gd W 5 Q R X t jtdd tdddgdg W 5 Q R X t jtdd ttd W 5 Q R X t jtdd tjddddddid W 5 Q R X d S )Nz"plot\(\) got an unexpected keywordr   r2   r3   r   r  zplot\(\) with multiple groupsr   r  r  r  zx and y must have same firstzx and y can be no greater than)r3   r3   r3   zUsing arbitrary long args withr   r  r6   r  r  )r   r   r   r#   r   r3  r_   r   r    r    r    r!   test_plot_errorsW   s    :r  c               	   C   s   t   } t| jtdtdtddt| jddgddggt| jddgddggt| jddgddggt| j	ddgddggfD ](}d}||dj
}|j|jf|kstqd S )Nr   rW  r   r2   r3   )r  r  )clim)r#   r   r   r   r4   r   r   rk  rZ  r  r2  r  r  r&   )r   Zplot_methodr  r2  r    r    r!   	test_climd   s    r  c                  C   s   ddgddgddgddgg} t jjt jjt jjt jjg}t | |}t \}}|t	| |
  | d dks|td S )Nr}   r   r2   rX  )mpathr   r   ZCURVE3Z	CLOSEPOLYr#   r   r  r  r   r  r   r&   )r<  codesr   r(   r   r    r    r!   test_bezier_autoscaler   s    r"  c                  C   s  t 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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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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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/d0gd1d0gd1d2gd3d2gd3d4gd5d4gd5d2gd6d2gd6d4gd.d4gd.d7gd8d7gd8d0gd9d0gd9d: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dAd@gdAd gdBd gdBdgdCdgdCdgdDdgdDdEgdFdEgdFdGgdHdGgdHdgdIdgdIdgdJdgdJdgdKdgdKdgdLdgdLdgdMdgdMdgdNdgdNdgdOdgdOdgdPdgdPdgdQdgdQdgdRdgdRdgdSdgdSdgdTdgdTdgdUdgdUdgdVdgdVdgdWdgdWdgdXdgdXdgg} t | d d dYf }t | d d dZf }t | d d dYf }t | d d dZf }t| }t \}}|t	
| |  | dY |kst| dZ |kst| dY |kst| dZ |ks td S )[Ngr]  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r_  gffffffgQgףp=
r  g(\g{Gz?gHzGg      r  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr   g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?rX  r   g(\տg{Gz?g
ףp=
ǿr  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?ri  g(\?r  gQ?gGz?g=
ףp=?gffffff @r  gGz@r0  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r2   )r_   r  rt  rw  r   r   r#   r   r  r  r   r  r   r&   r   )r<  ZminxZminyZmaxxZmaxyr   r(   r   r    r    r!   test_small_autoscale   s$                                                                                                         !
r$  c                  C   sb   t  \} }|td tdD ]8}| |  | ksBt|	 |  | ks$tq$d S )Nro   )
r#   r   r   r_   rg   r   r  rL  r&   r  )r(   r   r  r    r    r!   test_get_xticklabel   s
    r%  c                  C   s   t jdtd} t dddg}t dgd }t j| d< t \}}|j| ||d}|j| ||d	}||fD ]d}|^}}	t 	|j
  stt 	| st|	D ]*}
t 	|
j
 stt 	|
 stqqld S )
Nr   rP  r   r   r   r#  r   r  r  )r_   rg   rS  r  r  r#   r   r  r#  isfiniterg  anyr&   Z	get_widthr  )ZbarxZ
barheightsZ	barstartsr(   r   rm  ZhbarsZbar_setZnanfulrestr  r    r    r!   test_bar_leading_nan   s    
r)  c                 C   sh   t jd |  }| }|tjgtjg |dgdg |dgdg  |dgdg d S )Nr   r2   )r   r   r   r   r  r_   r  r  r@  r    r    r!   test_bar_all_nan   s    r*  zextent_units.pngc               	   C   s  t dd\} }tdd}tdd}dd tdD }|d d	 |d j|d
dd||gtjd d}|d d |d j|d
||ddgtjd d}|d j	
td |d j|d
||||gtjd d}|d j	
td |d jdd |d j|d
tjd d}|||||g |d j	
td |d jdd tjtdd |jdd||gdd W 5 Q R X d S )Nr3   z
2020-01-01r  z
2020-01-11c                    s"   g | ]  fd dt dD qS )c                    s   g | ]}|  qS r    r    r&  rY  r    r!   r      s     z0test_extent_units.<locals>.<listcomp>.<listcomp>ro   )r   )r   r    r+  r!   r      s     z%test_extent_units.<locals>.<listcomp>ro   r  zDate extents on y axisrw   r2   rU  Zplasma)ry   r  r{   r  z(Date extents on x axis (Day of Jan 2020)z%dr\  zDay of Jan 2020)r  r  )ry   r{   z set_extent\(\) got an unexpectedr   rq  F)r  )r#   r   r_   r  r   r/   r   r   r  rP   r   r  ZDateFormatterr   Z
set_extentr   r   r   )r  rF  Z
date_firstZ	date_lastZarrrU  r    r    r!   test_extent_units   s@    

 r,  c                  C   s   t  \} }|g g g g }|dgg}||g D ] }|j|ksFt|j| ks4tq4|  ||g D ] }|jd kszt|jd kshtqhd S r  )r#   r   r   r   r  r&   r   r3  )r(   r   r  r  Zartr    r    r!   %test_cla_clears_children_axes_and_fig!  s    r-  c               	   C   sF   dd } d}t jt|d" d}tjjj|d i d| d W 5 Q R X d S )Nc                   S   s   dS r&  r    r    r    r    r!   r'  !  s    z5test_scatter_color_repr_error.<locals>.get_next_colorzZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'r   zred
r3   r>  )r   r   r3  r   r  r   r-  )r'  msgr6   r    r    r!   test_scatter_color_repr_error!  s        r/  c               	   C   sR   t  \} }|d |jtdddd\}t }| j|dd W 5 Q R X d S )Nr   Tr2   )r  r  r~  )r  )r#   r   Zset_rasterization_zorderr   r   r  r  r  )r(   r   r  r  r    r    r!   &test_zorder_and_explicit_rasterization&!  s
    

r0  c                  C   sf   dt jd< dt jd< dt jd< t } | jj dks:t| jj dksNt| jj	 dksbtd S )Nr  zaxes.labelcolorr  zaxes.labelsizer  zaxes.labelweight)
r   r   r#   r  rP   r*   r  r&   Zget_fontsizeZget_fontweightr  r    r    r!   test_rc_axes_label_formatting.!  s    


r1  )Nr3   (u  r+  r*  r   r  r  r   	functoolsr   r  r  	itertoolsr   platformr  r   Zdateutil.tzrV  Znumpyr_   r   r	   r   rM   r   r
   Zmatplotlib._apir   Zmatplotlib.colorsr  r4  Zmatplotlib.datesr^  r  Zmatplotlib.figurer   Zmatplotlib.axesr   Zmatplotlib.font_managerZfont_managerZmfont_managerZmatplotlib.markersr  r  Zmatplotlib.patchesr   r  Zmatplotlib.pathr   r   Zmatplotlib.projections.geor   Zmatplotlib.projections.polarr   Zmatplotlib.pyplotZpyplotr#   Zmatplotlib.textrJ  r  Zmatplotlib.tickerZtickerr   Zmatplotlib.transformsZ
transformsr-  Zmpl_toolkits.axisartistZ
axisartistr|  Znumpy.testingr   r   r   Zmatplotlib.testing.decoratorsr   r   r   r"   r)   r1   rF   rL   rN   rT   rm   rt   r   r   r   r   r   r   r   r   r5  r6  r  r  r  r  r:  r>  rA  rH  r   r7  rO  rV  rY  r\  ro  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.  r6  r=  r  rg   r@  rC  rK  rR  rY  r^  re  rl  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r   r$  r(  r)  r3  r4  r5  r<  rF  rK  rV  r`  rc  rf  ro  rp  rs  rv  r{  r~  r  r  r  r  r  r  r  r  r  r  ZPatchr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8  r9  r  r;  r  r=  r?  rF  rI  rN  rP  rQ  rW  r]  rg  ri  rm  ro  rv  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  r  r  r  r  r  r  r  r  r   r#  r&  r(  r*  r,  r1  r5  r7  r9  r:  r<  rG  rQ  rU  rY  rZ  r[  r\  r]  r^  rd  re  rg  rh  rl  rm  ro  rp  rw  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  r  r  r  r  r  r  r  r(  r)  r  ri   r  r  r/  r0  r9  r:  r>  rA  r   r3  rM  rD  rE  rH  rJ  rM  r^  rc  rh  rj  rk  rm  ro  rp  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  Z	AxesImager   ZPcolorImager`   ZQuadMeshr   rp   r  r  r  r  r  r  r  r  r  r  r  r  r  Zfixturer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r  r  r  r"  r%  r,  r-  r1  r3  r4  r7  r<  r>  r?  rD  rE  rH  rK  rR  rT  rU  rV  rX  rY  rZ  r[  r\  r]  r_  r`  rf  rt  rw  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  Zfont_scalingsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r"  r$  r%  r)  r*  r,  r-  r/  r0  r1  r    r    r    r!   <module>   sh	  	














'
*
43


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

 













 



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

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

	
	
	
	
	
	


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

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

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