a
    
dX                    @   s&3  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* ZWeIg d+d,d- ZXd.d/ ZYd0d1 ZZeId2gd3d4 Z[d5d6 Z\ej]^d7d8eJdgd9d:d;d< Z_eId=gd>d? Z`d@dA ZadBdC ZbdDdE ZcdFdG ZdeJdgddHdI ZeeIdJgdKdLdMdN ZfejghdOdPdQ ZiejghdOdRdS ZjejghdOdTdU ZkeJdgddVdW ZleIdXgdKdLdYdZ ZmeId[gdKdLd\d] Znd^d_ Zod`da Zpdbdc Zqddde ZreIdfgdgdhididjdk Zsdldm ZteJdgddndo ZueIdpdpgdqdr ZveIdsgdtdudvdw ZweJdgddxdy Zxdzd{ ZyeId|gdgdKdtd}d~d ZzeIdgdd Z{eIdgdddd Z|eIddgdKdLdd Z}eIddgdKdLdd Z~dd ZeIdgdtdudd ZeIdgdtdKddd Zdd Zdd ZeIdgdd ZejghdOej]^dg deJdgddd ZeIddgdKdtddd ZeIdgdte dv rNdnd ddd Zdd ZeIdgdKdLdd Zej]j^dedddfedddeddfeddddedfgg dddd Zej]j^dedddfedddeddfeddddedfgg dddd ZeIdgdKdLdd ZeIdgdtdKdddÄ ZeIdgdKdLddƄ ZeIdgddɄ ZeIdgdKdLdd̄ Zdd΄ ZeIdgdKdLddф ZeIdgdgdddՄ ZeIdgddgdKd؍ddڄ Zej]^dddgeJdgddd߄ ZeIdgdtdudd ZeIdgdtdudd Zdd Zdd ZeJdgddd ZeJdgddd Zdd Zdd Zej]^dddKgeJdgddd ZeIdgdd ZeIdgdKdOddd ZeIdgdKdLdd Zdd  ZeIdgdKdLdd ZeIdgdKdddd ZeId	gdKd
ddd ZeIdgdKdLdd ZeIdgdKdLdd ZeIdgdOdKddd ZeIdgdKdLdd ZeIdgdKdLdd ZeIddgdd Zdd  Zd!d" ZeId#gd$d% ZeId&gd'd( ZeJdgdd)d* ZeJdgdd+d, ZeJdgdd-d. ZeJdgdd/d0 Zd1d2 Zd3d4 ZeId5gd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZejghdOeJ dDdE Zej]^dFdGdHdGdIgdGfg dJg dKg dLg dLdIfg dJg dKg dMg dMdIfg dJg dKdNg dOdNfgdPdQ ZdRdS ZdTdU ZeIdVgdKdLdWdX ZeJdgddYdZ ZŐd[d\ ZeId]gdKdLd^d_ Zǐd`da ZeIdbgdKdLdcdd ZeIdegdKdLdfdg ZeIdhgdidj Zːdkdl Z̐dmdn Zej]j^doejjΐdpdq drdq gg dsddtdu Zej]^dvg dHfg gdHfg g gdfgdwdx Zej]^dydzej,jjfd{ejjjfd|e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dKdLdd ZeIdgdd ZeJdgddd Zdd ZeIdgdKdtddd ZeIdgdte dv rdnd ddd ZeIddgdKdtddd ZeIdgdKdtddd Zdd ZG dd dZdsddddZeddZej]^de edeg dgdfeddedeg dgdfedddedeg dgdfeddedeg dgdfeddgdeddgeg dg dgdfgdd Z[[ej]^de dfed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d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dKdLdՐdք Zi dאdq i fdؐdلZeIdgdgdidOd܍dݐdބ ZeIdgdgdidOd܍dd ZeIdgdgdidOd܍dd ZeIdgdgdidOd܍dd ZeIdgdKdgdidOdddd ZeIdgdgdidOdddd ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd Z eIdgdKdgdidOddd ZeIdgdKdgdidOdd d ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd ZeIdgdKdgdidOdd	d
 ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd ZeIdgdKdgdidOddd Z	eIdgdKdgdidOddd Z
eIdgdKdgdidOddd ZeIdgdKdgdidOddd ZeId gdKdgdidOdd!d" ZeId#gdKdgdidOdd$d% Zd&d' Zd(d) ZeId*gdgdidOd܍d+d, ZeId-gdgdidOd܍d.d/ Zd0d1 ZeId2d2gd3dOd4d5d6 ZeId7gdgdidOd܍d8d9 ZeId:gdKdOdd;d< ZeId=gdKdgdidOdd>d? ZeId@dAgdOdudBdC ZdDdE ZeIdFgdgdidKdHdOdGdHdI ZeIdJgdKdgdidOddKdL ZeIdMgdKdgdidOddNdO ZdPdQ ZdRdS ZdTdU ZdVdW Z eIdXgdKdgdidOddYdZ Z!eId[d[gd\d] Z"eId^gd_d` Z#eIdagdbdc Z$eIddgdedf Z%eIdggdhdi Z&eI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/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 Z8eIg ddd Z9eIdgdgdKd؍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]^dg deg ddHgdd ZEeJdgddd ZFeIddgdd ZGeIdgdd ZHeIdgdKdLdd ZIeIdgddÄ ZJeIdgdŐdƄ ZKej]j^ddKdgdȐdgdeIdgdtdKddːd̄ ZLd͐d΄ ZMdϐdЄ ZNdѐd҄ ZOej]j^ddKdgdȐdgdeIdgdtdKddԐdՄ ZPeIdgdאd؄ ZQeIdgdڐdۄ ZReIdgdݐdބ ZSeIdgdKdL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dgdd Z]dd Z^dd Z_dd Z`eIdgdKdLdd ZaeIdgdKdLdd  ZbeIdgdKdLdd Zcdd Zddd ZeeIdgdKdLd	d ZfeId
d
gdKdLdd ZgeIdgdKdLdd Zhej]^dg ddd Zidd ZjeIdgdKdLdd Zkdd Zlej]^dg gg d dHggd dHgg ggej]^dg ddd ZmeJdgdd d! ZneId"gdKdLd#d$ ZoeId%gd&d' ZpeId(gdKdLd)d* ZqeId+d,ge d-krld nddd.d/ ZreJ d0d1 ZseJ d2d3 ZteJ d4d5 ZueJ d6d7 Zvd8d9 ZweIg d:dgdd;d< Zxd=d> ZyeIg d?dgdd@dA ZzdBdC Z{ej]^ddHddej|dDgej}g dEdFgeJdgddGdH Z~eIdIdIgdKdLdJdK ZeIdLgdKdLdMdN ZdOdP ZeIg dQdKdRdOdSdTdU ZeIg dVdKdRdOdSdWdX ZeIg dYdKdRdOdSdZd[ Zd\d] ZeJdgdd^d_ Zd`da ZeIg dbdKdcdddde ZeIg dfdKdLdgdh Zdidj ZeJdgddkdl ZeIdmgdKdLdndo ZeIdpdpgdKdLdqdr Zej]^dsg dtdudv Zdwdx Zdydz ZeJdgdd{d| Zd}d~ Zej]^de7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dHdgfi dfee ddidffdd Zdd Zej]^d7d8dd Zdd Zdd ZeIdgdd ZeIg ddgdtddd ZeIdgdtdudd ZeIdgdtdudd ZeIdgdtdudd ZeIdgdtdudd ZeIdgdtdu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dgdgdididِdڄ Zdېd܄ Zdݐdބ Zej]^dedi dfedi dfee dGdidfee ddidfeddHdHd8dfeddGdHidfedi dffdd Zdd Zdd Zdd Zdd Zdd ZÐdd ZĐdd ZŐdd ZeIdgdgdididd ZeIdgdgdididd ZȐdd  Zɐdd Zʐdd Zːdd Zej]^ddej͐jfd	ej͐jfeϐdDeϐdFfej͐jfg d
g dfej͐jfejѐѐdejѐѐdfejjfgej]^dedӐdejѐddFdgdd ZՐdd Z֐dd Zאdd Zؐdd Zej]^deك dd ZeIdgdKdLdd Zېdd  Zܐd!d" Zej]^d#dKdgd$d% ZeId&gdKddd'd( ZeId)gdKdtdd*d+ ZejghdOd,d- ZejdGdgd.d/d0 Zejg d1d.d2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; ZejghdOd<d= ZejghdOd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] ZeId^gd_dd`da ZeIdbgdcdd ZeIdegd_ddfdg ZeIdhgdKdLdidj Zdkdl Zdmdn Zdodp Z dqdr Zej]j^dsg dtg duddvdw Zdxdy Zdzd{ Zd|d} Zd~d Zdd Zdd Zdd Z	dd Z
ejghdO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dKdtddd Zdd Zdd Zej]^dddKgej]^dddKgdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#eIdgdtdKdddÄ Z$eIdgdtdudŐdƄ Z%dǐdȄ Z&dɐdʄ Z'dːd̄ Z(d͐d΄ Z)dϐdЄ Z*eIdgdKdtd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d ZAd d ZBdd ZCej]^dd8ej]^dddd ZDeJdgdd	d
 ZEejghdOdd ZFdd ZGdd ZHej]^ddd e'jID g d ejghdOdd ZJdd ZKdd ZLeJdgddd ZMeJdgddd ZNdd  ZOej]^d!g d"d#d$ ZPd%d& ZQd'd( ZRd)d* ZSd+d, ZTd-d. ZUd/d0 ZVd1d2 ZWeId3gd4d5 ZXd6d7 ZYd8d9 ZZej]^d:d;d<d<j[gd=d> Z\d?d@ Z]dAdB Z^dCdD Z_dEdF Z`dGdH ZadIdJ ZbejghdOdKdL ZcdMdN ZddOdP Zeej]^dQdRej]^dddSedigdTdU ZfdVdW ZgdXdY ZhdZd[ Zid\d] Zjd^d_ Zkd`da Zldbdc Zmddde ZneJdgddfdg ZoeIdhgdtdudidj Zpdkdl Zqdmdn Zrdodp ZsejghdOdqdr ZtdS (t      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    c/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/matplotlib/tests/test_axes.pytest_invisible_axes1   s    r"   c                  C   sD   t  \} }|d |d | dks0J | dks@J d S )Nzx labelzy label)pltr   
set_xlabel
set_ylabelZ
get_xlabelZ
get_ylabelfigr   r    r    r!   test_get_labels7   s
    

r(   c                  C   sH   t  \} }|d |d |d |d t|dksDJ 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!   	test_repr?   s    



r0   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   r3   legendr%   r$   colorbarr-   r   r   r   Zsccbarr    r    r!   test_label_loc_verticalJ   s    

rE   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 )Nr1   r2   r3   r4   r6   bottomr8   r:   left
horizontalorientationr<   r   r=   r?   r@   rC   r    r    r!   test_label_loc_horizontal]   s    rK   c                 C   s   t dddj |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W d    n1 s0    Y  | }|jddgddgddgdd}|  |jdddd |jd	ddd |j|d
d}|jdddd d S )Nr;   r7   )zxaxis.labellocationzyaxis.labellocationr1   r2   r3   r4   r6   r:   rH   rI   r<   r=   r?   )	
matplotlibr
   r   r3   rA   r%   r$   rB   r-   rC   r    r    r!   test_label_loc_rcp   s"    


(rM   c                  C   s  t  \} }|jddd |jddd |j  dks>J |jddd |j  dksbJ |jddd |j  dksJ |jddd |jddd |j  dksJ |jddd |j  dksJ |jddd |j  dksJ d S )Nz
Test labelrG   r8   centerr;   r7   rF   )r#   r   r$   xaxis	get_labelget_horizontalalignmentr%   yaxisr&   r    r    r!   test_label_shift   s    rS   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   r1   maxlagsfullmoder,   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r   r   ZNxr+   rW   ax_testax_refZnorm_auto_corrZlagsr    r    r!   
test_acorr   s    rl   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 )
NrT   3   
   r1   rV   rX   rY   r   r[   )r^   r_   r`   randrb   ceilastypeint64r   rc   rd   re   rf   rg   rh   ri   r    r    r!   test_acorr_integers   s    rs   c                 C   s  t jd t d}d|d d< t j| |d}| d}|d | |d j|dd	d
 |d}|d j|ddd |d j	
  |d jg t |d d d dR ddi |d jd|d  |d  d d d d |D ]}|j	d qd S )NrT   i   r   rU   )    rt   r2   r1   .lower)markeroriginZgray_rnearest)cmapinterpolation
markersizern   )aspectxlimylimboth)r^   r_   r`   onesshufflereshaper   spyimshowrO   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   sl   t  \} }ddidddfD ]H}tt* |jtddfi | W d    q1 s\0    Y  qd S )Nr{   ry   osolid)rw   	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mpl20rt   r   )mplstyleuser^   r_   ro   add_subplotZmatshowr   rO   r   r   )r   r   r   rk   r    r    r!   test_matshow   s    

r   )Zformatter_ticker_001Zformatter_ticker_002Zformatter_ticker_003Zformatter_ticker_004Zformatter_ticker_005c                     sV  dd l m  m     dtjd<  fddtdD }  fddtdD } fddtdD }t 	 }|
d	 t 	 }|
d	 |j| |d
dd t 	 }|
d	 |j| |d
dd |
d t 	 }|j| |d
dd |j| |ddd |
d t 	 }|j| |d
dd |j| |ddd |
d |  d S )Nr      zlines.markeredgewidthc                    s   g | ]}| j  qS r    )sec.0r+   unitsr    r!   
<listcomp>       z)test_formatter_ticker.<locals>.<listcomp>rn   c                    s   g | ]}d | d  j  qS )      ?      ?kmr   r,   r   r    r!   r      r   c                    s   g | ]}d | d  j  qS )      ?      ?r   r   r   r    r!   r      r   zx-label 001bluer   )colorZxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrL   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 J |jjs,J |jjs8J |jjsDJ |j|  |jjr\J |jjshJ |jjstJ |jjsJ t	| }t
|j tj	sJ |j j|jksJ d S )Nc                 S   s   dS )N r    r+   posr    r    r!   	_formfunc  s    z4test_funcformatter_auto_formatter.<locals>._formfunc)r#   r   r   rO   isDefault_majfmtisDefault_minfmtrR   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r   Ztarg_funcformatterr    r    r!   !test_funcformatter_auto_formatter  s     

r   c                  C   s   d} t   }|jjsJ |jjs(J |jjs4J |jjs@J |j|  |jjsXJ |jjsdJ |jjspJ |jjr|J t	| }t
|j tj	sJ |j j|jksJ d S )Nz	{x}_{pos})r#   r   r   rO   r   r   rR   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g d}t }|ddd}|dd	gddg |j	
| |j	| |j	td
 |j	tg d |j
t  |jtg d |jtd |jtg d |  |  d S )Nr   r1      T)numZendpoint       @皙?皙?333333?r   d   z%08.2lf)ZtricksZmindZjedi)   #   7   K   z%05.2lf)r5   3pr   )r^   linspacesinpir#   ZFixedLocatorr   r   r   rR   set_major_locatorZset_minor_locatorr   ZFormatStrFormatterr   ZFixedFormatterrO   ZLinearLocatortwinytwinx)valsZlocsZmajlZminlr'   ax1r    r    r!   "test_twin_axis_locators_formattersL  s"    
r   c                  C   s   t  \} }| }| }t   |j r2J |j r@J |  |  |j r^J |j rlJ |j	 szJ |j sJ |j rJ |j	 rJ |j sJ |j sJ |j	 sJ d S N)
r#   r   r   r   drawrO   get_visiblepatchclarR   )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_scaler1   r   r2   logr1   r2   r      nonezaxes.edgecoloraxes.linewidthZ
projecting)	transform	facecolor	edgecolor	linewidthZcapstyle)r^   rf   r   getattrr   rL   pathPath
add_artistpatches	PathPatchMOVETOZLINETO	transAxesr   r   r   )r   r   r   Z	twin_funcZ	set_scaler+   rj   ax_twinirk   r   r    r    r!   test_twin_logscale|  sD    
r  ztwin_autoscale.pngc                  C   s   t g d} d|  }t g d}d| }t }|jdddd}|j| |dd	d
 t|}|j||ddd |dd |dd d S )Nr   r   r1   r   r   r1   r2   r2   r   r   r1   r1   F)Zautoscalex_onZautoscaley_onr   rn   r   lwr--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 | }| s2J | r>J | }|d | }| sdJ | rpJ d S r   )r#   r   r   Zset_autoscalex_onget_autoscalex_onr   Zset_autoscaley_onget_autoscaley_on)r'   r   Zax_x_onZax_x_offZax_y_onZax_y_offr    r    r!   #test_twin_inherit_autoscale_setting  s    

r  c                  C   s  t d} |  }| rJ | r*J tjd}|| | rLJ | sXJ |  t	ddtj
 d}||t| | rJ | rJ |  || t   | rJ | sJ | jD ]}|  qt d}t jd|d}|jd | sJ ||t| |  | r>J |  || ||t| |  | sxJ t |  d S )	Nr   )r   r   r2   r         shareyT)r#   r   gcaZxaxis_invertedyaxis_invertedr^   r_   r   r   r   r   r   cos	autoscaleaxesremovesubplotrR   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 d    n1 s80    Y  t jtdd$ G  fdddt}W d    n1 sz0    Y  G dd d| }G  fd	d
d
t}G  fdddt}G dd d|}t }| |||||fD ]4}d ||g d} sJ d |   sJ 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(  r0  r!   ClaSuperAxes  s   r3  c                   @   s   e Zd ZdS )z+test_subclass_clear_cla.<locals>.SubClaAxesNr*  r+  r,  r    r    r    r!   
SubClaAxes  s   r5  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,  r6  r    r(  r    r!   	ClearAxes  s   r7  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.  r6  r&  r/  r    r!   r6    s    z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear)r*  r+  r,  r6  r1  r    r(  r2  r!   ClearSuperAxes  s   r8  c                   @   s   e Zd ZdS )z-test_subclass_clear_cla.<locals>.SubClearAxesNr4  r    r    r    r!   SubClearAxes!  s   r9  Fr  )r   warnsPendingDeprecationWarningr   r   r   )	r-  r3  r5  r7  r8  r9  r'   
axes_classr   r    r(  r!   test_subclass_clear_cla  s,    22
r=  c                  C   s*   t  D ]} d| jvrd| jvsJ qd S )Nr=  r   )r   __subclasses__r,  __dict__)klassr    r    r!   !test_cla_not_redefined_internally2  s    
rA  c                 C   st   t ddd, |  }|ddgddg W d    n1 sB0    Y  | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r1   )rL   r
   r   r   minorticks_onr   r   rj   rk   r    r    r!    test_minorticks_on_rcParams_both:  s    
2rD  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 )Nr2   rn   ir   r1   )r#   r   	enumerateflatr   )r'   axsr  r   y1r    r    r!   test_autoscale_tiny_rangeE  s    rK  defaultc                  C   s   t dd\} }|g d |jdddd |jdddd t| d t| d	 | sfJ | srJ |	 s~J |jd d
 t| d t| d	 | sJ | sJ |	 sJ d S )Nr1   r1   r2   r   r   Tr+   F)enableaxistightr,   )g333333ÿg333333	@)r         @)rN  )
r#   r   r   r  r   r   r   r  r  get_autoscale_onr&   r    r    r!   test_autoscale_tightN  s    rS  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dtyper2   r1   Tsharex)rP  r|   r   )r^   rf   floatr#   r   loglogsemilogxr  r   r   r   r   )r+   r'   r   r   Zlimsr    r    r!   test_autoscale_log_sharedf  s    rZ  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   r1   r2   r   rv   rx   )      r   Fr\  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    r]  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r   r   r  r  rU  )r^   rf   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   r1   datar   r   zoffset points)xyxycoordsxytext
textcoords)	r^   rf   r  r   r#   r   r   r   annotate)tsr'   r   liner    r    r!   test_basic_annotate  s    
rs  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)rX   rG   r;   r   r   r2      r   r   rn   )widthlength_includes_headshapehead_starts_at_zeroZ
head_widthhead_length)r   r#   r   rG  ziprH  set_xlimset_ylimr^   r   arrowr   r  )
rw  rx  ry  kwargsr'   rI  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   )rz  )r#   r   r~  _r   r    r    r!   test_arrow_empty  s    r  c                  C   s@   t  \} }|dddd | dks,J | dks<J d S )Nr1   )皙?皙@)r#   r   r~  r   r   r  r    r    r!   test_arrow_in_view  s    r  c                  C   sN   t  \} }|jdddd}|jd u s*J |jdddi d}|jd usJJ d S )Nfoor   r1   r2   r   )rm  )rm  
arrowprops)r#   r   ro  Zarrow_patch)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sDJ t
| | D ]\}}||ksVJ qVdS )z?Check that the signature of Axes.annotate() matches Annotation.N)r#   r   inspect	signaturero  
parametersmtextZ
Annotationlistkeysr{  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 g d}||| g dd |j|g|gddd ||||| || gg dd |	j|g|gddd |	|| d| j d| j d| j d| j gd |
j|g|gddd |
j|||| || gd| j d| j d| j d| j gdd |  d S )Nr   ET  r      dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]rT  r2   degred)Zyunitsr   r  )ra  ra  g     V@ra  bZ   r   )r   )r   r   r   r   Epochdatetimer  Durationr^   rf   mdatesdate2numr#   r   r   fillZautofmt_xdate)r   rp  valuedayr  Zdtnr'   r   r   r   ax4indr    r    r!   test_fill_units  s4    


""r  c                   C   s   t jtdd& tjdgdgddd W d    n1 s:0    Y  t jtdd& tjdgdgdd	d
 W d    n1 s~0    Y  t jtdd& tjdgdgddd W d    n1 s0    Y  tjdgdgddd d S )Nzmarker .* redundantly definedr#  r   r   r+   rw   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r   )r   r   )r   r:  UserWarningr#   r   errorbarr    r    r    r!    test_plot_format_kwarg_redundant  s    444r  c                 C   sz   g d}t |}| }|  }|j||t |t |d^}}|ddg |j||t |t |ddgd d S )NrM  xerryerrr2   )r  r  dashes)r^   r   r  r  absZ
set_dashes)r   r   r+   r,   rk   rj   rr  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.gridr2   r   r1   r   r  r   ri  r  )rL   r   r#   r   r   )r'   r   r   ri  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(\bPr2   r1   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 )Nrn   r1   r|   r   r   r|   r1   r2   r1   gQQ?)r   	   r   r   )r^   rf   r   r   r   r   Zravel)r   r   rowcolrI  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r1   r1   r2   r2   r   ZtwosrT  r2   r   r  r1   r  )r^   r  rW  r#   r   r   r   )ZptsrI  r    r    r!   test_structured_dataP  s    r  Zaitoff_proj)r   rF  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
       r2   )   @ZaitoffZ
projection)figsize
subplot_kwr   r   )r}   N)
r^   r   r   meshgridr#   r   dictgridr   rH  )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  r1   r  r     r   r         ?)r   alpharb  )r   r   r   r   r  r  r  r  convertr#   r  axvspanr|  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  axhspanr}  r  r    r    r!   test_axhspan_epochz  s    r  zhexbin_extent.pngc                  C   sl   t  \} }tdd d}|\}}|j||g dd ||d}t  \} }|jddg d|d d S )	N  )r2     r   r   333333?ffffff?)extentr   r+   r,   )r  ri  )r#   r   r^   rf   r   hexbin)r'   r   ri  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   s`   t  \} }tdd d}|\}}|j||g ddd}tddd}||d	 s\J d S )
N   r2   r   r  r|   )r  Zpicker  ,  r   r   )r#   r   r^   rf   r   r  r   contains)r'   r   ri  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.snaprT   順 r         @rQ  r2   r   r   T)yscaler  	marginalsreduce_C_function)r#   r   r^   r_   r`   standard_normalpowerr   r  sumrB   )nr+   r,   r'   r   hr    r    r!   test_hexbin_log  s    
r  zhexbin_linear.pngr   rF  c                  C   s^   t jd d} t j| }dd|  dt j|   }t \}}|j||ddt jd d S )	NrT   r  r   r  rQ  rn   r   T)Zgridsizer  r  )r^   r_   r`   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sDJ d S )Nr  r  r   r2   r   )r  vminvmax)r^   rf   r   r#   r   r  Zget_clim)r+   r,   r'   r   r  r    r    r!   test_hexbin_log_clim  s    r  c                  C   s   t  \} }|  |g dg d | dks8J | dksHJ t   t  \} }|  |g dg d | dksJ | dksJ t  \} }|d |	dd	 | d
ksJ d S )N)re  r2   r   )r1   r2   re  r   )r   r  rd  )r  r   )r   re  r   rn   r1   )rn   r1   )
r#   r   invert_xaxisr   r   r   r  invert_yaxis
set_yscaler}  r&   r    r    r!   test_inverted_limits  s    
r  Znonfinite_limitsc                  C   st   t dt jd} t jdd t | }W d    n1 s<0    Y  t j| t| d < t \}}|	| | d S )Nra  rc  ignoredivider2   )
r^   rf   eerrstater   nanlenr#   r   r   r+   r,   r'   r   r    r    r!   test_nonfinite_limits  s    (r!  plot_fun)r3   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  rT  C0r  )r^   rf   r   r   r   r  )r"  r   r   r+   rj   rk   r   r    r    r!   test_limits_empty_data  s    r%  r   )rF  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 )Nry   image.interpolationr   r2   r  r  )rL   r   r^   indicessqrtr#   r   r   )Nr+   r,   r  r'   r   ri  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 )Nry   r&  r   r2   r   r   )	clip_path)rL   r   r^   r'  r(  r#   r   contourcollections	get_pathsget_transformmtransformsZTransformedPathr   )	r)  r+   r,   r  r'   r   r5   r.  Zclip_transformr    r    r!   test_imshow_clip   s    

r4  c                  C   sd   ddgddgg} t  }tjtdd* |j| tddd	d
d W d   n1 sV0    Y  dS )4Parameters vmin, vmax should error if norm is given.r1   r2   r   r   LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r#  rn   r   r   )normr  r  N)r#   r  r   r   
ValueErrorr   mcolors	Normalize)r   r   r    r    r!   test_imshow_norm_vminvmax=  s    r<  Zpolycollection_joinstylec                  C   sf   t  \} }tddgddgddgddgg}tjj|gdd}|| |dd |	dd d S )Nr1   r2   (   )
linewidthsr   r   )
r#   r   r^   r  r   r0  ZPolyCollectionadd_collection
set_xbound
set_ybound)r'   r   vertsr5   r    r    r!   test_polycollection_joinstyleG  s    "
rC  z	x, y1, y2r  r   ra  r2   )Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)idsc                 C   sH   t  \}}tt || || W d    n1 s:0    Y  d S r   )r#   r   r   r   r9  r#  r+   rJ  r  r'   r   r    r    r!   test_fill_between_inputR  s    rF  z	y, x1, x2)Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc                 C   sH   t  \}}tt || || W d    n1 s:0    Y  d S r   )r#   r   r   r   r9  fill_betweenx)r,   x1r  r'   r   r    r    r!   test_fill_betweenx_inputc  s    rI  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 )Nra  r2   r  333333?r   r1   TrU  blackr  white/)wherer   hatchinterpolater  )rN  r   rP  r   r   r   )r^   rf   r   r   r#   r   r   r#  r   Zmasked_greaterZmasked)r+   rJ  r  r'   r   r   r    r    r!   test_fill_between_interpolatet  s(    rQ  Z#fill_between_interpolate_decreasingc               	   C   s   t g d} t g d}t g d}tjdd\}}||| d ||| d |j| ||||k dd	d
d |j| ||||kdd	d
d |dd |dd d S )N)gfffff@i  i  )g"@r  r  )g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?rN  r   rP  r  r  r   r      X  )r^   r  r#   r   r   rG  r|  r}  )r   rp  Zprofr'   r   r    r    r!   (test_fill_between_interpolate_decreasing  s    rX  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 )Nrn   r              rt   r   rS  r5   r  r   Tr   rU  r  )r^   rf   asarrayr  r#   r   r   r#  rE  r    r    r!   !test_fill_between_interpolate_nan  s    
 "r_  z
symlog.pdfc                  C   sX   t g d} t g d}t \}}|| | |d |d |dd d S )N)r   r1   r2   r      r  ru  rZ  )i@B i  r  r   r   r   r   r   symloglinearr|   i )r^   r  r#   r   r   r  
set_xscaler}  r   r    r    r!   test_symlog  s    

rd  zsymlog2.pdfc                  C   sn   t ddd} tdd\}}t|g dD ],\}}|| |  |jd|d |d	 q,|d
 dd d S )N2   MbP?r   r1   )      4@r   r   r   rc  ra  )	linthreshTr|   皙r   )	r^   rf   r#   r   r{  r   rc  r  r}  )r+   r'   rI  r   ri  r    r    r!   test_symlog2  s    rk  c               	   C   s   g d} g d}t | |\}}t ||}t| tt| t| ||d dd df  t||t|d dd df  d S )N)            r\  ra  r   r   r   )rl  g      rm  g      r\  g      пr   r  r         ?r         ?r   r|   )r^   r  hypotr#   pcolorr  )r+   r,   r  r  r_  r    r    r!   test_pcolorargs_5205  s    
rr  r^  c                  C   s*  dt jd< d} tdd| }tdd| d }t||\}}t|t| }t|t| }|d }t||d }||  |	  }t
t|d	t| k |}t d
d\}	\}
}}|
j|||d dd df d	dd |j|||d dd df dddgd |j|||dd d S )NFr  ru  rl  r   r2   皙?r   r   r1   r   r|   rS  r  
edgecolorsr  wgouraudshading)r#   r   r^   r   r  r  r   rp  minptpr   masked_wherer  maxr   r^  )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   rl  r   r2   rs  r   r   r1   r|   rS  rt  r  rv  rw  rx  )r^   r   r  r  r   rp  rz  r{  r   r|  r  r}  r#   r   r^  r  set_axis_off)r  r+   r,   r  r  r~  r  r_  r  r'   r   r   r   r   r    r    r!   test_pcolormesh_small  s      $(
r  Zpcolormesh_alphapdf)r   rF  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g ddd q|
j|||d dd df |dddd |j||||dddd |j|||d dd df |ddd |j||||ddd d S )NFr  ru  rl  r   r2   r   viridis   r   r   )r   rl  )r  r   r   r   r   )r   zorderr|   rT  rH  r1   )rz   r  ry  r  rw  )rz   ry  r  )r#   r   r^   r  r   r   rp  rz  r{  r   	colormaps	resampledrf   r:  ZListedColormapr   	add_patchmpatches	Rectangler^  )r  r  r  r~  ZQyr_  Zvircolorsrz   r'   r   r   r   r  r   r    r    r!   test_pcolormesh_alpha	  s2    
$

&r  z
dims,alpharh  )r   r   c                 C   sN   |   }tjdd|ftdd }|| |  }|j|d ddd|d	 d S )
Nr   r`  rT  r2   ).r   grayr   r1   )rz   r  r  r  )r   r^   r   rW  r^  )r   r   dimsr  r   r5   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  rT  \(\?333333?Zhspacer7   rF     r1   c                    s   g | ]} t j|d  qS daysr  	timedeltar   dbaser    r!   r   ?  r   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r     r|      r   rO        r;   r   )r#   r   r   subplots_adjustr  r^   r  r   rf   r  r  r^  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 )NrT  r  r  r  r  r1   c                    s   g | ]} t j|d  qS r  r  r  r  r    r!   r   X  r   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   rf   r  r  rq  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 d    n1 s~0    Y  tt  |	|||j
 W d    n1 s0    Y  tt2 |j	|||d dd df dd W d    n1 s0    Y  tt2 |j	|||d dd df dd W d    n1 sT0    Y  t j|d	< tt. |	|||d dd df  W d    n1 s0    Y  t jd
d$ t jj||d	k d}W d    n1 s0    Y  tt. |	|||d dd df  W d    n1 s40    Y  g d}ddg}t ||\}}t |j}tjtdd" |j	|||dd W d    n1 s0    Y  d S )Nru  rl  r   r2   r   r|   rw  rx  r   r  invalidmask)ig  r   r1   r7  rn   .are not monotonically increasing or decreasingr#  auto)r^   r   r  rp  r#   r   r   r   r   r^  TNaNr9  r  r   r  zerosrx  r:  r  )r  r+   r,   r  r  r_  r  r   r    r    r!   test_pcolorargsl  s:    ,.BB
>4>r  c                  C   sH  t ddd} t g d| j}|jjdu s4J 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u sJ t jj||d}t	
||| t jj||d}	t jj||d}
tjtdd t	|	|
| W d    n1 s:0    Y  d S )Nr`  r2   r   FTFFr  r   r1   rn   Tr   r  r#  )r^   rf   r   broadcast_torx  flagsZ	writeabler   r  r#   r^  r   r  r   r   r  r   r:  r  rq  )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   rn   r   rT   r2   r  rH  rx  r|   ry   r   r^   rf   r_   r`   randnr^  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     r   z+test_pcolornearestunits.<locals>.<listcomp>rn   r   r   rT   r2   r  rH  rx  c                 S   s    g | ]}t j |d  d qS )r   r  r  r   r    r    r!   r     r   r|   ry   )	r   r   r^   rf   r_   r`   r  r^  r  r  r    r    r!   test_pcolornearestunits  s    r  c                  C   s   t  \} }tdd}tdd}tjd tjdd}tjt	dd" |j
|||dd W d    n1 st0    Y  d S )	Nr   r  r   rT   zDimensions of Cr#  rH  rx  )r#   r   r^   rf   r_   r`   r  r   r   r   r^  r'   r   r+   r,   r_  r    r    r!   test_pcolorflaterror  s    r  c                  C   st   t  \} }ttdtd\}}|| }tjtdd" |j|||dd W d    n1 sf0    Y  d S )Nr   r   z.*one smaller than Xr#  rH  rx  )	r#   r   r^   r  rf   r   r   r   r^  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   rn   r   rT   r   r  )r  r|   r2   r  )	r   r   r  r   r+   r,   r_  r  r  r    r    r!   test_pcolorauto  s    r  	canonicalc                  C   s   t  \} }|g d d S )Nr1   r2   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 )Nr2   r1   )r   r   r   h  r  -   r   r  )theta1theta2r   rn   )r#   r   rG  rH  r  r  ZEllipseArcr   r^   r  deg2radr   r|  r}  )
rv  r  Zcentrer   r'   rI  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   yellowr1   )r  r   r   r   r  r2   F)angler   r  r  r  equalr   )r  r   r   r  )r^   r  rf   r  r   r  re   r#   r   r   r  r  r  r  )Zxcenterycenterrv  heightr  r  r+   r,   ZrthetaRr'   r   e1e2r    r    r!   test_arc_ellipse  s:    

r  c                  C   sb   t  \} }td}|jg dg d|d |jg dg d|d |jg dg d|d d S )Nr   r  r   r2   r1   r  )r   r   r2   )r   r   r   )r#   r   mmarkersMarkerStyler   r3   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   rn   r   r   r   rL  r)   r  mark allr  r)   rq  mark every 10+r   r  mark every 5 starting at 10r^   r   r   r(  r#   r   r   rA   r   r    r    r!   test_markevery>  s    r  Zmarkevery_lineg{Gzt?)rF  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   rn   r   r   z-orL  r  z-dr  r  z-sr  z-+r  r  r  r   r    r    r!   test_markevery_lineL  s    r  Zmarkevery_linear_scalesrg  c            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]R\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d qd S )Nr  r   r  r  rZ  r   r   r|   r   r  r   r   r   r   ra  r   ?r   r1   )\(?rn   r2   r   markevery=%sr   r  r   lsmsr  )slicerL   gridspecGridSpecr  r^   r   r   rG  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g dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]f\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d t	d t	d qd S )Nr  r  r  r   r|   r   r  r   r   r   r   r  r  r1   r  rn   r2   r   r  r   r  r   r  )r`  g@)rs  g333333?)r  rL   r  r  r  r^   r   r   rG  r#   r  r*   r  r   r   r   r   r    r    r!   #test_markevery_linear_scales_zoomedw  s*    

r  Zmarkevery_log_scalesc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]f\}}|| }|| }	t	
|||	f  t	dt|  t	d t	d t	j||ddd|d qd S )Nr  r  r  r   r|   r   r  r   r   r   r   r  r  r1   r  rn   r2   r   r  r   r   r  r   r  )r  rL   r  r  r  r^   r   r   rG  r#   r  r*   r  xscaler  r   r   r    r    r!   test_markevery_log_scales  s*    


r	  Zmarkevery_polarc            	      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}tddd}dtj | }t| D ]V\}}|| }|| }t	j
|||f dd t	dt|  t	j||ddd|d qld S )Nr  r  r  r   r|   r   r  r   r   r   r   r  r  r1   r  r2   Tpolarr  r   r  r   r  )r  rL   r  r  r  r^   r   r   rG  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g dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t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  r   r|   r   r  r   r   r   r   r  r  r1   r  rn   r2   r   rf  F   r  r   r  r   r  )r  rL   r  r  r  r^   r   r   r  rG  r#   r  r*   r  r   r   r    r    r!   !test_markevery_linear_scales_nans  s(    
&r  Zmarker_edgesc                  C   sz   t ddd} t \}}|j| t | ddddd |j| d t | ddddd |j| d	 t | ddd
dd d S )Nr   r1   rn   zy.      >@r  )r  mewmecr   r   r2   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   r1   edge0)align
tick_labelr  r   r  )r  r  ri  )r#   r  barr   )r   ri  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   r1   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 )
Nr1         @r2   r   r   r   r  rN   rv  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 )NrN   zytick.alignmentr1   r  r2   r   r   r   r  r  )rL   r   r#   r  r  r  r    r    r!   *test_bar_tick_label_multiple_old_alignment  s
    
r!  c                 C   s`   |   }g d}g d}dd |D }dd |D }|j||dd |  }|j||dd d S )Nr   g @g333333@r  rs  r  gffffff
@g@c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r     r   z+test_bar_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r     r   rN   r  r   r  r   r   r   x0y0r+   r,   r    r    r!   test_bar_decimal_center  s    r)  c                 C   sl   |   }g d}g d}dd |D }dd |D }|j||g ddd |  }|j||g ddd d S )	Nr"  r#  c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r   #  r   z,test_barh_decimal_center.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r   r    r    r!   r   $  r   )r   r   r1   r1   rN   r  r  r   barhr&  r    r    r!   test_barh_decimal_center  s    r-  c                 C   s^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr"  r#  r  g333333?r1   r2   c                 S   s   g | ]}t |qS r    r   r   r  r    r    r!   r   1  r   z*test_bar_decimal_width.<locals>.<listcomp>rN   rv  r  r%  )r   r   r+   r,   Zw0rv  r   r    r    r!   test_bar_decimal_width,  s    r1  c                 C   s^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr"  r#  r.  c                 S   s   g | ]}t |qS r    r   r/  r    r    r!   r   ?  r   z,test_barh_decimal_height.<locals>.<listcomp>rN   r*  r+  )r   r   r+   r,   Zh0r  r   r    r    r!   test_barh_decimal_height:  s    r2  c                  C   sR   t  } | jddgddgdddd}|D ]$}| dks<J | d	ks(J q(d S )
Nr1   r2   r   r   r   r  r  r   r   r   r   r   r   r1   r   r   r   r#   r  r  get_facecolorget_edgecolorr   rectsrectr    r    r!   test_bar_color_none_alphaH  s
    r<  c                  C   sR   t  } | jddgddgdddd}|D ]$}| dks<J | d	ks(J q(d S )
Nr1   r2   r   r   r  r   r3  r5  r4  r6  r9  r    r    r!   test_bar_edgecolor_none_alphaP  s
    r=  zbarh_tick_label.pngc                  C   s0   t  } | jddgddgddgddgdd	 d S )
Nr1   r  r2   r   r   r   r  rN   )r  r  r  )r#   r  r,  r  r    r    r!   test_barh_tick_labelX  s    r>  c                  C   s^  t  \} }|jtddddtjddd |jtddddtjddtjddd t  \} }|jtddddtjddd	 |jtddddtjddtjddd
 t  \} }|jtdddtdddgtddgtjddd	 |jtdddtdddgtddgdd dD d	 |tdddtjddfgd dS )z>Smoketest that bar can handle width and height in delta units.  r1   r   r   hoursrv  r2   )r  rv  )r  )r  r  r   c                 S   s   g | ]}t j|d qS )r@  r  r   rp  r    r    r!   r   t  r   z&test_bar_timedelta.<locals>.<listcomp>r   )rn   r  N)	r#   r   r  r  r  r,  r^   r  broken_barhr&   r    r    r!   test_bar_timedelta`  s<    







rE  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r2   z1/1/2000r1   )years)periodsfreq	positions)	r^   r_   ro   
date_rangeZ
DateOffsetyearr#   r   boxplot)pdri  rF  r    r    r!   test_boxplot_dates_pandasz  s    rO  c                  C   s   t jdd} td\}}|d j| g dg dd |d j| g dd	d |d
 j| g dd |d j| dg dd |d j| dd	d |d j| dd |d j| g dd |d j| d	d |d |  d S )Nr   r   r  r   )r   r   r   r   )	capwidthswidthsr1   r   r2   rP  r   r   r`  rQ  r  r  )r^   r_   ro   r#   r   rM  )ri  r'   rI  r    r    r!   test_boxplot_capwidths  s    rT  c                 C   s   ddl m}m} t }|d}tdddg}t|dk rZ||d tj	dd	  q2t
d
}t
||\}}t|d t|d f}	t
|	d |	d  }
|	|
_z(|  ||||
}|j  W |  n|  0 d S )Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r1   r  r|   x   )secondsr   )Zpandas.plottingrU  rV  r#   r   r   r  r  appendr  r^   rf   r  rx  r^  canvasr   )rN  rU  rV  r'   r   timesZy_valsZ	time_axisZy_axisrx  Zz_dataimr    r    r!   test_pcolor_regression  s     

r_  c                 C   s   |  g dg dg dg dd}| |g d |d< |ddg dg }|j}|d }|d }t \}}|j||dd	d
 |j||ddd d S )N)r?  r?  r?  r1   r1   r1   r  )rL  monthr  r  )rL  ra  r  dater  rn   rN   r0  oranger   r  )		DataFrameto_datetimegroupbyr
  indexr#   r   r  r   )rN  dfZmonthlydatesZforecastbaseliner'   r   r    r    r!   test_bar_pandas  s    rk  c                 C   sD   | j g dg ddg dd}t \}}|j|jd|jd d S )N)r   r   r  r   rT  r  )r+   rv  r  rg  r   rB  )rd  r#   r   r  r+   rv  rN  rh  r'   r   r    r    r!   test_bar_pandas_indexed  s
    ro  c                 C   sh   |   }|  }ddg}ddg}ddg}tdD ]"}|j|| || d|| d q0|j|||d d S )	Nr1   r2   r   r+   r   r$  )r   rO  rO  )r   r   r  )r   r   rj   rk   r+   r,   hatchesr  r    r    r!   test_bar_hatches  s     rr  )r+   rv  r)   expected_labelscontainer_labelr+   r1   
_nolegend_r   r  r5   )rn   r  r   )ABC)r  r  ru  bars)ru  ru  ru  c           	      C   sJ   t  \}}|j| ||d}dd |D }||ks6J | |ksFJ d S )Nr  c                 S   s   g | ]}|  qS r    )rP   )r   r  r    r    r!   r     r   z#test_bar_labels.<locals>.<listcomp>)r#   r   r  rP   )	r+   rv  r)   rs  rt  r  r   bar_containerZ
bar_labelsr    r    r!   test_bar_labels  s
    r|  c                  C   s   t  \} }tt, |jddgddgg dd W d    n1 sH0    Y  t  \} }tt* |jddgddgdgd W d    n1 s0    Y  d S )Nr+   r,   r1   r2   )r  r  r_  r  r  )r#   r   r   r   r9  r  r  r    r    r!   test_bar_labels_length  s    :r}  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g di}t| t|| d S )Nr1   r2   float64rT  ZFloat64r  r  )Seriesr#   r   rg  rd  )rN  r+   rh  r    r    r!   test_pandas_minimal_plot  s    

r  Zhist_logc                  C   sH   t dddd } t d|  d|  g}t \}}|j|ddd d S )Nr   r1   r  r   FT)r  r   )r^   r   concatenater#   r   hist)Zdata0ri  r'   r   r    r    r!   test_hist_log  s    r  c                 C   s   |  dd}| dd}tg dD ]\}}|d|f d |d|f jdd|d |d|f jdd|d |d|f d |d d |f D ]}|jddd|d	 qq$d S )
Nr2   r   )r  step
stepfilledr   r   r1   histtypeT)r   r  )r   rG  r  r  )r   r   r   r   r  r  r   r    r    r!   test_hist_log_2  s    r  c                  C   s   t d\} }|d jdgddggddd |d d |d jg dddd |d d | j  |d  |d  ksJ d S )Nr2   r   r1   
barstackedr  r   r   r   r1   )r#   r   r  r  r\  r   r   r'   rI  r    r    r!   test_hist_log_barstacked  s    
r  zhist_bar_empty.pngc                  C   s   t  } | jg dd d S )Nr  r  r#   r  r  r  r    r    r!   test_hist_bar_empty(  s    r  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sVJ qVd S )NrT   r   r   r  sizer   r1   r   )r  r  r2   )r^   r_   r`   clipra   rq   float16r#   r  r   r  Zget_corners)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 )Nr  r  r  r  r    r    r!   test_hist_step_empty>  s    r  zhist_step_filled.pngc            
      C   s   t jd t jdd} d}ddiddidd ii gd }d	gd
 dgd
  }tjdd
d\}}t|||jD ]B\}}}|j| |f|dd| |	d||f  |j
dd qn|d j}	tdd |	D sJ d S )Nr   r  r   rn   r  TFr2   r  r   r  )nrowsncolsr  stackedz%s/%sre  rF   r   r   c                 s   s   | ]}|  | kV  qd S r   )r7  r8  )r   r   r    r    r!   	<genexpr>U  r   z(test_hist_step_filled.<locals>.<genexpr>)r^   r_   r`   r  r#   r   r{  rH  r  r.   r}  r   all)
r+   Zn_binsr  typesr'   rI  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 )NrT   r  Tdensity)r^   r_   r`   r  r#   r   r  ri  r'   r   r    r    r!   test_hist_densityX  s    r  c                  C   sV   t jd} | d}g d}tj||dd\}}}t j||dd\}}t|| d S )Ni  r   )re  r|   r\  r   r1   r   T)r  r  )r^   r_   ZRandomStater  r#   r  Z	histogramr   )rngrp  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  r1   r2   T)r  F)r  r#   r   r  r  r    r    r!   test_hist_datetime_datasetsk  s    r  bins_preprocessc                 C   s   | S r   r    r  r    r    r!   <lambda>u  r   r  c                 C   s   t | dS )Nr  )r^   r^  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  r1   r   r[  r2   r   rY  T)r  r  F)
r  r#   r   r  r^   r   r   r   ri  r  )r  ri  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sDJ n|jd |ksDJ d S )Nr1   r   )r#   r  r^   r^  ndimrx  )ri  Zexpected_number_of_histsZhistsr  r    r    r!   test_hist_with_empty_input  s
    

r  zhisttype, zorderr  r  r  c                 C   sH   t   }|jddg| d |js(J |jD ]}| |ks.J q.d S )Nr1   r2   r  )r#   r   r   r  r   
get_zorder)r  r  r   r   r    r    r!   test_hist_zorder  s
    

r  c                 C   s  dd l m} tg d}tg d}| dd }|d j||d d |d j||d dd	 |d || |d j||dd
 |d || |d   |d j||dd
 |d   ddd}|dd }|d j	|t
||d fddi| |d j	t
|d ||fddi| |d j	|t
||d fddi| |d |j|d |d gd|d gfi | |d |j|d |d gd|d gfi | |d dd  |d j	t
|d ||fddi| |d |jd|d g|d |d gfi | |d |jd|d g|d |d gfi | |d dd  |d j	|t
||d fddi| |d |j|d |d gd|d gfi | |d |j|d |d gd|d gfi | |d   |d j	t
|d ||fddi| |d |jd|d g|d |d gfi | |d |jd|d g|d |d gfi | |d   d S )Nr   )r`     rt   %   0   rt   r  r   )	r   r   r  rQ  rb        @      @       @      "@r   r2   rj  r1   rH   )rj  rJ   rI   r   r   miterbuttsolid_joinstylesolid_capstyler|   	drawstyle
steps-post)Zmatplotlib.lineslinesr^   r  r   flattenstairsZsemilogyrY  r   r[  Zadd_lineLine2Dr}  r|  )r   r   Zmlinesr,   r+   	test_axesr   ref_axesr    r    r!   test_stairs  s@    
(((22(22(22(22r  c                 C   s  g dg d }}d}|  dd }|d j||dd |d j||d	dd
 |d j|||dd |d j|||d	dd | dd }|d j|t||d ddd |d dd  |d j|t||d ddd |d dd  |d j|t||d t	t
|d | ddd |d |d  |d j|t||d t	t
|d | ddd |d |d  d S )N)r1   r2   r   r   r2   )r   r1   r2   r   r   r   rt  r2   r   Tr  r1   rH   )rJ   r  )rj  r  r   )rj  rJ   r  r|   post)r  r  )r   r  r  r#  r^   r[  r}  rG  r|  r   r  )r   r   r  r  bsr  r  r    r    r!   test_stairs_fill  s,    ""r  c                 C   s  d}|   }|g d}|| |g d |jtdd d |g dtdd  |g d |d td t| d td	dsJ t| d	 tdsJ |jd
d | jd
ksJ |  }|jg dd
d}|| d S )N)re  r   r  r  r   r2   edges)r1   r2   r1   r   r1   rt  r  )	r   r  r}  set_datar^   rf   allcloseget_datarj  )r   r   r   test_axr  ref_axr    r    r!   test_stairs_update  s     
 r  c                 C   s\   |   }|jg dd d |  }ddd}|jtdg dfdd	i| |d
d  d S )N)r   r`  r  r  r  r  r  r   )r   r`  r  r  r  r  r   )r   r  r   r   r}  )r   r   r  r  r   r    r    r!   test_stairs_baseline_0	  s    
 r  c                  C   s>   t   } | g dg |  dks*J |  dks:J d S )N*   )'   r  r  )r#   r   r   r  r   r   r  r    r    r!   test_stairs_empty	  s    r  c                   C   sJ   t jtdd( tddgdtjdg W d    n1 s<0    Y  d S )NNan values in "edges"r#  r1   r2   r   )r   r   r9  r#   r  r^   r  r    r    r    r!   test_stairs_invalid_nan	  s    r  c                   C   sF   t jtdd$ tddgddg W d    n1 s80    Y  d S )NSize mismatchr#  r1   r2   r   )r   r   r9  r#   r  r    r    r    r!   test_stairs_invalid_mismatch	  s    r  c                  C   sZ   t ddgg d} tjtdd$ | jdtjdgd W d    n1 sL0    Y  d S )Nr1   r2   r  r  r#  r  )r#   r  r   r   r9  r  r^   r  r  r    r    r!   test_stairs_invalid_update 	  s    r  c                  C   sX   t ddgg d} tjtdd" | jtdd W d    n1 sJ0    Y  d S )Nr1   r2   r  r  r#  r   r  )r#   r  r   r   r9  r  r^   rf   r  r    r    r!   test_stairs_invalid_update2&	  s    r  ztest_stairs_options.pngc               
   C   s  t g dt g dt } }| }t j|d< t \}}|j|d | dddd |j|| d d d	dd
dd |j|| ddddd |j|d | d d dddd
dd |j|d d d d d | d d	ddd dd |j|d d d d d | dddddd |j|d d d d d | d t 	dd t
|d!dd"dd# |j|d d d d d d d$ | d d d d%ddd&d'd(d) |jd*d+ d S ),Nr1   r2   r   r   r   rM  r1   r   r   Trw  )r   r  r)   r  rH   rx  )r   r  rJ   r)   rc  r  r2   ry  )r   r  r  r)   r   D)r  r  rj  rJ   r)   r|      E)r   r  r  rj  r)   r  r\  rf  F)rj  r   r  r  r)   r   r     r   G)rj  r   r  r)   r  r[  rK  ru  //H)r   r  r  rj  rO  r)   r   r8   )r^   r  rq   rW  copyr  r#   r   r  r   r  rA   )r+   r,   Zynr'   r   r    r    r!   test_stairs_options,	  s2    $
&.4r  ztest_stairs_datetime.pngc               	   C   sF   t jdd\} }|tdttdtd t jdd d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r#   r   r  r^   rf   r  xticks)fr   r    r    r!   test_stairs_datetimeD	  s    r  c                 C   sD   |   }|jg dddd |  }|jg ddd}|d d S )Nr  r  T)r   r  r  )r   r  	set_color)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 )Nre  r      rY  )r^   r   r  r   r  )r+   r,   r  r    r    r!   contour_datY	  s    "r  Zcontour_hatchingc               
   C   s@   t  \} }}t \}}|j| ||dg dtjd ddd d S )Nr  )rM  \r  r  r  r   r   )rq  rz   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   )levelsrz   r  r  r  gg^I+r,   r   r2   )r  r  
linestylesr>  r  r5   )r  r  r>  r  F)Zerase)r  r#   r   r  r^   rf   r   r  r/  rB   Z	add_lines)	r+   r,   r  r'   r   csZcs1Zcs2rD   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   r2   r   rn   Tr  
rasterizedr   r+   r,   )r  ri  r  )r#   r   r^   r_   r`   r  r   r  )r+   r,   r'   r   ri  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   r2   rn   Tr  )	r#   r   r^   r_   r`   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d4d5d6g d7d8fd9d:gd3fd:gd; d3fd<gd= d8fd<gd; d8fd<gd> d?fg d@d8fg dAd8fg dBd3fg dCgd8fg dCgd= d?fg dCgd; d8fg dCgd> d?fg dDgd8fg dDgd= d?fg dDgd; d8fg dDgd> d?fg dDgd= g dCg d8fg dDdEdFgd?fg dDdEdFdGgd8fg dDdEdFdGg dHgd?fg dDdEd:gd3fg dDdEdFd:gd3fg dDdEdFdGd:gd3fgZe
jdIedJdK Zejd edgddLdM ZdNdO Zd8S )PTestScatterr3   r   Tr  c                 C   s   t g dt g dg dg dg dd}t \}}|j|d d |d	 d |d
 |d d |j|d d |d	 d |d |d d |jdd	d
d|d d S )Nr   r   r2   r`  r2   r   r2   r   r  r,   r  limerZ  r         )0.50.60.7z0.8)r+   r,   r5   rq  c2r+   r   r,   r5   rq  r5   rq  r  )r5   rq  ri  )r^   r  r#   r   r3   )r'  ri  r'   r   r    r    r!   test_scatter_plot	  s    **zTestScatter.test_scatter_plotzscatter_marker.pngrE  c           
   
   C   s   t jdd\}\}}}|jg dg dg dg dg ddd	 |jg dg dg dg dg dtjd
ddd	 d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jg dg dg dg dg d|	d	 d S )Nr   r  r  r  )r1   r   r   r,   r  r  )r  rf  r=  r   )rS  r  gr  rq  )r5   rq  ru  rw   r   r7   	fillstylerh  r   r2   r  )r#   r   r3   r  r  r^   r   r   Zcolumn_stackr  r   )
r'  r'   r!  r   r   rxZryarear  rB  r    r    r!   test_scatter_marker	  s2    zTestScatter.test_scatter_markerZ
scatter_2Dr   )rF  r   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r2   r  face)r5   rq  ru  )r^   rf   r  r#   r   r3   )r'  r+   r,   r  r'   r   r    r    r!   test_scatter_2D	  s    

zTestScatter.test_scatter_2Dr   c           
      C   s   t g d}t g d}t dd |D }t dd |D }g d}g d}| }	|	j||||d | }	|	j||||d d S )	Nr"  r#  c                 S   s   g | ]}t |qS r    r   r/  r    r    r!   r   	  r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r/  r    r    r!   r   	  r   r  r  r  )r^   r  r   r3   )
r'  r   r   r'  r(  r+   r,   r5   rq  r   r    r    r!   test_scatter_decimal	  s    z TestScatter.test_scatter_decimalc                 C   s   t t, tjddgddgddgd W d    n1 s<0    Y  t t, tjg dg dg dd W d    n1 s0    Y  d S )Nr1   r2   r   r   r  r  )r   r   r9  r#   r3   r&  r    r    r!   test_scatter_color	  s    :zTestScatter.test_scatter_colorr  rz   r  r8  r  r   r  c                 C   s   d}t jt|d$ tjg g fi | W d    n1 s<0    Y  t jt|d0 tjddgddgfdg i| W d    n1 s0    Y  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#  r1   r2   r   r   r5   r   )r   r:  Warningr#   r3   )r'  r  Z
warn_matchr    r    r!   test_scatter_color_warning	  s    2>z&TestScatter.test_scatter_color_warningc                 C   sv   t jg dg dg dtjdddg dd}| jd	ks@J t| g d
g dg dg t| g d d S )Nr  r1   r   r2   z0.1z0.3r	  r   r   r  rs  rJ  ?r5   rw   r>  )r   r   r   r   r   r1   r   r   r   r1   r   r   r   r1   )	r#   r3   r  r  get_facecolorsrx  r   get_edgecolorsget_linewidthsr'  collr    r    r!   test_scatter_unfilled	  s    z!TestScatter.test_scatter_unfilledrL  c                 C   sl   t jg dg dg ddg dd}t| |  t| g dg dg d	g t| g d d S )
Nr  r  r  r+   r  r!  r"  r#  r$  )r#   r3   r   r%  r&  r'  r(  r    r    r!   test_scatter_unfillable	
  s    z#TestScatter.test_scatter_unfillablec                 C   s   t d}tjtdd& t|||dd   W d    n1 sD0    Y  tjtdd. t|dd  |dd  | W d    n1 s0    Y  tjtdd t||d W d    n1 s0    Y  d S )Nr   zsame size as x and yr#  r1   zfloat array-liker  )r^   rf   r   r   r9  r#   r3   )r'  r+   r    r    r!   test_scatter_size_arg_size
  s    
4<z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg ddtjtjgdd}t| ds2J t jg ddtjtjdgdd}t| dsfJ d S )Nr  r1   r  r   rM  r1   r   r   r1   )r#   r3   r^   r  r:  
same_colorr8  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g d|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  rS  r1   r   r2   rM  Tr5   rq  rz   Zplotnonfiniter   r   r5   rq  rz   )rq  r   	r   r   r  r  Zset_badr3   r   r^   r  r'  r   r   r   rz   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g d|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  rS  r1   r   r2   rM  Fr1  r   r   r2  r3  r4  r    r    r!   test_scatter_no_invalid_color6
  s    z)TestScatter.test_scatter_no_invalid_colorc              	   C   s`   g d}t  }tjtdd. |j|||tddddd W d	   n1 sR0    Y  d	S )
r5  r  r6  r#  r7  rn   r   r   )r5   r8  r  r  N)r#   r  r   r   r9  r3   r:  r;  )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 )Nr1   r]  )r   r3   )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 )Nrn   r2   r   r]  )r^   rf   r   r3   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)NN)r  r  r  r   N)jauner:  r;  r   r   r   r   rx  )r	  z0.4r
  r  )r	  r  r
  C5)r	  r   r
  r<  r  r1   r   r   r   r  z0.0r<  r   r1   r   zc_case, re_keyc                 C   s   dd }d}ddd}|d ur0t jt|| dn(t|trRt|dkrRt jd	dnt }|( t	j
jj|d
i ||d W d    n1 s0    Y  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)rx  r:  r#  r   (argument looks like a single numeric RGBrK  )r5   ru  r  xsizeget_next_color_func)r   r   r9  r   r  r  r:  
contextlibnullcontextr   r  r   _parse_scatter_color_args)r'  Zc_caseZre_keyr@  rB  REGEXPZassert_contextr    r    r!   test_scatter_c
  s$    
zTestScatter.test_scatter_cc                 C   s   g dg}g dg}|  }|jtdtd|d |jtdd td|d |  }|jtdtd|d |jtdd td|d d S )N)r1   r   皙?)r1   r   rI  r   r   r  r   r2   r]  )r   r3   r^   r   r   )r'  r   r   ZrgbZrgbark   rj   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J q|j|t dddddg tddd d}t| g tddt	j
d	  d S )
Nr   r   ry  r+   r   r1   )r5   rw   rq  r>  C3lines.linewidth)r^   rf   r#   r   r   r3   rX   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parametrizer:  r;  r  r*  r   r   contextr+  r,  r0  r5  r6  r7  r8  r9  Zparams_test_scatter_crH  rJ  rM  r    r    r    r!   r  	  s   

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



		












+


r  )ru  c                K   s   | ||d ur|ni |fS r   r    )r5   rB  ru  r  r    r    r!   _params
  s    rQ  _resultz	c, colorszparams, expected_resultr  r  )r5   r  r  r]  r.  r  r  )r   r   r   r1   c                 C   s@   dd }t jjj| d|i\}}}||jks0J t||j d S )Nc                   S   s   dS r?  r    r    r    r    r!   r@  
  s    z5test_parse_scatter_color_args.<locals>.get_next_colorrC  )r   r  r   rF  r5   r   r  )paramsZexpected_resultr@  r5   r  Z_edgecolorsr    r    r!   test_parse_scatter_color_args
  s    rT  zkwargs, expected_edgecolorsr-  r  r   )r   ru  )r5   r   ru  )r   r   c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ksJJ d S )Nc                   S   s   dS r?  r    r    r    r    r!   r@  
  s    z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr5   ru  r2   )rB  rC  )popr   r  r   rF  )r  Zexpected_edgecolorsr@  r5   ru  r  Zresult_edgecolorsr    r    r!   (test_parse_scatter_color_args_edgecolors
  s    
rV  c                  C   sh   dd } t jtdd> tg dg dg}tjjj|d i d| d W d    n1 sZ0    Y  d S )	Nc                   S   s   dS r?  r    r    r    r    r!   r@  
  s    z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 ranger#  )r   r   r  )r   rT  gffffff?r2   r  rB  rC  )	r   r   r9  r^   r  r   r  r   rF  )r@  r5   r    r    r!   #test_parse_scatter_color_args_error
  s    
rX  c                  C   sv   G dd d} |  }|  }t j|_tjg d|d}t|tksDJ t  tjd|d}t|tksjJ 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 )NrY  )r   rY  r&  r    r    r!   _as_mpl_axes  s    z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r*  r+  r,  rZ  r[  r    r    r    r!   Polar  s   r\  r  r  y   )	r^   r   rY  r#   r  typer   r  r  )r\  ZprjZprj2r   r    r    r!   test_as_mpl_axes_api  s    r_  c                  C   sZ   t  \} }t  \}}t | |t  u s2J | t  u sBJ t |  t | d S r   )r#   r   Zscar  Zgcfr  )fig1r   fig2r   r    r    r!   test_pyplot_axes  s    

rb  c                  C   s   t  \} }|ttdd |jddd |  |jddd dd |j	|j
fD \}}|g d	ksrJ |g d
ksJ 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_textrC  r    r    r!   r   0  r   z.test_log_scales.<locals>.<listcomp>.<listcomp>)Z_update_ticks)r   rO  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   rQ  r   rb  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}}$)rc  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   rf  rg  rh  ri  )r#   r   r   r^   r   r   r  r  rc  rO   rR   )r'   r   r  Zyticksr    r    r!   test_log_scales)  s    

rk  c                  C   sR   t  \} }|jddd |jtd | |   krHdksNn J d S )Nr   )r  r  r1   r1   rn   )	r#   r   r   rO   r   r   ZMultipleLocatorr   r   r  r    r    r!   test_log_scales_no_dataU  s    rm  c                  C   s   t  \} }|d tjtdd |dd W d    n1 sF0    Y  |d tjtdd |dd W d    n1 s0    Y  d S )Nr   zAttempt to set non-positiver#  r|   rn   )	r#   r   rc  r   r:  r  r|  r  r}  r&   r    r    r!   test_log_scales_invalid\  s    
*
rn  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|g dd |d |d	 d S )Nr   rn   r   r   r1   r  r2   r   rn   )r   r  )r+   rJ  r  y3r+   rJ  r  rp  )r$  C1C2)ri  r  )	r#   r   r^   r   r   	stackplotr|  r}  r   )r'   r+   rJ  r  rp  r   ri  r    r    r!   test_stackplotf  s    


rt  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   r1   r   r2   r   rn   )r^   r  r   r_   exprf   )r  r  r   r  jr+   r,   r  r    r    r!   layers  s    >z'test_stackplot_baseline.<locals>.layersr   r   rf  r2   r  Zzeror  r  symr1   r   Zwiggler  Zweighted_wiggle)r^   r_   r`   r#   r   rs  r   r  )rw  r  r'   rI  r    r    r!   test_stackplot_baseline{  s    

rz  c                 C   s   | S r   r    )rq  r    r    r!   r    r   c                 C   s   t jd tjjt jjddddfi | }t \}}|	ddrR|
d n
|d |	d	d
sxtjd tjd< |j||fi | d S )N  ro  r   )r  r   )meansigmar  vertTr   patch_artistFrL  boxplot.boxprops.linewidth)r^   r_   r`   r   ZcbookZboxplot_statsZ	lognormalr#   r   getr  rc  r   Zbxp)stats_kwargstransform_stats
bxp_kwargsZlogstatsr'   r   r    r    r!   _bxp_test_helper  s    
r  zbxp_baseline.pngr=  )r  r   c                   C   s
   t   d S r   r  r    r    r    r!   test_bxp_baseline  s    r  zbxp_rangewhis.pngc                   C   s   t tddgdd d S )Nr   r   Zwhisr  r  r  r    r    r    r!   test_bxp_rangewhis  s    r  zbxp_percentilewhis.pngc                   C   s   t tddgdd d S )Nr   _   r  r  r  r    r    r    r!   test_bxp_percentilewhis  s    r  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   s$   t | tdD ]\}}||d< q| S NABCDr)   r{  r  statsrq  r)   r    r    r!   r     s    
z(test_bxp_with_xlabels.<locals>.transform)r  r  r   r    r    r!   test_bxp_with_xlabels  s    r  zbxp_horizontal.pngr   )rF  r  r   r   c                   C   s   t tddd d S )NFr~  r  r  r    r    r    r!   test_bxp_horizontal  s    r  zbxp_with_ylabels.png)r  r   r   c                  C   s   dd } t | tddd d S )Nc                 S   s$   t | tdD ]\}}||d< q| S r  r  r  r    r    r!   r     s    
z(test_bxp_with_ylabels.<locals>.transformFr  r  r  r  r  r    r    r!   test_bxp_with_ylabels  s    r  zbxp_patchartist.png)rF  r  r   c                   C   s   t tddd d S )NT)r  r  r  r    r    r    r!   test_bxp_patchartist  s    r  zbxp_custompatchartist.pngr   c                   C   s    t tdtdddddd d S )NTr  r   :)r   r   r  )r  boxpropsr  r  r    r    r    r!   test_bxp_custompatchartist  s    r  zbxp_customoutlier.pngc                   C   s   t ttdddddd d S )Nr   r  r  r   rw   mfc)Z
flierpropsr  r  r    r    r    r!   test_bxp_customoutlier  s    r  zbxp_withmean_custompoint.pngc                   C   s    t tdtdddddd d S )NTr   r  r   r  )	showmeansZ	meanpropsr  r  r    r    r    r!   test_bxp_showcustommean  s    r  zbxp_custombox.pngc                   C   s   t ttdddddd d S )Nr  r  r   r   r   r  )r  r  r  r    r    r    r!   test_bxp_custombox  s    r  zbxp_custommedian.pngc                   C   s   t ttdddddd d S )Nr  r  r   r  )Zmedianpropsr  r  r    r    r    r!   test_bxp_custommedian  s    r  zbxp_customcap.pngc                   C   s   t ttdddddd d S )Nr  r  r   r  )Zcappropsr  r  r    r    r    r!   test_bxp_customcap  s    r  zbxp_customwhisker.pngc                   C   s   t ttdddddd d S )Nr  r  r   r  )Zwhiskerpropsr  r  r    r    r    r!   test_bxp_customwhisker  s    r  zbxp_withnotch.pngc                   C   s   t tddd d S )NT)Zshownotchesr  r  r    r    r    r!   test_bxp_shownotches'  s    r  zbxp_nocaps.pngc                   C   s   t tddd d S )NF)Zshowcapsr  r  r    r    r    r!   test_bxp_nocaps/  s    r  zbxp_nobox.pngc                   C   s   t tddd d S )NF)Zshowboxr  r  r    r    r    r!   test_bxp_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)rU  )r  rq  r    r    r!   r   D  s    z*test_bxp_no_flier_stats.<locals>.transformF)Z
showfliersr  r  r  r    r    r!   test_bxp_no_flier_stats?  s    r  zbxp_withmean_point.pngc                   C   s   t tdddd d S )NTFr  Zmeanliner  r  r    r    r    r!   test_bxp_showmeanM  s    r  zbxp_withmean_line.pngc                   C   s   t tdddd d S )NTr  r  r  r    r    r    r!   test_bxp_showmeanaslineU  s    r  zbxp_scalarwidth.pngc                   C   s   t tddd d S )Nr  rS  r  r  r    r    r    r!   test_bxp_scalarwidth]  s    r  zbxp_customwidths.pngc                   C   s   t tg ddd d S )N)r   r  g?g333333?rS  r  r  r    r    r    r!   test_bxp_customwidthse  s    r  zbxp_custompositions.pngc                   C   s   t tg ddd d S )N)r1   r   r`  r  rI  r  r  r    r    r    r!   test_bxp_custompositionsm  s    r  c                   C   s@   t t" ttdgdd W d    n1 s20    Y  d S )Nr1   rS  r  r   r   r9  r  r  r    r    r    r!   test_bxp_bad_widthsu  s    r  c                   C   sB   t t$ ttddgdd W d    n1 s40    Y  d S )Nr2   r   rI  r  r  r    r    r    r!   test_bxp_bad_positionsz  s    r  zbxp_custom_capwidths.pngc                   C   s   t tg ddd d S )N)ra  r   r   r   rR  r  r  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  rR  r  r  r    r    r    r!   test_bxp_custom_capwidth  s    r  c                   C   s@   t t" ttdgdd W d    n1 s20    Y  d S )Nr1   rR  r  r  r    r    r    r!   test_bxp_bad_capwidths  s    r  rM  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  '  r1   	bootstrapnotchr  r   r+   )r  r  ri  	r^   r_   r`   r   hstackr#   r   rM  r}  )r+   r'   r   ri  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  r1   rc  r   )r  rP  )r^   r   r  r#   r   rM  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  r1   r2   r  ^)r  rx  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  rx  r  )r^   r   r  r#   r   rM  r}  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   r2   r  r1   r  )r  r   T)r  r  Z	autorange)	r^   r_   r`   r   r  r#   r   rM  r}  )r+   r`  r   ra  r   r    r    r!   test_boxplot_autorange_whiskers  s    

r  c                 C   sZ   t ddd}t d|dg}t| | ||g W d    n1 sL0    Y  | S )Nr  r  r  r  r  )r^   r   r  rL   r
   rM  )r   rc_dictr+   r    r    r!   _rc_test_bxp_helper  s
    ,r  Zboxplot_rc_parameters)r  rF  r   r   c                  C   s   t jd td\} }dddgdddd	ddd
dddd
ddd
ddd
d}dddgdd}ddddddddd
dddd}|||g}t||D ]\}}t|| qtjj	dd |d 
 D v sJ d S )Nr{  r   Tr   r  r  r  r   r  r  r   r  r5   rS  )zboxplot.notchboxplot.whiskerszboxplot.bootstrapzboxplot.flierprops.colorboxplot.flierprops.markerz"boxplot.flierprops.markerfacecolorz"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylezboxplot.flierprops.linewidthzboxplot.boxprops.colorr  zboxplot.boxprops.linestylezboxplot.capprops.colorzboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorzboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.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    )r^  rC  r    r    r!   r   &  r   z.test_boxplot_rc_parameters.<locals>.<listcomp>r1   )r^   r_   r`   r#   r   r{  r  rL   r   r   Zget_children)r'   r   Zrc_axis0Zrc_axis1Zrc_axis2	dict_listrO  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  rl  r  rm        @r  r   r1   )r  usermediansconf_intervalsr  r  )
r^   r_   r`   r   r  r#   r   r  rM  r}  )r+   r'   r   ZCIsr    r    r!   test_boxplot_with_CIarray)  s    r  zboxplot_no_inverted_whisker.pngc                  C   sP   t jg dt jd} t }||  |d |jjddd |j	d d S )N)r   i(#  r  X   i^  i@ ix  i  rT  r   Fminorwhich)
r^   r  r~  r#   r  rM  r  rR   r  rO   )r+   r   r    r    r!   test_boxplot_no_weird_whisker;  s    


r  c                  C   s   t ddd} t d| dg} t \}}tt" |j| ddgd W d    n1 s\0    Y  tt. |j| | gddgddggd W d    n1 s0    Y  d S )	Nr  r  r  r  r  r1   r2   )r  	r^   r   r  r#   r   r   r   r9  rM  r  r    r    r!   test_boxplot_bad_mediansG  s    0r  c                  C   s   t ddd} t d| dg} t \}}tt( |j| | gddggd W d    n1 sb0    Y  tt, |j| | gddgdggd W d    n1 s0    Y  d S )	Nr  r  r  r  r  r1   r2   )r  r  r  r    r    r!   test_boxplot_bad_ciQ  s    6r  c                  C   sZ   t d} t \}}|| d d  dks4J |j| ddd d  dksVJ d S )Nrn   boxesr   r2   r  )r^   rf   r#   r   rM  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sZJ qZqN|d d  dksJ |d d  dksJ d S )Nrq  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^   rf   rM  
get_marker)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   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d q2q&d S )N)r  r  r  r  Q?gQ?gQr   r  r   )r#   r   rM  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_   ra   r   r  r    r    r!   r     r   z1test_vert_violinplot_baseline.<locals>.<listcomp>r   r   rJ  r  showextremashowmediansr  )rJ  r  r  r  ri  )r^   r_   r`   r   r#   r  
violinplotr   )ri  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     r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>r   r1   r   r  r#   r  r^   r_   r`   r   r  r   ri  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     r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>r   r   r1   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     r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>r   r   r1   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     r   z0test_vert_violinplot_showall.<locals>.<listcomp>r   r1   r   ?r   r  r   r  rT  r  )rJ  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     r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r   r   rn   rJ  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     r   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     r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>r   Fr   rJ  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     r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r   Fr   r1   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     r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r   Fr1   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     r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r   Fr   r1   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     r   z1test_horiz_violinplot_showall.<locals>.<listcomp>r   Fr1   r   r  r   r  r   r  rT  r  )rJ  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     r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r   Fr   rn   rJ  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     r   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   sf   t  } tjd dd tdD }tt" | j	|tdd W d    n1 sX0    Y  d S )Ni@ 3c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r     r   z1test_violinplot_bad_positions.<locals>.<listcomp>r   r   rI  
r#   r  r^   r_   r`   r   r   r   r9  r  r  r    r    r!   test_violinplot_bad_positions  s
    r  c                  C   sl   t  } tjd dd tdD }tt( | j	|tdg dd W d    n1 s^0    Y  d S )NiA#c                 S   s   g | ]}t jjd dqS r  r  r  r    r    r!   r   !  r   z.test_violinplot_bad_widths.<locals>.<listcomp>r   r  )rJ  rQ  r  r  r    r    r!   test_violinplot_bad_widths  s
    r  c                  C   sl   t  } tjd tjjddg}tt* | j	|ddgddggd W d    n1 s^0    Y  d S )	Nil r   r  r   r   r   r  r  
r#   r  r^   r_   r`   ra   r   r   r9  r  r  r    r    r!   test_violinplot_bad_quantiles&  s
    r  c                  C   s   t  } tjd tjjddg}tt$ | j	|g dgd W d    n1 sX0    Y  tt$ | j	|g dgd W d    n1 s0    Y  d S )Niq4r   r  )r   r   r   ?r  )gr   r   rn  r  r  r    r    r!   $test_violinplot_outofrange_quantiles1  s    2r  c                 C   sV   t jd t jjddg}|  }|j|g dd | }|j|g dgd d S )N+r   r  )r   r   r  r  )r^   r_   r`   ra   r   r  )r   r   ri  r   r    r    r!   %test_violinplot_single_list_quantiles@  s    r
  c                 C   s   t jd |jt jjddg dd}|jt jjddtdd}|t jjdd}|  |||g | |j|j|jg d S )	Nr	  r  r  )r  r  r  r`  r   r   r   rm  r  Z	ABCDEFGHIr[  )	r^   r_   r`   r  ra   r  r   r  r  )r   r   rN  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   rn   r   r  r1   r2   F)rJ  Zmanage_ticks)
r#   r   r|  r   r^   r_   r`   ra   rM  r   )r  r   Zold_xlimrJ  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sVJ t	|
 ddgksnJ dd | D dd	gksJ d S )
Nr   r   rI  r   )r  rc  c                 S   s   g | ]}|  qS r    re  rC  r    r    r!   r   m  r   z+test_boxplot_not_single.<locals>.<listcomp>r   5)r#   r   rM  r^   r_   ro   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   r1   z	font.sizeP   raw)r  format)r#   r   rL   r   updateioBytesIOsavefigr  r    r    r!   test_tick_space_size_0p  s    r  )errorbar_basicZerrorbar_mixedr  c            
   	   C   s  t jdddt jd} t |  }ddt |   }d| }t }| }|j| |ddd |	d tj
d	d	d
d\}}|d }|j| ||dd |	d |jdd |d }|j| ||ddd |	d |d }|j| ||d	| g|d	| gdd |	d |d }|d t d|| }|| }|j| ||d	| g|ddd	d |	d |dd |d | |d }	t }| }|jd!d"dd|	d# |	d d S )$Nr   r   r   rT  r   rT  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr2   T)r  r  rV  r  r   r  r   zVert. symmetricZnbinsr  )r  r   r  zHor. symmetric w/ alphary  z--or  r  r   zH, V asymmetricr  r   rc  r  )r  r  r   ecolorZcapthickzMixed sym., log yr  zVariable errorbarsr   r+   r,   r  r  ri  )r^   rf   Z
longdoubleru  r(  r#   r   r  r  r.   r   locator_paramsr  maximumr}  Zsuptitle)
r+   r,   r  r  r'   r   rI  ZylowerZ
yerr_lowerri  r    r    r!   test_errorbary  sD    


$




r%  Zmixed_errorbar_polar_capsc                  C   s  t  } t jddd}g d}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 }g dg dg}g dg d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.
    rW  r  r  r  r  r   ffffff?r   r   r  r  r   r2   r   g?r  r  r  r   r   rs  )r   r   r   )r   r   r   )r&  r   r   )r   r&  r    @@rn   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|J t| tdksJ t| tdksJ d S )Nrn   r2   r]  r   r$  rq  rr  )	r#   r   r^   rf   r  r   r:  to_rgba	get_color)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|g dD ]>\}}|j ||d dd	d
d |j ||d dd	|d
d qBd S )Nr   r   r   c                    s   g | ]}t   | qS r    )r^   ru  )r   r  r+   r    r!   r     r   z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)r$  rq  rr  rK  r  r  r   rK  )r  r   rw   r!  )r  r   rw   r   r!  )r^   rf   r   r   r{  r  )r   r   r,   ZaxtZaxryir   r    r.  r!   test_errorbar_cycle_ecolor  s    r0  c                  C   s  t  } |  }tddd}t| }ddt|  }t|d| fj}d| }t	
t" |j|||dd W d    n1 s0    Y  t	
t" |j|||dd W d    n1 s0    Y  t	
t$ |j||||dd	 W d    n1 s0    Y  d S )
Nr   r   r   r   r2   r   r  )r  r   r   )r#   r   r  r^   rf   ru  r(  vstackr  r   r   r9  r  )r'   r   r+   r,   Zyerr1r  r  r    r    r!   test_errorbar_shape  s    00r2  Zerrorbar_limitsc                  C   s\  t ddd} t |  }d}d}d}t \}}|j| ||||dd t | }d|g d	< |j| |d ||||d
d t | }d|g d< |j| |d ||||dd |j| |d dd|||||dd
 d}t | d}d|ddg< |}	|}
t | }t | }d|dg< d|dg< |j| |d dd|||	|
||ddddd |d |	d d S )Nr   rc  r   r   dottedr   )r  r  r  r   T)r1   r   r  r   )r  r  uplimsr  r   )r2   r   r  r   r  )r  r  lolimsr  r   r   r   r  magenta)rw   r  r  r  r5  r4  r  r   r   r   r`  r(  r   r   Zcyan)rw   r  r  r  xlolimsxuplimsr4  r5  r  r  capsizer   )r   rc  zErrorbar upper and lower limits)
r^   rf   ru  r#   r   r  Z
zeros_likeZ	full_liker|  r.   )r+   r,   r  r  r  r'   r   r4  r5  r7  r8  r    r    r!   test_errorbar_limits  sH    






r:  c                  C   sd   t d} t d}tj| |dddd\}}}|d u s:J |D ] }t | tdks>J q>d S )Nr   r1   r   r'  r$  )r^   rf   r#   r  r  r,  r:  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sLJ | dks\J d S )Nr   r1   Nonerq  rX   z	steps-midroundr  r  Zbevel)
r  r  r  rw   r  r  Zdash_capstyleZdash_joinstyler  r  )r^   rf   r#   r  Zget_fillstyleZget_drawstyle)r+   r,   r;  r  r    r    r!   "test_errorbar_line_specific_kwargs=  s    

r?  c              	   C   s  |  }|jg dg dddddd |jg dg ddd	d
ddd |jg dg ddddddd |dd tg dg dg dg dd}tjd|d |   }|jg dg ddd |jg dg ddd	d |jg dg dddd |dd d S )N)r2   r   rn   r  r   r  rq  rS  )r+   r,   r  r  rw   r  r2   r   r   z	tab:greenr  r,   )r+   r,   r  r   r  rw   r  r   r   r`  ztab:bluer  r   r5   )r+   r,   r  r   r  rw   r  r1   r[  )r  r  r  )rq  rq  r   )rS  r,   r5   )r  r  r  )r  rw   r  r   r  )Z
prop_cycler+   r,   r  )r+   r,   r  r   )r+   r,   r  r   )r   r  r|  r	   r#   rc)r   r   r   Z_cycler    r    r!   test_errorbar_with_prop_cycleN  s(    rD  c                  C   s8  t ddd} | d|   }|d }t  }tjtdd" |j| ||dd W d    n1 sd0    Y  tjtdd" |j| ||d	d W d    n1 s0    Y  tjtd
d& |j| ||ddgd W d    n1 s0    Y  tjtdd" |j| ||dd W d    n1 s*0    Y  d S )Nr   r1   r   r`  znot a tuple of two integersr#  r  )
errorevery)r   r   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	r^   r   r#   r   r   r   r   r9  r  )r+   r,   r  r   r    r    r!   test_errorbar_every_invalidc  s    004rF  c                  C   sX  t   } tjtdd6 | jdgdgdgdggdgdggd W d    n1 sV0    Y  tjtdd, | jdgdgdgdggd W d    n1 s0    Y  tjtdd, | jdgdgdgdggd	 W d    n1 s0    Y  tjtdd@ td
}dd |D }| j||t	j
ddd	 W d    n1 sJ0    Y  d S )Nz''xerr' must not contain negative valuesr#  r   r\  r1   )r+   r,   r  r  )r+   r,   r  z''yerr' must not contain negative valuesrB  r   c                 S   s"   g | ]}t  d d|d d qS )rX  r  r2   r1   r  r/  r    r    r!   r     r   z/test_xerr_yerr_not_negative.<locals>.<listcomp>r7  r  )r#   r   r   r   r   r9  r  r^   rf   r  r  )r   r+   r,   r    r    r!   test_xerr_yerr_not_negativet  s,    D::

rH  c           	   
   C   s6  t ddd}|d|  }|d }| }|  }tdg dD ]p\}}|d7 }|j||||dfd|d	 |j|||d
d |j||d d ||d d ||d d d|dd q@|j||d |dddd |j|dd d |dd d d dd
d |j||d |ddd |j||d |tdd dtdd ddddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd |j||d |g dd g dd dddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd d S )Nr   r1   r   r`  Zrgbk)r   r   r2   r  r  r   )rE  r9  r5   r(  )r5   r  r   )r9  r5   r   r   )r1   r   r   )r  r9  r   r  )r9  r   r   r2   r   r$  )rE  r  r9  r5   r   r  r   rq  )r^   r   r   r{  r  r   r  )	r   r   r+   r,   r  rk   rj   r   shiftr    r    r!   test_errorbar_every  sB    (*
,,
,,rJ  
elinewidthr  c                 C   s"   t jg dg dg d| d d S )Nr  )r  rK  )r#   r  )rK  r    r    r!   test_errorbar_linewidth_type  s    rL  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   r1   r2   r   r   r`  r   r$  r   )r   r   r^   r  r  r  )r   r   r   xsysesr    r    r!   test_errorbar_nan  s    rQ  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 )Nr1   r   r  r   rn   rf  r  Tr  r+   )r  r  ri  r^   r   r#   r   r  )d1d2r'   r   ri  r    r    r!   test_hist_stacked_stepfilled  s    rU  Zhist_offsetc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   rn   rf  r1   r   r  r   r  r   rR  rS  rT  r'   r   r    r    r!   test_hist_offset  s
    rW  zhist_step.pngc                  C   sD   t ddd} t \}}|j| dd |dd |dd	 d S )
Nr1   r   r  r  r  r   rn   r|   r   )r^   r   r#   r   r  r}  r|  rS  r'   r   r    r    r!   test_hist_step  s
    rY  zhist_step_horiz.pngc                  C   s@   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   rn   rf  r1   r   r  r  rH   )r  rJ   rR  rV  r    r    r!   test_hist_step_horiz  s    rZ  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   rn   rf  r1   r   r  rc  r  rI  r   r  T)weightsr  r  rR  )rS  rT  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 nLtjt	d	d
. |j|t |dddddd W d    n1 s0    Y  |
  d S )Nr   r2   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr)   
deprecatedr#  F)ra  rb  rc  r)   r]  )r^   r   r   r#   r   stemr  r   r:  r   rA   r]  r+   r'   r   r    r    r!   	test_stem  s    $rg  c                  C   s   dd } t  \}}g d}g d}| ||g d|fd | |||||fd | |j||dd||fd | |||d||fd | |j||dd	d
||fd | |j|ddg d|fd | ||dg d|fd dS )z5Test that stem() correctly identifies x and y values.c                 S   s8   t t| j \}}||d ks$J ||d ks4J d S Nr   r1   )mapr  
markerliner  )stem_containerexpectedr+   r,   r    r    r!   _assert_equal  s    z%test_stem_args.<locals>._assert_equalr1   r   r   r  r  r  r  )rl  r	  ra  zb--)ra  rc  Nr#   r   re  rm  r'   r   r+   r,   r    r    r!   test_stem_args  s    rs  c                  C   s  ddd} t  \}}g d}g d}| |||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urt | j |sJ |dur<t | j |s<J |durV| j |ksVJ | j dkshJ dS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr=  )r:  r/  Z	stemlinesr,  rj  r  get_linestyle)rk  	linecolormarkercolorrw   r    r    r!   rm  *  s    z*test_stem_markerfmt.<locals>._assert_equalrn  ro  r$  r   )rv  rw   r+   )rb  r  r  )ru  rv  rw   r  Zgxr`  r=  r   rp  )ra  rb  )NNNrq  rr  r    r    r!   test_stem_markerfmt(  sb      
rw  c                  C   s@   t dd\} }tjdtjdg}ddg}||| d S )Nr1   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r#   r   dateutilparserparsere  )r'   r   rN  rO  r    r    r!   test_stem_datesi  s    

r{  zstem_orientation.pngc              
   C   s   t ddt j d}t \}}| rB|j|t |ddddd nLtjt	d	d
. |j|t |dddddd W d    n1 s0    Y  d S )Nr   r2   rf  r^  Zkxr_  rH   )ra  rb  rc  rJ   rd  r#  F)ra  rb  rc  r]  rJ   )
r^   r   r   r#   r   re  r  r   r:  r   rf  r    r    r!   test_stem_orientationq  s    r|  Zhist_stacked_stepfilled_alphac                  C   sB   t ddd} t ddd}t \}}|j| |fddd	d
 d S )Nr1   r   r  r   rn   rf  r  Tr   )r  r  r  rR  rV  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 )
Nr1   r   r  r   rn   rf  r  Tr  rR  rV  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 )	Nr1   r   r  r   rn   rf  T)r  r  rR  rV  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 )Nr1   r   r  rn   r  )rF   r  )r^   r   r#   r   r  rf   rX  r    r    r!   test_hist_step_bottom  s    r  c                  C   s   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgddgddgddgddgddgg}t| | d S )	Nr   r1   r2   r   r   r   r1   r1   r1   r2   r  r  r  r   r2   r1   r   r#   r  r   get_xyr  ri  r  polygonrk  r    r    r!   test_hist_stepfilled_geometry  s    *$r  c               	   C   sn   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgg}t| | d S )	Nr  r  r  r  r   r2   r1   r   r  r  r    r    r!   test_hist_step_geometry  s    4r  c                  C   s   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgd
dgd
d
gdd
gddgddgg}t| | d S )Nr  r  r1   r2   r   r  r  rF   r  r   r1   r   r   r2   r  r   r  r  r    r    r!   $test_hist_stepfilled_bottom_geometry  s    *$r  c               	   C   st   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgg}t| | d S )Nr  r  r  r  r  r   r1   r   r   r2   r  r   r  r  r    r    r!   test_hist_step_bottom_geometry  s    4r  c                  C   s  g d} g d}g d}t j||g| ddd\}}}t|dksDJ |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgddgddgd	dgd	dgddgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg}t| | d S )Nr  r  r  Tr  r  r  r  r2   r   r1   r   r   r#   r  r  r   r  r  Zdata_1Zdata_2r  r   r  rk  r    r    r!   %test_hist_stacked_stepfilled_geometry  s&    

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| ddd\}}}t|dksDJ |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t| | d S )Nr  r  r  Tr  r  r2   r   r1   r   r   r  r  r    r    r!   test_hist_stacked_step_geometry  s    

4
4r  c                  C   s"  g d} g d}g d}t j||g| dg ddd\}}}t|dksJJ |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
d
gd	d
gg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t| | d S )Nr  r  r  Tr  r  r  r  rF   r  r2   r   r1   r   r   r  r   r   r`  r  r  r  r    r    r!   ,test_hist_stacked_stepfilled_bottom_geometry  s(    

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| dg ddd\}}}t|dksJJ |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgg}t| | d S )Nr  r  r  Tr  r  r  r2   r   r1   r   r   r  r   r   r`  r  r  r  r    r    r!   &test_hist_stacked_step_bottom_geometry  s     

4
4r  Zhist_stacked_barc                  C   sn   g dg dg dg dg dg dg} g d}g d}t  \}}|j| d	d
d||d |jdddd d S )N)r   r   r   r   r  @  i  r  r  rW  6  rV  )r     rf  r[  r   i  )rY  rY  rY  r  r  r     )r  r  r  r  r  r  r   r   r   r   rn   r  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   ra  )ra  r   g `p?)ra  r   gǟ?)ra  gˢ`?r   )gC?ra  r   )gK?ra  r   )r   rc  z yellowr6  rK  rn   r  mid)r  r  r  r   r)   zupper right)r   r   r1   )r9   Zbbox_to_anchorr  )r#   r   r  rA   )r  r  labelsr'   r   r    r    r!   test_hist_stacked_bar)  s    r  c                  C   sD   t ddg} tjddgddggdd| d |  ddgks@J d S )Nrn   r  r   r1   r2   r  )r  rF   )r^   r  r#   r  tolistr  r    r    r!   %test_hist_barstacked_bottom_unchanged;  s    r  c                  C   s,   t  \} }|jg tdtdgdd d S )Nrn   r  r  )r#   r   r  r   r&   r    r    r!   test_hist_emptydataA  s    r  c                  C   s   t  \} }|jddgdd\}}}|d  dks8J |jddgdgd\}}}|d  dksfJ |jddgd d\}}}|d  dksJ |jddgdd\}}}|d  dksJ |jddgdd\}}}|d  dksJ d S )Nr   r1   r  r  ru  Z00)r#   r   r  rP   )r'   r   r  rz  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   rf  r  r   r   )r  r}   r^   r_   r`   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 ]}|g d qd S )Nr2   r  r.  r=  r  )r   r   r1   r   r   r   r  )r  r  r1   r   )r  r  r  r   r+   )r  r  )r|   r   r   r   )r#   r   r  rG  r   rO  )r'   rI  ZrcolorsZbcolorsalphaskwr  r  rv  ZrcolorrS  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   r  r1   r|   r   )r#   r   r   r^   r   r   r  r1  r  r  transProjectionr   invertedr   r   )r'   r   ZlonZlatllrk  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   r1     r   )r#   r   r   r^   r   r  r1  r  r  r  r  r   r   r   )r'   r   r+   r,   rk  r  xy2r    r    r!   &test_mollweide_inverse_forward_closure  s    r  
test_alphac               	   C   s   t jd t jd} t \}}|j| dg dg dddd |j| d	 dg dg dddd
d |j| d dg dg ddddd |j| d dg dg dddd |j| d dg dg dddd d S )Nr   rf  z-Dr  r=  r  rn   )r   r  r}   r  r2   r1   )r   r  r}   r  r  r   r   r`  r  r  r  r    r    r!   r    s(    	eventplotc                  C   sT  t jd t jddg } t jddg }| | }t|}g dgt|  }g dg dg dg d	g d
g dg}|| }dt dt| d  }g d}| | }	dgt|  }
g d}|
| }t }| }|j	|||	|d}t|}||ksJ |||	|d}t }| }|j	dddd|d}t|}||ksPJ d S )Nr   rt   r  r`  )r   r1   r  r  r>  r  )r1   rn  r   )r1   r   r1   )r   r1   r1   ru  Q?)ire  r1   r   r`  rn   )r   r2   r1   r1   r   r   )r  lineoffsetslinelengths)r   r5   lor  r   r5   r  r  )r  r  r  ri  )
r^   r_   r`   r  r  rf   r#   r   r   r  )r  data2ri  Znum_datasetsZcolors1Zcolors2r  Zlineoffsets1Zlineoffsets2r  Zlinelengths1Zlinelengths2r  r'   axobjZcollsZnum_collectionsr    r    r!   test_eventplot  sF    

r  ztest_eventplot_defaults.pngc                  C   sZ   t jd t jddg } t jddg }| | }t }| }|| dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   rt   r  r`  N)r^   r_   r`   r  r#   r   r   r  )r  r  ri  r'   r  r    r    r!   test_eventplot_defaults  s    r  r  ))r	  )z
tab:orangeztab:pinkztab:cyanZbLacK)r  r>  N)r1   r   r1   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   r1   r2   r   c                 S   s   g | ]}|d ur|ndqS )Nr$  r    r   r5   r    r    r!   r   	  r   z)test_eventplot_colors.<locals>.<listcomp>r   r  N)r  r^   r  r:  Zto_rgba_arrayr#   r   r  r{  r   r,  )r  ri  rl  r'   r   r0  r)  r   r    r    r!   test_eventplot_colors  s    r  c                  C   s*  t  \} }|jg dg dgdd}|d  dks:J |d  dksNJ |jg dg dgddgd}|d  dksJ |d  dksJ tjtdd	. |jg dg dgg d
d W d    n1 s0    Y  tjtdd	& |jg dddgd W d    n1 s0    Y  d S )N)r   r2   r   )r1   r   r   r  r  r  r   r1   r   zalpha and positions are unequalr#  )r   r  r  )r#   r   r  	get_alphar   r   r9  )r'   r   r0  r    r    r!   test_eventplot_alpha  s    <r  z!test_eventplot_problem_kwargs.pngc              	   C   s   t jd t jdg }t jdg }||g}t }| }|j|ddgddgdd	gd	dgd
dgddgd t| dksJ t	dd | D sJ dS )z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   r  rn   r  r  r5   r  r2   r1   r   Zdasheddashdotr3  )r  r   r>  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_   r`   r  r#   r   r   r  r  r  )Zrecwarnr  r  ri  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 )Nr1   )ra  ra  ra  ra  r  r#   r   r  r   r&   r    r    r!   test_empty_eventplotJ  s    r  ri  rJ   )NZverticalrH   c                 C   sB   |du ri nd|i}t dd\}}|j| fi | t   dS )z#Introduced when fixing issue #6412.NrJ   r1   r  )ri  rJ   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 )	NrX  r1   r2   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g|}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  r^  r.  r    r    r!   r  q  r   z$test_marker_styles.<locals>.<lambda>)r  r   r2   r   rn   r   )r   rw   r}   r)   )r#   r   sortedrL   markersr  r  rG  r   r^   rf   r   )r'   r   r  r,   rw   r    r    r!   test_marker_stylesi  s    


.r  zrc_markerfill.pngc                  C   sP   t  \} }td}tg dD ](\}\}}|tjd< |j|| |d q"d S )Nr  ))r7   rq  )rF   r   )r   r  zmarkers.fillstyler  )r#   r   r^   rf   rG  rL   r   r   )r'   r   r+   idxr   rw   r    r    r!   test_markers_fillstyle_rcparamsy  s    

r  zvertex_markers.pngc                  C   sr   t td} d}g d}t \}}|j| d|dd |j| d d d d|dd |ddg |ddg d S )Nrn   ))r|   r|   r  r  r  r   rS  r  r|   r  )r  r   r#   r   r   r|  r}  )ri  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 )Nrn   r   )r  r  r1   r  )r   r  r  r   r  r  r2   rS  r   zaxvline and axhline zorder testr  )r  r  r  r   )r  r   r  zerrorbar zorder test)r  r   r#   r   r  r   rh   axvliner.   r^   r  r  )r+   r'   r   r,   r  rv  r    r    r!   test_eb_line_zorder  s&    

r  c                 C   s   |   }|jddd |ddgddgd |jddd	d
 |  }|jddd |ddgddgd |jddgddgd	d
 d S )N)r   rn   )rg  r1   r  r   r  z.-)r1   rg  )rn   rc  rS  r]  r1   rn   rg  rc  )r   r   rX  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  ry  rq  r  )r   r   r1   r   rr  )gffffffr\  r   rK  )sloper   )r1   r\  r\  ZC4)r\  r1   infr<  r|   r1   r   )r   r   r  rW  r   rh   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  r1   r  r   r  rq  r  r   r   r   r   r   rr  )r   r   )r   r1   rK  )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  r1   r  r  r2   rq  r  r   rr  )r   r   ro  r   r   rn   r  )r   r   r  r   set_size_inchesr   r   r    r    r!   test_axline_transaxes_panzoom  s    r  c                  C   sV  t  \} }tt |d W d   n1 s60    Y  tt  |jdddd W d   n1 sp0    Y  |d tt |jddd W d   n1 s0    Y  |d |d tt |jddd W d   n1 s0    Y  |d tt$ |dd t 	  W d   n1 sH0    Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r1   )r  r   rb  )
r#   r   r   r   r   r  rc  r  r9  r   r&   r    r    r!   test_axline_args  s     (.
,

,
r  )Zvlines_basicZvlines_with_nanZvlines_maskedc                  C   s  g d} g d}t  \}}|j| d|ddd g d}dd	d
dtjdg}t jd
dd\}\}}}	|j|d|ddd g d}
tjdd	d
ddg}|j|
d|dd
dd g d}tjdd	d
dtjg}|	j|d|ddd ||||	fD ]}|dd q| | ks
J | | ks J | |	 ks6J t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S N)r2   r   r   r   r  )r2   r   r  r2   r   r  r   r  r   )r2   r   r   r   r`  r  r2   r  r   r  )r   r  )r  r  r  r  )r  r   r   rS  rn   )r2   r   r`  r  rn   ru  )r   r1   r|   r   r2   r1   )r  r  r   r     rY  rY  r   )	r#   r   rg   r^   r  r|  r   r   masked_equal)rH  rJ  r`  r   r  r  ra  r   r   r  x3rp  x4y4r   fig3ax5Zx5Zymin5Zymax5r    r    r!   test_vlines
  s2    r  c                  C   sb   t  \} }tddi4 |ddd}tj| ds@J W d    n1 sT0    Y  d S Nzlines.colorr  r   r   r1   )r#   r   r   r
   rg   r  r/  r,  r'   r   r  r    r    r!   test_vlines_default2  s    r  )Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   s  g d} g d}t  \}}|j| d|ddd g d}dd	d
dtjdg}t jd
dd\}\}}}	|j|d|ddd g d}
tjdd	d
ddg}|j|
d|dd
dd g d}tjdd	d
dtjg}|	j|d|ddd ||||	fD ]}|dd q| | ks
J | | ks J | |	 ks6J t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S r  )	r#   r   hlinesr^   r  r}  r   r   r  )rJ  rH  r`  r   r  r  ra  r   r   r  rp  r  r  r  r   r  r  Zy5Zxmin5Zxmax5r    r    r!   test_hlines9  s2    r  c                  C   sb   t  \} }tddi4 |ddd}tj| ds@J W d    n1 sT0    Y  d S r  )r#   r   r   r
   r  r  r/  r,  r  r    r    r!   test_hlines_defaulta  s    r  r   r  r   c                 C   s   g d}|  dddj|dd|dd |  dddj|dd|dd g d}g d}| dddj|dd|dd | dddj|dd|dd d S )	N)r  r   r   rf  rc  r2   r1   r   r   r  )r1   r2   r   r   )r  r   r   rc  )r   rg   r  )r   r   ri  Ztest_colorsZ	expect_xyZexpect_colorr    r    r!   test_lines_with_colorsh  s    r  Zstep_linestylec               	   C   sN  t d } }tdd\}}| }g d}t||D ]h\}}|j| |d|dd |j| |d d|dd |j| |d d|d	d |d
dg |d
dg q8| ||d |d d}tdd\}}| }g d}t||D ]f\}}|jddd|d|d |jddd|d|d |jddd|d	|d |d
dg |d
dg qd S )Nrn   r2   )r  r  r  r  r   pre)r  r   rN  r1   r  r  r|   r  )r  Y0Y1Y2r  r  )r  r   rN  ri  r  r  )	r^   rf   r#   r   r  r{  r  r|  r}  )r+   r,   r'   ax_lstZ	ln_stylesr   r  ri  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 |	g dg dg |j
d || || |dd |dd d S )N)r  r  r   r   r   radiusr   r   T)Zmatch_originalr   rZ  r1   r   r  ii)r   r   r   r   )r   r   r   r   r	  r  )r#   r   r  Circler   r0  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsr   r  r?  r|  r}  )r'   r   r5   r  r  r    r    r!   test_mixed_collection  s    

r  c                  C   s:   t tdtdd} |   |   dks6J d S )Nr   r1   )r   r1   r   r   )r#   r  r^   int32rr   r   Zget_subplotspecZget_geometryr  r    r    r!   test_subplot_key_hash  s    r  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)rF  r   r   c                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }ttdtj tj	
|| jdd}td| d }tjd ttj| tj| g}g d}||f||ffD ]\}	}
|
d }tdtt|
 }tt d|D ] \}}|j|	|
||||d q tt d|D ]*\}}|j|	|
||||dt j d qVqdS )z)Test axes.specgram in default (psd) mode.ry   r&  r  r  r   r   r[  @ffffff@'@rn   r   r1   r2   r  rL  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesrb  )r  r  r  r  r  r   r8  N)rL   r   intr^   rz  rf   r  r   r   multiplyouterr
  r_   r`   r  ro   rp   log2r{  r#   r   r   specgramr  LogNorm)r  r  fstims
NFFT_freqsr+   y_freqs
NFFT_noisey_noise	all_sidesr,   r  r  r  r   r  r    r    r!   test_specgram  s2    
,$

r  )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]\}}
|
d }tdtt|
 }tt d|	D ]"\}}|j||
||||dd q4tt d|	D ],\}}|j||
||||ddt j d	 qlqdS )z%Test axes.specgram in magnitude mode.ry   r&  r  r  r   r   r[  r  r  r  r   r   r1   r2   r  Nr|   rn   r   r   Z	magnituder  r  r  r  r  rZ   rb  )r  r  r  r  r  rZ   r   r8  )rL   r   r  r^   rz  rf   r   r   r	  r
  r
  r  r_   r`   r  r  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!   test_specgram_magnitude  s2    
,&


r  )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]\}}
|
d }tdtt|
 }dD ]}tt d|	D ]h\}}|j||
|||||d tt* |j||
|||||dd W d   n1 s0    Y  q<q$qdS )z,Test axes.specgram in angle and phase modes.ry   r&  r  r  r   r   r[  r  r  r  rn   r   r1   r2   r  Nr|   r   )r  phaser   r  dB)r  r  r  r  r  rZ   r   )rL   r   r  r^   rz  rf   r   r   r	  r
  r
  r  r_   r`   r  r  ro   rp   r  r{  r#   r   r   r  r   r   r9  )r  r  r  r  r+   r,   r  r  r  r  r  r  r  rZ   r   r  r    r    r!   test_specgram_angle  s4    
,&
r  c                  C   sF   t jtdddd\} }}}| \}}}}|dkr>|dksBJ dS )z;Test axes.specgram when Fs is None, should not throw error.r  Nrb  )r  r   rt   `   )r#   r  r^   r   Z
get_extent)specfreqsrp  r^  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.originrv   N)r^   rf   r   r#   r   r   r  )r   r   rp  signalr    r    r!   test_specgram_origin_rcparam.  s    



r   c                  C   sP   t d} t | }tt tj|dd W d   n1 sB0    Y  dS )z4Ensure passing origin as a kwarg raises a TypeError.r  rv   r[  N)r^   rf   r   r   r   r   r#   r  )rp  r  r    r    r!   test_specgram_origin_kwarg@  s    

r!  )zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c               	   C   s  d} d}|d |d |d g|d |d |d gg}t d	| t| }td
| d| }tdtj tj|| jdd}t d	| d }tj	
d
 tj	| tj	| g}ddiddddddg}||f||ffD ]\}	}
|
d }t dtt|
 }tt d|D ]X\}}|jt|	f|
|||d|}t|d|dd ksdJ |jddd qtt d|D ]P\}}|j|	|
|||d|}t|d|dd ksJ |jddd qqd S )Nr        Y@r   r   r[  r  r  r  r  r   r1   r2   r  r  rL  r  F)r  return_liner  Tr   )r  r  r  r  r#  r   xlabelZylabel)r  r^   rz  rf   r   r   r	  r
  r
  r_   r`   r  ro   rp   r  r{  r#   r   r   psdr  r  r  r   csd)r  r  r  r  r+   Zys_freqsr  Zys_noiseZ
all_kwargsrO  r  r  r  r   r  retr    r    r!   test_psd_csdI  s@    ,&
r)  )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t| }t dtt| }td| d	| }tdtj t|| d
td  j	d	d}tj
d ttj
| tj
| gd }g d}||d}	||fD ]2}
tt d|D ]2\}}|j|
fd|i|	\}}}|jddd qtt d|D ]<\}}|j|
fd|i|	ddi\}}}|jddd q8tt d|D ]4\}}|j|
fd|i|	\}}}|jddd qtt d|D ]4\}}|j|
fd|i|	\}}}|jddd qqd S )Nr  r"  r   r   r[  r  r2   r   r1   rn   r   r  r   r   )r  r  r  r   r$  r   r  )r  rz  r^   rp   r  rf   r   r   r
  r
  r_   r`   r  r  ro   r{  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  rr  r    r    r!   test_spectrumk  s8    *"
r*  c                  C   s   t  d} | D ]}|jjdd qtjdd@ | d td | d 	tdtd W d    n1 sx0    Y  d S )	Nr2   T)r  r  r  r   r   r1   )
r#   r   r   rR   r   r^   r  r&  r  r'  rI  r   r    r    r!   test_psd_csd_edge_cases  s    r,  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r   )r   r   r   r  rO   Ztick_bottomrR   Z	tick_left)r   r   rj   Zax_twinxZax_twinyrk   r    r    r!   test_twin_remove  s    
r-  ztwin_spines.pngc            	      C   s|  dd } t jdd}|jdd | }| }| }|jjd | | |jjd |	g d	g d	d
\}|	g d	g dd\}|	g d	g dd\}|
dd |dd |dd |dd |jj|  |jj|  |jj|  tddd}|j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   rR  rn  )r;   )r  rJ  Tr  zb-)r   r   r2   zr-)rf  r   r   zg-r   r2   r   r1   A   r   )r  rv  r,   )rO  r  rO  r+   )r#   r   r  r   r   r.  r;   set_positionr   r   r|  r}  rR   r)   r  r,  r  tick_params)	r/  r'   hostZpar1Zpar2r  r  Zp3Ztkwr    r    r!   test_twin_spines  s0    r4  ztwin_spines_on_top.pngc                  C   s@  dt jd< dt jd< t } | ddd}tg dg dg}| }|j|d |d d d	d
 |j	|d |d d d	dd |j|d |d d dd
 |j	|d |d d ddd |d |d d d}t } | ddd}| }|jddd	|d |j	ddd	d|d |jddd|d |j	dddd|d d S )Ng      H@r   rL  r1   )r  iL  i  i  )r  i-  r  r  r   g     @@z#BEAED4r  r  )r   r  z#7FC97Fr   )r  rv  r  rv  )r   ri  )r   r  ri  )
rL   r   r#   r   r   r^   r  r   r   r#  )r'   r   ri  r   r    r    r!   test_twin_spines_on_top  s(    


r5  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 sFJ tfdd|jj
D sdJ 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   r7  r9  )minor_visibler    r!   r    s   )r   r   r  r#   r   r\  r   r  rO   
majorTicks
minorTicks)Z
grid_whichr;  r<  r'   r   r    )r;  r<  r!   test_rcparam_grid_minor  s    
r?  c                  C   s   t  \} }|  | j  |jjd j s4J |jdd | j  |jjd j r`J |jdd | j  |jjd j sJ |  | j  |jjd j rJ d S )Nr   FZvisibleT)	r#   r   r  r\  r   rO   r=  r8  r   r&   r    r    r!   	test_grid	  s    



rA  c                  C   s   t  \} }|jdddd |jjd j r2J |jdd |jjd j sTJ t ddi> |	  |jdddd |jjd j sJ W d    n1 s0    Y  d S )	NTr6  rn   )resetr  	labelsizer   r  r  r  )
r#   r   r2  rO   r=  r8  r   r  r
   r6  r&   r    r    r!   test_reset_grid  s    rD  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inrn   r   r$  ru  r  rq  r  rr  r  r   r  )	directionlengthrv  r   padrC  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r2  draw_without_renderingr  rO   Zreset_ticksrR   )r   r   r'   r   r    r    r!   test_reset_ticks&  s    




rP  c                  C   s:   t  } |  }|d |g d t| d d S )Nr   )rj  r   r   r   )rj  r   )r#   r   r  r  r   r   r   r&   r    r    r!   test_vline_limit:  s
    
rQ  zfv, fh, args)r1   r  c                 C   s  t jd}tjtdd  | ||dd W d    n1 s@0    Y  tjtdd  | |d|d W d    n1 s~0    Y  tjtdd  |||dd W d    n1 s0    Y  tjtdd  ||d|d W d    n1 s0    Y  d S )	Nr1   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)rL   ri  Znum2dater   r   r9  )ZfvfhargsZbad_limr    r    r!   test_axline_minmaxB  s    ...rW  c                  C   s   t jddddd\} }|d g dg d |d  \}}|d  \}}|dksZJ |dksfJ |dksrJ |d	ks~J d S )
Nr1   r2   T)r  r  rV  r  r   r  )r2   r   r`  r   r`  )r#   r   r   r   r   )r'   rI  r'  rH  r(  rJ  r    r    r!   test_empty_shared_subplotsR  s    rX  c                  C   s   dD ]} t jddd\}}|d jd| dd |d  dksBJ |d  | ksVJ t jddd\}}|d jd| d |d  d	ksJ qd S )
Nboxdatalimr2   T)r  rV  r   )
adjustablesharer1   r\  r  )r#   r   
set_aspect
get_aspectZget_adjustable)r\  r'   rI  r    r    r!   test_shared_with_aspect_1^  s    ra  c                  C   s   t jdddd\} }|d jddd |d ddgddg |d ddgddg t   |d  |d  kszJ |d  |d  ksJ d S )	Nr2   T)r  rV  r  r   )r]  r1   r   r   )r#   r   r_  r   r   r   r   r  r    r    r!   test_shared_with_aspect_2k  s    rb  c            	      C   s  dD ]} t jddd\}}|d jd| d |d jd| d |d ddgd	d
g |d d	d
gddg t   |d  |d  ksJ |d  |d  ksJ |jj|jj	 }|D ]P}|
 }|j|j	 }|jj|jj	 }|| | }t|d
t| d
ksJ qqd S )NrY  r2   T)r  r  r   r^  r1   r   r   r   )r#   r   r_  r   r   r   r   Zbbox_inchesr  rv  get_positionviewLimr>  r`  )	r\  r'   rI  Z
fig_aspectr   r   
box_aspectZ
lim_aspectrl  r    r    r!   test_shared_with_aspect_3v  s     
rf  c                  C   s^   t jddddd\} }|d d tjtdd |   W d    n1 sP0    Y  d S )	Nr1   r2   TrV  r  r   r  zset_aspect\(..., adjustable=r#  )r#   r   rO  r   r   RuntimeErrorrO  )r'   r  r    r    r!   test_shared_aspect_error  s    ri  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   sB   t j| |d  tj|i | W d    n1 s40    Y  d S Nr#  )r   r   r#   rO  )errrV  r  r$  r    r    r!   test_axis_errors  s    rl  c                  C   s  t  } tjtdd | d W d    n1 s60    Y  tjtdd | d W d    n1 sn0    Y  tjtdd | jddd W d    n1 s0    Y  tjtdd | 	d W d    n1 s0    Y  tjtdd | j
d	d
 W d    n1 s0    Y  tjtdd  | jddd	d W d    n1 s^0    Y  tjtdd  | jddd	d W d    n1 s0    Y  tjtdd | jdd	d W d    n1 s0    Y  tjtdd | jdd	d W d    n1 s0    Y  tjtdd | jdd	d W d    n1 sX0    Y  tjtdd | jdd	d W d    n1 s0    Y  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 sequencer1   )Z	scilimitszSpecifying 'loc' is disallowedrG   )r9   r+   r7   )r9   r,   zCannot pass both 'left'r   )rG   r\   zCannot pass both 'right')r;   r]   zCannot pass both 'bottom')rF   rS  zCannot pass both 'top')r7   rT  )r#   r  r   r   r9  Zget_xaxis_transformZget_yaxis_transformr   Zset_prop_cycleZ
set_anchorZticklabel_formatr$   r%   r|  r}  r  r    r    r!   test_axis_method_errors  s.    ((,(,00...rm  c                 C   sH   t  \}}t|d|  }|d |d t|jj|jj d S )Nztwin{}r   r2   )r#   r   r   r  r_  r   bboxextents)r   r'   r   r  r    r    r!   test_twin_with_aspect  s    

rp  c                  C   s   d} d}d}d}t j }| }|| | | | ks>J | |ksNJ |||\}| |kslJ | |ks|J |d | |ksJ | |ksJ |jdd |	  | | ksJ | |ksJ d S )N)ra  r  )      $rh  )rq  r  FT)Zvisible_only)
rL   r   r   r   r   r   r   r   Zrelimr   )rH  rJ  r  r  r'   r   rr  r    r    r!   test_relim_visible_only  s&    

rr  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    Zlarge)rC  outrF  N)r#   r   r  r2  r&   r    r    r!   test_text_labelsize  s    ru  zpie_default.pngc               	   C   sD   d} g d}g d}d}t jdd\}}|j||| |ddd	d
 d S )NFrogsZHogsDogsLogsr   r   r  rn   ZyellowgreenZgoldZlightskyblueZ
lightcoralr   r   r   r   )r  r`  rR  %1.1f%%Tr  )exploder  r  autopctshadow
startangle)r#   r   pie)r  sizesr  r~  r`  r   r    r    r!   test_pie_default  s    r  )pie_linewidth_0r  r  )r   r   c                  C   s   d} g d}g d}d}t j||| |ddddd	id
 t d | |||d}t  }| }|jddddddddd	i|d	 |d t   t jddddddddd	i|d	 t d d S )Nrv  rz  r{  r|  r}  Tr  r   r   r~  r  r  r  r  r  
wedgepropsr  )lrq  r5   exrq  r  r  r5   )r~  r  r  r  r  r  r  ri  )r#   r  rO  r   r  )r  r  r  r~  ri  r'   r   r    r    r!   test_pie_linewidth_0  s.    

r  zpie_center_radius.pngc                  C   sl   d} g d}g d}d}t j||| |ddddd	id
dd
 t jdd
dtdddtdddd t d d S )Nrv  rz  r{  r|  r}  Tr  r   r   r   r   )	r~  r  r  r  r  r  r  rN   r  zCenter point)r1   r   ->Zarc3)
arrowstyleZconnectionstylesquareZ	lightgrey)Zboxstyler   )rk  rm  r  rn  r  )r#   r  ro  r  rO  r  r  r  r~  r    r    r!   test_pie_center_radius  s    


r  zpie_linewidth_2.pngc               
   C   sD   d} g d}g d}d}t j||| |ddddd	id
 t d d S )Nrv  rz  r{  r|  r}  Tr  r   r2   r  r  r#   r  rO  r  r    r    r!   test_pie_linewidth_2,  s    r  zpie_ccw_true.pngc               
   C   s@   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nrv  rz  r{  r|  r}  Tr  )r~  r  r  r  r  r  Zcounterclockr  r  r  r    r    r!   test_pie_ccw_true;  s    r  zpie_frame_grid.pngc                  C   s   d} g d}g d}d}t j||| |ddddd	idd
d
 t j|d d d || |ddddd	iddd
 t j||d d d | |ddddd	iddd
 t d d S )Nrv  rz  r{  r|  r}  Tr  r   r   r  )	r~  r  r  r  r  r  r  framerN   r|   )r   r2   )r   r   r  r  r  r    r    r!   test_pie_frame_gridJ  s(    r  zpie_rotatelabels_true.pngc               
   C   s@   d} g d}g d}d}t j||| |ddddd t d	 d S )
N)ZHogwartsrw  rx  ry  rz  r{  r|  r}  Tr  )r~  r  r  r  r  r  rotatelabelsr  r  r  r    r    r!   test_pie_rotatelabels_truee  s    r  zpie_no_label.pngc                  C   sV   d} g d}g d}d}t j||| |dddd dd	 t d	 t d
d t   d S )Nrv  rz  r{  r|  r}  Tr  )r~  r  r  r  r  r  Zlabeldistancer  r  g333333rJ  )r#   r  rO  r   rA   r  r    r    r!   test_pie_nolabel_but_legendt  s    
r  c                  C   s   g d} g d}t ddddddd	}t j| |d
|d\}}}||fD ]}|D ]|}| |d kshJ | |d ks|J | |d ksJ | |d ksJ | |d ksJ |	 |d ksPJ qPqHd S )N)r  "   r  )zLong name 1zLong name 2zLong name 3rN   r7   r  anchorru  r  )horizontalalignmentverticalalignmentr  rotation_moder  r   %.2f)r  r  	textpropsr  r  r  r  r  r   )
r  r#   r  r  get_haget_vaget_rotationZget_rotation_modeget_sizer,  )ri  r  r  r  textsr  Ztxr    r    r!   test_pie_textprops  s&    r  c                  C   sP   t  \} }tt& |jg dg dd W d    n1 sB0    Y  d S )N)r   r   re  )r   r   r   )r~  )r#   r   r   r   r9  r  r&   r    r    r!   test_pie_get_negative_values  s    r  c                  C   sp   t  \} }g d}|j|dd}t|d d jd dk s@J |j|dd}t|d d jd dkslJ d S )	Nr   r   r   T)r+   	normalizer   r|   g     v@rg  F)r#   r   r  r  r  )r'   r   r+   t1t2r    r    r!   test_normalize_kwarg_pie  s    r  c                    sF   g d}d |   j| d |  |\}} fdd|D  d S )Nr  r  rp  c                    s   g | ]}|  qS r    Z	set_hatch)r   rv  rp  r    r!   r     r   z)test_pie_hatch_single.<locals>.<listcomp>)r   r  )r   r   r+   wedgesr  r    rp  r!   test_pie_hatch_single  s
    r  c                 C   sL   g d}g d}|   j||d |  |\}}dd t||D  d S )Nr  )rM  r  ru   rp  c                 S   s   g | ]\}}| |qS r    r  )r   rv  hpr    r    r!   r     r   z(test_pie_hatch_multi.<locals>.<listcomp>)r   r  r{  )r   r   r+   rO  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 	g ddd	g   |d 
g d
dd	g   |d |d   |d |d   |d 	|d   |d 
|d   d S )Nr2   ra   zset_x/yticklabelsr   rn   r1   r   r  r5   r  r`  r   )Z11Z12Z13Z14)r#   r   r   r^   rf   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   sR   t  \} }g d}tt  |jj|dd W d   n1 sD0    Y  dS )z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  r   r  N)r#   r   r   r   r9  rO   	set_ticks)r'   r   ticksr    r    r!   0test_set_ticks_kwargs_raise_error_without_labels  s    r  c                 C   s   |  }|g d |jg ddd |g d |jddgdd	 |jd
dgdd	 |   }|jg dg ddd |g d |jddgd
dgdd	 dS )z
    Test that these two are identical::

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

    )r1   r2   r   r`  r  bold)Z
fontweightrn  r2   r   T)r  rw  rx  N)r   r  r  r  r  r   r    r    r!   test_set_ticks_with_labels  s    	r  c                  C   sr  t   } tjtdd  | ddgd W d    n1 s@0    Y  tjtdd& t t	
dd W d    n1 s0    Y  tjtdd& t t	
dd	 W d    n1 s0    Y  tjtdd. t jt	
ddtdd
 W d    n1 s0    Y  tjtdd. t jt	
dd	tdd
 W d    n1 sd0    Y  d S )Nzmust be a sequencer#  r2   r  r)  z
must be 1Dr   r  r  r  )r#   r   r   r   r   r   r  r9  r  r^   rf   r   r   r  r    r    r!   test_xticks_bad_args  s    .44>r  c                  C   s   t  \} }|td |jtdd  |jdd |jdd dD  t 	  dd |j
 D }|g d	ksJ d S )
Nrn   r   r   r  c                 S   s   g | ]}|qS r    r    r  r    r    r!   r   	  r   z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   s   g | ]}|  qS r    r  rC  r    r    r!   r     r   )r  r  r  r  rv  )r#   r   r   r^   rf   rO   r  r#  set_ticklabelsr   get_ticklabels)r'   r   r  r    r    r!   test_subsampled_ticklabels  s    r  c                  C   sj   t  \} }|td |jddg tt	  |j
g d W d    n1 s\0    Y  d S )Nrn   r   r  rv  )r#   r   r   r^   rf   rO   r  r   r   r9  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 )Nr1   r2   )r#   r   r  r  r  r&   r    r    r!   test_empty_ticks_fixed_loc  s    r  zretain_tick_visibility.pngc                  C   sF   t  \} }t g dg d t j| dd |jdddd d S )	Nr  )r   r|   r   Fr@  r,   r   r   rO  r  rG  )r#   r   r   Zsetpr  r2  r&   r    r    r!   test_retain_tick_visibility  s    r  c                  C   st   t  \} }dd }|jt | |g d |dd |jj	  dd |j
 D }|g dkspJ d S )	Nc                 S   s   | dkrdS dS )Nr1   
unit valuer   r    r   r    r    r!   formatter_func-  s    z.test_tick_label_update.<locals>.formatter_func)r|   r   r1   r2   r   r\  r  c                 S   s   g | ]}|  qS r    r  r9  r    r    r!   r   6  r   z*test_tick_label_update.<locals>.<listcomp>)r   r   r  r   r   )r#   r   rO   r   r   r  r|  r   r\  r   r  )r'   r   r  Z
tick_textsr    r    r!   test_tick_label_update'  s    r  zo_marker_path_snap.pngH   c                  C   s~   t  \} }|d tddD ]$}|jddgtd| d|d q tdddD ]$}|jd	d
gtd| d|d qTd S )Nr   r1   r   r2   r   )r  rn   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\J | ||| d  ||| d  fksJ | ||| d  ||| d  fksJ tdd\}}||  |dd | dksJ | ||| d  ||| d  fksJ | ||| d  ||| d  fksFJ tdd\}	}
|
|  |
jd	dd
 |
 dksJ |
 ||| d	  ||| d	  fksJ |
 ||| d  ||| d  fksJ d S )Nr1   rn   ra  r   r  r   r2   )r   r2   皙ɿr   )r  r   )	r  rz  r}  r#   r   r   r  r   r   )ri  r\   r]   rS  rT  r`  r   ra  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sJJ d S )NrL  r1   r2   r   r   )r  Zxmarginr   )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 yr`  z&Must pass a single positional argumentc                 C   sR   t j| |d0 t }| }|j|i | W d    n1 sD0    Y  d S rj  )r   r   r#   r   r   r  )rk  rV  r  r$  r'   r   r    r    r!   test_margins_errorsq  s    r  c                  C   s&   t  \} }|d |dg d S Nr1   )r#   r   r  r&   r    r    r!   test_length_one_hist  s    
r  c                  C   s   t  } |  }|dd | dks,J | dks<J |jdd | dksXJ | dkshJ |jdd | dksJ | dksJ |dd | dksJ | dksJ |jdd | dksJ | dksJ |jdd | dks
J | dksJ d S )	Nr   r  )r   r  rQ  )r  )r   rQ  )rv   )r  rQ  )	r#   r   r   r@  
get_xboundr   rA  
get_yboundr   r&   r    r    r!   test_set_xy_bound  s(    r  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nrn   r   r1   )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 )Nr1   r2   r  r  r&   r    r    r!   test_color_None  s    r  c                  C   s6   t  \} }|jddgddd }d| ks2J d S )Nr   r1   r  r]  )r#   r   r   r,  r'   r   rr  r    r    r!   test_color_alias  s    r  c                  C   s4   t  \} }|jtdgd tdd |  d S )Nr   r   r  )r#   r   r  r   rA   r&   r    r    r!   test_numerical_hist_label  s    r  c                  C   sN   t  \} }d}d}|dd|dg}|jtdgd |d |  d S )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr   r   r  )r#   r   decoder  r   rA   )r'   r   r   r  r  r    r    r!   test_unicode_hist_label  s    r  c                  C   sJ  t jdd } t \}}||  |j  |jj	 }|jj
 dksPJ |j  |j  |jj	 }|d |d kr|d |d ksJ |jj
 dksJ t \}}||  |j  |jj	 }|jj dksJ |j  |j  |jj	 }|d |d kr,|d |d ks0J |jj dksFJ d S )	Nrn   g^ 9^;rG   r   r1   r;   r7   rF   )r^   r_   r#   r   r   r\  r   rR   Z
offsetTextrc  rQ   Z
tick_rightrO   Zget_verticalalignmentr   )ri  r'   r   beforeafterr    r    r!   test_move_offsetlabel  s*    



$



(r  zrc_spines.pngc                  C   sD   ddddd} t |  t  W d    n1 s60    Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rL   r
   r#   r   )r  r    r    r!   test_rc_spines  s    r  zrc_grid.pngc               	   C   s   t  } ddd}ddd}ddd}|||g}t|dD ]@\}}t| | dd| W d    q:1 sp0    Y  q:d S )NTr   )r  zaxes.grid.axisr+   r,   r1   r   )r#   r   rG  rL   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 rLJ |jd sZJ |jd rhJ |jd svJ |jd sJ |jd rJ |jd sJ |jd rJ W d    n1 s0    Y  d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightrC  r1   tick1Ontick2Onr#   r
   r   r   rO   rR   _major_tick_kw_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 rTJ |jd sbJ |jd rpJ |jd s~J |jd rJ |jd sJ |jd rJ |jd sJ W d    n1 s0    Y  d S )NTF)r  r  r  r  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r1   r  r  r  r  r    r    r!   test_rc_major_minor_tick  s$    r  c                  C   s   t d} t g d}t \}}|| |d |d | |  }}t 	|t 	|ksfJ |
 dksvJ t|jddjd t|jd	djd
 d S )Nr   )r   r  rb  r  mor  r1   T)originalg      ?r   r  r  F)g333333?r   g      ?r  )r^   rf   r  r#   r   r   rO  r   r   r  r`  r   rc  ro  )r+   r,   r'   r   r   r   r    r    r!   test_square_plot0  s    

r  c                   C   s  t t td  W d    n1 s*0    Y  t t td d  W d    n1 s`0    Y  t t( ttdtd W d    n1 s0    Y  t t8 ttddtdddf W d    n1 s0    Y  d S )Nr  r  r   r  r|   r1   )	r   r   r9  r#   r   r^   r  rf   r   r    r    r    r!   test_bad_plot_args?  s    (*6r  zxy, clsr    ))r   r  )r2   r`  )r1   r2   r   r  r  r  )r   r   ru  )r   r   c                 C   s0   t  \}}t|jg | |R  |ks,J d S r   )r#   r   r^  
pcolorfast)rk  ri  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sLJ | dks8J q8|d d |d d |jD ]$}| dksJ | dksJ qd S )Nr2   Trg  r  r   r  rb  )r#   r   rc  r  rH  Z
get_yscaleZ
get_xscaler'   rI  r   r    r    r!   test_shared_scale]  s    

r  c                   C   sp   t t tjdd W d    n1 s,0    Y  t t tjdd W d    n1 sb0    Y  d S )NTrU  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g dg dg dgtdtdd g}t d|}t d	|}t dg gt dg g t dg d g t d	g d g }| | }| | }| | | }g ||||S )
Nr+   r   r,   rk  r1   )r1   r1   r1   r1   r1   )r2   r   r  r  )r	   r^   rf   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 i | }|  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   rn   r   r2   rn   rn   r   rS  )r  r  r   )r#   r   r^   r   Z	ones_liker   r   )r'   r   r+   r,   rv  r    r    r!   test_dash_offset  s
    
r  c                  C   s   t  \} }|jddd |j }|d d| j ks:J |jddd |j }|d dksbJ |jdd d |j }|d tjd d | j ksJ d S )	Naardvarkr  rH  r  g?ra  zaxes.titlepadrj  )r#   r   r.   ZtitleOffsetTransZ
get_matrixr  rL   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sPJ d|jddksdJ d|jddksxJ tt |jdd W d    n1 s0    Y  tt |jddd W d    n1 s0    Y  d S )	NrN   zaxes.titlelocationr  rG   r8   r;   r  Zfail)r#   r   r   r.   Z	get_titler   r   r9  r&   r    r    r!   test_title_location_roundtrip  s    

*r  rV  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 J d S )
Nr2   r1   rU  r   rw  ir  rx  r   )r#   r   r.   rO  r*   rc  )rV  r'   rI  r+   rJ  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 )Nr1   r[  r   r   r
  r  r2   )rG  rv  r   r  )rG  rv  r  )r#   r   r^   rf   rX  r2  )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g dd	d
|jD ]~\\}}}||kr|r||j||d d	|d q|j||d d	d qL|j||d d	d |r|jd|d |rL|j	d|d qLd S )Nr   r1   r[  g      r  r7  r   )r  r  r   r2   )r  )r  nonpositiver
  r   )r  )
r#   r   r^   rf   r{  r   rH  rX  rc  r  )r'   rI  r+   r,   ZmcyZmcxr   r    r    r!   test_loglog_nonpos  s"    r  c                  C   s  t  \} }|g d | d dks.J t  \} }|g dg d | d dksbJ t  \} }|g dg d | d dksJ t  \} }|t	d | dksJ | dksJ t  \} }|
t	d | dksJ | dksJ t  \} }|td | d dksBJ t  \} }|t	d | dkspJ | dksJ d S )Nr  r   )r1   r1   r1   r1   r  ro  rn   )r\  g      #@)r#   r   r   r  r  r,  r  rq  r^   r  r  r  rf   r   r&   r    r    r!   test_axes_margins  s0    r  )rS  c                 C   s    dd }dd }||d| j  S )Nc                 S   s<   |   }|  | dd | j  }|d dks8J d S Nr   r   r|   r  )r   r  r|  rO   get_major_locatorr   r   r  r    r    r!   	_helper_x  s
    z&shared_axis_remover.<locals>._helper_xc                 S   s<   |   }|  | dd | j  }|d dks8J d S r  )r   r  r}  rR   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 }| }nf| j dkr4t \}}nN| j dkrbtjddddd\}}|d d }n | j dkrt }|g d	}||fS )
Nr  r   r  r2   r  rg  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 )Nr2   r  rg  r   r1   r   )r#   r   r   r  r|  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|
 rJ | s| rJ | |   krd
ksn J | |   krd
ksn J d S )Nir  r=  r2   r1   Trg  r  )r  r  )r^   rf   r_   Zrandom_sampler  r#   r   r|  r}  r/  r  r  r   r   )r  rp  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sVJ |
dd | j  t	|j  dksJ d S )Nr  r  r   r  r  r2   )r#   r   rR   r  Z
set_paramsr|  r_  r\  r   r  r}  r&   r    r    r!   test_adjust_numtick_aspectS  s    


r  c                  C   sN   t  dd} | jD ]2}g | g |   krBg dksn J qd S )Nr   r  )r#   r   r   rH  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	 sNJ t|
 td
ddk	 srJ d S )NZround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<rn   irY  r   r  r   )r#   r   r   r   rX  r^   log10r  rf   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   rD  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^J | d jd	 t|d
 ksJ dS )z9Check that timedelta works as x, dx pair for this method.r?  r[  r  r   r1   r@  r2   r  r2   r   gUUUUUU?N)	r#   r   r  rD  r  r1  Zverticesr  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-01rn   )rG  r  r  r  )rK  r^   rf   r_   ro   r#   r   r^  )rN  timedepthri  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  rT  )ri  r  r2   r1   ri  r  r  )r^   rf   r   r   r  rd  r#   r  r  rg  r  r   )rN  ri  r  rh  r   Zwithout_zero_indexr    r    r!   test_pandas_indexing_dates  s    r#  c                 C   sF   | j tjjddg dg dd}t \}}|jdddd	|d
 d S )N)r   r   r  )r+   r,   xeyer  )columnsrg  r+   r,   r$  r%  r"  )rd  r^   r_   uniformr#   r   r  rn  r    r    r!   test_pandas_errorbar_indexing  s    r(  c                 C   s:   |  g dg dd}t \}}||j|d  d S )NrA  )r  r1   r2   )ZXXYYr)  )rd  r#   r   r   rg  rn  r    r    r!   test_pandas_index_shape  s    r*  c                 C   s8   | j g dd}|jdd  }t \}}|| d S )N)
r1   r2   r2   r   r   r   r   r   r   r   r  r1   )r  Zilocr#   r   r  )rN  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 )Nr2   r  r1   r   r  rN   r$  )rd  r   r#   r   r  r9   r\  r   rn  r    r    r!   test_pandas_bar_align_center  s    r,  c            	      C   s   t  j} i | jdd}i | jdd}| j| jdd}| j| jdd}||ksVJ ||ksbJ | jdddd	d
 i | jdd}i | jdd}| |}| |}||ksJ | j|ksJ ||ksJ | j|ksJ d S )Nr6  r  r  T)reverser   r  rs  r   )rC  rI  rF  r  )r#   r  rR   Zget_tick_paramsZ_translate_tick_paramsr  r  set_tick_params)	rO  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  s,    


r/  c                  C   s   t  } | jjdddd | jjd jdks0J | jjd j dksJJ | jjd j	 dksdJ | jjd j dks~J d S )	Nr   r  rs  )rC  rI  rF  r   rQ  rS  r  )
r#   r  rR   r.  r=  _size	tick1liner,  rd  r  )Zaxis_1r    r    r!   .test_axis_set_tick_params_labelsize_labelcolor  s    
r2  c                  C   s   t  } | jddddd | j| jfD ]d}|jd j dksBJ |jd j dksZJ |jd j	 dksrJ |jd j
 dks&J q&d S )Nr  r   r   r  )rK  rM  rL  rN  r   r  )r#   r  r2  rO   rR   r=  r8  r,  Zget_linewidthr  rt  )r   rO  r    r    r!   test_axes_tick_params_gridlines  s    
r3  c                  C   s   t  } | jdddd | jdddd | jjd j du sBJ | jjd j du s\J | jjd j du svJ | jjd j du sJ d S )NFTr6  )Z	labelleftZ
labelrightr  r  r   )	r#   r  r2  rR   r=  rd  r   label2r>  r  r    r    r!    test_axes_tick_params_ylabelside  s    r5  c                  C   s   t  } | jdddd | jdddd | jjd j du sBJ | jjd j du s\J | jjd j du svJ | jjd j du sJ d S )NTFr6  )labeltoplabelbottomr  r  r   )	r#   r  r2  rO   r=  rd  r   r4  r>  r  r    r    r!    test_axes_tick_params_xlabelside  s    r8  c                  C   s4   t   } | jtdd d\}| dks0J d S )Nrt   r  r  )r#   r   r   r   r   rt  )r   lnr    r    r!   test_none_kwargs  s    r:  c                  C   sT   g d} t jtj| tjdg ddd}t|j| D ]\}}|jd |ks4J q4d S )Nr  rT  )r2   r   r   r   r  r$  r   )r#   r  r^   r  Zuint8r{  r   rk  )rN  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   r2      Canada/Easternr   tzinfor  rx  tzZgettzr   r    r    r!   r     s   
z(test_date_timezone_x.<locals>.<listcomp>r   r  ru  rR  r2   r1   r?  )rC  UTCr   r#   r   r  r  Z
time_indexr    r    r!   test_date_timezone_x  s    rH  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<  rB  r   r    r    r!   r   '  s   
z(test_date_timezone_y.<locals>.<listcomp>r   rD  rR  r2   r1   r?  FT)rC  ZxdateydaterE  rF  rG  r    r    r!   test_date_timezone_y$  s    rJ  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=  r2   r>  r@  rG  r   rE  r    r!   r   :  s   z.test_date_timezone_x_and_y.<locals>.<listcomp>r   rD  rR  r2   r1   rE  T)rC  rI  z
US/Eastern)r  timezoneutcr   r#   r   r  r  rG  r    rK  r!   test_date_timezone_x_and_y6  s    
rN  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"J q"d S )Nr   T)r  rV  r  )Frr  Tro  rn   r  rg  rj  r  r  r5   r  )r   r   r   F)r7   rF   rG   r;   )r#   r   r   r{  r   r  r  r  r  r2  r.  r   Zset_axisbelowZget_axisbelow)rI  settingsr   Zsettingcircr    r    r!   test_axisbelowG  s    

rQ  c            	      C   s   t jd t jdd\} }| }|d}|d}| j  | j	 }|
|j}|
|j}|| }t|ds|J d S )Nr   r  )r  Xlabel2Titler   )r#   r   r   r   r   r$   r.   r\  r   get_rendererget_window_extentr(  rJ  r^   isclose)	r'   r   r   Zxlabel2r*   rendererZbbox_y0_titleZbbox_y1_xlabel2Zy_diffr    r    r!   test_titletwiny[  s    



rX  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |kstJ d S )Nr  )r7   ZXlabelrR  rS  )r   g(\?)r#   r   r  r   r$   r.   r*   r1  r\  rT  Z_update_title_positionrc  )r'   r   r   r   rW  r    r    r!   test_titlesetposj  s    




rY  c                  C   sP   d t jd< t \} }|jd |d | j  |j	
 d dksLJ d S )Naxes.titleyr7   
xlabel topr1   p=
ף?)r   r   r#   r   rO   r   r.   r\  r   r*   rc  r&   r    r    r!   test_title_xticks_topy  s    


r]  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dksTJ d S )NrZ  r+   TrO  rF   r7   r7  r6  r[  r1   r\  )
r   r   r#   r   r2  r.   r\  r   r*   rc  r&   r    r    r!   test_title_xticks_top_both  s    


r_  zleft, center))rG   r   )r   rN   )rG   rN   )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sJ nT| s|r|j	 d dksJ n4|j d }|j	 d }|dksJ ||ksJ d S )NrZ  g   vH7BrG   r8   r1   r   )
r   r   r#   r   r}  r.   rO  Z_left_titlerc  r*   )rG   rN   r'   r   Zyleftr  r    r    r!   test_title_above_offset  s    


r`  c                  C   s`   d t jd< t } | g d}|jdddddd |d}| j  |	 d dks\J d S )	NrZ  )r   r\  r  r   r+   Tr^  Boor1   r   )
r   r   r#   r   r  r2  r.   r\  r   rc  )r'   r   ttr    r    r!   test_title_no_move_off_page  s    


rc  c                  C   sB   t  \} }|g d |jjdd |j  dks>J d S )Ng   @Ag   eAg   FAr  )rI  )r#   r   r   rR   r.  get_offset_textr,  r&   r    r    r!   test_offset_label_color  s    rf  c                  C   s`   t  \} }|g d |jjddd |j  s<J |jjdd |j  r\J d S )Nrd  FT)Zlabel1Onlabel2On)rg  )r#   r   r   rR   r.  re  r   r&   r    r    r!   test_offset_text_visible  s    rh  c                  C   s6   t  \} }|dtddg d  | j  d S )Nr1   r   g-q=gqىE)r#   r   r   r^   r  r\  r   r&   r    r    r!   test_large_offset  s    ri  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   rY  rG  r/  r    r    r!   r     r   z#test_barb_units.<locals>.<listcomp>r   r  rn   r   rf  )r#   r   r   r^   r   r  Zbarbsr'   r   ri  r,   uvr    r    r!   test_barb_units  s
    rn  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 rj  rG  r/  r    r    r!   r     r   z%test_quiver_units.<locals>.<listcomp>r   r  rn   r   rf  )r#   r   r   r^   r   r  Zquiverrk  r    r    r!   test_quiver_units  s
    ro  c                  C   sn   t j} t \}}tdD ]N}|td\}|tdtd}|D ] }| | | | ksFJ qFqd S )Nr   r   )	r:  to_rgbr#   r   r   r   r  r,  r7  )rp  r'   r   rv  r9  Zbrsbrr    r    r!   test_bar_color_cycle  s    rr  c                  C   s  t dd\} \}}|ddgddg |ddgddg |jjddd |jjddd |jddD ]}| dkshJ qh|jddD ]}| dksJ q|j	d	d
d |j	ddd |jddD ]}| d
ksJ q|jddD ]}| dksJ qd S )Nr1   r2   r   r   r   )r  r  r  r  r+   5   )rO  rJ  r,   r   )rO  r  r6  )
r#   r   r   rO   r.  rR   r  r  r  r2  )r  r   r   textr    r    r!   test_tick_param_label_rotation  s    ru  c            	      C   s  t  \} }tdD ]D}|tdtd}td|}t| 	 t|ksJ qtddD ]D}|
tdtd}td|}t| 	 t|ksdJ qdtd}dD ]@}|jtdtdfi |di}t| 	 t|ksJ qtd}tddgddD ]v\}}|jtdtdfi |di}td|}t| 	 t|ksjJ t| 	 t|ksJ qd S )	Nr   zC{}r`  rS  )r   Z
facecolorsr   r   ru  )start)r#   r   r   r#  r:  r+  r  tupler%  ZsqueezerG  rG  r&  )	r'   r   rv  cctargetalZedge_targetelZface_targetr    r    r!   test_fillbetween_cycle  s&    
 
 r|  c                  C   s   dt jd< t  \} }d}|| |ddgddg | \}}|j }|||g\}}|ddg\}}	|	| | }
t	||
 ||
 g||	g d S )Nri  r  rI  rn   r   )
r#   r   r   Zset_xmarginrY  r   rO   r2  r   r   )r'   r   marginZxlim0Zxlim1r   Zxlim0tZxlim1tZx0tZx1tr  r    r    r!   test_log_margins  s    


r~  c                  C   s   d} t | t |  }}t | d }t \}}tt  |j|||d W d    n1 sd0    Y  tjdd  |j||dd W d    n1 s0    Y  |j||dg|  d d S )Nr   r1   r]  rA  r#  )r   r   r   )	r^   rf   r#   r   r   r   r9  r3   r:  )r)  r+   r,   r  r'   r   r    r    r!   test_color_length_mismatch'  s    ..r  c                   C   s   t jdgdd t   d S )Nr   ZLabelr  )r#   r  rA   r    r    r    r!   test_eventplot_legend3  s    r  c                  C   st   t  \} }|tdd |jddtddd |jddgddgdd\}}| |   krjdkspn J d S )Nr   r1   r   )rG   r  )r   r   r   rT  r-  )r#   r   r  r   r,  r8  )r'   r   Zrect1rect2r    r    r!   test_bar_broadcast_args8  s
    r  c                   C   s   t ddgddg tt t tj W d    n1 s@0    Y  tt t tj W d    n1 sv0    Y  tt t 	tj W d    n1 s0    Y  tt t 	tj W d    n1 s0    Y  d S rh  )
r#   r   r   r   r9  r   r^   r  r  r   r    r    r    r!   test_invalid_axis_limitsC  s    ***r  r  ra  r   r  c                 C   s6   t  }|g d ||  || |  d S )NrM  )r#   r  r   rc  r  rB  )r  r  r   r    r    r!   test_minorticks_onP  s
    

r  c                  C   sv   t  \} }|dd | }|ddgddg t  \}}|dd |ddgddg t|jj|jj d S )Nr1   r2   r   r   )r#   r   r  r   r   r   rd  Z	intervalx)r'   r   Zxtwinra  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   r1   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  rA   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 )Nr7  rn   r   c                 S   s0   g | ](}d |d  d|d   d|  d qS )g@r   r(  r2   g\(\@      @r    r   r    r    r!   r   x  r   z%test_plot_decimal.<locals>.<listcomp>c                 S   s   g | ]}t |qS r    r   r/  r    r    r!   r   y  r   c                 S   s   g | ]}t |qS r    r   r/  r    r    r!   r   z  r   )r^   rf   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  rv  )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 sZJ |j|jk sjJ dS )z5Test that tick padding gets turned off if axis is offrs  zxtick.directionzytick.directionoffN)	r#   r   r   get_tightbboxr\  rT  rO  r'  r(  r'   r   bbbb2r    r    r!   test_tick_padding_tightbbox  s    


r  c                  C   s0  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||ddddf  |d |	  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d\}
}|du sJ |j  t ddgd	dgg}t |
  |ks,J dS )z:
    Ensure that inset_ax argument is indeed optional
    rI  rI  r1   r   rn   Nr|   r   r   333333@r2   r  r   )boundsr   )r^   mgridr  r   r  r#   r   r^  r_  apply_aspectindicate_insetr\  r   r  r  get_bbox
get_points)dxdyr,   r+   r  r'   r   r   r   r;  rec
connectorsxxr    r    r!   
test_inset  s&    
*
,

r  c                  C   s~  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
g d}||||d dd df  |dd	g |d
dg ||  ||\}}	t|	dksJ |j  t ddgd	dgg}
t |  |
ksJJ t ddgddgg}
t jj|  |
dd d S )Nr  r1   r   rn   r|   r   )r  r  r&  r&  r   r  r2   r  r   r   g=
ףp=?gKXc'?g(\?g?g-C6?Zrtol)r^   r  r  r   r  r#   r   r^  r_  r  
inset_axesr|  r}  r`  Zindicate_inset_zoomr  r\  r   r  r  r  r  r   r   rc  )r  r  r,   r+   r  r'   r   Zaxin1r  r  r  r    r    r!   test_zoom_inset  s6    
*



r  zinset_polar.pngc                  C   sd   t  \} }|jg ddd}t|ts,J tddd}dtj | }||| ||| d S )N)r   r   r  r  Tr
  r   r2   rc  )	r#   r   r  r   r   r^   rf   r   r   )r  r   axinsr  r  r    r    r!   test_inset_polar  s    r  c                  C   s0   t  \} }|jg ddd}t|ts,J d S )Nr   r   r   r   Zhammerr  )r#   r   r  r   r   r  r   r  r    r    r!   test_inset_projection  s    r  c                  C   s4   t  \} }|jg dtjd}t|tjs0J d S )Nr  )r<  )r#   r   r  AAr   r   r  r    r    r!   test_inset_subclass  s    r  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r8|  |rD|  |g d|\}}|\}}	}
}| rldnd}|rxdnd}||
jd |jd   dksJ ||jd |	jd   dksJ ||	jd |jd   dksJ ||jd |
jd   dksJ dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r1   r2   rn   r   )r2   r2   r   r   r|   r   N)	r#   r   r^   rf   r   r  r  r  r  )r  r  r'   r   r   r+   r;  r  Z
lower_leftZ
upper_leftZlower_rightZupper_rightZsign_xZsign_yr    r    r!   test_indicate_inset_inverted  s    
   r  c                  C   s   t  \} }|d |jg ddd t| jds>J |d |jg ddd t| jdspJ |d |jg dd	d t| jdsJ d S )
Nr  )r   r   rT  rT  r   r  r   r   r  r  active)r#   r   r_  r1  r^   r  rc  rv  r&   r    r    r!   test_set_position  s    


r  c                  C   sd   t  \} }|jj| j }|ddd dd |jj| j }tj	j
| | dd d S )N)r  r  r  r  rE  Fgư>r  )r#   r   r.  rF   rU  r\  rT  _set_view_from_bboxr^   r   r   r  r  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r\  r   )r|   r2   r   r1   rR  )r  r  r   r  Zatol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r#   r   r|  r}  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 )Nr1   ra  i  )r#   r   r   rt  r^   r  r\  rT  r   r   r  rv  )r'   r   rW  r    r    r!   test_gettightbbox_ignore_nan@  s
    
r  c                 C   s^   t dd}| jtjjdd|d}| jtjjdd|d}| jg d|d}t||| d S )Nrn   rY  r  r  rm  )r1   r1   r1   r1   r1   r   r   r   )r   r  r^   r_   r'  r#   r3   )rN  rD  r+   r,   r5   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)rq  r5   )r#   r3   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\}}|| | |g d}|d |j	
d |j
d |jd	| d
 |d
 f|jd|jtddd d S )Nr   rn   r  )gQ@r   rR  )rT  r   r   r   r   Fr   r  ry  r  )r  )rk  rl  rm  rn  r  )r^   r   ru  r   r#   r   r   r  r_  rO   r   rR   ro  Z	transDatar   r  )r+   r,   r'   r   r  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 )Nr1   r2   r  T)r  r  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S Nr  r  r1   r^   r  r.  r    r    r!   invertl  s    z!test_secondary_xy.<locals>.invertr[  r   r   Z	functionsrT  c                 S   s   d|  S Nr2   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   rG  r   r^   rf   secondary_xaxissecondary_yaxis)r'   rI  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 d    n1 sZ0    Y  tt |d W d    n1 s0    Y  tt |	d W d    n1 s0    Y  d S )	Nr2   r[  r   c                 S   s   d|  S r  r    r.  r    r    r!   r    r   z%test_secondary_fail.<locals>.<lambda>r  r;   rF   )
r#   r   r   r^   rf   r   r   r9  r  r  r&   r    r    r!   test_secondary_fail}  s    0(r  c                  C   sr   t jdd\} }|tddtdd dd }|jd||fd | j  | d	 t	|
 jg d
 d S )Nr  rR  r2   r[  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S r  r  r.  r    r    r!   r    s    z%test_secondary_resize.<locals>.invertr7   r  )r  r   r  )r#   r   r   r^   rf   r  r\  r   r  r   rc  ro  )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\J |  t|j t	jszJ |d	 t   t|j t	jsJ |d
 t   t|j t	j
sJ d S )Nr  rR  r2   r[  c                 S   s8   t jdd d|  W  d    S 1 s*0    Y  d S r  r  r.  r    r    r!   r    s    z'test_secondary_minorloc.<locals>.invertr7   r  r   rb  )r#   r   r   r^   rf   r  r   Z_axisZget_minor_locatorr   ZNullLocatorrB  ZAutoMinorLocatorrc  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sPJ d S )Nr   r7   )r#   r   rc  r  rO   r   r   ZScalarFormatterr\  r   r   r   r'   r   r  r    r    r!   test_secondary_formatter  s    


r  c                  C   s*   t  \} }|d}t|dks&J d S )Nr7   z<SecondaryAxis: >)r#   r   r  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 )Nr2   r   )ZscaledrP  imager   r   )r1   g	@)r   r   r   r   rS  r  r1   )r1   g      @)r1   r   )r   ro  r  )r#   r   rG  r   rO  r   r  r  )r'   r  r  optionr    r    r!   test_axis_options  s    r  c                 C   sd  | j   | j  }g }t|j|jgD ]P\}}||}|rntj|j	|j
f|j|jdddddd}| | ||g7 }q(g }tg dD ]R\}}	|j|	 |}tj|j	|j
f|j|jdddddd}
| |
 ||g7 }q| }tj|j	|j
f|j|jd	d
dddd}| | |}||}tj|j	|j
f|j|jdddddd}| | |}||||fS )zS
    Helper for the tests below that test the extents of various axes elements
    r  r,   r   Nr   )rv  r  r   r   r   r   r  )rF   r7   rG   r;   r   r   r6  r2   r  r1   )r\  r   rT  rG  rO   rR   r  r  r  r'  r(  rv  r  r   r.  rU  )r'   r   rW  bbaxisr  Zaxxr  Zaxisrbbspinesr   Zspinerr  bbaxr  bbtbr    r    r!   color_boxes  sP    







r  c                  C   sn  t ddiH tjddd\} }| j  t|  t| |\}}}}W d    n1 sZ0    Y  g dg dg}t|D ]*\}}tj	j
||  }	t|j|	jdd	 q|g d
g dg dg dg}t|D ]*\}}tj	j
||  }	t|j|	jdd	 qg d}tj	j
| }	t|j|	jdd	 g d}tj	j
| }	t|j|	jdd	 | | jj}
t|
| jdd	 d S )N_internal.classic_modeFr  r`  r`  r  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r2   )decimal     b@-]@     @F8&@r  g     @r  ra  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r
   r#   r   r\  r   r  r  rG  r3  Bboxfrom_boundsr   r  rc  ZtransformedtransFigurerU  )r'   r   r  r  r  r  ry  r  r  targetbbZaxbbr    r    r!   test_normal_axes  s6    

0r  c            
      C   s&  t ddiL tjddd\} }| j  |jg g d t| |\}}}}W d    n1 s^0    Y  t|D ]\}}|d u spJ qpg dg dg d	g d
g}t|D ]*\}}tj	j
||  }	t|j|	jdd qg d}tj	j
| }	t|j|	jdd g d}tj	j
| }	t|j|	jdd d S )Nr  Fr  r  r  ZxticklabelsZyticklabelsr  r  r  r  rc  r  r  )r        ^@r  r  )r
   r#   r   r\  r   r   r  rG  r3  r  r  r   r  )
r'   r   r  r  r  r  r  r  ry  r  r    r    r!   test_nodecorator%  s*    
0r  c            
      C   s  t ddiZ tjddd\} }|jg g d |jjd | j  t	| |\}}}}W d    n1 sl0    Y  g dg d	g d
g dg}t
||D ]&\}}tjj| }	t|j|	jdd qg d}tjj| }	t|j|	jdd g d}tjj| }	t|j|	jdd d S )Nr  Fr  r  r  r  )r  rj  )r        8@r  gs~8&@r  r  r  rc  r  r  )r  r  r  g     @)r
   r#   r   r   r.  rF   r1  r\  r   r  r{  r3  r  r  r   r  )
r'   r   r  r  r  r  targetsry  Zbbspiner  r    r    r!   test_displaced_spineC  s(    
0r  c               	   C   s   g dg dgg dg dgg dg dgg} t g dD ]\}}tdd	i tjd
dd\}}|j|d |j  t||\}}}}t ddgD ]2\}	}
tj	j
| | |	  }t||
 j|jdd qW d   q:1 s0    Y  q:dS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r  r  +e8&@)r  r  r  r  )r  gZӼ8[@r  88&@)g r\a@rY  r  r  )r  gqq\@r  r  )g88b@r  r  r  )rE  rs  Zinoutr  Fr  r  r  rt  r   r2   rc  r  N)rG  r
   r#   r   r2  r\  r   r  r3  r  r  r   r  )r  Zdnumdirsr'   r   r  r  r  r  r  r   r  r    r    r!   test_tickdirs^  s*    
r  c            	      C   sr  t ddiN tjddd\} }| j  |jddd t| |\}}}}t| |\}}}}g d	g d
g}tdD ].}tj	j
||  }t||d  j|jdd qvtjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}g dg dg}tdD ]0}tj	j
||  }t||d  j|jdd qW d    n1 sd0    Y  d S )Nr  Fr  r  r  r   rs  )r  rF  )r  g88[@r  r  )gCiq\a@r  r  r  r2   rc  r  r  r   r  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@r  )r
   r#   r   r\  r   r2  r  r   r3  r  r  r   r  rB  )	r'   r   r  r  r  r  r  r  r  r    r    r!   test_minor_accountedfort  s:    


r  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr  Fr  r  Ton)r   rO  r   r    r    r!   test_axis_bool_arguments  s    


r  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fksFJ ||f| ksZJ ||f| ksnJ d S )Nr   rn   r   r  r#   r   rO  rw  r   r   r'   r   r\   r]   rS  rT  r  r    r    r!   test_axis_extent_arg  s    r  c                  C   sr   t  \} }d}d}d}d}|j||||d}t|||||fksFJ ||f| ksZJ ||f| ksnJ d S )Nr   rn   r   r  )r\   r]   rS  rT  r  r  r    r    r!   test_axis_extent_arg2  s    r  c                  C   sD   t jg dg dgdd\} }} |d dks0J |d dks@J d S )	Nr  )r   r   r   r`  r  r  r   r1   r|   r`  )r#   r  r  r  r    r    r!   test_hist_auto_bins  s     r  c            
      C   s   t d\} \}}g d}|tjg }||\}}}tjdd  ||\}}	}W d    n1 sh0    Y  tj|| tj||	 d S )Nr2   r  r  r  )r#   r   r^   r  r  r  r   r   )
r'   r   r   ri  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s0J |d dks@J d S )	Nrn   r  r  T)r   r  r   r|   r1   )r#   r  r^   r_   ro   r  r    r    r!   test_hist_range_and_density  s
    r  c            
      C   sz   t  \} }g d}|j|||ddd}|jj\}}}|jD ]8}|D ]}|j|jksDJ qD|D ]}	|	j|jks^J q^q<d S )Nr  r   r   )r+   r  r  r9  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s2J |dg | dksNJ d S )Nr   r  ry  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srJ d S )Nr  rR  rT  r  r   rl  logit)F]tE?g'^P?r1   rZ  r  r   r  r   r~   r\  r   r2   )r#   r   r   r   r   r  r  Ztransform_bboxrc  r  rv  r   approx)r'   r   r   r    r    r!   $test_aspect_nonlinear_adjustable_box  s    
r  c                  C   s   t jdd} | g d}|ddgddg |jdddd	d
dd |d |  | t	ddgkspJ |
 d	ksJ d S )Nr  rR  r  rT  r  r   )r1   r   r  )gbeF?r  r1   r[  r  r   gS[:XL	@g'In?@)r#   r   r  r   r   r  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<J t  \}}|d |ddgddg |jd	d
d | j	  |j	  |
 }|
 }|
 }t|j|j t|j|j d S )Nru  iX  r1   r   r   r2   r`  r  r  rZ  r^  )r#   r   r   r   set_box_aspectZget_box_aspectr  r_  r\  r   rc  r   ro  )r`  r   Zaxtwinra  r   bb1Zbbtr  r    r    r!   test_box_aspect  s     



r  c                  C   s   t  \} }|g d | j  |d t  \}}|d |j  |g d | j  |j  | }| }t|j|j d S )N)r   r   r  r   r   )	r#   r   r1  r\  r   r   rc  r   ro  )r`  r   ra  r   r  r  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 )Nr2   r   r1   )re  T)r  r  r   )r#   r   r  r\  r   rT  rH  rU  r  rv  r  r   )r'   rI  rW  r  r   r  r    r    r!   test_bbox_aspect_axes_initA  s    




r  c                  C   s   t  \} }tjtdd |d W d    n1 s:0    Y  tjtdd |d W d    n1 sr0    Y  tjtdd |tj W d    n1 s0    Y  tjtdd |tj  W d    n1 s0    Y  d S )Nzmust be finite and positiver#  r|   r   )r#   r   r   r   r9  r_  r^   r  r&   r    r    r!   test_set_aspect_negativeP  s    ((*r  c                  C   s4   t dd\} }|g d | j  |  d S )Nr1   r  )r#   r   r   r\  r   Zredraw_in_framer&   r    r    r!   test_redraw_in_frame\  s    
r  c                  C   sB   t  \} }| jdd us J |d | jdd u s>J d S )N)r  r  F)r#   r   r\  Zinaxesr   r&   r    r    r!   test_invisible_axes_eventsc  s    
r  c                  C   s<   dt jd< t  } | j }|D ]}|j dks J q d S NrL  zlines.markeredgecolor)r#   r   r  rO   get_major_ticksr1  get_markeredgecolor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 J q d S r  )r#   r   r  rR   r	  r1  r
  r  r    r    r!   "test_ytickcolor_is_not_markercolors  s
    

r  rO  r  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d u rt| n|}	|d	|d
 |	| ksJ |j  t	| d	 d S )Nr   rj  r   Zget_autoscaleZ_onr   Zlimget_r  )r  )
r#   r   r^   rf   r   r3   r   r\  r   r   )
rO  r  r'   r   r+   r,   rR  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   r2   r1   r   e   )r   r   r^   r   get_pathZ_interpolation_stepsr   )r   r   r  r    r    r!   )test_polar_interpolation_steps_variable_r  s
    $
r  c                  C   s6   t  \} }|dd | j  | dks2J d S )Nr   g&.>)r   g	>)r#   r   r  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@J |j dks*J q*d S )Nr  zxtick.colorr   zxtick.labelcolor)r#   r   r  rO   r	  r1  r,  rd  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@J |j dks*J q*d S )Nr  zytick.colorr   zytick.labelcolor)r#   r   r  rR   r	  r1  r,  rd  r  r    r    r!   &test_ytickcolor_is_not_yticklabelcolor  s    


r  r  c                 C   s   g | ]}|d ur|qS r   r    )r   r  r    r    r!   r     s   r   )r  rn   ru  c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ].\}}|	 D ]}|j
 ||ksPJ qPq@d S )Nzxtick.labelsizezytick.labelsizer+   r,   )r   r   r#   r   r\  r   r{  rO   rR   r	  rd  r  Z_get_tick_label_size)r  r'   r   namerO  r:  r    r    r!   test_relative_ticklabel_sizes  s    


r  c                  C   s\   t  } | jdddd\}}|g dg d |dd | }t|d	d
gsXJ d S )Nr2   r1   r  rU  rM  )r2   r   r2   r   r  r   r   r  )r#   r   r   r3   r  r   r^   r  )r'   r   r   r   r    r    r!   test_multiplot_autoscale  s    r  c                  C   sX   t  } | d}| jg d|d}| }| jdd |  | k sTJ d S )Nr  )r  r  r   r   rU  r   rG   )r#   r   r   r  rc  r  r  r  )r'   r!  r   Zinit_posr    r    r!   $test_sharing_does_not_link_positions  s    
r  c                 C   s  t g d}| d}|d jddgddg|dd tjdd	2 |d jddgddg|dd W d    n1 s~0    Y  |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   r1   r2   r|   r]  rA  r#  r   rn   r  r   r  )r^   r  r   r   r   r   r:  r3   r  r  rf   r  )r   r   r   rI  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 )Nra  r2   rc  Trg  )r^   rf   r   r   r   rH  r   r6  )r   r   r+   r,   rI  r   r    r    r!   test_shared_axes_clear  s    


r  c                  C   s   t jddddd\} }|jD ]}|ddgd q|d g d |jD ]}| |d  ksJJ qJ|d g d |jD ]}| |d  ksJ qd S )	Nr2   r  rg  r   zo-r  )r\  r   r1   r   )r\  r   r2   r  )r#   r   rH  r   r  r   r  r   r  r    r    r!   test_shared_axes_retick  s    


r  r>   )rG   rN   r;   c                 C   sD   t  }| }|jdd| d |jd |j  | ks@J d S )Ntestr1   r=   r;   )r   r   r%   rR   Zset_label_positionrP   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sNJ |d  dksbJ |d  dksvJ |d j|d |d fksJ |d  dksJ |d  dksJ d S )	Nr1   r2   r   r   rN   rF   r7   r#   r  r  	bar_labelrk  r  r  r   rN  Zheightsr:  r  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sVJ |d  dksjJ |d  dks~J |d j|d |d fksJ |d  dksJ |d  dksJ d S )	Nr1   r2   r   r   r   rN   r7   rF   )r#   r  r  r  r"  rk  r  r  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sNJ |d  dksbJ |d  dksvJ |d j|d |d fksJ |d  dksJ |d  dksJ d S 	Nr1   r2   r   r   r   rG   rN   r;   r#   r  r,  r"  rk  r  r  r   rO  rQ  r:  r  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sVJ |d  dksjJ |d  dks~J |d j|d |d fksJ |d  dksJ |d  dksJ d S r&  )r#   r  r  r,  r"  rk  r  r  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sVJ |d  dksjJ |d  dks~J |d j|d |d fksJ |d  dksJ |d  dksJ d S 	Nr1   r2   r   r   r   r;   rN   rG   )r#   r  r  r,  r"  rk  r  r  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^J |d  dksrJ |d  dksJ |d j|d |d fksJ |d  dksJ |d  dksJ d S r+  )	r#   r  r  r  r,  r"  rk  r  r  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sFJ |d  dksZJ |d  dksnJ |d jdksJ |d  dksJ |d  dksJ d S )	Nr1   r2   r   r   rN   Z
label_typer   r  r'  r(  r    r    r!   test_bar_label_location_centera  s    r/  z%test_centered_bar_label_nonlinear.svgc                  C   sP   t  \} }|g dg d}|d |dd  |j|dd |  d S )N)r5   r  r   )r  i  iX  r   r1   rN   r.  )r#   r   r,  rc  r|  r"  r  )r  r   r{  r    r    r!   !test_centered_bar_label_nonlinearn  s    
r0  c                  C   sl   t  \} }d}tg dg dD ]0\}}|jd|||d}|j|dd ||7 }q"|d d |   d S )	Nr   rv  )rn   r  rf  r  )r)   rG   rN   r.  r  )r#   r   r{  r,  r"  r|  rO  )r'   r   lastr)   r  r{  r    r    r!   +test_centered_bar_label_label_beyond_limitsx  s    
r2  c                  C   s   t  } ddgddg }}| j||dd}| |}|d j|d |d d fksVJ |d  dksjJ |d  dks~J |d j|d |d d fksJ |d  dksJ |d  d	ksJ d S )
Nr1   r2   r   r   r  r   rN   rF   r7   r!  r#  r    r    r!   !test_bar_label_location_errorbars  s    
""r4  r   r  z{:.2f}c                 C   sV   t  }|ddgddg}|j|| d}|d  dks>J |d  dksRJ d S )	Nr1   r2   r   r   rM  r   z3.00z-4.00r#   r  r  r"  re  )r   r   r:  r  r    r    r!   test_bar_label_fmt  s
    r6  c                  C   s\   t  } | ddgddg}tjtdd | j|dd}W d    n1 sN0    Y  d S )	Nr1   r2   r   r   zstr or callabler#  rn   rM  )r#   r  r  r   r   r   r"  )r   r:  r  r    r    r!   test_bar_label_fmt_error  s    r7  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dksBJ |d  dksVJ d S )	Nr1   r2   r   r   rw  rx  r  r   r5  )r   r:  r  r    r    r!   test_bar_label_labels  s
    r8  c                  C   sl   t  } | ddgtjdg}| |}dd |D ddgksBJ |d jd	ksTJ |d  d
kshJ d S )Nr2   r   r1   c                 S   s   g | ]}|  qS r    r  r   r  r    r    r!   r     r   z,test_bar_label_nan_ydata.<locals>.<listcomp>r   1r   r  rF   )r#   r  r  r^   r  r"  rk  r  r   rz  r  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sJJ |d jd	ks\J |d  d
kspJ d S )Nr2   r   r1   c                 S   s   g | ]}|  qS r    r  r9  r    r    r!   r     r   z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>r   r:  r   r  rF   )	r#   r  r  r  r^   r  r"  rk  r  r;  r    r    r!   !test_bar_label_nan_ydata_inverted  s    
r=  c                  C   s:  t  \} }|jg dtjddgg dd}||}dd |D g dksPJ t| d	sdJ t  \} }|jg dg d
dtjdgd}||}dd |D g dksJ t| dsJ t  \} }|jg dtjddgtjtjdgd}||}dd |D g dks J t| d	s6J d S )Nr  r1   r2   rl  r3  c                 S   s   g | ]}|  qS r    r  r9  r    r    r!   r     r   z&test_nan_barlabels.<locals>.<listcomp>)r   r:  2)ra  r  r  r   r  c                 S   s   g | ]}|  qS r    r  r9  r    r    r!   r     r   )r  r:  r>  )r\  r  c                 S   s   g | ]}|  qS r    r  r9  r    r    r!   r     r   )r#   r   r  r^   r  r"  r  r   )r'   r   rz  r  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  rY  r   rB  gffffff?r   r  r2   grI  r  )r#   r   r  r  ZWedger^   r   r   r   Zassert_array_almost_equal_nulpr  ZdataLimr  )r'   r   Zbotr    r    r!   test_patch_bounds  s    "r@  c                	   C   sL   t jtdd* tjdgdgddddd W d    n1 s>0    Y  d S )	Nz!You passed a edgecolor/edgecolorsr#  r   r  r  r  r  )rw   rq  r   r   )r   r:  r  r#   r3   r    r    r    r!    test_warn_ignored_scatter_kwargs  s    rA  c                     sb  t  \}   fddtdD } tdtd} td} t	
ddd} ddd}t j|gksJ t j|gksJ t j|ksJ t j|gksJ  jrJ t j|gksJ  jd |d u sJ  jd	 |d	 u sJ tjtd
d"  jt|d   W d    n1 s>0    Y   jg d g |dddkspJ g d j dddg|ksJ  jd g |dddR ksJ d j dddg|R ksJ |   jrJ |   jr J |   jrJ  jr J |   jr4J  jD ]}|  q:t jdks^J d S )Nc              	      s&   g | ]}  t||d  d qS )r   r   )r   r^   rf   r/  r  r    r!   r     r   z(test_artist_sublists.<locals>.<listcomp>r`  r   )r   r   r  r   r  r|   zout of ranger#  r1   r  r2   r   )r#   r   r   r3   r^   rf   r   r  r  r  r  rt  r  r0  Zimagesr  r   Ztablesr  r   r   
IndexErrorr  r  )r'   r  r  r^  r   rt  r9  r    r  r!   test_artist_sublists  s@    
2("& 
rC  c                  C   sh   t d} t d}t \}}|| |}t|dks<J t \}}|g g }t|dksdJ d S )Nrn   )rn   r   r   r1   )r^   r   r#   r   r   r  )r+   r,   r  r   rr  r    r    r!   test_empty_line_plots   s    

rD  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   sj   t  \}}|d ur |dd}tjtd| d d  |jd| |d W d    n1 s\0    Y  d S )Nnotzneither a data key norz\Az\Zr#  rE  r  )r#   r   replacer   r   r9  r   )r   r$  ri  r'   r   r    r    r!   test_plot_format_errors   s
    	rH  c                  C   sx  t  \} }|g dd}|d  dks0J |d  dksDJ t  \} }|g dd}|d  dkstJ t  \} }|ddgddgdd}| j  |d  dksJ | d  dksJ t  \} }|ddgddgdd}| j  |d  dksJ | d  dks,J t  \} }|g dd	}|d  d
ks^J |d  dkstJ d S )Nr  z1.0r   )r   r   r   r   r=  r:  r1   r2   Zk3r   rS  )	r#   r   r   r,  r  r\  r   r  re  r  r    r    r!   test_plot_format.   s*    

rI  c                  C   s   t  \} }|jddddid | }| j  | d  dksJJ | d  dksbJ t  \} }|jdddddid | }| j  | d  dksJ |	 d  dksJ | d  dksJ d S )Nr   r  r  r2   r  r   r5   )
r#   r   r   rA   r\  r   Z	get_textsre  r  r  )r'   r   Zlegr    r    r!   test_automatic_legendF   s    

rJ  c                   C   sb  t jtdd" tjg ddd W d    n1 s60    Y  t jtdd8 tjg dg dg dg ddd	gd
 W d    n1 s0    Y  t jtdd" tg ddg W d    n1 s0    Y  t jtdd  ttd W d    n1 s0    Y  t jtdd( tjddddddid W d    n1 sT0    Y  d S )Nz"plot\(\) got an unexpected keywordr#  r  r1   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)r2   r2   r2   zUsing arbitrary long args withr   r  r5   r  r2   r  )r   r   r   r#   r   r9  r^   r   r    r    r    r!   test_plot_errorsW   s    0F00rK  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sJ qd S )Nr   r]  r   r1   r2   )r  r  )clim)r#   r   r   r   r3   r   r   rq  r^  r  r8  r  r  )r   Zplot_methodrL  r8  r    r    r!   	test_climd   s    rM  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|J d S )Nr|   r   r1   r\  )mpathr   r   ZCURVE3Z	CLOSEPOLYr#   r   r  r  r   r  r   )rB  codesr   r'   r   r    r    r!   test_bezier_autoscaler   s    rP  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sJ | dZ |ksJ | dY |ksJ | dZ |ks J d S )[Ngra  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	rc  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(\?r\  r   g(\տg{Gz?g
ףp=
ǿr  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?ro  g(\?r  gQ?gGz?g=
ףp=?gffffff @r  gGz@rI  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r1   )r^   r  rz  r}  rN  r   r#   r   r  r  r   r  r   r   )rB  ZminxZminyZmaxxZmaxyr   r'   r   r    r    r!   test_small_autoscale   sX    !
rR  c                  C   sb   t  \} }|td tdD ]8}| |  | ksBJ | |  | ks$J q$d S )Nrn   )	r#   r   r   r^   rf   r   r  re  r  )r'   r   r  r    r    r!   test_get_xticklabel   s
    rS  c                  C   s   t jdtd} t g d}t dgd }t j| d< t \}}|j| ||d}|j| ||d}||fD ]d}|^}}	t 	|j
  sJ t 	| sJ |	D ]*}
t 	|
j
 sJ t 	|
 sJ qqjd S )Nr   rT  )r   r   r   rQ  r   r  r  )r^   rf   rW  r  r  r#   r   r  r,  isfiniterk  anyZ	get_widthr  )ZbarxZ
barheightsZ	barstartsr'   r   rz  ZhbarsZbar_setZnanfulrestr  r    r    r!   test_bar_leading_nan   s    
rW  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   r1   )r   r   r   r   r  r^   r  r  rC  r    r    r!   test_bar_all_nan   s    rX  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 d    n1 s0    Y  d S )Nr2   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/  rv  r    r!   r      r   z0test_extent_units.<locals>.<listcomp>.<listcomp>rn   )r   )r   r    rY  r!   r      r   z%test_extent_units.<locals>.<listcomp>rn   r  zDate extents on y axisrv   r1   r[  Zplasma)rx   r  rz   r  z(Date extents on x axis (Day of Jan 2020)z%dry  zDay of Jan 2020)r%  r  )rx   rz   z set_extent\(\) got an unexpectedr#  ru  F)r  )r#   r   r^   r  r   r.   r   r   r  rO   r   r  ZDateFormatterr   Z
set_extentr   r   r   )r  rI  Z
date_firstZ	date_lastZarrr^  r    r    r!   test_extent_units   s>    

rZ  c                  C   s   t  \} }|g g g g }|dgg}||g D ] }|j|u sFJ |j| u s4J q4|  ||g D ] }|jd u szJ |jd u shJ qhd S r  )r#   r   r   r   r  r   r6  )r'   r   r  r   Zartr    r    r!   %test_cla_clears_children_axes_and_fig!  s    r[  c                  C   sZ   dd } d}t jt|d, d}tjjj|d i d| d W d    n1 sL0    Y  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
r2   rW  )r   r   r9  r   r  r   rF  )r@  msgr5   r    r    r!   test_scatter_color_repr_error!  s    
r]  c                  C   sf   t  \} }|d |jtdddd\}t }| j|dd W d    n1 sX0    Y  d S )Nr   Tr1   )r  r  r  )r  )r#   r   Zset_rasterization_zorderr   r   r  r  r  )r'   r   r9  r  r    r    r!   &test_zorder_and_explicit_rasterization&!  s
    

r^  c                  C   sf   dt jd< dt jd< dt jd< t } | jj dks:J | jj dksNJ | jj dksbJ d S )Nr  zaxes.labelcolorr  zaxes.labelsizer  zaxes.labelweight)	r   r   r#   r  rO   r)   r,  Zget_fontsizeZget_fontweightr  r    r    r!   test_rc_axes_label_formatting.!  s    


r_  )Nr2   (u  rD  r0  r   r  r  r   	functoolsr   r  r  	itertoolsr   platformr  r   Zdateutil.tzrx  numpyr^   r   r	   r   rL   r   r
   Zmatplotlib._apir   Zmatplotlib.colorsr  r:  Zmatplotlib.datesri  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   rN  Zmatplotlib.projections.geor   Zmatplotlib.projections.polarr   Zmatplotlib.pyplotZpyplotr#   Zmatplotlib.textrt  r  Zmatplotlib.tickerZtickerr   Zmatplotlib.transformsZ
transformsr3  Zmpl_toolkits.axisartistZ
axisartistr  Znumpy.testingr   r   r   Zmatplotlib.testing.decoratorsr   r   r   r"   r(   r0   rE   rK   rM   rS   rl   rs   r   r   r   r   r   r   r   r   rN  rO  r  r  r  r"  r=  rA  rD  rK  r   rP  rS  rZ  r]  r`  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r%  r*  machiner4  r<  rC  r  rf   rF  rI  rQ  rX  r_  rd  rk  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r   r!  r)  r-  r1  r2  r<  r=  r>  rE  rO  rT  r_  rk  ro  rr  r|  r}  r  r  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  rQ  rR  r  rT  r  rV  rX  r_  rb  rk  rm  rn  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r
  r  r  r  r  r%  r*  r-  r0  r2  r:  r<  r?  rD  rF  rH  rJ  rL  rQ  rU  rW  rY  rZ  r\  rg  rs  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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r)  r*  r,  r-  r4  r5  r?  rA  rD  rP  rQ  r  rh   r  r  rW  rX  ra  rb  rf  ri  r   r9  rw  rl  rm  rp  rr  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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   ro   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/  r2  r3  r5  r8  r:  r;  rH  rJ  rN  rQ  rX  rY  r]  r_  r`  rc  rf  rh  ri  rn  ro  rr  ru  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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/  r0  r2  r4  r  r6  r7  r8  r<  r=  r?  r@  rA  rC  rD  rH  rI  rJ  rK  rM  rP  rR  rS  rW  rX  rZ  r[  r]  r^  r_  r    r    r    r!   <module>   s  	














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

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

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







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

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

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

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

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

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

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