o
    e                    @   s5  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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l0m1Z1 d dl2m3Z3 d dl4m5Z6 d dl7m8Z9 d dl:m;Z< d dl=m>Z? d dl@mAZB d dlCmDZDmEZEmFZF d dlGmHZHmIZImJZJ eIdgddd ZKdd ZLdd ZMeI dd ZNeI dd ZOeI dd ZPdd ZQeIdgdd d! ZReIdgdd"d# ZSeIdgdd$d% ZTd&d' ZUeIdgdd(d) ZVeHg d*d+d, ZWd-d. ZXd/d0 ZYeHd1gd2d3 ZZd4d5 Z[ej\]d6d7d8d9 Z^ej\]d6d7eIdgd:d;d<d= Z_eHd>gd?d@ Z`dAdB ZadCdD ZbdEdF ZcdGdH ZdeIdgddIdJ ZeeHdKgdLdMdNdO ZfejghdPdQdR ZiejghdPdSdT ZjejghdPdUdV ZkeIdgddWdX ZldYdZ Zmd[d\ Znd]d^ ZoeHd_gdLdMd`da ZpeHdbgdLdMdcdd Zqdedf Zrdgdh Zsdidj Ztdkdl ZueHdmgdndoidpdqdr Zvdsdt ZweIdgddudv ZxeHdwdwgdxdy ZyeHdzgd{d|d}d~ ZzeIdgddd Z{dd Z|eHdgdgdLd{ddd Z}eHdgdd Z~eHdgdddd ZeHddgdLdMdd ZeHddgdLdMdd Zdd ZeHdgd{d|dd ZeHdgd{dLddd Zdd ZeIdgddd Zdd ZeHdgdd ZejghdPej\]dg deIdgddd ZeHddgdLd{ddd ZeHdgd{e dv rdnd ddd Zdd ZeHdgdLdM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Ƅ ZeHdgdLdMddɄ ZeHdgd{dLddd̄ ZeHdgdLdMddτ ZeHdgdd҄ ZeHdgdLdMddՄ Zddׄ ZeHdgdLdMddڄ ZeHdgdgdddބ ZeHdgddgdLddd Zej\]dddgeIdgddd ZeHdgd{d|dd ZeHdgd{d|dd Zdd Zdd ZeIdgddd ZeIdgddd Zdd Zdd Zej\]dddLgeIdgddd ZeHdgd d ZeHdgdLdPddd ZeHdgdLdMdd Zdd	 ZeHd
gdLdMdd ZeHdgdLdddd ZeHdgdLdddd ZeHdgdLdMdd ZeHdgdLdMdd ZeHdgdPdLddd ZeHdgdLdMd d! ZeHd"gdLdMd#d$ ZeHd%d%gd&d' Zd(d) Zd*d+ ZeHd,gd-d. ZeHd/gd0d1 ZeIdgdd2d3 ZeIdgdd4d5 ZeIdgdd6d7 ZeIdgdd8d9 Zd:d; Zd<d= ZeHd>gd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZÐdMdN ZejghdPeI dOdP Zej\]dQdRdSdRdTgdRfg dUg dVg dWg dWdTfg dUg dVg dXg dXdTfg dUg dVdYg dZdYfgd[d\ ZƐd]d^ Zǐd_d` ZeHdagdLdMdbdc ZeIdgdddde Zʐdfdg ZeHdhgdLdMdidj Z̐dkdl ZeHdmgdLdMdndo ZeHdpgdLdMdqdr ZeHdsgdtdu ZАdvdw Zѐdxdy Zej\j]dzejjӐd{d| d}d| gg d~ddd Zej\]dg dSfg gdSfg g gdfgdd Zej\]ddej+jjfdejjjfdej+jjfgdd ZeIdgddd ZeIdgddd ZeIdgddd ZeIdgddd Zސdd Zߐdd Zdd Zdd Zdd ZeHdgdLdMdd ZeHdgdd ZeIdgddd Zdd ZeHdgdLd{ddd ZeHdgd{e dv r
dnd ddd ZeHddgdLd{ddd ZeHdgdLd{ddd Zdd ZG dd dZdd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܄ ZeHdݐdgdސd߄ ZeHdgdLdMdd Zi dd| i fddZeHdgdndidPddd ZeHdgdndidPddd ZeHdgdndidPddd ZeHdgdndidPddd Z eHdgdLdndidPdddd ZeHdgdndidPdddd ZeHdgdLdndidPddd  ZeHdgdLdndidPddd ZeHdgdLdndidPddd ZeHdgdLdndidPdd	d
 ZeHdgdLdndidPddd ZeHdgdLdndidPddd ZeHdgdLdndidPddd Z	eHdgdLdndidPddd Z
eI dd ZeHdgdLdndidPddd ZeHdgdLdndidPddd ZeHdgdLdndidPdd d! ZeHd"gdLdndidPdd#d$ ZeHd%gdLdndidPdd&d' ZeHd(gdLdndidPdd)d* ZeHd+gdLdndidPdd,d- ZeHd.gdLdndidPdd/d0 ZeHd1gdLdndidPdd2d3 Zd4d5 Zd6d7 ZeHd8gdndidPdd9d: ZeHd;gdndidPdd<d= Zd>d? ZeHd@d@gdAdPdBdCdD ZeHdEgdndidPddFdG ZeHdHgdLdPddIdJ ZeHdKgdLdndidPddLdM ZeHdNdOgdPd|dPdQ ZdRdS ZeHdTgdndidLdSdPdUdVdW Z eHdXgdLdndidPddYdZ Z!eHd[gdLdndidPdd\d] Z"d^d_ Z#d`da Z$dbdc Z%ddde Z&eHdfgdLdndidPddgdh Z'eHdidigdjdk Z(eHdlgdmdn Z)eHdogdpdq Z*eHdrgdsdt Z+eHdugdvdw Z,eHdxgdydz Z-eHd{gd|d} Z.eHd~gdd Z/eHdgdd Z0eHdgdd Z1eHdgdd Z2eHdgdd Z3eHdgdd Z4eHdgdd Z5dd Z6dd Z7dd Z8dd Z9eIdgddd Z:eIdgddd Z;dd Z<dd Z=dd Z>eHg ddd Z?eHdgdgdLddd Z@dd ZAeI dd ZBdd ZCeHdgdd ZDdd ZEdd ZFeIdgddd ZGdd ZHdd ZIeI dd ZJej\]dg deg ddSgddÄ ZKeIdgddĐdń ZLeHdƐdgdǐdȄ ZMeHdgdʐd˄ ZNeHdgdLdMd͐d΄ ZOeHdgdАdф ZPeHdgdӐdԄ ZQeHdgd{dLdd֐dׄ ZRdؐdل ZSdڐdۄ ZTdܐd݄ ZUeHdgd{dLddߐd ZVeHdgdd ZWeHdgdd ZXeHdgdd ZYeHdgdLdMdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd ZbeHdgdd Zcd d Zddd Zedd ZfeHdgdLdMdd ZgeHd	gdLdMd
d ZheHdgdLdMdd Zidd Zjdd ZkeHdgdLdMdd ZleHddgdLdMdd ZmeHdgdLdMdd Znej\]dg ddd Zodd  ZpeHd!gdLdMd"d# Zqd$d% Zrej\]d&g gg d dSggd dSgg ggej\]d'g d(d)d* ZseIdgdd+d, ZteHd-gdLdMd.d/ ZueHd0gd1d2 ZveHd3gdLdMd4d5 ZweHd6d7ge d8krRd nddd9d: ZxeI d;d< ZyeI d=d> ZzeI d?d@ Z{eI dAdB Z|dCdD Z}eHg dEdgddFdG Z~dHdI ZeHg dJdgddKdL ZdMdN Zej\]d&dSddejdOgejg dPdQgeIdgddRdS ZeHdTgdgd{dUdVdW ZeHdXdXgdLdYddZd[ ZeHd\gdLdMd]d^ Zd_d` ZeHg dadLdbdPdcddde ZeHg dfdLdbdPdcdgdh ZeHg didLdbdPdcdjdk Zdldm ZeIdgddndo Zdpdq ZeHg drdLdsddtdu ZeHg dvdLdMdwdx Zdydz ZeIdgdd{d| ZeHd}gdLdMd~d ZeHddgdLdMdd Zej\]dg ddd Zdd Zdd ZeIdgddd Zdd Zej\]de6je6jdge6je6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dSdgfi dfee ddidffdd Zdd Zej\]d6d7dd Zdd Zdd ZeHdgdd ZeHg ddgd{dUdd ZeHdgd{d|dd ZeHdgd{d|dd ZeHdgd{d|dd ZeHdgd{d|dd ZeHdgd{d|dÐdĄ ZeHdgdƐdǄ ZeHdgd{d|dɐdʄ Zdːd̄ Zd͐d΄ ZdϐdЄ ZeI dѐd҄ ZeI dӐdԄ ZeHdgd֐dׄ Zdؐdل ZeIdgddڐdۄ Zdܐd݄ Zdސd߄ Zdd Zdd ZeHdgdd Zdd Zdd ZeHdgdndidpdd ZĐdd ZŐdd Zej\]dedi dfedi dfee dRdidfee ddidfeddSdSd7dfeddRdSi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 ZeHdgdndidpdd ZeHdgdndidp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ؐdOeؐdQ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dQdgd#d$ Zސd%d& Zߐd'd( Zd)d* Zd+d, Zej\]d-e d.d/ ZeHd0gdLdMd1d2 Zd3d4 Zd5d6 Zej\]d7dLdgd8d9 ZeHd:gdLddd;d< ZeHd=gdLd{dd>d? ZejghdPd@dA ZejdRdgdBdCdD Zejg dEdBdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZejghdPdPdQ ZejghdPdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Z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eHdrgdsddtdu ZeHdvgdwdx ZeHdygdsddzd{ ZeHd|gdLdMd}d~ Zdd Zdd Zdd Z	dd Z
ej\j]dg dg dddd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZejghdPdd Zdd Zdd Zdd Zej\]dedSggdg idfedSggdg idfedSggdg idfedSggdg idfedSggdg idfedSgi dfedSggddSdgidfedSggddSdgidfedSggddSdgidfedSggddSdgidfedSggddSdgidfedSggddSdgidff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eIdgddǐdȄ ZeIdgddɐdʄ Z dːd̄ Z!d͐d΄ Z"dϐdЄ Z#eHdgdLd{ddҐdӄ Z$dԐdՄ Z%d֐dׄ Z&ej\]dddLgej\]dddLgdڐdۄ Z'dܐd݄ Z(dސd߄ Z)dd Z*dd Z+dd Z,dd Z-eHdgd{dLddd Z.eHdgd{d|dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4eHdgdLd{ddd Z5dd Z6dd Z7dd  Z8dd Z9dd Z:dd Z;eIdgddd Z<d	d
 Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd  ZHd!d" ZId#d$ ZJd%d& ZKd'd( ZLd)d* ZMej\]d+d7ej\]d,d-d.d/ ZNeIdgdd0d1 ZOejghdPd2d3 ZPd4d5 ZQd6d7 ZRd8d9 ZSd:d; ZTej\]d<d=d> e&jUD g d? ejghdPd@dA ZVdBdC ZWdDdE ZXeIdgddFdG ZYeIdgddHdI ZZdJdK Z[ej\]dLg dMdNdO Z\dPdQ Z]dRdS Z^dTdU Z_dVdW Z`dXdY ZadZd[ Zbd\d] ZceHd^gd_d` Zddadb Zedcdd Zfej\]dedfdgdgjggdhdi Zhdjdk Zidldm Zjdndo Zkdpdq Zldrds Zmdtdu ZnejghdPdvdw Zodxdy Zpdzd{ Zqej\]d|d}ej\]d&dd~edigdd Zrdd Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd ZzeIdgddd Z{eHdgd{d|dd Z|dd Z}dd Z~dd Zdd ZeHdgdLd{ddd ZejghdPdd ZeIdgddd Zdd Zdd Zdd Zdd Zdd ZdS (      N)
namedtupleDecimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)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    I/var/www/myenv/lib/python3.10/site-packages/matplotlib/tests/test_axes.pytest_invisible_axes0   s   r"   c                  C   sD   t  \} }|d |d | dksJ | dks J d S )Nzx labelzy label)pltr   
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr   r    r    r!   test_get_labels6   s
   

r*   c                  C   sH   t  \} }|d |d |d |d t|dks"J 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   



r2   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   r5   legendr%   r$   colorbarr/   r   r   r   sccbarr    r    r!   test_label_loc_verticalI   s   

rH   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 )Nr3   r4   r5   r6   r8   bottomr:   r<   left
horizontalorientationr>   r   r?   rA   rB   rE   r    r    r!   test_label_loc_horizontal\   s   rN   c                 C   s   t ddd5 |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W d    n1 s@w   Y  | }|jddgddgddgdd}|  |jdddd |jd	ddd |j|d
d}|jdddd d S )Nr=   r9   )zxaxis.labellocationzyaxis.labellocationr3   r4   r5   r6   r8   r<   rK   rL   r>   r?   rA   )	
matplotlibr
   r   r5   rC   r%   r$   rD   r/   rE   r    r    r!   test_label_loc_rco   s$   



rP   c                  C   s  t  \} }|jddd |jddd |j  dksJ |jddd |j  dks1J |jddd |j  dksCJ |jddd |jddd |j  dks\J |jddd |j  dksnJ |jddd |j  dksJ d S )Nz
Test labelrJ   r:   centerr=   r9   rI   )r#   r   r$   xaxis	get_labelget_horizontalalignmentr%   yaxisr(   r    r    r!   test_label_shift   s   rV   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   r3   maxlagsfullmoder.   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r   r   Nxr-   rZ   ax_testax_refnorm_auto_corrlagsr    r    r!   
test_acorr   s   rr   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 )
NrW   3   
   r3   rY   r[   r\   r   r^   )ra   rb   rc   randre   ceilastypeint64r   rf   rg   rh   ri   rj   rk   rl   r    r    r!   test_acorr_integers   s   ry   c                 C   s  t jd t d}d|d d< t j| |d}| d}|d | |d j|dd	d
 |d}|d j|ddd |d j	
  |d jg t |d d d dR ddi |d jd|d  |d  d d d d |D ]}|j	d qxd S )NrW   i   r   rX   )    rz   r4   r3   .lower)markerorigingray_rnearest)cmapinterpolation
markersizert   )aspectxlimylimboth)ra   rb   rc   onesshufflereshaper   spyimshowrR   tick_topplot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 ]$}tt |jtddfi | W d    n1 s.w   Y  qd S )Nr   r   osolid)r}   	linestyle   )r#   r   pytestraises	TypeErrorr   ra   eye)r)   r   unsupported_kwr    r    r!   test_spy_invalid_kwargs   s   r   c                 C   sT   t jd tjdd}|  | | }|| |j	
  |j	d d S )Nmpl20rz   r   )mplstyleusera   rb   ru   add_subplotmatshowr   rR   r   r   )r   r   r   ro   r    r    r!   test_matshow   s   

r   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005c                     sV  dd l m  m     dtjd<  fddtdD }  fddtdD } fddtdD }t 	 }|
d	 t 	 }|
d	 |j| |d
dd t 	 }|
d	 |j| |d
dd |
d t 	 }|j| |d
dd |j| |ddd |
d t 	 }|j| |d
dd |j| |ddd |
d |  d S )Nr      zlines.markeredgewidthc                    s   g | ]}| j  qS r    )sec.0r-   unitsr    r!   
<listcomp>       z)test_formatter_ticker.<locals>.<listcomp>rt   c                       g | ]}d | d  j  qS )      ?      ?kmr   r.   r   r    r!   r          c                    r   )      ?      ?r   r   r   r    r!   r      r   zx-label 001bluer   )colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrO   rcParamsranger#   figurer   r$   r   autoscale_view)xdataydata1ydata2r   r    r   r!   test_formatter_ticker   s0   






r   c                  C   s   dd } t   }|jjsJ |jjsJ |jjsJ |jjs"J |j|  |jjr.J |jjs4J |jjs:J |jjs@J t	| }t
|j tj	sPJ |j j|jks[J d S )Nc                 S      dS )N r    r-   posr    r    r!   	_formfunc     z4test_funcformatter_auto_formatter.<locals>._formfunc)r#   r   r   rR   isDefault_majfmtisDefault_minfmtrU   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r   targ_funcformatterr    r    r!   !test_funcformatter_auto_formatter  s    

r   c                  C   s   d} t   }|jjsJ |jjsJ |jjsJ |jjs J |j|  |jjs,J |jjs2J |jjs8J |jjr>J t	| }t
|j tj	sNJ |j j|jksYJ d S )Nz	{x}_{pos})r#   r   r   rR   r   r   rU   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr   targ_strformatterr    r    r!   &test_strmethodformatter_auto_formatter2  s    

r   twin_axis_locators_formattersc                  C   s
  t jddddd} t t j|  d }t|}tg d}t }|ddd}|dd	gddg |j	
| |j	| |j	td
 |j	tg d |j
t  |jtg d |jtd |jtg d |  |  d S )Nr   r3      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r7   3pr   )ra   linspacesinpir#   FixedLocatorr   r   r   rU   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterrR   LinearLocatortwinytwinx)valslocsmajlminlr)   ax1r    r    r!   "test_twin_axis_locators_formattersK  s"   
r  c                  C   s   t  \} }| }| }t   |j rJ |j r J |  |  |j r/J |j r6J |j	 s=J |j sDJ |j rKJ |j	 rRJ |j sYJ |j s`J |j	 sgJ d S N)
r#   r   r  r  drawrR   get_visiblepatchclarU   )r)   r   ax2ax3r    r    r!   test_twinx_clad  s"   r  twinr-   r.   c                 C   s   |  d}d|  }ddg}ddg}t  }| }||| t||jd us)J t|| }t||jd us9J t||jt||ju sGJ d S )Naxisr  01r   b)r   r   r   getattrr   )r  	axis_name	twin_funcr   r  r)   r
  r  r    r    r!   test_twin_units{  s   

 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 ]Q}|dd|}	t|	|d |	|| tjj}
|tj	j
|
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j|
jgd
 |	jdtjd tjd dd qGt|  t| d S )Nr  set_scaler3   r   r4   logr3   r4   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)ra   ri   r   r  r   rO   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r   r   r  r  	set_scaler-   rn   ax_twiniro   r.  r    r    r!   test_twin_logscale  sD   
r8  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   r3   r   r   r3   r4   r4   r   r   r3   r3   F)autoscalex_onautoscaley_onr   rt   r   lwr--r   r?  r   )ra   arrayr#   r   add_axesr   r  margins)r-   r.   x2y2r)   r   r  r    r    r!   test_twinx_axis_scales  s   
rG  c                  C   st   t  \} }| }|d | }| sJ | rJ | }|d | }| s2J | r8J d S r   )r#   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r)   r   ax_x_onax_x_offax_y_onax_y_offr    r    r!   #test_twin_inherit_autoscale_setting  s   

rP  c                  C   s  t d} |  }| rJ | rJ tjd}|| | r&J | s,J |  t	ddtj
 d}||t| | rIJ | rOJ |  || t   | rbJ | shJ | jD ]}|  qkt d}t jd|d}|jd | sJ ||t| |  | rJ |  || ||t| |  | sJ t |  d S )	Nr   )r   r   r4   r         shareyT)r#   r   gcaxaxis_invertedyaxis_invertedra   rb   r   r  r   r   r   cos	autoscaleaxesremovesubplotrU   set_invertedclose)r)   r   imgr-   ax0r
  r    r    r!   test_inverted_cla  sB   






ra  c            	         s  t jtdd G  fdddt} W d    n1 sw   Y  t jtdd G  fdddt}W d    n1 s=w   Y  G dd d| }G  fd	d
d
t}G  fdddt}G dd d|}t }| |||||fD ]}d ||g d} sJ d |   sJ qqd S )NzOverriding `Axes.cla`matchc                          e Zd Z fddZdS )z(test_subclass_clear_cla.<locals>.ClaAxesc                       d d S NTr    selfcalledr    r!   r       z,test_subclass_clear_cla.<locals>.ClaAxes.claN)__name__
__module____qualname__r  r    ri  r    r!   ClaAxes      ro  c                          e Zd Z fddZ  ZS )z-test_subclass_clear_cla.<locals>.ClaSuperAxesc                       dt    d S rf  )superr  rg  	__class__rj  r    r!   r       z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla)rl  rm  rn  r  __classcell__r    ri  ru  r!   ClaSuperAxes      ry  c                   @      e Zd ZdS )z+test_subclass_clear_cla.<locals>.SubClaAxesNrl  rm  rn  r    r    r    r!   
SubClaAxes#      r}  c                       rd  )z*test_subclass_clear_cla.<locals>.ClearAxesc                    re  rf  r    rg  ri  r    r!   clear'  rk  z0test_subclass_clear_cla.<locals>.ClearAxes.clearN)rl  rm  rn  r  r    ri  r    r!   	ClearAxes&  rp  r  c                       rq  )z/test_subclass_clear_cla.<locals>.ClearSuperAxesc                    rr  rf  )rs  r  rg  rt  r    r!   r  ,  rv  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear)rl  rm  rn  r  rw  r    ri  rx  r!   ClearSuperAxes+  rz  r  c                   @   r{  )z-test_subclass_clear_cla.<locals>.SubClearAxesNr|  r    r    r    r!   SubClearAxes1  r~  r  Fr;  )r   warnsPendingDeprecationWarningr   r   r  )	ro  ry  r}  r  r  r  r)   
axes_classr   r    ri  r!   test_subclass_clear_cla  s2   
r  c                  C   s*   t  D ]} d| jvrd| jvsJ qd S )Nr  r  )r   __subclasses__rn  __dict__)klassr    r    r!   !test_cla_not_redefined_internallyB  s
   
r  c                 C   st   t ddd |  }|ddgddg W d    n1 s!w   Y  | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r3   )rO   r
   r   r   minorticks_onr   r   rn   ro   r    r    r!    test_minorticks_on_rcParams_bothJ  s   
r  autoscale_tiny_rangeTremove_textc                  C   sL   t dd\} }t|jD ]\}}dd|  }|ddgdd| g qd S )Nr4   rt   ir   r3   )r#   r   	enumerateflatr   )r)   axsr7  r   y1r    r    r!   test_autoscale_tiny_rangeU  s
   r  defaultc                  C   s   t dd\} }|g d |jdddd |jdddd t| d t| d	 | s3J | s9J |	 s?J |jd d
 t| d t| d	 | sYJ | s_J |	 seJ d S )Nr3   r3   r4   r   r$  Tr-   F)enabler  tightr.   )g333333ÿg333333	@)r         @)r  )
r#   r   r   rY  r   r   r   rI  rK  get_autoscale_onr(   r    r    r!   test_autoscale_tight^  s   r  c                  C   s   t jdtd} tjdddd\}\}}|| |  || |  |jdd |jdd t  | d | d f}t	|
 | t	| | t	|
 | t	| | d	 | d f d S )
Nr   dtyper4   r3   Tsharex)r  r   r   )ra   ri   floatr#   r   loglogsemilogxrY  r  r   r   r   )r-   r)   r
  r  limsr    r    r!   test_autoscale_log_sharedv  s   r  c                  C   s   t  \} }|jddgddggdd t| d t| d d|_|  d	d|j  d
d|j  f}d	d|j	  d
d|j	  f}t| | t| | d|_|  t| d t| d d S )Nr   r3   r4   r   r|   r~   )      r   Fr  r   T)
r#   r   r   r   r   r   use_sticky_edgesrY  _xmargin_ymargin)r)   r   r   r   r    r    r!   test_use_sticky_edges  s   r  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r   r   rQ  rR  r  )ra   ri   r   r   
pcolormesh)r   r   Zr`  r
  r    r    r!   test_sticky_shared_axes  s   


r  c                   C   s<   t jtdd t  W d    d S 1 sw   Y  d S )Nz0 were givenrb  )r   r   r   r#   stemr    r    r    r!   test_nargs_stem  s   
"r  c                  C   sN   t jtdd t } | dgdgd W d    d S 1 s w   Y  d S )Nz3 were givenrb  FirstSecondr   )r   r   r   r#   r\  rC   r   r    r    r!   test_nargs_legend  s   "r  c                  C   sX   t jtdd t } | ddgg dg dg W d    d S 1 s%w   Y  d S )Nz2 were givenrb  r   r3   )r   r4   r3   r4   r   )r   r   r   r#   r\  
pcolorfastr  r    r    r!   test_nargs_pcolorfast  s   "r  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   )autoscale_onr   r   r   purpler?  r   z	local maxr   r3   datar   r   zoffset points)xyxycoordsxytext
textcoords)	ra   ri   rX  r   r#   r   r   r   annotate)tsr)   r   liner    r    r!   test_basic_annotate  s   

r  zarrow_simple.pngc            
      C   s   d} d}d}t | ||}tdd\}}tt|j|D ];\}\}}|dd |dd |\} }}dtj	 | d }	|j
ddt|	t|	|	d	 | |||	d
 |	d
 d
 qd S )N)TF)r[   rJ   r=   r   r$  r4      r   r   rt   )widthlength_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r#   r   r  zipr  set_xlimset_ylimra   r   arrowr   rX  )
r  r  r  kwargsr)   r  r7  r   kwargthetar    r    r!   test_arrow_simple  s&   
r  c                  C   s$   t  \} }|jdddddd d S )Nr   )r  )r#   r   r  _r   r    r    r!   test_arrow_empty  s   r  c                  C   s@   t  \} }|dddd | dksJ | dksJ d S )Nr3   )皙?皙@)r#   r   r  r   r   r  r    r    r!   test_arrow_in_view  s   r  c                  C   sN   t  \} }|jdddd}|jd u sJ |jdddi d}|jd us%J d S )Nfoor  r4   r   )r  )r  
arrowprops)r#   r   r  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s"J t
| | D ]
\}}||ks5J q+dS )z?Check that the signature of Axes.annotate() matches Annotation.N)r#   r   inspect	signaturer  
parametersmtext
Annotationlistkeysr  values)r)   r   annotate_params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]r  r4   degred)yunitsr   r;  )r  r  g     V@r  r  Z   r   )r)  )r   r   r   r   Epochdatetimer  Durationra   ri   mdatesdate2numr#   r   r   fillautofmt_xdate)r   r  valuedayr  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w   Y  t jtdd tjdgdgdd	d
 W d    n1 s?w   Y  t jtdd tjdgdgddd W d    n1 saw   Y  tjdgdgddd d S )Nzmarker .* redundantly definedrb  r   r   r-   r}   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   r  c                 C   sz   g d}t |}| }|  }|j||t |t |d^}}|ddg |j||t |t |ddgd d S )Nr  xerryerrr4   )r  r  dashes)ra   r   rU  r  abs
set_dashes)r   r   r-   r.   ro   rn   r  r  r    r    r!   test_errorbar_dashes8  s   
"(r!  single_pointc                  C   s   dt jd< dt jd< td\} \}}|dgdgd |dgdgd dgdgd}td\} \}}|jd	d	d|d
 |jddd|d
 d S )Nr   lines.markerT	axes.gridr4   r   r3   r   r  r   r  r  )rO   r   r#   r   r   )r)   r
  r  r  r    r    r!   test_single_pointF  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(\bPr4   r3   r   r   r  r  )	r#   r   r  r	  ra   
datetime64r   	plot_dater   )r  time1data1r)   r   r    r    r!   test_single_dateX  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 )Nrt   r3   r   r   r   r   r3   r4   r3   gQQ?)r   	   r   r   )ra   ri   r   r   r   r   ravel)r   r   rowcolr  r    r    r!   test_shaped_datag  s   

r8  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r3   r3   r4   r4   r   twosr  r4   r   r&  r3   r  )ra   rB  r  r#   r   r   r   )ptsr  r    r    r!   test_structured_datav  s   r=  aitoff_proj)r   r  r   c                  C   sz   t t j t jd} t t j d t jd d}t | |\}}tjdtddd\}}|  |j|j	|j	ddd	 d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r4   )   @aitoff
projection)figsize
subplot_kwr   r$  )r   N)
ra   r   r   meshgridr#   r   dictgridr   r  )r-   r.   XYr)   r   r    r    r!   test_aitoff_proj  s   
rL  axvspan_epochc                  C      dd l m  m}  |   | jdtdddd}| jdtdddd}| d| jd}t	
 }|j||d	d
d ||d|  |d|   d S Nr   r  r  r3   r?  r     r   r         ?)r)  alphar  )r   r   r   r   r  r  r  r  convertr#   rU  axvspanr  r   t0tfr  r   r    r    r!   test_axvspan_epoch      rX  axhspan_epoch{Gz?)r  c                  C   rN  rO  )r   r   r   r   r  r  r  r  rS  r#   rU  axhspanr  rU  r    r    r!   test_axhspan_epoch  rY  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  )r4     r   r   333333?ffffff?)extentr  r-   r.   )rc  r  )r#   r   ra   ri   r   hexbin)r)   r   r  r-   r.   r    r    r!   test_hexbin_extent  s   
re  zhexbin_empty.pngc                  C   sL   t  \} }|g g  t  \} }|jg g dd |jg g g tjd d S )Nr"  bins)Creduce_C_function)r#   r   rd  ra   maxr(   r    r    r!   test_hexbin_empty  s
   rk  c                  C   s`   t  \} }tdd d}|\}}|j||g ddd}tddd}||d	 s.J d S )
N   r4   r   r`  r   )rc  picker  ,  r  r   )r#   r   ra   ri   r   rd  r   contains)r)   r   r  r-   r.   hbmouse_eventr    r    r!   test_hexbin_pickable  s   rt  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.snaprW   順 r         @r  r4   r   r"  T)yscalerg  	marginalsri  )r#   r   ra   rb   rc   standard_normalpowerr   rd  sumrD   )nr-   r.   r)   r   hr    r    r!   test_hexbin_log  s   
r  zhexbin_linear.pngr   r  c                  C   s^   t jd d} t j| }dd|  dt j|   }t \}}|j||ddt jd d S )	NrW   rv  r   rw  r  rt   r   T)gridsizery  ri  )ra   rb   rc   rz  r#   r   rd  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s"J d S )Nrl  rm  r"  r4   r   )rg  vminvmax)ra   ri   r   r#   r   rd  get_clim)r-   r.   r)   r   r~  r    r    r!   test_hexbin_log_clim  s   r  c           
   	   C   s   g d}t | \}}dgt| }g d}d}|  }| }	|	j||||dd |	d |j||dgt| dd d||d	 |d d S )
N)r   r   r  )   r   )r   r  r3   )      $rt   r  rt   )r)  r)  )rc  r  mincntr   c                 S   s   t | S r  )r|  )vr    r    r!   <lambda>      z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>)rh  ri  r  rc  r  )r  lenr   rd  set_facecolor)
r   r   
datapointsrJ  rK  rh  rc  r  rn   ro   r    r    r!   ,test_hexbin_mincnt_behavior_upon_C_parameter  s.   
r  c                  C   s   t  \} }|  |g dg d | dksJ | dks$J t   t  \} }|  |g dg d | dksDJ | dksLJ t  \} }|d |	dd	 | d
kseJ d S )N)r  r4   r$  )r3   r4   r  r   )r$  r  r  )r  r$  )r   r  r"  rt   r3   )rt   r3   )
r#   r   invert_xaxisr   r   r   r^  invert_yaxis
set_yscaler  r(   r    r    r!   test_inverted_limits$  s   
r  nonfinite_limitsc                  C   st   t dt jd} t jdd t | }W d    n1 sw   Y  t j| t| d < t \}}|	| | d S )Nr  r  ignoredivider4   )
ra   ri   eerrstater"  nanr  r#   r   r   r-   r.   r)   r   r    r    r!   test_nonfinite_limits>  s   r  plot_fun)r5   r   fill_betweenc                 C   s^   t jdddd}| }| }t|| g g  ||fD ]}t|| |tt|dd qd S )Nz
2010-01-01z
2011-01-01r   r  C0r  )ra   ri   r   r  r   r  )r  r   r   r-   rn   ro   r   r    r    r!   test_limits_empty_dataI  s   r  r   )r  r   c                  C   s   dt jd< d} t| | f\}}|| d 8 }|| d 8 }t|d |d  ||  }t \}}|| d|i}t \}}|jd|d d S )Nr   image.interpolationr   r4   r  r&  )rO   r   ra   indicessqrtr#   r   r   )Nr-   r.   r  r)   r   r  r    r    r!   test_imshowZ  s   

r  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}t	|
 d | }|j||d d S )Nr   r  r   r4   r$  r   )	clip_path)rO   r   ra   r  r  r#   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r-   r.   r  r)   r   r7   r  r    r    r!   test_imshow_clipo  s   
r  c                  C   sf   ddgddgg} t  }tjtdd |j| tddd	d
d W d   dS 1 s,w   Y  dS )4Parameters vmin, vmax should error if norm is given.r3   r4   r   r$  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.rb  rt   r   r   )normr  r  N)r#   rZ  r   r   
ValueErrorr   mcolors	Normalize)r   r   r    r    r!   test_imshow_norm_vminvmax  s   "r  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 )Nr3   r4   (   )
linewidthsr   r   )
r#   r   ra   rB  r   collectionsPolyCollectionadd_collection
set_xbound
set_ybound)r)   r   vertsr7   r    r    r!   test_polycollection_joinstyle  s   "
r  z	x, y1, y2r:  r   r  r4   )
2d_x_input2d_y1_input2d_y2_input)idsc                 C   J   t  \}}tt || || W d    d S 1 sw   Y  d S r  )r#   r   r   r   r  r  r-   r  rF  r)   r   r    r    r!   test_fill_between_input     "r  z	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                 C   r  r  )r#   r   r   r   r  fill_betweenx)r.   x1rE  r)   r   r    r    r!   test_fill_betweenx_input  r  r  fill_between_interpolatec               	   C   s  t ddd} t dt j |  }dt dt j |   }tjdddd\}\}}|j| || |d	d
 |j| ||||kdddd |j| ||||kddd t j	|d}t jj
|d< |j| || |d	d
 |j| ||||kddd |j| ||||kddd d S )Nr  r4   r[  333333?r$  r3   Tr  blackr  white/)wherer)  hatchinterpolater  )r  r)  r  r   r   r   )ra   ri   r   r   r#   r   r   r  r   masked_greatermasked)r-   r  rF  r)   r
  r  r    r    r!   test_fill_between_interpolate  s(   
r  #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@)r3  r3  rE  ztab:redkr   T皙?r  r)  r  rR  r  r   r      X  )ra   rB  r#   r   r   r  r  r  )r   r  profr)   r   r    r    r!   (test_fill_between_interpolate_decreasing  s   r  fill_between_interpolate_nanc                  C   s   t d} t ddt jdddddddg
}t ddddddddt jt jg
}t \}}|j| |d	d
 |j| |dd
 |j| ||||kdddd |j| ||||kdddd d S )Nrt   r@              rz   r   r  r7   r  r   Tr   r  r  )ra   ri   asarrayr  r#   r   r   r  r  r    r    r!   !test_fill_between_interpolate_nan  s   
 "
r  z
symlog.pdfc                  C   sX   t g d} t g d}t \}}|| | |d |d |dd d S )N)r   r3   r4   r$  r  r3  r  r  )i@B i  rv  r   r   r   r   r   symloglinearr   i )ra   rB  r#   r   r   r  
set_xscaler  r  r    r    r!   test_symlog   s   

r  zsymlog2.pdfc                  C   sn   t ddd} tdd\}}t|g dD ]\}}|| |  |jd|d |d	 q|d
 dd d S )N2   MbP?r   r3   )      4@r   r   r   r  r  )	linthreshTr   皙r   )	ra   ri   r#   r   r  r   r  rI  r  )r-   r)   r  r   r  r    r    r!   test_symlog2  s   r  c               	   C   s   g d} g d}t | |\}}t ||}t| tt| t| ||d dd df  t||t|d dd df  d S )N)            r  r  r   r   r   )r  g      r        r        пr   rQ  r         ?r         ?r   r   )ra   rG  hypotr#   pcolorr  )r-   r.   rJ  rK  r  r    r    r!   test_pcolorargs_5205  s   
&r  r  c                  C   s,  dt jd< d} tdd| }tdd| d }t||\}}t|t| }t|t| }|d }t||d }||  t	| }t
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 )NFru  r  r  r   r4   皙?r   r   r3   r   r   r  r?  
edgecolorsr  wgouraudshading)r#   r   ra   r   rG  rX  r   r  minptpr   masked_wherer  rj  r   r  )r}  r-   r.   rJ  rK  QxQzr  Zmr  r
  r  r  r    r    r!   test_pcolormesh'  s   
 $(r  pcolormesh_smallepsc                  C   sh  d} t dd| }t dd| d }t ||\}}t |t | }t |t | }|d }t ||d }||  t | }t	t 
|dt | k |}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d |
jD ]}|  qd S )Nr   r  r   r4   r  r   r   r  r   r  r  r  r  r	  r
  )ra   r   rG  rX  r   r  r  r  r   r  r  rj  r#   r   r  rZ  set_axis_off)r}  r-   r.   rJ  rK  r  r  r  r  Zm2r)   r
  r  r  r  r   r    r    r!   test_pcolormesh_small?  s&    $(

r  pcolormesh_alphapdf)r   r  c               
   C   s  dt jd< d} ttdd| tdd| d \}}|}|t| }t||d }||  t| }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 qq|
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 )NFru  r  r  r   r4   r   viridis   r   r   )r   r  )rb  r   r   r   r   )r)  zorderr   r  r  r3   )r   rR  r  r  r	  )r   r  r  )r#   r   ra   rG  r   r   r  r  r  r   	colormaps	resampledri   r  ListedColormapr   	add_patchmpatches	Rectangler  )r}  rJ  rK  r  Qyr  vircolorsr   r)   r
  r  r  r  r   r    r    r!   test_pcolormesh_alphaY  s2   
$

&r&  z
dims,alphar  )r$  r   c                 C   sN   |   }tjdd|ftdd }|| |  }|j|d ddd|d	 d S )
Nr   r  r  r4   ).r   grayr   r3   )r   r  r  rR  )r   ra   r   r  r  )r   r   dimsrR  r   r7   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 qqd S )NFru  r  \(\?333333?hspacer9   rI     r3   c                       g | ]
} t j|d  qS daysr  	timedeltar   dbaser    r!   r         z1test_pcolormesh_datetime_axis.<locals>.<listcomp>rP  r?     r      r   r        r=   r   )r#   r   r   subplots_adjustr  ra   rB  r   ri   rG  r\  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr)   r-   r.   z1z2zr   r+   r    r7  r!   test_pcolormesh_datetime_axis  s0   


.

>

rJ  zpcolor_datetime_axis.pngc                     s  t  } | jdddd tddd t fddtd	D }td	}ttd
td
\}}|| }t 	d t 
|d d |d d |d dd df  t 	d t 
||| tj|tj d	dd}tj|d d tjf d	dd}t 	d t 
|d dd df |d dd df |d dd df  t 	d t 
||| |  D ]}| D ]}|d |d qqd S )Nr  r*  r+  r,  r.  r3   c                    r/  r0  r3  r5  r7  r    r!   r     r9  z-test_pcolor_datetime_axis.<locals>.<listcomp>rP  r?  r:  r   r;  r   r<  r=  r>  r=   r   )r#   r   r?  r  ra   rB  r   ri   rG  r\  r  r@  rA  rB  rC  rD  rE  rF  r    r7  r!   test_pcolor_datetime_axis  s.   

.

>

rK  c               	   C   s  d} t dd| }t dd| d }t ||\}}t ||d }t \}}tt |	||| W d    n1 s?w   Y  tt |	|||j
 W d    n1 s\w   Y  tt |j	|||d dd df dd W d    n1 sw   Y  tt |j	|||d dd df dd W d    n1 sw   Y  t j|d	< tt |	|||d dd df  W d    n1 sw   Y  t jd
d t jj||d	k d}W d    n1 sw   Y  tt |	|||d dd df  W d    n	1 sw   Y  g d}ddg}t ||\}}t |j}tjtdd |j	|||dd W d    d S 1 sNw   Y  d S )Nr  r  r   r4   r   r   r	  r
  r   r  invalidmask)ig  r   r3   r  rt   z.are not monotonically increasing or decreasingrb  auto)ra   r   rG  r  r#   r   r   r   r   r  Tr  r  r  r   rB  zerosr  r  r  )r}  r-   r.   rJ  rK  r  r  r   r    r    r!   test_pcolorargs  sJ   $$
  $rS  c                  C   s&  t ddd} t g d| j}|jjdu sJ t jj| |d}t	
| t ddd	} t ddd	}t | |\}}t dt j | t dt j |  }t jd	td
}d|d< t ||j}|jjdu skJ t jj||d}t	
||| t jj||d}	t jj||d}
t	|	|
| d S )Nr  r4   r   FTFFrN  r   r3   rt   r  Tr   )ra   ri   r   broadcast_tor  flags	writeabler   rB  r#   r  r   rG  r   r   rX  rR  boolr  )r-   xmaskmasked_xr.   rJ  rK  r  rO  masked_Zmasked_X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   rt   r   rW   r4   r3  r  r
  r   r   r   ra   ri   rb   rc   randnr  diffr   r   r   r-   r.   r  rE  rF  r    r    r!   test_pcolornearest  s   rc  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     r9  z+test_pcolornearestunits.<locals>.<listcomp>rt   r   r   rW   r4   r3  r  r
  c                 S   s    g | ]}t j |d  d qS )r   rd  re  r   r    r    r!   r     s     r   r   )	r   r   ra   ri   rb   rc   r`  r  ra  rb  r    r    r!   test_pcolornearestunits  s   rg  c                  C   s   t  \} }tdd}tdd}tjd tjdd}tjt	dd |j
|||dd W d    d S 1 s;w   Y  d S )	Nr   r3  r   rW   zDimensions of Crb  r  r
  )r#   r   ra   ri   rb   rc   r`  r   r   r   r  r)   r   r-   r.   r  r    r    r!   test_pcolorflaterror  s   "ri  c                  C   sv   t  \} }ttdtd\}}|| }tjtdd |j|||dd W d    d S 1 s4w   Y  d S )Nr   r   z.*one smaller than Xrb  r  r
  )	r#   r   ra   rG  ri   r   r   r   r  rh  r    r    r!   test_samesizepcolorflaterror  s   "rj  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   rt   r$  rW   r   r3  )rk  r   r4   r_  )	r   r   rk  r   r-   r.   r  rE  rF  r    r    r!   test_pcolorauto&  s   rl  	canonicalc                  C   s   t  \} }|g d d S )Nr  r#   r   r   r(   r    r    r!   test_canonical9  s   ro  zarc_angles.pngc            
      C   sJ  d} d}d}d}t dd\}}t|jD ]\}}|d d }|d }	|tj|| |dd	 |tj|| ||	|d
 ||t	
t	|	 |d  |d |t	
t	| |d  g|t	t	|	 |d  |d |t	t	| |d  g || | || | | d9 } |d9 }|d d |d d f}|d9 }qd S )Nr4   r3   )r   r   r   h  r3  -   r   rR  )theta1theta2r   rt   )r#   r   r  r  r   r!  EllipseArcr   ra   rX  deg2radr   r  r  )
r  r~  centrer!  r)   r  r7  r   rt  rs  r    r    r!   test_arc_angles?  s4   
ry  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   rp  r   rQ  rP  )r   r   yellowr3   )rR  r)  r*  r+  r  r4   F)angler+  r
  r  rR  equalr   )rR  r)  r*  r  )ra   rw  ri   rX  r   rB  rh   r#   r   r   r
  r!  rv  r   )xcenterycenterr  heightr}  r  r-   r.   rthetaRr)   r   e1e2r    r    r!   test_arc_ellipsea  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   r4   r3   r  )r$  r   r4   )r   r$  r   )r#   r   mmarkersMarkerStyler   r5   r  )fixr   mr    r    r!   test_marker_as_markerstyle  s
   
r  	markeveryc                  C      t ddd} t | t | d d  }t \}}|j| |ddd |j| |dd d	d
 |j| |dddd
 |j| |dddd
 |  d S )Nr   rt   r   r   r   r  r+   r6  mark allr  r+   r  mark every 10+r   r?  mark every 5 starting at 10ra   r   r   r  r#   r   r   rC   r  r    r    r!   test_markevery  s   r  markevery_lineg{Gzt?)r  r  c                  C   r  )Nr   rt   r   r   z-or  r  z-dr  r  z-sr  z-+r  r  r  r  r    r    r!   test_markevery_line  s   r  markevery_linear_scalesr  c            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ])\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d q@d S )Nr@  r   r@  r  r  r   r   r   r   rl  r   r   r   r   r  r   ?r   r3   )\(?rt   r4   r   markevery=%sr   r  r$  lsmsr  )slicerO   gridspecGridSpecr  ra   r   r   r  r#   r\  r,   strr   
casescolsgsdeltar-   r.   r7  caser6  r7  r    r    r!   test_markevery_linear_scales  s(   
r  markevery_linear_scales_zoomedc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d t	d t	d q@d S )Nr@  r  r  r   r   r   rl  r   r   r   r   r  r  r3   r  rt   r4   r   r  r   r  r$  r  )r  g@)r  g333333?)r  rO   r  r  r  ra   r   r   r  r#   r\  r,   r  r   r   r   r  r    r    r!   #test_markevery_linear_scales_zoomed  s,   

r  markevery_log_scalesc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	d t	d t	j||ddd|d q@d S )Nr@  r  r  r   r   r   rl  r   r   r   r   r  r  r3   r  rt   r4   r   r  r"  r   r  r$  r  )r  rO   r  r  r  ra   r   r   r  r#   r\  r,   r  xscalerx  r   r  r    r    r!   test_markevery_log_scales  s,   


r  markevery_polarc            	      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}tddd}dtj | }t| D ]+\}}|| }|| }t	j
|||f dd t	dt|  t	j||ddd|d q6d S )Nr@  r  r  r   r   r   rl  r   r   r   r   r  r  r3   rw  r4   Tpolarr  r   r  r$  r  )r  rO   r  r  r  ra   r   r   r  r#   r\  r,   r  r   )	r  r  r  r  r  r7  r  r6  r7  r    r    r!   test_markevery_polar  s&   
r  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 ])\}}|| }|| }	t
|||	f  t
dt|  t
j||ddd|d qSd S )Nr@  r  r  r   r   r   rl  r   r   r   r   r  r  r3   r  rt   r4   r   r  F   r  r   r  r$  r  )r  rO   r  r  r  ra   r   r   r  r  r#   r\  r,   r  r   r  r    r    r!   !test_markevery_linear_scales_nans  s*   
&r  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   r3   rt   zy.      >@r  )r  mewmecr   r   r4   r  )ra   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   r3   edger  )align
tick_labelr%  r   r  )r  r  r  )r#   rU  barr   )r   r  r)   r    r    r!   test_bar_tick_label_single8  s   
r  c                  C   s&   t  \} }|ddgtjdg d S )Nr   r3   r$  )r#   r   r  ra   r  r(   r    r    r!   test_nan_bar_valuesE  s   r  c                  C   s   t  \} }|g g  d S r  )r#   r   r  r(   r    r    r!   test_bar_ticklabel_failJ     r  zbar_tick_label_multiple.pngc                  C   0   t  } | jddgddgddgddgdd	 d S )
Nr3         @r4   r   r   r   r  rQ   r  r  r  )r#   rU  r  r  r    r    r!   test_bar_tick_label_multipleO     
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 )NrQ   zytick.alignmentr3   r  r4   r   r   r   r  r  )rO   r   r#   rU  r  r  r    r    r!   *test_bar_tick_label_multiple_old_alignmentW  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@rA  r  r  gffffff
@g@c                 S      g | ]}t |qS r    r   r   r    r    r!   r   e      z+test_bar_decimal_center.<locals>.<listcomp>c                 S   r  r    r   r   r    r    r!   r   f  r  rQ   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   r  r    r   r   r    r    r!   r   s  r  z,test_barh_decimal_center.<locals>.<listcomp>c                 S   r  r    r   r   r    r    r!   r   t  r  )r   r   r3   r3   rQ   r  r  r   barhr  r    r    r!   test_barh_decimal_centern  s   r  c                 C   ^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr  r  rb  g333333?r3   r4   c                 S   r  r    r   r   r7  r    r    r!   r     r  z*test_bar_decimal_width.<locals>.<listcomp>rQ   r  r  r  )r   r   r-   r.   w0r  r   r    r    r!   test_bar_decimal_width|     r  c                 C   r  )Nr  r  r  c                 S   r  r    r   r  r    r    r!   r     r  z,test_barh_decimal_height.<locals>.<listcomp>rQ   r  r  )r   r   r-   r.   h0r~  r   r    r    r!   test_barh_decimal_height  r  r  c                  C   R   t  } | jddgddgdddd}|D ]}| dksJ | d	ks&J qd S )
Nr3   r4   r$  r   r%  r  rR  r   r*  r   r   r   r   r3   r   r   r   r#   rU  r  get_facecolorget_edgecolorr   rectsrectr    r    r!   test_bar_color_none_alpha     r  c                  C   r  )
Nr3   r4   r$  r   r  r%  r  r  r  r  r  r    r    r!   test_bar_edgecolor_none_alpha  r  r  zbarh_tick_label.pngc                  C   r  )
Nr3   r  r4   r   r   r   r  rQ   )r  r  r  )r#   rU  r  r  r    r    r!   test_barh_tick_label  r  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.  r3   r   r   hoursr  r4   )r  r  )r  )r  r  r   c                 S   s   g | ]}t j|d qS )r  r3  r   r  r    r    r!   r     s    z&test_bar_timedelta.<locals>.<listcomp>r#  rt   r?  N)	r#   r   r  r  r4  r  ra   rB  broken_barhr(   r    r    r!   test_bar_timedelta  s<   







r  c                  C   s   t t dt dt dg} t t dt dt dg}t \}}|jg d||  | d t|j t	j
s?J t \}}|jg d||  | d	 t|j t	j
s\J d
S )z+test that tickers are correct for datetimesz
2012-01-01z
2012-02-01z
2012-01-15z
2012-02-07z
2012-02-13z
2012-02-12)r   r3   r   )r  rI   )r  rJ   N)ra   rB  r*  r#   r   r  r   rU   r   r  AutoDateFormatterr  rR   )startstopr)   r   r    r    r!   test_bar_datetime_start  s   r  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r4   z1/1/2000r3   )years)periodsfreq	positions)	ra   rb   ru   
date_range
DateOffsetyearr#   r   boxplot)pdr  r  r    r    r!   test_boxplot_dates_pandas  s   r  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   r3  r   )r   r   r   r   )	capwidthswidthsr3   r   r4   r  r   r$  r  r  r)  r@  )ra   rb   ru   r#   r   r
  )r  r)   r  r    r    r!   test_boxplot_capwidths  s   r  c                 C   s   ddl m}m} t }|d}tdddg}t|dk r2||d tj	dd	  t|dk st
d
}t
||\}}t|d t|d f}	t
|	d |	d  }
|	|
_z|  ||||
}|j  W |  d S |  w )Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r3   r)  r   x   )secondsr   )pandas.plottingr  r  r#   r   r   r  r  appendr4  ra   ri   rG  r  r  canvasr  )r  r  r  r)   r   timesy_vals	time_axisy_axisr  z_dataimr    r    r!   test_pcolor_regression  s"   

r!  c                 C   s   |  g dg dg dg dd}| |g d |d< |ddg dg }|j}|d }|d }t \}}|j||dd	d
 |j||ddd d S )N)r  r  r  r3   r3   r3   r  )r	  monthr  r  )r	  r#  r  dater  rt   rQ   r  oranger$  r>  )		DataFrameto_datetimegroupbyr|  indexr#   r   r  r   )r  dfmonthlydatesforecastbaseliner)   r   r    r    r!   test_bar_pandas  s   r/  c                 C   sD   | j g dg ddg dd}t \}}|j|jd|jd d S )N)r   r   rw  r   r  ra  )r-   r  r  r)  r   r  )r&  r#   r   r  r-   r  r  r*  r)   r   r    r    r!   test_bar_pandas_indexed%  s
   r3  c                 C   sh   |   }|  }ddg}ddg}ddg}tdD ]}|j|| || d|| d q|j|||d d S )	Nr3   r4   r   r-   r   r  )r   r  r  )r   r   r  )r   r   rn   ro   r-   r.   hatchesr7  r    r    r!   test_bar_hatches-  s    r6  )r-   r  r+   expected_labelscontainer_labelr-   r3   
_nolegend_r   r  r7   )rt   r?  r   )ABrh  )r  rK  r9  bars)r9  r9  r9  c           	      C   sJ   t  \}}|j| ||d}dd |D }||ksJ | |ks#J d S )Nr  c                 S      g | ]}|  qS r    )rS   )r   r  r    r    r!   r   K  r  z#test_bar_labels.<locals>.<listcomp>)r#   r   r  rS   )	r-   r  r+   r7  r8  r  r   bar_container
bar_labelsr    r    r!   test_bar_labels<  s
   rA  c                  C   s   t  \} }tt |jddgddgg dd W d    n1 s$w   Y  t  \} }tt |jddgddgdgd W d    d S 1 sMw   Y  d S )Nr-   r.   r3   r4   )rJ  rK  r  r  rJ  )r#   r   r   r   r  r  r  r    r    r!   test_bar_labels_lengthP  s   "rB  c                 C   s   | j ddgdd| j ddgddfD ]}t|| t|j| t| t|j q| dg di}t| t|| d S )Nr3   r4   float64r  Float64r7  r  )Seriesr#   r   r)  r&  )r  r-   r*  r    r    r!   test_pandas_minimal_plotY  s   

rF  hist_logc                  C   sH   t dddd } t d|  d|  g}t \}}|j|ddd d S )Nr   r3   rl  r   FT)r
  r"  )ra   r   concatenater#   r   hist)data0r  r)   r   r    r    r!   test_hist_logf  s   rK  c                 C   s   |  dd}| dd}tg dD ]B\}}|d|f d |d|f jdd|d |d|f jdd|d |d|f d |d d |f D ]}|jddd|d	 qHqd S )
Nr4   r   )r  step
stepfilledr   r"  r3   histtypeT)r"  rO  )r   r  r  rI  )r   r   r   r   r7  rO  r   r    r    r!   test_hist_log_2n  s   rP  c                  C   s   t d\} }|d jdgddggddd |d d |d jg dddd |d d | j  |d  |d  ksCJ d S )Nr4   r   r3   
barstackedrN  r"  r   r   r3   )r#   r   rI  r  r  r  r   r)   r  r    r    r!   test_hist_log_barstacked~  s   
 rT  zhist_bar_empty.pngc                  C      t  } | jg dd d S )Nr  rN  r#   rU  rI  r  r    r    r!   test_hist_bar_empty     rW  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sIJ q+d S )NrW   r   r   r_  sizer   r3   r   )rg  rR  r4   )ra   rb   rc   cliprd   rw   float16r#   rI  r   r  get_corners)r  r~  bcr  rleftrrightr    r    r!   test_hist_float16  s   ra  zhist_step_empty.pngc                  C   rU  )NrL  rN  rV  r  r    r    r!   test_hist_step_empty  rX  rb  zhist_step_filled.pngc            
      C   s   t jd t jdd} d}ddiddidd ii gd }d	gd
 dgd
  }tjdd
d\}}t|||jD ]"\}}}|j| |f|dd| |	| d|  |j
dd q7|d j}	tdd |	D sjJ d S )Nr   r_  r   rt   r
  TFr4   rL  r$  rM  )nrowsncolsrO  stackedr  r  rI   r  c                 s   s     | ]}|  | kV  qd S r  )r  r  )r   r   r    r    r!   	<genexpr>  s    z(test_hist_step_filled.<locals>.<genexpr>)ra   rb   rc   r`  r#   r   r  r  rI  r0   r  r0  all)
r-   n_binsr  typesr)   r  kg_typer   r0  r    r    r!   test_hist_step_filled  s   
rn  zhist_density.pngc                  C   s6   t jd t jd} t \}}|j| dd d S )NrW   r^  Tdensity)ra   rb   rc   rz  r#   r   rI  r  r)   r   r    r    r!   test_hist_density  s   rr  c                  C   sV   t jd} | d}g d}tj||dd\}}}t j||dd\}}t|| d S )Ni  r   )r  r   r  r   r3   r   T)rg  rp  )ra   rb   RandomStater`  r#   rI  	histogramr   )rngr  rg  mpl_heightsr  
np_heightsr    r    r!   test_hist_unequal_bins_density  s   
rx  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  r3   r4   T)rf  F)r  r#   r   rI  rq  r    r    r!   test_hist_datetime_datasets  s   rz  bins_preprocessc                 C      | S r  r    rf  r    r    r!   r        r  c                 C   s   t | dS )Nr*  )ra   r  rf  r    r    r!   r    s    )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  r3   r   r  r4   r   r  T)rg  rf  F)
r  r#   r   rI  ra   r   r   r   r,  r	  )r{  r  
date_edgesr)   r   r  rg  r    r    r!    test_hist_datetime_datasets_bins  s   r  zdata, expected_number_of_histsc                 C   sJ   t | \}}}t|}|jdkrd|ksJ d S |jd |ks#J d S )Nr3   r   )r#   rI  ra   r  ndimr  )r  expected_number_of_histshistsr  r    r    r!   test_hist_with_empty_input  s
   

r  zhisttype, zorderr  rL  rM  c                 C   sH   t   }|jddg| d |jsJ |jD ]
}| |ks!J qd S )Nr3   r4   rN  )r#   r   r   rI  r0  
get_zorder)rO  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     rz   %   0   rz   rP  r$  )	r   r   rw  r  r        @      @       @      "@r   r4   r.  r3   rK   )r.  rM   rL   r$  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesra   rB  r   flattenstairssemilogyr  r   r  add_lineLine2Dr  r  )r   r   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)r3   r4   r   r$  r4   )r   r3   r4   r   r$  r   r  r4   r   Tr
  r3   rK   )rM   r
  )r.  r
  r   )r.  rM   r
  r   post)rL  r?  )r   r  r  r  ra   r  r  r  r  r   r  )r   r   r~  rg  bsr  r  r    r    r!   test_stairs_fill0	  s,   ""r  c                 C   s  d}|   }|g d}|| |g d |jtdd d |g dtdd  |g d |d td t| d td	dsQJ t| d	 tds`J |jd
d | jd
ksoJ |  }|jg dd
d}|| d S )N)r  r$  r  r  r$  r4   edges)r3   r4   r3   r   r3   r  r  )	r   r  r  set_datara   ri   allcloseget_datar.  )r   r   r   test_axr~  ref_axr    r    r!   test_stairs_updateJ	  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_0b	  s   
 r  c                  C   s>   t   } | g dg |  dksJ |  dksJ d S )N*   )'   rq  r1  )r#   r   r   r  r   r   r  r    r    r!   test_stairs_emptyo	  s   r  c                   C   sL   t jtdd tddgdtjdg W d    d S 1 sw   Y  d S )NNan values in "edges"rb  r3   r4   r   )r   r   r  r#   r  ra   r  r    r    r    r!   test_stairs_invalid_nanv	  s   "r  c                   C   sH   t jtdd tddgddg W d    d S 1 sw   Y  d S )NSize mismatchrb  r3   r4   r   )r   r   r  r#   r  r    r    r    r!   test_stairs_invalid_mismatch{	  s   "r  c                  C   s\   t ddgg d} tjtdd | jdtjdgd W d    d S 1 s'w   Y  d S )Nr3   r4   r:  r  rb  r  )r#   r  r   r   r  r  ra   r  r~  r    r    r!   test_stairs_invalid_update	  s   "r  c                  C   sZ   t ddgg d} tjtdd | jtdd W d    d S 1 s&w   Y  d S )Nr3   r4   r:  r  rb  r   r  )r#   r  r   r   r  r  ra   ri   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r3   r4   r   r$  r   r  r3   r   r   Tr;  )r   r
  r+   r  rK   r<  )r   r
  rM   r+   r%  r  r4   rh  )r   r  r?  r+   r   D)r  r?  r.  rM   r+   r      E)r   r  r?  r.  r+   r  r  r  F)r.  r   r  r?  r+   r   r     r   G)r.  r   r  r+   r
  r  r  r  //H)r   r  r?  r.  r  r+   r   r:   )ra   rB  rw   r  copyr  r#   r   r  r   r  rC   )r-   r.   ynr)   r   r    r    r!   test_stairs_options	  s2   $
&.4r  ztest_stairs_datetime.pngc               	   C   sF   t jdd\} }|tdttdtd t jdd d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r#   r   r  ra   ri   r*  xticks)fr   r    r    r!   test_stairs_datetime	  s   r  c                 C   sD   |   }|jg dddd |  }|jg ddd}|d d S )Nr  r  T)r   r
  r  )r   r  	set_color)r   r   r  r  str    r    r!   test_stairs_edge_handling	  s
   r  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nr  r      r  )ra   r   rX  r   rA  )r-   r.   rI  r    r    r!   contour_dat	  s   "
r  contour_hatchingc               
   C   s@   t  \} }}t \}}|j| ||dg dtjd ddd d S )Nr)  )r  \r  r  r'  r   r   )r5  r   extendrR  )r  r#   r   contourfr   r  )r-   r.   rI  r)   r   r    r    r!   test_contour_hatching	  s   
r  contour_colorbargHzG?c            	   
   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   RdBug333333ra  r   )levelsr   r  r  r  gg^I+r.   r   r4   )r  r%  
linestylesr  r  r7   )r  r%  r  r  F)erase)r  r#   r   r  ra   ri   r   r  r  rD   	add_lines)	r-   r.   rI  r)   r   cscs1cs2rG   r    r    r!   test_contour_colorbar	  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 )NFru  r   r   r4   r   rt   Trg  
rasterizedr  r-   r.   )rg  r  r  )r#   r   ra   rb   rc   r`  r   r  )r-   r.   r)   r   r  r    r    r!   test_hist2d	  s   

r  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 )
NFru  r   r   r   r4   rt   Tr  )	r#   r   ra   rb   rc   rB  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 )Nrm  Tro  )ra   rb   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dPdQ Z d8S )RTestScatterr5   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$  r4   r  r4   r   r4   r   r  r.   r  limer  r         )0.50.60.7z0.8)r-   r.   r7   r  c2r-   r   r.   r7   r  r7   r  r  )r7   r  r  )ra   rB  r#   r   r5   )rh  r  r)   r   r    r    r!   test_scatter_plot	
  s   **zTestScatter.test_scatter_plotzscatter_marker.pngr  c           
   
   C   s   t jdd\}\}}}|jg dg dg dg dg ddd	 |jg dg dg dg dg dtjd
ddd	 d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jg dg dg dg dg d|	d	 d S )Nr   rd  r  r  )r3   r   r   r.   r  r  )r  r  r  r   )r  r  gr  r  )r7   r  r  r}   r   r9   	fillstyler  r   r4   rP  )r#   r   r5   r  r  ra   r   r   column_stackrX  r   )
rh  r)   r`  r
  r  rxryarear  r  r    r    r!   test_scatter_marker
  s2   
zTestScatter.test_scatter_marker
scatter_2Dr   )r  r   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r4   rl  face)r7   r  r  )ra   ri   rG  r#   r   r5   )rh  r-   r.   rI  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   r  r    r   r  r    r    r!   r   :
  r  z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   r  r    r   r  r    r    r!   r   ;
  r  r  r  r  )ra   rB  r   r5   )
rh  r   r   r  r  r-   r.   r7   r  r   r    r    r!   test_scatter_decimal6
  s   z TestScatter.test_scatter_decimalc                 C   s   t t tjddgddgddgd W d    n1 sw   Y  t t tjg dg dg dd W d    d S 1 sBw   Y  d S )Nr3   r4   r   r   r  r  )r   r   r  r#   r5   rg  r    r    r!   test_scatter_colorE
  s   "zTestScatter.test_scatter_colorr  r   r'  r  r  r   r  c                 C   s   d}t jt|d tjg g fi | W d    n1 sw   Y  t jt|d tjddgddgfdg i| W d    n1 sEw   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 rb  r3   r4   r   r$  r7   r   )r   r  Warningr#   r5   )rh  r  
warn_matchr    r    r!   test_scatter_color_warningL
  s   "(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:  r3   r   r4   0.1z0.3r  r   r%  r  r  r  ?r7   r}   r  )r   r$  r   r   r   r3   r   r   r   r3   r   r   r   r3   )	r#   r5   r  r  get_facecolorsr  r   get_edgecolorsget_linewidthsrh  collr    r    r!   test_scatter_unfilled_
  s   z!TestScatter.test_scatter_unfilledr  c                 C   sl   t jg dg dg ddg dd}t| |  t| g dg dg d	g t| g d d S )
Nr:  r  r  r-   r  r
  r  r  r  )r#   r5   r   r  r  r  r  r    r    r!   test_scatter_unfillablei
  s   z#TestScatter.test_scatter_unfillablec                 C   s   t d}tjtdd t|||dd   W d    n1 s"w   Y  tjtdd t|dd  |dd  | W d    n1 sHw   Y  tjtdd t||d W d    d S 1 sgw   Y  d S )Nr$  zsame size as x and yrb  r3   zfloat array-liker  )ra   ri   r   r   r  r#   r5   )rh  r-   r    r    r!   test_scatter_size_arg_sizet
  s   
 "z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg ddtjtjgdd}t| dsJ t jg ddtjtjdgdd}t| ds3J d S )Nr  r3   r  r*  r  r3   r   r   r3   )r#   r5   ra   r  r  
same_colorr  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  r  r3   r$  r4   r  Tr7   r  r   plotnonfiniter   r   r7   r  r   )r  r   	r   r   r  r  set_badr5   r   ra   r  rh  r   r   r   r   r    r    r!   test_scatter_invalid_color
  s   $"z&TestScatter.test_scatter_invalid_colorc                 C   s   |  }tjd d}|dd |jtdtddtjdtjgg d|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  r  r3   r$  r4   r  Fr  r   r   r  r  r  r    r    r!   test_scatter_no_invalid_color
  s   (z)TestScatter.test_scatter_no_invalid_colorc              	   C   sb   g d}t  }tjtdd |j|||tddddd W d	   d	S 1 s*w   Y  d	S )
r  r  r  rb  r  rt   r   r   )r7   r  r  r  N)r#   rZ  r   r   r  r5   r  r  )rh  r-   r   r    r    r!   test_scatter_norm_vminvmax
  s   "z&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  }|jdddd |  }|jdgdgdgd d S )Nr3   r  )r   r5   )rh  r   r   r   r    r    r!   test_scatter_single_point
  s   z%TestScatter.test_scatter_single_pointc                 C   s^   t d}| }|j||dd|ddd | }|j|dd||ddd d S )Nrt   r4   r   r  )ra   ri   r   r5   r   )rh  r   r   r-   r   r    r    r!   test_scatter_different_shapes
  s
   
 $z)TestScatter.test_scatter_different_shapes)r  Nrgby
conversion)r  N)r%  N)NN)r  r  r  r%  N)jauner&  r'  r$  r   r   r   r  )r  z0.4r  r  )r  r  r  C5)r  r   r  r(  r  r3   r   r   r   r  z0.0r(  r   r3   r   zc_case, re_keyc                 C   s   dd }d}ddd}|d urt jt|| dnt|tr)t|dkr)t jd	dnt }| t	j
jj|d
i ||d W d    d S 1 sGw   Y  d S )Nc                   S   r   Nr   r    r    r    r    r!   get_next_color
  r   z2TestScatter.test_scatter_c.<locals>.get_next_colorr$  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r&  rb  r   (argument looks like a single numeric RGBr  )r7   r  r  xsizeget_next_color_func)r   r   r  r   r  r  r  
contextlibnullcontextr   rZ  r   _parse_scatter_color_args)rh  c_casere_keyr,  r.  REGEXP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)r3   r   皙?)r3   r   r8  r   r   r  r$  r4   r  )r   r5   ra   r   r   )rh  r   r   rgbrgbaro   rn   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   rh  r-   r   r3   )r7   r}   r  r  C3lines.linewidth)ra   ri   r#   r   r   r5   r[   r  r   r   r   )rh  r-   r)   r   r7  pcr    r    r!   test_scatter_linewidths  s   
z#TestScatter.test_scatter_linewidthsc                 C   s   t jtdd tjg dg dg ddd W d    n1 s!w   Y  t jtdd tjg dg dg dd	d
 W d    n1 sGw   Y  t jtdd tjg dg dg dd	d W d    d S 1 snw   Y  d S )NzGGot both 'linewidth' and 'linewidths', which are aliases of one anotherrb  r  )r   r  r   r   )r  r+  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r@  )r  r*  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr)  )r   r   r   r#   r5   rg  r    r    r!   &test_scatter_singular_plural_arguments  s*    "z2TestScatter.test_scatter_singular_plural_arguments)!rl  rm  rn  r   r  r  r  r   r   r  r   markparametrizer  r  r  r  r   r   contextr  r  r  r   r!  r"  r#  r$  params_test_scatter_cr7  r;  r?  rB  r    r    r    r!   r  
  s    


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



	
	











+


r  )r  c                K   s   | ||d ur
||fS i |fS r  r    )r7   r.  r  r  r    r    r!   _params5  s   rG  _resultz	c, colorszparams, expected_resultr  r;  )r7   r%  r  r  r  r  r  )r   r   r   r3   c                 C   s@   dd }t jjj| d|i\}}}||jksJ t||j d S )Nc                   S   r   r+  r    r    r    r    r!   r,  I  r   z5test_parse_scatter_color_args.<locals>.get_next_colorr/  )r   rZ  r   r2  r7   r   r%  )paramsexpected_resultr,  r7   r%  _edgecolorsr    r    r!   test_parse_scatter_color_args:  s   rL  zkwargs, expected_edgecolorsr  r  r%  )r*  r  )r7   r*  r  )r   r*  c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ks%J d S )Nc                   S   r   r+  r    r    r    r    r!   r,  d  r   z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr7   r  r4   )r.  r/  )popr   rZ  r   r2  )r  expected_edgecolorsr,  r7   r  r  result_edgecolorsr    r    r!   (test_parse_scatter_color_args_edgecolorsU  s   
rP  c                  C   sj   dd } t jtdd  tg dg dg}tjjj|d i d| d W d    d S 1 s.w   Y  d S )	Nc                   S   r   r+  r    r    r    r    r!   r,  p  r   z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 rangerb  )r   r   rb  )r   r  gffffff?r4   r  r.  r/  )	r   r   r  ra   rB  r   rZ  r   r2  )r,  r7   r    r    r!   #test_parse_scatter_color_args_erroro  s   
"rR  c                  C   sr   G dd d} |  }|  }t j|_tjd|d}t|tu s J t  tjd|d}t|tu s3J 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_offsetrg  r    r    r!   __init__}  s   
z,test_as_mpl_axes_api.<locals>.Polar.__init__c                 S   s   t d| jifS )NrS  )r   rS  rg  r    r    r!   _as_mpl_axes  s   z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)rl  rm  rn  rT  rU  r    r    r    r!   Polar|  s    rV  r;  rC  y   )	ra   r   rS  r#   rZ  typer   r^  r\  )rV  prjprj2r   r    r    r!   test_as_mpl_axes_apiz  s   r[  c                  C   sZ   t  \} }t  \}}t | |t  u sJ | t  u s!J t |  t | d S r  )r#   r   scarU  gcfr^  )fig1r
  fig2r  r    r    r!   test_pyplot_axes  s   

r`  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s9J |g d
ksAJ d S )Nr   r   r"        @r7  r  c                 S   s   g | ]}d d |  D qS )c                 S   s   g | ]}|  |j fqS r    )get_loclabel1get_textr  r    r    r!   r     r   z.test_log_scales.<locals>.<listcomp>.<listcomp>)_update_ticks)r   r  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   rw  r   r  r   r  r   )r  r   )r  r   )r  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)ra  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   rf  rg  rh  ri  )r#   r   r   ra   r"  r   r  r  r  rR   rU   )r)   r   r  yticksr    r    r!   test_log_scales  s   

rl  c                  C   sT   t  \} }|jddd |jtd | |   kr%dks(J  J d S )Nr"  )r  rx  r3   r3   rt   )	r#   r   r   rR   r   r   MultipleLocatorr   r   r  r    r    r!   test_log_scales_no_data  s   (ro  c                  C   s   t  \} }|d tjtdd |dd W d    n1 s#w   Y  |d tjtdd |dd W d    d S 1 sFw   Y  d S )Nr"  zAttempt to set non-positiverb  r   rt   )	r#   r   r  r   r  r  r  r  r  r(   r    r    r!   test_log_scales_invalid  s   

"rp  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   rt   r   r   r3   rw  r4   r   rt   )r   r  )r-   r  rF  y3r-   r  rF  rs  )r  C1C2)r  r%  )	r#   r   ra   r   r   	stackplotr  r  r   )r)   r-   r  rF  rs  r   r  r    r    r!   test_stackplot  s   


rw  stackplot_test_baselinec                  C   s   t jd dd } | dd}d|dd d f< tdd\}}|d jtd|jd	d
 |d jtd|jdd
 |d jtd|jdd
 |d jtd|jdd
 d S )Nr   c                 S   s   t || f}t| D ]A}tdD ]:}ddt j   }dt j  d }ddt j   }|d d |f  |t t || | | d   7  < qq|S )Nr   r3   r   r4   r   rt   )ra   rR  r   rb   expri   )r}  r  r   r7  jr-   r.   rI  r    r    r!   layers  s   <z'test_stackplot_baseline.<locals>.layersr   r   r  r4   r  zeror  r  symr3   r   wiggler9  weighted_wiggle)ra   rb   rc   r#   r   rv  r   rQ  )r{  r6  r)   r  r    r    r!   test_stackplot_baseline  s   

r  c                 C   r|  r  r    )r  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r)|
d n|d |	d	d
s<tjd tjd< |j||fi | d S )N  r  r   )r  r$  )meansigmarZ  vertTr"  patch_artistFr=  boxplot.boxprops.linewidth)ra   rb   rc   r   cbookboxplot_stats	lognormalr#   r   getr  r  r   bxp)stats_kwargstransform_stats
bxp_kwargs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      t tddgdd d S )Nr   r   whisr  r  rH  r    r    r    r!   test_bxp_rangewhis"     r  zbxp_percentilewhis.pngc                   C   r  )Nr   _   r  r  r  r    r    r    r!   test_bxp_percentilewhis)  r  r  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   $   t | tdD ]\}}||d< q| S NABCDr+   r  r  statsr  r+   r    r    r!   r(  4     
z(test_bxp_with_xlabels.<locals>.transform)r  r  r(  r    r    r!   test_bxp_with_xlabels0  s   r  zbxp_horizontal.pngr   )r  r  r   r  c                   C      t tddd d S )NFr  r  r  r    r    r    r!   test_bxp_horizontal<  s   r  zbxp_with_ylabels.png)r  r   r  c                  C      dd } t | tddd d S )Nc                 S   r  r  r  r  r    r    r!   r(  J  r  z(test_bxp_with_ylabels.<locals>.transformFr  r  r  r  r  r    r    r!   test_bxp_with_ylabelsE  s   r  zbxp_patchartist.png)r  r  r   c                   C   r  )NT)r  r  r  r    r    r    r!   test_bxp_patchartistR     r  zbxp_custompatchartist.pngr   c                   C       t tdtdddddd d S )NTr|  r   :)r)  r*  r  )r  boxpropsr  r  r    r    r    r!   test_bxp_custompatchartistZ     r  zbxp_customoutlier.pngc                   C      t ttdddddd d S )Nr%  r6  r  r   r}   mfc)
flierpropsr  r  r    r    r    r!   test_bxp_customoutlierd     r  zbxp_withmean_custompoint.pngc                   C   r  )NTr%  r6  r   r  )	showmeans	meanpropsr  r  r    r    r    r!   test_bxp_showcustommeanm  r  r  zbxp_custombox.pngc                   C   r  )Nr  r  r   r   r   r?  )r  r  r  r    r    r    r!   test_bxp_customboxx  r  r  zbxp_custommedian.pngc                   C   r  )Nr  r  r   r  medianpropsr  r  r    r    r    r!   test_bxp_custommedian  r  r  zbxp_customcap.pngc                   C   r  )Nr  r  r   r  )cappropsr  r  r    r    r    r!   test_bxp_customcap  r  r  zbxp_customwhisker.pngc                   C   r  )Nr  r  r   r  )whiskerpropsr  r  r    r    r    r!   test_bxp_customwhisker  r  r  c                 C   sJ   t d}ddi}i |ddi}|  j||d | j||d d S )Nr   r+  r  r  r  r  )ra   ri   r   r
  )r   r   r  medianprops_testmedianprops_refr    r    r!    test_boxplot_median_bound_by_box  s
   
r  zbxp_withnotch.pngc                   C   r  )NT)shownotchesr  r  r    r    r    r!   test_bxp_shownotches  r  r  zbxp_nocaps.pngc                   C   r  )NF)showcapsr  r  r    r    r    r!   test_bxp_nocaps  r  r  zbxp_nobox.pngc                   C   r  )NF)showboxr  r  r    r    r    r!   test_bxp_nobox  r  r  zbxp_no_flier_stats.pngc                  C   r  )Nc                 S   s   | D ]}| dd  q| S )Nfliers)rM  )r  r  r    r    r!   r(    s   z*test_bxp_no_flier_stats.<locals>.transformF)
showfliersr  r  r  r    r    r!   test_bxp_no_flier_stats  s   
r  zbxp_withmean_point.pngc                   C   s   t tdddd d S )NTFr  meanliner  r  r    r    r    r!   test_bxp_showmean     r  zbxp_withmean_line.pngc                   C   s   t tdddd d S )NTr  r  r  r    r    r    r!   test_bxp_showmeanasline  r  r  zbxp_scalarwidth.pngc                   C   r  )NrQ  r  r  r  r    r    r    r!   test_bxp_scalarwidth  r  r  zbxp_customwidths.pngc                   C      t tg ddd d S )N)r   rQ  g?g333333?r  r  r  r    r    r    r!   test_bxp_customwidths     r  zbxp_custompositions.pngc                   C   r  )N)r3   r   r  r)  r  r  r  r    r    r    r!   test_bxp_custompositions  r  r  c                   C   B   t t ttdgdd W d    d S 1 sw   Y  d S )Nr3   r  r  r   r   r  r  rH  r    r    r    r!   test_bxp_bad_widths     "r  c                   C   sD   t t ttddgdd W d    d S 1 sw   Y  d S )Nr4   r   r  r  r  r    r    r    r!   test_bxp_bad_positions  s   "r  zbxp_custom_capwidths.pngc                   C   r  )N)r  r   r   r   r  r  r  r    r    r    r!   test_bxp_custom_capwidths  r  r  zbxp_custom_capwidth.pngc                   C   r  )Nra  r  r  r  r    r    r    r!   test_bxp_custom_capwidth  s   r  c                   C   r  )Nr3   r  r  r  r    r    r    r!   test_bxp_bad_capwidths  r  r  r
  g{Gz?)r  r   c                  C   s   t jd t ddd} t d| dg} t \}}|j| | gddd	 |d
 d| | gi}t \}}|jddd|d |d
 d S )Nr  r(  r)     r  '  r3   	bootstrapnotchr{  r   r-   )r  r  r  	ra   rb   rc   r   hstackr#   r   r
  r  )r-   r)   r   r  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  r3   r  r   )r  r  )ra   r   r  r#   r   r
  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  r3   r4   r  ^)r  r}  r  r  r  )r-   r)   r
  r  r    r    r!   test_boxplot_sym2.  s   
r  zboxplot_sym.pngc                  C   sJ   t ddd} t d| dg} t \}}|j| | gdd |d d S )	Nr(  r)  r  r  r  r  r}  r  )ra   r   r  r#   r   r
  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   r4   r  r3   r  )r  r   T)r  r  	autorange)	ra   rb   rc   r   r  r#   r   r
  r  )r-   r^  r
  r_  r  r    r    r!   test_boxplot_autorange_whiskersK  s   

r  c                 C   s\   t ddd}t d|dg}t| | ||g W d    | S 1 s'w   Y  | S )Nr(  r)  r  r  r  )ra   r   r  rO   r
   r
  )r   rc_dictr-   r    r    r!   _rc_test_bxp_helper^  s   
r  boxplot_rc_parameters)r  r  r  r   c                  C   s  t jd td\} }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"d#gdd$}dd!d!d!dddddddd%d&}|||g}t||D ]	\}}t|| qjtjj	d'd( |d) 
 D v sJ d S )*Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstrapr  zboxplot.flierprops.colorr  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr7   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr  )z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   r  r    )rX  r  r    r    r!   r     r  z.test_boxplot_rc_parameters.<locals>.<listcomp>r3   )ra   rb   rc   r#   r   r  r  rO   r0  r1  get_children)r)   r   rc_axis0rc_axis1rc_axis2	dict_listr  rc_axisr    r    r!   test_boxplot_rc_parametersf  s~   	

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  r  rw  r        @r  r   r3   )r  usermediansconf_intervalsr  r  )
ra   rb   rc   r   r  r#   r   rB  r
  r  )r-   r)   r   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  r  r"  Fminorwhich)
ra   rB  rC  r#   rZ  r
  r  rU   rI  rR   )r-   r
  r    r    r!   test_boxplot_no_weird_whisker  s   


r  c                  C   s   t ddd} t d| dg} t \}}tt |j| ddgd W d    n1 s.w   Y  tt |j| | gddgddggd W d    d S 1 sSw   Y  d S )	Nr(  r)  r  r  r  r3   r4   )r  	ra   r   r  r#   r   r   r   r  r
  r  r    r    r!   test_boxplot_bad_medians  s    "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 s1w   Y  tt |j| | gddgdggd W d    d S 1 sUw   Y  d S )	Nr(  r)  r  r  r  r3   r4   )r  r  r  r    r    r!   test_boxplot_bad_ci  s   "r  c                  C   sZ   t d} t \}}|| d d  dksJ |j| ddd d  dks+J d S )Nrt   boxesr   r4   r  )ra   ri   r#   r   r
  r  )r-   r  r   r    r    r!   test_boxplot_zorder  s   
&r  c                  C   s   dt jd< dt jd< dt jd< t  \} }td}d|d	< |j|d
d}dD ]}|| D ]
}| dks7J q-q'|d d  dksEJ |d d  dksQJ d S )Nr  r#  r   r  r  zboxplot.meanprops.markerr   r  r   T)r  )whiskerscapsr  mediansr   r  r   means)r#   r   r   ra   ri   r
  
get_marker)r)   r   	test_data
bxp_handle	bxp_lines	each_liner    r    r!   test_boxplot_marker_behavior  s   



r  z&boxplot_mod_artists_after_plotting.pngc                  C   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d qqd S )N)r+  r  r2  r2  Q?gQ?gQr   r  r   )r#   r   r
  r  )r-   r)   r   bpkeyr  r    r    r!   &test_boxplot_mod_artist_after_plotting  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      g | ]	}t jjd dqS r   rY  ra   rb   rd   r   r  r    r    r!   r         z1test_vert_violinplot_baseline.<locals>.<listcomp>r$  Fr  r  showextremashowmediansr6  )r  r  r&  r'  r  )ra   rb   rc   r   r#   rZ  
violinplotr   )r  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   r   r!  r"  r#  r    r    r!   r     r$  z2test_vert_violinplot_showmeans.<locals>.<listcomp>r$  TFr%  r#   rZ  ra   rb   rc   r   r(  r   r  r    r    r!   test_vert_violinplot_showmeans     
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   r   r!  r"  r#  r    r    r!   r     r$  z4test_vert_violinplot_showextrema.<locals>.<listcomp>r$  FTr%  r*  r+  r    r    r!    test_vert_violinplot_showextrema  r-  r.  zviolinplot_vert_showmedians.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nib}&c                 S   r   r!  r"  r#  r    r    r!   r   '  r$  z4test_vert_violinplot_showmedians.<locals>.<listcomp>r$  FTr%  r*  r+  r    r    r!    test_vert_violinplot_showmedians"  r-  r/  zviolinplot_vert_showall.pngc                  C   s\   t  } tjd dd tdD }| j|tddddddgdd	gd
dgddggd d S )NiOc                 S   r   r!  r"  r#  r    r    r!   r   1  r$  z0test_vert_violinplot_showall.<locals>.<listcomp>r$  Tr   ?r   r  r   rb  r  ra  )r  r  r&  r'  	quantilesr*  r+  r    r    r!   test_vert_violinplot_showall,  s   
r2  z#violinplot_vert_custompoints_10.pngc                  C   D   t  } tjd dd tdD }| j|tdddddd d S )Ni$c                 S   r   r!  r"  r#  r    r    r!   r   <  r$  z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r$  Frt   r  r  r&  r'  pointsr*  r+  r    r    r!   $test_vert_violinplot_custompoints_107     
r6  z$violinplot_vert_custompoints_200.pngc                  C   r3  )NiYqVc                 S   r   r!  r"  r#  r    r    r!   r   F  r$  z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r$  Frl  r4  r*  r+  r    r    r!   %test_vert_violinplot_custompoints_200A  r7  r8  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   r   r!  r"  r#  r    r    r!   r   P  r$  z2test_horiz_violinplot_baseline.<locals>.<listcomp>r$  Fr  r  r  r&  r'  r*  r+  r    r    r!   test_horiz_violinplot_baselineK  r7  r:  z violinplot_horiz_showmedians.pngc                  C   r3  )Nilo/c                 S   r   r!  r"  r#  r    r    r!   r   Z  r$  z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r$  FTr9  r*  r+  r    r    r!   !test_horiz_violinplot_showmediansU  r7  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   r   r!  r"  r#  r    r    r!   r   d  r$  z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r$  FTr9  r*  r+  r    r    r!   test_horiz_violinplot_showmeans_  r7  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   r   r!  r"  r#  r    r    r!   r   n  r$  z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r$  FTr9  r*  r+  r    r    r!   !test_horiz_violinplot_showextremai  r7  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   r   r!  r"  r#  r    r    r!   r   x  r$  z1test_horiz_violinplot_showall.<locals>.<listcomp>r$  FTr   r0  r   r  r   rb  r  ra  )r  r  r  r&  r'  r1  r*  r+  r    r    r!   test_horiz_violinplot_showalls  s   
r>  z$violinplot_horiz_custompoints_10.pngc               	   C   F   t  } tjd dd tdD }| j|tddddddd d S )Ni0c                 S   r   r!  r"  r#  r    r    r!   r     r$  z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r$  Frt   r  r  r  r&  r'  r5  r*  r+  r    r    r!   %test_horiz_violinplot_custompoints_10~     
rA  z%violinplot_horiz_custompoints_200.pngc               	   C   r?  )Ni<9!c                 S   r   r!  r"  r#  r    r    r!   r     r$  z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r$  Frl  r@  r*  r+  r    r    r!   &test_horiz_violinplot_custompoints_200  rB  rC  c                  C   sh   t  } tjd dd tdD }tt | j	|tdd W d    d S 1 s-w   Y  d S )Ni@ 3c                 S   r   r!  r"  r#  r    r    r!   r     r$  z1test_violinplot_bad_positions.<locals>.<listcomp>r$  r   r  
r#   rZ  ra   rb   rc   r   r   r   r  r(  r+  r    r    r!   test_violinplot_bad_positions  s   "rE  c                  C   sn   t  } tjd dd tdD }tt | j	|tdg dd W d    d S 1 s0w   Y  d S )NiA#c                 S   r   r!  r"  r#  r    r    r!   r     r$  z.test_violinplot_bad_widths.<locals>.<listcomp>r$  r  )r  r  rD  r+  r    r    r!   test_violinplot_bad_widths  s   "rF  c                  C   sn   t  } tjd tjjddg}tt | j	|ddgddggd W d    d S 1 s0w   Y  d S )	Nil r   rY  r   r   r   rb  r1  
r#   rZ  ra   rb   rc   rd   r   r   r  r(  r+  r    r    r!   test_violinplot_bad_quantiles  s   "rI  c                  C   s   t  } tjd tjjddg}tt | j	|g dgd W d    n1 s,w   Y  tt | j	|g dgd W d    d S 1 sLw   Y  d S )Niq4r   rY  )r   r   r   ?rG  )皙r   r   r   rH  r+  r    r    r!   $test_violinplot_outofrange_quantiles  s   "rL  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   rY  )r   r   r0  rG  )ra   rb   rc   rd   r   r(  )r   r   r  r   r    r    r!   %test_violinplot_single_list_quantiles  s   rN  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 )	NrM  r)  rY  )r3  r@  r)  r  r   r$  r   r1  r3  	ABCDEFGHIr  )	ra   rb   rc   rE  rd   r  r   r(  r  )r   r   r  s1s2s3r    r    r!   test_violinplot_pandas_series  s   rS  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$  rt   r   r?  r3   r4   F)r  manage_ticks)
r#   r   r  r   ra   rb   rc   rd   r
  r   )r  r   old_xlimr  rF  new_xlimr    r    r!   test_manage_xticks  s   rW  c                  C   s   t  \} }|jtjddgd |jtjddgd | j  | dks+J t	|
 ddgks7J dd | D dd	gksFJ d S )
Nr   r   r  r   )r  ra  c                 S   r>  r    rd  r  r    r    r!   r     r  z+test_boxplot_not_single.<locals>.<listcomp>r   5)r#   r   r
  ra   rb   ru   r  r  r   r  
get_xticksrC  r(   r    r    r!   test_boxplot_not_single  s   
"r[  c                  C   s@   t ddgddg tjddi t } t j| ddd d S )Nr   r3   z	font.sizeP   raw)r  format)r#   r   rO   r   updateioBytesIOsavefigr  r    r    r!   test_tick_space_size_0  s   rd  )errorbar_basicerrorbar_mixedre  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   r  r   r  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr4   T)rc  rd  r  r  r   r  r   zVert. symmetricnbinsr  )r  r   rR  zHor. symmetric w/ alphar~  z--or  r  r   zH, V asymmetricr9  r"  r  r  )r  r  r   ecolorcapthickzMixed sym., log yr  zVariable errorbarsr  r-   r.   r  r  r  )ra   ri   
longdoublery  r  r#   r   rU  r  r0   r   locator_paramsr  maximumr  suptitle)
r-   r.   r  r  r)   r   r  ylower
yerr_lowerr  r    r    r!   test_errorbar  sD   


$




rt  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.
    r  r  rC  r  r0  r   ffffff?r   r   r  r  r   r4   r   g?r  r  r+  r$  r   r  )r   r   r   )r   r   r   )rv  r   r   )r   rv  r    @@rt   N)r#   r   r\  r  ra   r   )r)   r   th_symr_symth_longr_longth_asymr_asymr  r  th_over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sLJ t| tdksZJ d S )Nrt   r4   r  r$  r  rt  ru  )	r#   r   ra   ri   r  r   r  to_rgba	get_color)r  r   r-   r.   r  r  r  ln1r    r    r!   test_errorbar_colorcycleQ  s   
 r  c              
      s   t ddd  fddtdD }|  }| }t|g dD ]\}}|j ||d dd	d
d |j ||d dd	|d
d q!d S )Nr   r$  r   c                    s   g | ]
}t   | qS r    )ra   ry  )r   r}  r-   r    r!   r   c  r9  z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)r  rt  ru  r<  rQ  r  r   r  )r  r   r}   rk  )r  r   r}   r   rk  )ra   ri   r   r   r  r  )r   r   r.   axtaxryir   r    r  r!   test_errorbar_cycle_ecolor`  s   r  c                  C   s  t  } |  }tddd}t| }ddt|  }t|d| fj}d| }t	
t |j|||dd W d    n1 sEw   Y  t	
t |j|||dd W d    n1 scw   Y  t	
t |j||||dd	 W d    d S 1 sw   Y  d S )
Nr   r$  r   r   r4   r   rg  )r  r   rj  )r#   r   rU  ra   ri   ry  r  vstackrQ  r   r   r  r  )r)   r   r-   r.   yerr1r  r  r    r    r!   test_errorbar_shapeo  s    "r  errorbar_limitsc                  C   s\  t ddd} t |  }d}d}d}t \}}|j| ||||dd t | }d|g d	< |j| |d ||||d
d t | }d|g d< |j| |d ||||dd |j| |d dd|||||dd
 d}t | d}d|ddg< |}	|}
t | }t | }d|dg< d|dg< |j| |d dd|||	|
||ddddd |d |	d d S )Nr   ra  r   r   dottedr   )r  r  r  r   T)r3   r   r3  r   )r  r  uplimsr  r   )r4   r$  r@  r   r  )r  r  lolimsr  r   r   r   r@  magenta)r}   r  r  r  r  r  r  r   r   r   r  rx  r%  r   cyan)r}   r  r  r  xlolimsxuplimsr  r  r  r  capsizer   )r   ra  zErrorbar upper and lower limits)
ra   ri   ry  r#   r   r  
zeros_like	full_liker  r0   )r-   r.   r  r  r  r)   r   r  r  r  r  r    r    r!   test_errorbar_limits  sH   






r  c                  C   sd   t d} t d}tj| |dddd\}}}|d u sJ |D ]}t | tdks/J qd S )Nr   r3   r%  rw  r  )ra   ri   r#   r  ri  r  r  r  )r-   r.   plotliner  barlineserrbarr    r    r!   test_errorbar_nonefmt  s   

r  c                  C   s`   t d} t d}tj| |ddddddddd	d
d\}}}| dks&J | dks.J d S )Nr   r3   Noner  r[   z	steps-midroundr  r  bevel)
r  r  r  r}   r  r  dash_capstyledash_joinstyler  r  )ra   ri   r#   r  get_fillstyleget_drawstyle)r-   r.   r  r  r    r    r!   "test_errorbar_line_specific_kwargs  s   

r  c              	   C   s  |  }|jg dg dddddd |jg dg ddd	d
ddd |jg dg ddddddd |dd tg dg dg dg dd}tjd|d |   }|jg dg ddd |jg dg ddd	d |jg dg dddd |dd d S )N)r4   r$  rt   r:  r   r  r  r  )r-   r.   r  r  r}   r  r4   r   r$  z	tab:greenr  r.   )r-   r.   r  r   r  r}   r  r$  r   r  ztab:bluer  r   r7   )r-   r.   r  r   r  r}   r  r3   r  )r  r  r  )r  r  r   )r  r.   r7   )r  r  r  )r  r}   r  r   rZ  )
prop_cycler-   r.   r  )r-   r.   r  r   )r-   r.   r  r   )r   r  r  r	   r#   rc)r   r   r   _cycler    r    r!   test_errorbar_with_prop_cycle  s(   r  c                  C   s8  t ddd} | d|   }|d }t  }tjtdd |j| ||dd W d    n1 s2w   Y  tjtdd |j| ||d	d W d    n1 sRw   Y  tjtd
d |j| ||ddgd W d    n1 stw   Y  tjtdd |j| ||dd W d    d S 1 sw   Y  d S )Nr   r3   r   r  znot a tuple of two integersrb  r  )
errorevery)r	  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	ra   r   r#   r   r   r   r   r  r  )r-   r.   r  r   r    r    r!   test_errorbar_every_invalid  s    "r  c                  C   sX  t   } tjtdd | jdgdgdgdggdgdggd W d    n1 s+w   Y  tjtdd | jdgdgdgdggd W d    n1 sPw   Y  tjtdd | jdgdgdgdggd	 W d    n1 suw   Y  tjtdd! td
}dd |D }| j||t	j
ddd	 W d    d S 1 sw   Y  d S )Nz''xerr' must not contain negative valuesrb  r   r  r3   )r-   r.   r  r  )r-   r.   r  z''yerr' must not contain negative valuesr  r   c                 S   s"   g | ]}t  d d|d d qS )r  r3  r4   r3   r  r  r    r    r!   r        " z/test_xerr_yerr_not_negative.<locals>.<listcomp>r  r1  )r#   r   r   r   r   r  r  ra   ri   r  r4  )r   r-   r.   r    r    r!   test_xerr_yerr_not_negative  s4   (

"r  c           	   
   C   s6  t ddd}|d|  }|d }| }|  }tdg dD ]8\}}|d7 }|j||||dfd|d	 |j|||d
d |j||d d ||d d ||d d d|dd q |j||d |dddd |j|dd d |dd d d dd
d |j||d |ddd |j||d |tdd dtdd ddddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd |j||d |g dd g dd dddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd d S )Nr   r3   r   r  rgbk)r   r   r4   r)  r[  r$  )r  r  r7   rx  )r7   r  r%  )r  r7   r   r   )r3   r$  r   )r  r  r   r  )r  r   r   r4   r   r  )r  r  r  r7   r   rT  r   rt  )ra   r   r   r  r  r   r  )	r   r   r-   r.   r  ro   rn   r   shiftr    r    r!   test_errorbar_every  sB   (*
,,
,,
r  
elinewidthr  c                 C   s"   t jg dg dg d| d d S )Nr  )r  r  )r#   r  )r  r    r    r!   test_errorbar_linewidth_type3  s   "r  c                 C   s   |   }td}tddtjtjdg}tddtjtjdg}|||| |  }|ddgddgddg |jdgdgdgdd	 d S )
Nr   r3   r4   r   r$  r  r   r  r   )r   r   ra   rB  r  r  )r   r   r   xsysesr    r    r!   test_errorbar_nan:  s   r  hist_stacked_stepfilledc                  C   sj   t ddd} t ddd}t \}}|j| |fddd	 d
| |fi}t \}}|jd
dd|d d S )Nr3   r   r?  r   rt   r  rM  Tre  r-   )rO  rf  r  ra   r   r#   r   rI  )d1d2r)   r   r  r    r    r!   test_hist_stacked_stepfilledF  s   r  hist_offsetc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   rt   r  r3   r   r?  r   rg  r   r  r  r  r)   r   r    r    r!   test_hist_offsetT  s
   r  zhist_step.pngc                  C   sD   t ddd} t \}}|j| dd |dd |dd	 d S )
Nr3   r   r?  rL  rN  r   rt   r   r   )ra   r   r#   r   rI  r  r  r  r)   r   r    r    r!   test_hist_step^  s
   r  zhist_step_horiz.pngc                  C   @   t ddd} t ddd}t \}}|j| |fddd	 d S )
Nr   rt   r  r3   r   r?  rL  rK   )rO  rM   r  r  r    r    r!   test_hist_step_horizh     r  hist_stacked_weightsc                  C   sb   t ddd} t ddd}t ddd}t d	d
d}t \}}|j| |f||fddd d S )Nr   rt   r  r3   r   r?  r  r  r8  r   rM  T)weightsrO  rf  r  )r  r  w1w2r)   r   r    r    r!   test_hist_stacked_weightedq  s   r  zstem.pngc                  C   sH   t ddt j d} t \}}|j| t | ddddd |  d S )	Nr   r4   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr+   )ra   r   r   r#   r   r  rX  rC   r  r    r    r!   	test_stem|  s   r  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sJ d S Nr   r3   )mapr  
markerliner  )stem_containerexpectedr-   r.   r    r    r!   _assert_equal  s   z%test_stem_args.<locals>._assert_equalr3   r   r   r3  r@  r)  r:  )r  r@  r  zb--)r  r  Nr#   r   r  r  r)   r   r-   r.   r    r    r!   test_stem_args  s    r  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r+| j |ks+J | j dks4J dS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr  )r  r  	stemlinesr  r  r  get_linestyle)r  	linecolormarkercolorr}   r    r    r!   r    s   z*test_stem_markerfmt.<locals>._assert_equalr  r  r  r   )r  r}   r-   )r  r  r  )r  r  r}   r  gxr  r  r   r  )r  r  )NNNr  r  r    r    r!   test_stem_markerfmt  sb   

r  c                  C   s@   t dd\} }tjdtjdg}ddg}||| d S )Nr3   z2013-9-28 11:00:00z2013-9-28 12:00:00r   rl  )r#   r   dateutilparserparser  )r)   r   r  r  r    r    r!   test_stem_dates  s   

r  zstem_orientation.pngc                  C   s@   t ddt j d} t \}}|j| t | ddddd d S )	Nr   r4   r  r  kxr  rK   )r  r  r  rM   )ra   r   r   r#   r   r  rX  r  r    r    r!   test_stem_orientation  s   
r  hist_stacked_stepfilled_alphac                  C   sB   t ddd} t ddd}t \}}|j| |fddd	d
 d S )Nr3   r   r?  r   rt   r  rM  Tr   )rO  rf  rR  r  r  r    r    r!   "test_hist_stacked_stepfilled_alpha  s   r  hist_stacked_stepc                  C   r  )
Nr3   r   r?  r   rt   r  rL  Tre  r  r  r    r    r!   test_hist_stacked_step  r  r  hist_stacked_normedc                  C   s@   t ddd} t ddd}t \}}|j| |fddd d S )	Nr3   r   r?  r   rt   r  T)rf  rp  r  r  r    r    r!   test_hist_stacked_density  r  r  zhist_step_bottom.pngc                  C   s4   t ddd} t \}}|j| t ddd d S )Nr3   r   r?  rt   rM  )rI   rO  )ra   r   r#   r   rI  ri   r  r    r    r!   test_hist_step_bottom  s   r  c                  C   s   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgddgddgddgddgddgg}t| | d S )	Nr   r3   r4   r   r   r   r3   r3   r3   r4   rM  rg  rO  r   r4   r3   r   r#   rI  r   get_xyrg  r  r  polygonr  r    r    r!   test_hist_stepfilled_geometry  s   *$r  c               	   C   sn   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgg}t| | d S )	Nr  r  rL  r  r   r4   r3   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  r3   r4   r   rM  rg  rI   rO  r   r3   r   r   r4   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  rL  r   r   r3   r   r   r4   r  r   r  r  r    r    r!   test_hist_step_bottom_geometry5  s   4r  c                  C   s  g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dg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:  TrM  rg  rf  rO  r4   r   r3   r   r$  r#   rI  r  r   r  rg  data_1data_2r  r0  r  r  r    r    r!   %test_hist_stacked_stepfilled_geometry@  s&   

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t| | d S )Nr  r  r:  TrL  r  r4   r   r3   r   r$  r  r  r    r    r!   test_hist_stacked_step_geometryV  s   

4
4r	  c                  C   s"  g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
d
gd	d
gg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t| | d S )Nr  r  r:  Tr  rM  rg  rf  rI   rO  r4   r   r3   r   r   r  r   r$  r  r  r  r  r    r    r!   ,test_hist_stacked_stepfilled_bottom_geometryj  s(   

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddg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  rL  r
  r4   r   r3   r   r   r  r   r$  r  r  r  r  r    r    r!   &test_hist_stacked_step_bottom_geometry  s    

4
4r  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   rl  @  i  r\  r?  r  6  r  )r?     r  r  r   i  )r  r  r  r  r  r     )r  r  r  r  rp  rp  r   r   r   r   rt   rp  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   ro  ro  ro  ro  ro  ro  ro  ro  ))gXxn?r   r  )r  r   g `p?)r  r   gǟ?)r  gˢ`?r   )gC?r  r   )gK?r  r   )r   r%  z yellowr  r  rt   rQ  mid)rg  rO  r  r   r+   zupper right)r   r   r3   )r;   bbox_to_anchorrd  )r#   r   rI  rC   )r6  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 )Nrt   r?  r   r3   r4   rQ  )rO  rI   )ra   rB  r#   rI  tolistrc  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 )Nrt   rL  rN  )r#   r   rI  r   r(   r    r    r!   test_hist_emptydata  s    r  c                  C   s   t  \} }|jddgdd\}}}|d  dksJ |jddgdgd\}}}|d  dks3J |jddgd d\}}}|d  dksIJ |jddgdd\}}}|d  dks_J |jddgdd\}}}|d  dksuJ d S )Nr   r3   r  r  r9  00)r#   r   rI  rS   )r)   r   r  r=  r    r    r!   test_hist_labels  s   r  transparent_markersc                  C   s:   t jd t jd} t \}}|j| dddd d S )Nr   r  r  r%  r   )r  r   ra   rb   rc   r#   r   r   rq  r    r    r!   test_transparent_markers  s   r  rgba_markersc               	   C   s   t jdd\} }ddg}ddg}d dg}tdd	d
}t|D ]?\}}t|D ]6\}}	t|D ]-\}
}|| j|d |
d df||	|d| || j|d |
d df|	|d| q.q&q|D ]	}|g d q`d S )Nr4   r  r  r)  r;  )r   r   r3   r   r   r   r?  )r  r  r3   r   )r  r  rR  r   r-   )r  rR  )r   r$  r   r   )r#   r   rH  r  r   r  )r)   r  rcolorsbcolorsalphaskwr7  rR  rz  rcolorr  bcolorr   r    r    r!   test_rgba_markers  s&   *r&  mollweide_gridc                  C   s    t  } | jdd}|  d S )N	mollweiderC  )r#   r   r   rI  r(   r    r    r!   test_mollweide_grid  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(  rC  rp  r   r  r3   r   r   )r#   r   r   ra   r   r   rG  r  r  rQ  transProjectionr(  invertedr   r   )r)   r   lonlatllr  ll2r    r    r!   &test_mollweide_forward_inverse_closure  s   $r0  c                  C   sz   t  } | jdd}tddd}t||\}}t| | fj}|j	
 |}|j	|}tj||d d S )Nr(  rC  r   r3     r   )r#   r   r   ra   r   rG  r  r  rQ  r*  r+  r(  r   r   )r)   r   r-   r.   r  r.  xy2r    r    r!   &test_mollweide_inverse_forward_closure  s   r3  
test_alphac               	   C   s   t jd t jd} t \}}|j| dg dg dddd |j| d	 dg dg dddd
d |j| d dg dg ddddd |j| d dg dg dddd |j| d dg dg dddd d S )Nr   r  z-Dr  r)  r?  rt   )r   r  r   r?  r4   r3   )r   r  r   r?  rR  r$  r   r  r@  r  rq  r    r    r!   r4    s(   
	eventplotc                  C   sP  t jd t jddg } t jddg }| | }t|}g dgt|  }g dg dg dg d	g d
g dg}|| }dt dt| d  }g d}| | }	dgt|  }
g d}|
| }t }| }|j	|||	|d}t|}||ksJ |||	|d}t }| }|j	dddd|d}t|}||ksJ d S )Nr   rz   r?  r  )r   r3   rb  r  r*  rR  )r3   r   r   )r3   r   r3   )r   r3   r3   r  Q?)ir  r3   r   r  rt   )r   r4   r3   r3   r   r   )r%  lineoffsetslinelengths)r   r7   lor.  r   r7   r9  r.  )r%  r7  r8  r  )
ra   rb   rc   r  r  ri   r#   r   r   r5  )r-  data2r  num_datasetscolors1colors2r%  lineoffsets1lineoffsets2r7  linelengths1linelengths2r8  r)   axobjcollsnum_collectionsr    r    r!   test_eventplot/  sF   

rE  ztest_eventplot_defaults.pngc                  C   sZ   t jd t jddg } t jddg }| | }t }| }|| dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   rz   r?  r  N)ra   rb   rc   r  r#   r   r   r5  )r-  r:  r  r)   rB  r    r    r!   test_eventplot_defaults[  s   rF  r%  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r  r*  N)r3   r   r3   r   c                 C   s   dgdgdgdgg}dd | D }t |dkr|d }tt|t |df}t \}}t | dkr8| d } |j|| d}t||D ]\}}t	|
 | qDd	S )
zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r3   r4   r   c                 S   s   g | ]
}|d ur
|ndqS )Nr  r    r   r7   r    r    r!   r   v  r9  z)test_eventplot_colors.<locals>.<listcomp>r$  r%  N)r  ra   rU  r  to_rgba_arrayr#   r   r5  r  r   r  )r%  r  r  r)   r   r  r  r   r    r    r!   test_eventplot_colorsl  s   rK  c                  C   s*  t  \} }|jg dg dgdd}|d  dksJ |d  dks'J |jg dg dgddgd}|d  dks@J |d  dksJJ tjtdd	 |jg dg dgg d
d W d    n1 skw   Y  tjtdd	 |jg dddgd W d    d S 1 sw   Y  d S )N)r   r4   r$  )r3   r   r   r)  rb  rr  r   r3   r   zalpha and positions are unequalrb  )r   rb  r0  )r#   r   r5  	get_alphar   r   r  )r)   r   r  r    r    r!   test_eventplot_alpha  s    "rM  z!test_eventplot_problem_kwargs.pngc              	   C   s   t jd t jdg }t jdg }||g}t }| }|j|ddgddgdd	gd	dgd
dgddgd t| dksDJ t	dd | D sOJ dS )z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   r?  rt   r  r  r7   r  r4   r3   r   dasheddashdotr  )r%  r   r  r+  r  r   r   c                 s   s    | ]
}t |jtjV  qd S r  )
issubclasscategoryr   MatplotlibDeprecationWarning)r   wir    r    r!   rh        z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
ra   rb   rc   r  r#   r   r   r5  r  ri  )recwarnr-  r:  r  r)   rB  r    r    r!   test_eventplot_problem_kwargs  s$   rV  c                  C   s.   t dd\} }|jg gdgd t   d S )Nr3   )r  r  r  r  rI  r#   r   r5  r  r(   r    r    r!   test_empty_eventplot  s   rX  r  rM   )NverticalrK   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.NrM   r3   rW  )r  rM   optsr)   r   r    r    r!   test_eventplot_orientation  s   r[  c                 C   s   t  dddt  dddt  dddg}t  dddt  dddg}| }|j|dd |j|dd |  }|||g d S )	Nr  r3   r4   r   r   r  r   )r7  )r  r   r5  )r   r   ts_1ts_2r   r    r    r!   test_eventplot_units_list  s   r^  zmarker_styles.pngc               	   C   s   t  \} }ttjjjdd d}|d dg|}t|D ]%\}}|j|d d t	
dd  t	dd | d|d|d  |d	 qd S )
Nc                 S   s   t t| t |  S r  )r  rX  r  r    r    r!   r    r  z$test_marker_styles.<locals>.<lambda>)r  r%  r4   r   rt   r   )r   r}   r   r+   )r#   r   sortedrO   markersr  r[  r  r   ra   ri   r   )r)   r   r`  r.   r}   r    r    r!   test_marker_styles  s   


.ra  zrc_markerfill.pngc                  C   sP   t  \} }td}tg dD ]\}\}}|tjd< |j|| |d qd S )Nr)  ))r9   r  )rI   r   )r%  r  zmarkers.fillstyler  )r#   r   ra   ri   r  rO   r   r   )r)   r   r-   idxr   r}   r    r    r!   test_markers_fillstyle_rcparams  s   

rc  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 )Nrt   ))r   r   r/  r9  r0  r   r  r  r   r  )r  r   r#   r   r   r  r  )r  marker_as_tuplemarker_as_listr)   r   r    r    r!   test_vertex_markers  s   rf  vline_hline_zordererrorbar_zorderx86_64c                  C   s  t td} t }| }|j| ddd |jddddd |jddddd |jdd	ddd |jd
dddd |d t }| }t td} t	
d}t td}|j| ||dddd tdD ]}|j|dd|d |j| dd|d qg|d d S )Nrt   r   )r?  r  r3   r  )r   r?  r  r   r)  r  r4   r  r   zaxvline and axhline zorder testr  )r  r  r?  r   )r?  r   r  zerrorbar zorder test)r  r   r#   r   rU  r   rk   axvliner0   ra   rR  r  )r-   r)   r   r.   r  rz  r    r    r!   test_eb_line_zorder  s&   

rk  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   rt   )r  r3   r4  r   ra  z.-)r3   r  )rt   r  r  r  r3   rt   r  r  )r   r   r  axliner   r    r    r!   test_axline_loglog  s   rm  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 )Nr0  r4  r  r9  r~  rt  r  )r   r   r3   r   ru  )gffffffr  r   r<  )sloper   )r3   r  r  C4)r  r3   infr(  r   r3   r   )r   r   rl  r  r   rk   rj  r   r    r    r!   test_axline'  s    rr  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 )Nr0  r4  r  r3   ro  r(  rn  rt  ro  r   r(  r   r   r   ru  )r   r   )r   r3   r<  )r   r(  r   r  )r   r   rl  r4  r   r   r    r    r!   test_axline_transaxes>  s   rv  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 )Nr0  r4  r  r3   rs  ru  r4   rt  rt  r   ru  )r   r   rr  r   r   rt   r  )r   r   rl  r4  set_size_inchesr   r   r    r    r!   test_axline_transaxes_panzoomO  s   rx  c                  C   sV  t  \} }tt |d W d   n1 sw   Y  tt |jdddd W d   n1 s8w   Y  |d tt |jddd W d   n1 sYw   Y  |d |d tt |jddd W d   n1 sw   Y  |d tt |dd t 	  W d   dS 1 sw   Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr9  r3   )ro  r"  r  )
r#   r   r   r   r   rl  r  r  r  r  r(   r    r    r!   test_axline_argsc  s*   




"ry  )vlines_basicvlines_with_nanvlines_maskedc                  C     g d} g d}t  \}}|j| d|ddd g d}dd	d
dtjdg}t jd
dd\}\}}}	|j|d|ddd g d}
tjdd	d
ddg}|j|
d|dd
dd g d}tjdd	d
dtjg}|	j|d|ddd ||||	fD ]}|dd qq| | ksJ | | ksJ | |	 ksJ t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S N)r4   r   r$  r   r)  )r4   r   r@  r4   r   r  r   r%  r+  )r4   r   r$  r   r  r)  r4   r  r   r@  )r$  r@  )rc  rE  r  r  )r%  r+  r   r  rt   )r4   r$  r  r@  rt   r  )r   r3   r   r   r4   r3   )r  r  r   r     r  r  r   )	r#   r   rj   ra   r  r  r   r   masked_equal)r  r  r^  r
  rE  rF  r_  r  r  r  x3rs  x4y4r   fig3ax5x5ymin5ymax5r    r    r!   test_vlinesw  2   r  c                  C   d   t  \} }tddi |ddd}tj| ds J W d    d S 1 s+w   Y  d S Nzlines.colorr  r   r   r3   )r#   r   r   r
   rj   r%  r  r  r)   r   r  r    r    r!   test_vlines_default  
   "r  )hlines_basichlines_with_nanhlines_maskedc                  C   r}  r~  )	r#   r   hlinesra   r  r  r   r   r  )r  r  r^  r
  rF  rE  r_  r  r  r  rs  r  r  r  r   r  r  y5xmin5xmax5r    r    r!   test_hlines  r  r  c                  C   r  r  )r#   r   r   r
   r  r%  r  r  r  r    r    r!   test_hlines_default  r  r  r   r  r$  c                 C   s   g d}|  dddj|dd|dd |  dddj|dd|dd g d}g d}| dddj|dd|dd | dddj|dd|dd d S )	N)r  r   r   r  r%  r4   r3   r   r   r  )r3   r4   r   r   )r  r   r   r%  )r   rj   r  )r   r   r  test_colors	expect_xyexpect_colorr    r    r!   test_lines_with_colors  s   
r  vlines_hlines_blended_transform)r   r   c                  C   s   t ddd} t |  t dt j |   d }tjdddd\}\}}|| |d	 |jdd
gdd|	 dd || |d	 |j
ddgdd| dd d S )Nr  r  r   r4   rt   r3   r  r  r  r  r3  r   r   r  )r_   r`   r(  r%  r  r)  r+  )yminymaxr(  r%  )ra   ri   ry  r   r   r#   r   r   r  get_yaxis_transformrj   get_xaxis_transform)r  r  r)   haxvaxr    r    r!   $test_vlines_hlines_blended_transform  s   $
r  step_linestyler   c               	   C   sN  t d } }tdd\}}| }g d}t||D ]4\}}|j| |d|dd |j| |d d|dd |j| |d d|d	d |d
dg |d
dg q| ||d |d d}tdd\}}| }g d}t||D ]3\}}|jddd|d|d |jddd|d|d |jddd|d	|d |d
dg |d
dg qqd S )Nrt   r4   )r  r  r  r  r   pre)r?  r   r  r3   r  r  r   r)  )rJ  Y0Y1Y2rJ  r  )r?  r   r  r  r  r  )	ra   ri   r#   r   r  r  rL  r  r  )r-   r.   r)   ax_lst	ln_stylesr   r  r  r    r    r!   test_step_linestyle  s*   r  mixed_collectionc                  C   s   t  \} }tjddddd}tjj|gdd}|ddgd	d	gg |d
dg tjj|gdd}|ddgddgg |d
dg |	g dg dg |j
d || || |dd |dd d S )N)r@  r@  r$  r%  r   radiusr)  r*  T)match_originalr   r  r3   r   r  ii)r   r   r   r   )r   r   r   r   r  r  )r#   r   r!  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  r  r  r  r  )r)   r   r7   r  r  r    r    r!   test_mixed_collection  s   

r  c                  C   s:   t tdtdd} |   |   dksJ d S )Nr   r3   )r   r3   r   r   )r#   r\  ra   int32rx   r  get_subplotspecget_geometryr  r    r    r!   test_subplot_key_hash0  s   r  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r  r   c                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }ttdtj tj	
|| jdd}td| d }tjd ttj| tj| g}g d}||f||ffD ]M\}	}
|
d }tdtt|
 }tt d|D ]\}}|j|	|
||||d qtt d|D ]\}}|j|	|
||||dt j d qqrdS )z)Test axes.specgram in default (psd) mode.r   r  r_  r  r$  r   r  @ffffff@'@rt   r   r3   r4   r<  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr  )r  r  r  r  r  r!  r  N)rO   r   intra   r  ri   rH  r   r   multiplyouterr|  rb   rc   rz  ru   rv   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_specgram6  s6   
,$
r  )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]O\}}
|
d }tdtt|
 }tt d|	D ]\}}|j||
||||dd qtt d|	D ]\}}|j||
||||ddt j d	 qq|dS )z%Test axes.specgram in magnitude mode.r   r  r_  r  r$  r   r  r  r  r  r   r   r3   r4   r<  Nr   rt   r  r   	magnituder  r  r  r  r  r]   r  )r  r  r  r  r  r]   r!  r  )rO   r   r  ra   r  ri   r   r   r  r  r|  r  rb   rc   rH  rz  ru   rv   r  r  r#   r   r   r  r%  r  )r}  r  r  r  r-   r.   r  r  r  r  r  r  r  r   r  r    r    r!   test_specgram_magnitudeZ  s6   
,&

r  )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]V\}}
|
d }tdtt|
 }dD ]?}tt d|	D ]2\}}|j||
|||||d tt |j||
|||||dd W d   n1 sw   Y  qqq|dS )z,Test axes.specgram in angle and phase modes.r   r  r_  r  r$  r   r  r  r  r  rt   r   r3   r4   r<  Nr   r  )r}  phaser   r  dB)r  r  r  r  r  r]   r!  )rO   r   r  ra   r  ri   r   r   r  r  r|  r  rb   rc   rH  rz  ru   rv   r  r  r#   r   r   r  r   r   r  )r}  r  r  r  r-   r.   r  r  r  r  r  r  r  r]   r   r  r    r    r!   test_specgram_angle  s>   
,&
r  c                  C   sF   t jtdddd\} }}}| \}}}}|dkr|dks!J dS )z;Test axes.specgram when Fs is None, should not throw error.rp  Nr  )r  r!  rz   `   )r#   r  ra   r   
get_extent)specfreqsr  r   r_   r`   freq0freq1r    r    r!   test_specgram_fs_none  s   r  c                 C   sH   t d}t |}dtjd< | | dtjd< |  | dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r1  upperzimage.originr|   N)ra   ri   r   r#   r   r   r  )r   r   r  signalr    r    r!   test_specgram_origin_rcparam  s   



r  c                  C   sR   t d} t | }tt tj|dd W d   dS 1 s"w   Y  dS )z4Ensure passing origin as a kwarg raises a TypeError.r1  r|   r  N)ra   ri   r   r   r   r   r#   r  )r  r  r    r    r!   test_specgram_origin_kwarg  s
   

"r  )zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c               	   C   s  d} d}|d |d |d g|d |d |d gg}t d	| t| }td
| d| }tdtj tj|| jdd}t d	| d }tj	
d
 tj	| tj	| g}ddiddddddg}||f||ffD ]z\}	}
|
d }t dtt|
 }tt d|D ]*\}}|jt|	f|
|||d|}t|d|dd ksJ |jddd qtt d|D ]&\}}|j|	|
|||d|}t|d|dd ksJ |jddd qqpd S )Nr        Y@r$  r   r  r  r  r  r_  r   r3   r4   r<  r  r  r  F)r  return_liner  Tr   )r  r  r  r  r  r   xlabelylabel)r  ra   r  ri   r   r   r  r  r|  rb   rc   rz  ru   rv   r  r  r#   r   r   psdrH  r  r  r   csd)r}  r  r  r  r-   ys_freqsr  ys_noise
all_kwargsr  r  r  r  r   r  retr    r    r!   test_psd_csd  sD   ,&
r  )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t| }t dtt| }td| d	| }tdtj t|| d
td  j	d	d}tj
d ttj
| tj
| gd }g d}||d}	||fD ]}
tt d|D ]\}}|j|
fd|i|	\}}}|jddd qwtt d|D ]\}}|j|
fd|i|	ddi\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qqkd S )Nr  r  r$  r   r  r_  r4   r   r3   rt   r   r<  r   r  )r  r  r  r   r  r!  r  )r  r  ra   rv   r  ri   r   r   r  r|  rb   rc   r  rz  ru   r  r#   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r}  r  fstims1r  r  r-   r  r  r  r  r.   r   r  r  r  r  r    r    r!   test_spectrum  s<   ("
r  c                  C   s   t  d} | D ]	}|jjdd q	tjdd! | d td | d 	tdtd W d    d S 1 s=w   Y  d S )	Nr4   T)r+  r  r  r   r   r3   )
r#   r   r   rU   r   ra   r  r  rR  r  r  r   r    r    r!   test_psd_csd_edge_cases  s   "r  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r  )r   r  r  r[  rR   tick_bottomrU   	tick_left)r   r   rn   ax_twinxax_twinyro   r    r    r!   test_twin_remove  s   
r  ztwin_spines.pngc            	      C   s|  dd } t jdd}|jdd | }| }| }|jjd | | |jjd |	g d	g d	d
\}|	g d	g dd\}|	g d	g dd\}|
dd |dd |dd |dd |jj|  |jj|  |jj|  tddd}|jdd| d| |jdd| d| |jdd| d| |jdddi| d S )Nc                 S   s.   |  d | jd | jd d  d d S )NTF)set_frame_onr  r   spinesr  r    r    r!   make_patch_spines_invisible/  s   
z5test_twin_spines.<locals>.make_patch_spines_invisible)r$  r   r  r   )r=   )rZ  r  Tr:  zb-)r   r   r4   zr-)r  r   r   zg-r   r4   r$  r3   A   r   )rZ  r  r.   )r  r%  r  r-   r    )r#   r   r?  r   r  r  r=   set_positionr   r   r  r  rU   r+   r  r  rH  tick_params)	r  r)   hostpar1par2r  r  p3tkwr    r    r!   test_twin_spines,  s0   r  ztwin_spines_on_top.pngc                  C   s@  dt jd< dt jd< t } | ddd}tg dg dg}| }|j|d |d d d	d
 |j	|d |d d d	dd |j|d |d d dd
 |j	|d |d d ddd |d |d d d}t } | ddd}| }|jddd	|d |j	ddd	d|d |jddd|d |j	dddd|d d S )Ng      H@r&  r=  r3   )r_  iL  i  i  )r  i-  rp  ro  r   g     @@z#BEAED4r  r  )r   rR  z#7FC97Fr   )r7  rz  r7  rz  )r   r  )r   rR  r  )
rO   r   r#   r   r   ra   rB  r  r   r  )r)   r
  r  r  r    r    r!   test_twin_spines_on_topY  s(   


r  z(grid_which, major_visible, minor_visible))r   TT)majorTF)r  FTc                    sh   t jd| d t \}}|j  t fdd|jj	D s#J tfdd|jj
D s2J d S )NT)r$  zaxes.grid.whichc                 3       | ]
}|j   kV  qd S r  gridliner  r   tick)major_visibler    r!   rh    rT  z*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   r  r  r  r  )minor_visibler    r!   rh    rT  )r   r   r_  r#   r   r  r  ri  rR   
majorTicks
minorTicks)
grid_whichr  r  r)   r   r    )r  r  r!   test_rcparam_grid_minorx  s   
r  c                  C   s   t  \} }|  | j  |jjd j sJ |jdd | j  |jjd j r0J |jdd | j  |jjd j sFJ |  | j  |jjd j rZJ d S )Nr   FvisibleT)	r#   r   rI  r  r  rR   r  r  r  r(   r    r    r!   	test_grid  s   



r  c                  C   s   t  \} }|jdddd |jjd j rJ |jdd |jjd j s*J t ddi  |	  |jdddd |jjd j sIJ W d    d S 1 sTw   Y  d S )	NTr  rt   )resetr
  	labelsizer   r  r  r$  )
r#   r   r  rR   r  r  r  rI  r
   r  r(   r    r    r!   test_reset_grid  s   "r  c                 C   sn   || fD ] }|  }|d |jdddddddd	d
dddd |  q| jD ]}|j  |j  q(d S )NTinrt   r   r  r  r  rt  rq  ru  r  r   r  )	directionlengthr  r   padr  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   rI  r  draw_without_renderingrZ  rR   reset_ticksrU   )r   r   r)   r   r    r    r!   test_reset_ticks  s   




r+  c                  C   s:   t  } |  }|d |g d t| d d S )Nr   )r  r   r   r   )r  r   )r#   r   rU  rj  r   r   r   r(   r    r    r!   test_vline_limit  s
   
r,  zfv, fh, args)r3   r9  c                 C   s
  t jd}tjtdd | ||dd W d    n1 s w   Y  tjtdd | |d|d W d    n1 s?w   Y  tjtdd |||dd W d    n1 s^w   Y  tjtdd ||d|d W d    d S 1 s~w   Y  d S )	Nr3   z"ymin must be a single scalar valuerb  r  r  z"ymax must be a single scalar valuez"xmin must be a single scalar value)r_   r`   z"xmax must be a single scalar value)rO   r,  num2dater   r   r  )fvfhargsbad_limr    r    r!   test_axline_minmax  s   "r3  c                  C   s   t jddddd\} }|d g dg d |d  \}}|d  \}}|dks-J |dks3J |dks9J |d	ks?J d S )
Nr3   r4   T)rc  rd  r  rT  r   r  )r4   r$  r  r   r  )r#   r   r   r   r   )r)   r  r  r  r  r  r    r    r!   test_empty_shared_subplots  s   r4  c                  C   s   dD ]E} t jddd\}}|d jd| dd |d  dks!J |d  | ks+J t jddd\}}|d jd| d |d  d	ksGJ qd S )
Nboxdatalimr4   T)rc  r  r   )
adjustablesharer3   r8  rP  )r#   r   
set_aspect
get_aspectget_adjustable)r8  r)   r  r    r    r!   test_shared_with_aspect_1  s   r>  c                  C   s   t jdddd\} }|d jddd |d ddgddg |d ddgddg t   |d  |d  ks=J |d  |d  ksKJ d S )	Nr4   T)rc  r  rT  r   )r9  r3   r   r$  )r#   r   r;  r   r  r   r   rS  r    r    r!   test_shared_with_aspect_2  s    r?  c            	      C   s  dD ]} t jddd\}}|d jd| d |d jd| d |d ddgd	d
g |d d	d
gddg t   |d  |d  ksIJ |d  |d  ksWJ |jj|jj	 }|D ](}|
 }|j|j	 }|jj|jj	 }|| | }t|d
t| d
ksJ qaqd S )Nr5  r4   T)rc  rT  r   r:  r3   r   r   r$  )r#   r   r;  r   r  r   r   bbox_inchesr  r  get_positionviewLimr  r<  )	r8  r)   r  
fig_aspectr   r   
box_aspect
lim_aspectr  r    r    r!   test_shared_with_aspect_3  s$   rF  c                  C   s`   t jddddd\} }|d d tjtdd |   W d    d S 1 s)w   Y  d S )	Nr3   r4   Tr  rT  r   r~  zset_aspect\(..., adjustable=rb  )r#   r   r  r   r   RuntimeErrorr)  )r)   rZ  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   D   t j| |d tj|i | W d    d S 1 sw   Y  d S Nrb  )r   r   r#   r  errr1  r  rc  r    r    r!   test_axis_errors  s   "rN  c                  C   s  t  } tjtdd | d W d    n1 sw   Y  tjtdd | d W d    n1 s7w   Y  tjtdd | jddd W d    n1 sUw   Y  tjtdd | 	d W d    n1 sqw   Y  tjtdd | j
d	d
 W d    n1 sw   Y  tjtdd | jddd	d W d    n1 sw   Y  tjtdd | jddd	d W d    n1 sw   Y  tjtdd | jdd	d W d    n1 sw   Y  tjtdd | jdd	d W d    n	1 s	w   Y  tjtdd | jdd	d W d    n	1 s(w   Y  tjtdd | jdd	d W d    d S 1 sHw   Y  d S )Nzunknown value for which: 'foo'rb  r  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer3   )	scilimitszSpecifying 'loc' is disallowedrJ   )r;   r-   r9   )r;   r.   zCannot pass both 'left'r   )rJ   r_   zCannot pass both 'right')r=   r`   zCannot pass both 'bottom')rI   r  zCannot pass both 'top')r9   r  )r#   rU  r   r   r  r  r  r   set_prop_cycle
set_anchorticklabel_formatr$   r%   r  r  r  r    r    r!   test_axis_method_errors!  sD   $rS  c                 C   sH   t  \}}t|d|   }|d |d t|jj|jj d S )Nr  r   r4   )r#   r   r  r;  r   bboxextents)r  r)   r   r6  r    r    r!   test_twin_with_aspect;  s   

rV  c                  C   s   d} d}d}d}t j }| }|| | | | ksJ | |ks'J |||\}| |ks6J | |ks>J |d | |ksKJ | |ksSJ |jdd |	  | | kseJ | |ksmJ d S )N)r  r  )r  r  )r  r  FT)visible_only)
rO   r   r   r   r   r   r   r   relimr   )r  r  rE  rF  r)   r   r  r    r    r!   test_relim_visible_onlyF  s&   

rY  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    large)r  outr   N)r#   r   rU  r  r(   r    r    r!   test_text_labelsize_  s   r]  zpie_default.pngc               	   C   sD   d} g d}g d}d}t jdd\}}|j||| |ddd	d
 d S )NFrogsHogsDogsLogsr   r   rq  rt   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r@  r  r  %1.1f%%Tr  )exploder  r%  autopctshadow
startangler#   r   pie)r  sizesr%  rk  r^  r
  r    r    r!   test_pie_defaulti  s   
rr  )pie_linewidth_0rs  rs  c                  C   s   d} g d}g d}d}t j||| |ddddd	id
 t d | |||d}t  }| }|jddddddddd	i|d	 |d t   t jddddddddd	i|d	 t d d S )Nr^  rc  rd  ri  rj  Tr  r+  r   rk  r  r%  rl  rm  rn  
wedgepropsr~  )lr  r7   exr  rw  rv  r7   )rk  r  r%  rl  rm  rn  ru  r  )r#   rp  r  r   rU  )r  rq  r%  rk  r  r)   r   r    r    r!   test_pie_linewidth_0u  s.   

rx  zpie_center_radius.pngc                  C   sl   d} g d}g d}d}t j||| |ddddd	id
dd
 t jdd
dtdddtdddd t d d S )Nr^  rc  rd  ri  rj  Tr  r+  r   r#  r   )	rk  r  r%  rl  rm  rn  ru  rQ   r  zCenter point)r3   r	  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler)  )r  r  r  rT  r~  )r#   rp  r  rH  r  r  rq  r%  rk  r    r    r!   test_pie_center_radius  s   


r  zpie_linewidth_2.pngc               
   C   sD   d} g d}g d}d}t j||| |ddddd	id
 t d d S )Nr^  rc  rd  ri  rj  Tr  r+  r4   rt  r~  r#   rp  r  r  r    r    r!   test_pie_linewidth_2  s   r  zpie_ccw_true.pngc               
   C   @   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nr^  rc  rd  ri  rj  Tr  )rk  r  r%  rl  rm  rn  counterclockr~  r  r  r    r    r!   test_pie_ccw_true     r  zpie_frame_grid.pngc                  C   s   d} g d}g d}d}t j||| |ddddd	idd
d
 t j|d d d || |ddddd	iddd
 t j||d d d | |ddddd	iddd
 t d d S )Nr^  rc  rd  ri  rj  Tr  r+  r   r:  )	rk  r  r%  rl  rm  rn  ru  framerQ   r   )r   r4   )r   r   r~  r  r  r    r    r!   test_pie_frame_grid  s(   r  zpie_rotatelabels_true.pngc               
   C   r  )
N)Hogwartsr_  ra  rb  rc  rd  ri  rj  Tr  )rk  r  r%  rl  rm  rn  rotatelabelsr~  r  r  r    r    r!   test_pie_rotatelabels_true  r  r  zpie_no_label.pngc                  C   sV   d} g d}g d}d}t j||| |dddd dd	 t d	 t d
d t   d S )Nr^  rc  rd  ri  rj  Tr  )rk  r  r%  rl  rm  rn  labeldistancer  r~  g333333r  )r#   rp  r  r   rC   r  r    r    r!   test_pie_nolabel_but_legend  s   
r  zpie_shadow.pngc               	   C   s   g d} g d}d}t dd\}}|d d j| ||ddddid	 |d d
 j| ||ddddid	 |d
 d j| ||ddddddddid	 |d
 d
 j| ||dddddddid	 d S )Nrc  rd  ri  r4   r   Tr  r+  )rk  r%  rm  rn  ru  r3   FrK  r0  r%  )oxoyshader*  r8  r   )r  r+  r  ro  )rq  r%  rk  r  rZ  r    r    r!   test_pie_shadow   s(   

r  c                  C   s   g d} g d}t ddddddd	}t j| |d
|d\}}}||fD ]C}|D ]>}| |d ks4J | |d ks>J | |d ksHJ | |d ksRJ | |d ks\J |	 |d ksfJ q(q$d S )N)r  "   rq  )zLong name 1zLong name 2zLong name 3rQ   r9   r  anchorr  r  )horizontalalignmentverticalalignmentr  rotation_moderZ  r   %.2f)r  rl  	textpropsr  r  r  r  rZ  r   )
rH  r#   rU  rp  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  r  r  r  textsrl  txr    r    r!   test_pie_textprops  s*   r  c                  C   sR   t  \} }tt |jg dg dd W d    d S 1 s"w   Y  d S )N)r   r   r  )r   r   r   )rk  )r#   r   r   r   r  rp  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s6J d S )	Nr   r   r   T)r-   	normalizer   r   g     v@r  F)r#   r   rp  r  rt  )r)   r   r-   t1t2r    r    r!   test_normalize_kwarg_pie5  s   "r  c                    sF   g d}d |   j| d |  |\}} fdd|D  d S )Nr  r  r4  c                    s   g | ]}|  qS r    	set_hatch)r   r  r4  r    r!   r   D  r   z)test_pie_hatch_single.<locals>.<listcomp>)r   rp  )r   r   r-   wedgesr  r    r4  r!   test_pie_hatch_single>  s
   r  c                 C   sL   g d}g d}|   j||d |  |\}}dd t||D  d S )Nr  )r  r  r{   r4  c                 S   s   g | ]	\}}| |qS r    r  )r   r  hpr    r    r!   r   M  r$  z(test_pie_hatch_multi.<locals>.<listcomp>)r   rp  r  )r   r   r-   r  r  r  r    r    r!   test_pie_hatch_multiG  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 )Nr4   rd   zset_x/yticklabelsr   rt   r3   r   r  r7   r6  r  r   )11121314)r#   r   r   ra   ri   r0   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsrZ  
get_yticksrC  get_yticklabels)r)   r   r@   r    r    r!   test_set_get_ticklabelsP  s   r  c                  C   sX   t  \} }g d}tjtdd |jj|dd W d   dS 1 s%w   Y  dS )z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  z)Incorrect use of keyword argument 'alpha'rb  r   rr  N)r#   r   r   r   r  rR   	set_ticks)r)   r   ticksr    r    r!   0test_set_ticks_kwargs_raise_error_without_labelsj  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)

    )r3   r4   r$  r  r  bold)
fontweightr  r4   r$  T)r  r;  r<  N)r   r  r  r  r  r   r    r    r!   test_set_ticks_with_labelsu  s   	r  c                  C   sp  t   } tjtdd | ddgd W d    n1 s w   Y  tjtdd t t	
dd W d    n1 sBw   Y  tjtdd t t	
dd	 W d    n1 sdw   Y  tjtdd t jt	
ddtdd
 W d    n1 sw   Y  tjtdd t jt	
dd	tdd
 W d    d S 1 sw   Y  d S )Nzmust be a sequencerb  r4   r3  ry  z
must be 1Dr$  r0  r/  r  )r#   r   r   r   r   r   r  r  r  ra   ri   r   r   r  r    r    r!   test_xticks_bad_args  s      "r  c                  C   s   t  \} }|td |jtdd  |jdd |jdd dD  t 	  dd |j
 D }|g d	ks@J d S )
Nrt   r   r   rh  c                 S   s   g | ]}|qS r    r    rH  r    r    r!   r     s    z.test_subsampled_ticklabels.<locals>.<listcomp>
bcdefghijkc                 S   r>  r    rX  r  r    r    r!   r     r  )r  r6  r  r~  rz  )r#   r   r   ra   ri   rR   r  ro  set_ticklabelsr  get_ticklabels)r)   r   r  r    r    r!   test_subsampled_ticklabels  s   r  c                  C   sl   t  \} }|td |jddg tt	 |j
g d W d    d S 1 s/w   Y  d S )Nrt   r   r  r:  )r#   r   r   ra   ri   rR   r  r   r   r  r  r(   r    r    r!   test_mismatched_ticklabels  s   "r  c                  C   s<   t  \} }|ddgddg |ddg |g  d S )Nr3   r4   )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   r  r
  r!  )r#   r   r   setpr  r  r(   r    r    r!   test_retain_tick_visibility  s   r  c                  C   s   t  \} }tjtdd |ddg W d    n1 sw   Y  t  \} }|g d tjtdd |ddg W d    d S 1 sKw   Y  d S )Nz:set_ticklabels\(\) should only be used with a fixed numberrb  r  r  r9  z$The number of FixedLocator locations)	r#   r   r   r  r  r  r  r   r  r(   r    r    r!   test_warn_too_few_labels  s   "r  c                  C   st   t  \} }dd }|jt | |g d |dd |jj	  dd |j
 D }|g dks8J d S )	Nc                 S   s   | dkrdS dS )Nr3   
unit valuer   r    r   r    r    r!   formatter_func  s   z.test_tick_label_update.<locals>.formatter_func)r   r   r3   r4   r   r  r  c                 S   r>  r    rX  r  r    r    r!   r     r  z*test_tick_label_update.<locals>.<listcomp>)r   r   r  r   r   )r#   r   rR   r   r   r  r  r   r  r  r  )r)   r   r  
tick_textsr    r    r!   test_tick_label_update  s   r  zo_marker_path_snap.pngH   c                  C   s~   t  \} }|d tddD ]}|jddgtd| d|d qtdddD ]}|jd	d
gtd| d|d q*d S )Nr   r3   r   r4   r   )r  rt   r  r   r$  )r#   r   rD  r   r   ra   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sDJ | ||| d  ||| d  fksZJ tdd\}}||  |dd | dksuJ | ||| d  ||| d  fksJ | ||| d  ||| d  fksJ tdd\}	}
|
|  |
jd	dd
 |
 dksJ |
 ||| d	  ||| d	  fksJ |
 ||| d  ||| d  fksJ d S )Nr3   rt   r  r   r9  r   r4   )r   r4   皙ɿr  )r  r   )	r  r  rj  r#   r   r   rD  r   r   )r  r_   r`   r  r  r^  r
  r_  r  r  r  r    r    r!   test_margins  sF   








r  c                  C   sN   t jd t \} }|ddgddg |jddd | dks%J d S )Nr  r3   r4   r"  r   )r  xmarginr#  )r   r   r   r#   r   r   r   r   r(   r    r    r!   test_set_margin_updates_limits  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   sT   t j| |d t }| }|j|i | W d    d S 1 s#w   Y  d S rK  )r   r   r#   r   r   rD  )rM  r1  r  rc  r)   r   r    r    r!   test_margins_errors  s
   "r  c                  C   s&   t  \} }|d |dg d S Nr3   )r#   r   rI  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s,J | dks4J |jdd | dksBJ | dksJJ |dd | dksXJ | dks`J |jdd | dksnJ | dksvJ |jdd | dksJ | dksJ d S )	Nr   rw  )r   rw  r  )r  )r   r  )r|   )rw  r  )	r#   r   r   r  
get_xboundr   r  
get_yboundr   r(   r    r    r!   test_set_xy_bound.  s(   r  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nrt   r   r3   )r#   r   rd  rb  r`  ra  )mylistr)   r   r    r    r!   test_pathological_hexbinF  s   
r  c                  C   s(   t  \} }|jddgddgd d d S )Nr3   r4   r  rn  r(   r    r    r!   test_color_NoneN  s   r  c                  C   s6   t  \} }|jddgddd }d| ksJ d S )Nr   r3   r  r  )r#   r   r   r  r)   r   r  r    r    r!   test_color_aliasT  s   r  c                  C   s4   t  \} }|jtdgd tdd |  d S )Nr   r   r  )r#   r   rI  r   rC   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   decoderI  r   rC   )r)   r   r   r  r  r    r    r!   test_unicode_hist_labela  s   r  c                  C   sD  t jdd } t \}}||  |j  |jj	 }|jj
 dks(J |j  |j  |jj	 }|d |d krH|d |d ksJJ |jj
 dksTJ t \}}||  |j  |jj	 }|jj dkstJ |j  |j  |jj	 }|d |d kr|d |d ksJ |jj dksJ d S )	Nrt   g^ 9^;rJ   r   r3   r=   r9   rI   )ra   rb   r#   r   r   r  r  rU   
offsetTextrA  rT   
tick_rightrR   get_verticalalignmentr   )r  r)   r   beforeafterr    r    r!   test_move_offsetlabelo  s*   



$



$r  zrc_spines.pngc                  C   sF   ddddd} t |  t  W d    d S 1 sw   Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rO   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    n1 s8w   Y  qd S )NTr   )r$  zaxes.grid.axisr-   r.   r3   r   )r#   r   r  rO   r
   r   )r)   rc_dict0rc_dict1rc_dict2r  r7  r  r    r    r!   test_rc_grid  s"   
r  c                  C   s   ddddd} t j| dR t  }|ddd}|j}|j}|jd r&J |jd s-J |jd r4J |jd s;J |jd sBJ |jd rIJ |jd sPJ |jd rWJ W d    d S 1 sbw   Y  d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightr  r3   tick1Ontick2Onr#   r
   r   r   rR   rU   _major_tick_kw_minor_tick_kwr6  r)   r
  xaxyaxr    r    r!   test_rc_tick  s"   "r  c               	   C   s   ddddddddd} t j| dR t  }|ddd}|j}|j}|jd r*J |jd s1J |jd r8J |jd s?J |jd rFJ |jd sMJ |jd rTJ |jd s[J W d    d S 1 sfw   Y  d S )NTF)r  r  r  r  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r3   r  r  r  r  r    r    r!   test_rc_major_minor_tick  s&   "r  c                  C   s   t d} t g d}t \}}|| |d |d | | }}t 	|t 	|ks3J |
 dks;J t|jddjd t|jd	djd
 d S )Nr$  )r   rw  r  r  mor}  r3   T)originalg      ?r   r0  r0  F)g333333?r   g      ?r0  )ra   ri   rB  r#   r   r   r  r   r   ra  r<  r   rA  rU  )r-   r.   r)   r   r   r   r    r    r!   test_square_plot  s   

r	  c                   C   s  t t td  W d    n1 sw   Y  t t td d  W d    n1 s0w   Y  t t ttdtd W d    n1 sQw   Y  t t ttddtdddf W d    d S 1 s{w   Y  d S )Nr:  r  r   r/  r   r3   )	r   r   r  r#   r   ra   rR  ri   r   r    r    r    r!   test_bad_plot_args  s   *"r	  zxy, clsr    ))r   r)  )r4   r  )r3   r4   r$  r@  r  r  )r$  r   r  )r   r$  c                 C   s0   t  \}}t|jg | |R  |ksJ d S r  )r#   r   rX  r  )r  r  clsr)   r   r    r    r!   test_pcolorfast  s   $r	  c                  C   s   t jddddd\} }|d d |d d |jD ]}| dks&J | dks.J q|d d |d d |jD ]}| dksJJ | dksRJ q@d S )Nr4   TrG  r  r"  r9  r  )r#   r   r  r  r  
get_yscale
get_xscaler)   r  r   r    r    r!   test_shared_scale  s   

r	  c                   C   sr   t t tjdd W d    n1 sw   Y  t t tjdd W d    d S 1 s2w   Y  d S )NTr  rS  )r   r   r   r#   r\  r    r    r    r!   test_shared_bool  s   "r		  c                   C   s   t tddg dS )z4Violin plot should handle point mass pdf gracefully.r   N)r#   r(  ra   rB  r    r    r    r!   test_violin_point_mass  s   r
	  c               	   C   s   t dtdgt dtdg } t ddg dg dg dgtdtdd g}t d|}t d	|}t dg gt dg g t dg d g t d	g d g }| | }| | }| | | }g ||||S )
Nr-   r   r.   rM  r3   )r3   r3   r3   r3   r3   )r4   r   r  r  )r	   ra   ri   r   )base_xy
err_cyclerxerr_cyyerr_cyempty	xerr_only	yerr_onlyboth_errr    r    r!   generate_errorbar_inputs   s*   $

r	  r  c                 C   s$   t  }|jdi | }|  d S )Nr    )r#   rU  r  r[  )r  r   ebr    r    r!   test_errorbar_inputs_shotgun6  s   r	  dash_offsetc                  C   sT   t  \} }tdd}t|}tdddD ]}|j||| |dfddd qd S )	Nr   rt   r   r4   rt   rt   r   r  )r  r?  r   )r#   r   ra   r   	ones_liker   r   )r)   r   r-   r.   rz  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s1J |jdd d |j }|d tjd d | j ksMJ d S )	Naardvarkr  r"  r/  g?r  zaxes.titlepadrj  )r#   r   r0   titleOffsetTrans
get_matrixr  rO   r   )r)   r   r  r    r    r!   test_title_padF  s   


$r	  c                  C   s   t  \} }dt jd< |d |jddd |jddd d|jddks(J d|jddks2J d|jddks<J tt |jdd W d    n1 sRw   Y  tt |jddd W d    d S 1 sow   Y  d S )	NrQ   zaxes.titlelocationr	  rJ   r:   r=   r  fail)r#   r   r   r0   	get_titler   r   r  r(   r    r    r!   test_title_location_roundtripV  s   

"r!	  r  c                 C   s   t jdd| d\}}|d jddd |d jddd |  |d j \}}|d j \}}||  kr=d	ks@J  J d S )
Nr4   r3   r  r   r;  ir	  r<  r   )r#   r   r0   r)  r,   rA  )r  r)   r  r-   r  rF  r    r    r!   test_title_location_sharedh  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 )Nr3   r  r   r   rA  r  r4   )r!  r  r   r  )r!  r  r
  )r#   r   ra   ri   r  r  )r)   r   r-   r    r    r!   test_loglogs  s
   r#	  ztest_loglog_nonpos.pngc                  C   s   t dd\} }tdd}|d }d|d< d|d< ttg dd	d
|jD ]?\\}}}||krI|r>|j||d d	|d q&|j||d d	d q&|j||d d	d |r\|jd|d |re|j	d|d q&d S )Nr   r3   r  g      r)  r  r$  )rO  r[  r   r4   )r@  )r?  nonpositiverA  r"  )r$	  )
r#   r   ra   ri   r  r   r  r  r  r  )r)   r  r-   r.   mcy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s1J t  \} }|g dg d | d dksKJ t  \} }|t	d | dksaJ | dksiJ t  \} }|
t	d | dksJ | dksJ t  \} }|td | d dksJ t  \} }|t	d | dksJ | dksJ d S )Nr  r   )r3   r3   r3   r3   r	  rr  rt   )r  g      #@)r#   r   r   r  r  r  r  r  ra   rR  r  rI  ri   r   r(   r    r    r!   test_axes_margins  s0   r(	  )rI  c                 C   s    dd }dd }||d| j  S )Nc                 S   <   |   }|  | dd | j  }|d dksJ d S Nr   r   r   r  )r  r[  r  rR   get_major_locatorr   r  r  r    r    r!   	_helper_x  
   z&shared_axis_remover.<locals>._helper_xc                 S   r)	  r*	  )r  r[  r  rU   r+	  r,	  r    r    r!   	_helper_y  r.	  z&shared_axis_remover.<locals>._helper_yr  )param)requestr-	  r/	  r    r    r!   shared_axis_remover  s   r2	  )rU  r   subplots_sharedrC  c                 C   s   | j dkrt }| }||fS | j dkr t \}}||fS | j dkr:tjddddd\}}|d d }||fS | j dkrJt }|g d	}||fS )
NrU  r   r3	  r4   ri  rG  r   rC  r   r   r  r  )r0	  r#   r   rU  r   rC  )r1	  r)   r   r  r    r    r!   shared_axes_generator  s   
	


r5	  c                 C   s   | \}}|| d S r  r    )r5	  r2	  r)   r   r    r    r!   test_remove_shared_axes  s   r6	  c                  C   s`   t jddddd\} }|d d }|d d  }|  |dd t|d d  | d S )Nr4   ri  rG  r   r3   r   )r#   r   r   r[  r  r   )r)   r  r   	orig_xlimr    r    r!   test_remove_shared_axes_relim  s   r8	  c                  C   s   t ddd} t j| j| jf}tjddddd\}\}}|dd	 |dd	 |	| | | |	| | | |
 s@|
 rBJ | sJ| rLJ | |   kr[d
ks^J  J | |   krmd
kspJ  J d S )Nir  r  r4   r3   TrG  r_  )r9	  r_  )ra   ri   rb   random_samplerZ  r#   r   r  r  r  rI  rK  r   r   )rv  r  r)   r
  r  r    r    r!   test_shared_axes_autoscale  s   $(r;	  c                  C   s   t  \} }|j jdd |dd |d | j  t	|j  dks+J |
dd | j  t	|j  dksBJ d S )NrP  rh  r   r_  r~  r4   )r#   r   rU   r+	  
set_paramsr  r;  r  r  r  r  r(   r    r    r!   test_adjust_numtick_aspect  s   


r=	  c                  C   sP   t  dd} | jD ]}g | g |   kr"g dks%J  J qd S )Nr$  r9  )r#   r   r   r  rZ  r  r  r    r    r!   test_auto_numticks  s   
2r>	  c                  C   sv   t  \} }dtjd< |ddgddg t| tddd	k	 s'J t|
 td
ddk	 s9J d S )Nround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<rt   ir  r$  r  r   )r#   r   r   r   r  ra   log10rZ  ri   ri  r  r(   r    r    r!   test_auto_numticks_log  s
   
$(rC	  c                  C   s   t  \} }|g d d S )N)r   r   )r#   r   r  r(   r    r    r!   test_broken_barh_empty  r  rD	  c                  C   s   t  \} }tdddddd}||tjddfgddg}| d jd t|ks/J | d jd	 t|d
 ksAJ dS )z9Check that timedelta works as x, dx pair for this method.r  r  r3  r   r3   r  r4   r  r4   r   gUUUUUU?N)	r#   r   r  r  r4  r  verticesr  r	  )r)   r   d0ppr    r    r!   test_broken_barh_timedelta  s
    (rI	  c                 C   sD   | j ddd}td}tjdd}t \}}|||| d S )Nz
2000-01-01rt   )r  r?  r  r3  )r  ra   ri   rb   ru   r#   r   r  )r  timedepthr  r)   r   r    r    r!   test_pandas_pcolormesh#  s
   
rL	  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   r  )r,  r  r4   r3   r,  r  r&  )ra   ri   r   r   r  r&  r#   rU  rB  r)  r  r   )r  r,  r  r*  r   without_zero_indexr    r    r!   test_pandas_indexing_dates,  s   rN	  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$  rY  )r-   r.   xeyer  )columnsr)  r-   r.   rO	  rP	  rm  )r&  ra   rb   uniformr#   r   r  r2  r    r    r!   test_pandas_errorbar_indexing7  s   rS	  c                 C   s:   |  g dg dd}t \}}||j|d  d S )Nr  )r)  r3   r4   )XXYYrU	  )r&  r#   r   r   r)  r2  r    r    r!   test_pandas_index_shape?  s   rV	  c                 C   s8   | j g dd}|jdd  }t \}}|| d S )N)
r3   r4   r4   r   r   r$  r$  r$  r$  r   r&  r3   )rE  ilocr#   r   rI  )r  ser_1ser_2r)   r   r    r    r!   test_pandas_indexing_histE  s   rZ	  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 )Nr4   r%  r3   r   r  rQ   r  )r&  r   r#   r   r  r;   r  r  r2  r    r    r!   test_pandas_bar_align_centerL  s   r[	  c            	      C   s   t  j} i | jdd}i | jdd}| j| jdd}| j| jdd}||ks+J ||ks1J | jdddd	d
 i | jdd}i | jdd}| |}| |}||ksZJ | j|ksaJ ||ksgJ | j|ksnJ d S )Nr  r	  r  T)reverser   r  r[  r   )r  r#  r   r
  )r#   r\  rU   get_tick_params_translate_tick_paramsr  r  set_tick_params)	r  initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styler    r    r!   test_axis_get_tick_paramsY  s,   


rh	  c                  C   s   t  } | jjdddd | jjd jdksJ | jjd j dks%J | jjd j	 dks2J | jjd j dks?J d S )	Nr   r  r[  )r  r#  r   r   r  r  r  )
r#   r\  rU   r_	  r  _size	tick1liner  rc  r  )axis_1r    r    r!   .test_axis_set_tick_params_labelsize_labelcolort  s   
rl	  c                  C   s   t  } | jddddd | j| jfD ]2}|jd j dks!J |jd j dks-J |jd j	 dks9J |jd j
 dksEJ qd S )Nr  r   r   rO  )r%  r'  r&  r(  r   r  )r#   r\  r  rR   rU   r  r  r  get_linewidthrL  r  )r   r  r    r    r!   test_axes_tick_params_gridlines  s   
rn	  c                  C   s   t  } | jdddd | jdddd | jjd j du s!J | jjd j du s.J | jjd j du s;J | jjd j du sHJ d S )NFTr  )	labelleft
labelrightr
  r  r   )	r#   r\  r  rU   r  rc  r  label2r  r  r    r    r!    test_axes_tick_params_ylabelside  s   rr	  c                  C   s   t  } | jdddd | jdddd | jjd j du s!J | jjd j du s.J | jjd j du s;J | jjd j du sHJ d S )NTFr  )labeltoplabelbottomr
  r  r   )	r#   r\  r  rR   r  rc  r  rq	  r  r  r    r    r!    test_axes_tick_params_xlabelside  s   ru	  c                  C   s4   t   } | jtdd d\}| dksJ d S )Nrz   r  r  )r#   r   r   r   r   r  )r   lnr    r    r!   test_none_kwargs     rw	  c                  C   sT   g d} t jtj| tjdg ddd}t|j| D ]\}}|jd |ks'J qd S )Nr  r  )r4   r   r$  r   r  r  r   )r#   r  ra   rB  uint8r  r0  r  )r  r  r  r-   r    r    r!   test_bar_uint8  s
    rz	  zdate_timezone_x.pngr   c                  C   sj   dd t dD } tjdd tddd tj| dgd dd	 tddd tj| dgd d
d	 d S )Nc              
   S   (   g | ]}t j d dd|tjddqS   r4      Canada/Easternr   tzinfor  r  tzgettzr   r    r    r!   r     
    

z(test_date_timezone_x.<locals>.<listcomp>r   r?  r  r  r4   r3   r	  )r	  UTCr   r#   r   r\  r+  
time_indexr    r    r!   test_date_timezone_x  s   r	  zdate_timezone_y.pngc                  C   sr   dd t dD } tjdd tddd tjdgd | dd	d
d tddd tjdgd | dd	d
d d S )Nc              
   S   r{	  r|	  r	  r   r    r    r!   r     r	  z(test_date_timezone_y.<locals>.<listcomp>r   r	  r  r4   r3   r	  FT)r	  xdateydater	  r	  r	  r    r    r!   test_date_timezone_y  s   r	  zdate_timezone_x_and_y.pngc                     sn   t jj  fddtdD } tjdd tddd tj| | dd	d
 tddd tj| | dd	d
 d S )Nc              	      s    g | ]}t j d dd| dqS )r}	  r4   r~	  r	  r  r   r	  r    r!   r     s    z.test_date_timezone_x_and_y.<locals>.<listcomp>r   r	  r  r4   r3   r	  T)r	  r	  z
US/Eastern)r  timezoneutcr   r#   r   r\  r+  r	  r    r	  r!   test_date_timezone_x_and_y  s   
r	  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]A\}}|jddddd tjd	d
d}|| |jdddd |j	ddddd |j
d d  d || | |ksRJ qd S )Nr   T)rd  r  rT  )Fr  Trr  rt   r  r  r  r  r  r7   r  )r   r   r+  F)r9   rI   rJ   r=   )r#   r   r   r  r   r!  r  r   rI  r  r  r   set_axisbelowget_axisbelow)r  settingsr   settingcircr    r    r!   test_axisbelow  s   

r	  c            	      C   s   t jd t jdd\} }| }|d}|d}| j  | j	 }|
|j}|
|j}|| }t|ds>J d S )Nr   r  )r  Xlabel2Titler   )r#   r   r   r   r  r$   r0   r  r  get_rendererget_window_extentr  r  ra   isclose)	r)   r   r  xlabel2r,   rendererbbox_y0_titlebbox_y1_xlabel2y_diffr    r    r!   test_titletwiny   s   



r	  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |ks:J d S )Nr  )r9   Xlabelr	  r	  )r   g(\?)r#   r   r?  r  r$   r0   r,   r  r  r	  _update_title_positionrA  )r)   r   r  r   r	  r    r    r!   test_titlesetpos  s   




r	  c                  C   sP   d t jd< t \} }|jd |d | j  |j	
 d dks&J d S )Naxes.titleyr9   
xlabel topr3   p=
ף?)r   r   r#   r   rR   r   r0   r  r  r,   rA  r(   r    r    r!   test_title_xticks_top  s   


r	  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dks*J d S )Nr	  r-   Tr  rI   r9   rt	  rs	  r	  r3   r	  )
r   r   r#   r   r  r0   r  r  r,   rA  r(   r    r    r!   test_title_xticks_top_both(  s   


r	  zleft, center))rJ   r   )r   rQ   )rJ   rQ   )zleft title movedzcenter title keptzboth titles alignedc                 C   s   d t jd< t \}}|d |j| dd || |  | r1|s1|j d dks/J d S | sB|rB|j	 d dks@J d S |j d }|j	 d }|dksVJ ||ks\J d S )Nr	  g   vH7BrJ   r:   r3   r   )
r   r   r#   r   r  r0   r)  _left_titlerA  r,   )rJ   rQ   r)   r   yleftr  r    r    r!   test_title_above_offset3  s   


r	  c                  C   s`   d t jd< t } | g d}|jdddddd |d}| j  |	 d dks.J d S )	Nr	  )r   r  r  r   r-   Tr	  Boor3   r   )
r   r   r#   r   rC  r  r0   r  r  rA  )r)   r   ttr    r    r!   test_title_no_move_off_pageQ  s   


r	  c                  C   sB   t  \} }|g d |jjdd |j  dksJ d S )Ng   @Ag   eAg   FAr  )r#  )r#   r   r   rU   r_	  get_offset_textr  r(   r    r    r!   test_offset_label_color^  s   r	  c                  C   s`   t  \} }|g d |jjddd |j  sJ |jjdd |j  r.J d S )Nr	  FT)label1Onlabel2On)r	  )r#   r   r   rU   r_	  r	  r  r(   r    r    r!   test_offset_text_visiblef  s   r	  c                  C   s6   t  \} }|dtddg d  | j  d S )Nr3   r   g-q=gqىE)r#   r   r   ra   rB  r  r  r(   r    r    r!   test_large_offseto  s   r	  c                  C   ^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S      g | ]}t  d ddd|qS ry  r)  r   r  r  r  r    r    r!   r   w  r   z#test_barb_units.<locals>.<listcomp>r   r  rt   r   r  )r#   r   r   ra   r   r  barbsr)   r   r,  r.   ur  r    r    r!   test_barb_unitsu  
   r	  c                  C   r	  )Nc              	   S   r	  r	  r  r  r    r    r!   r     r   z%test_quiver_units.<locals>.<listcomp>r   r  rt   r   r  )r#   r   r   ra   r   r  quiverr	  r    r    r!   test_quiver_units}  r	  r	  c                  C   sn   t j} t \}}tdD ]'}|td\}|tdtd}|D ]}| | | | ks3J q#qd S )Nr   r   )	r  to_rgbr#   r   r   r   r  r  r  )r	  r)   r   rz  rv	  brsbrr    r    r!   test_bar_color_cycle  s   r	  c                  C   s  t dd\} \}}|ddgddg |ddgddg |jjddd |jjddd |jddD ]
}| dks>J q4|jddD ]
}| dksOJ qE|j	d	d
d |j	ddd |jddD ]
}| d
ksnJ qd|jddD ]
}| dksJ qud S )Nr3   r4   r   r   r   )r
  r  r  r	  r-   5   )r  r$  r.   r   )r  r  r  )
r#   r   r   rR   r_	  rU   rC  r  r  r  )r  r   r  textr    r    r!   test_tick_param_label_rotation  s    r	  c            	      C   s  t  \} }tdD ]"}|tdtd}td| }t|  t|ks,J q
tddD ]"}|	tdtd}td| }t|  t|ksTJ q2td}dD ] }|jtdtdfi |di}t|  t|ks|J q\td}t
ddgddD ]8\}}|jtdtdfi |di}td| }t|  t|ksJ t|  t|ksJ qd S )	Nr   rh  r  r  )r)  rA  r   r*  r  )r  )r#   r   r   r  r  r  tupler  squeezer  r  r  )	r)   r   rz  cctargetaledge_targetelface_targetr    r    r!   test_fillbetween_cycle  s(   
 
 r	  c                  C   s   dt jd< t  \} }d}|| |ddgddg | \}}|j }|||g\}}|ddg\}}	|	| | }
t	||
 ||
 g||	g d S )Nr  r@	  r8  rt   r   )
r#   r   r   set_xmarginr  r   rR   r  r(  r   )r)   r   marginxlim0xlim1r(  xlim0txlim1tx0tx1tr  r    r    r!   test_log_margins  s   


r	  c                  C   s   d} t | t | }}t | d }t \}}tt |j|||d W d    n1 s2w   Y  tjdd |j||dd W d    n1 sPw   Y  |j||dg|  d d S )Nr   r3   r  r-  rb  )r   r   r   )	ra   ri   r#   r   r   r   r  r5   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   Labelr  )r#   r5  rC   r    r    r    r!   test_eventplot_legend  s   r	  r7  zlineoffsets cannot be emptyr8  zlinelengths cannot be emptyr  zlinewidths cannot be emptyr  zlinestyles cannot be emptyrR  zalpha cannot be emptyz!positions must be one-dimensionalz5lineoffsets and positions are unequal sized sequencesz5linelengths and positions are unequal sized sequencesz4linewidths and positions are unequal sized sequencesz4linestyles and positions are unequal sized sequencesz/alpha and positions are unequal sized sequencesz0colors and positions are unequal sized sequencesc                 C   rJ  rK  )r   r   r#   r5  rL  r    r    r!   test_eventplot_errors  s   "r	  c                  C   sv   t  \} }|tdd |jddtddd |jddgddgdd\}}| |   kr6dks9J  J d S )Nr$  r3   r   )rJ   r  )r   r   r   r  r  )r#   r   r  r   r  r  )r)   r   rect1rect2r    r    r!   test_bar_broadcast_args  s
   (r	  c                   C   s   t ddgddg tt t tj W d    n1 s w   Y  tt t tj W d    n1 s;w   Y  tt t 	tj W d    n1 sVw   Y  tt t 	tj W d    d S 1 srw   Y  d S r  )
r#   r   r   r   r  r   ra   r  rq  r   r    r    r    r!   test_invalid_axis_limits  s   "r	  r  r  r"  rx  c                 C   s6   t  }|g d ||  || |  d S )Nr  )r#   r\  r   r  r  r  )r  rx  r   r    r    r!   test_minorticks_on  s
   

r	  c                  C   sv   t  \} }|dd | }|ddgddg t  \}}|dd |ddgddg t|jj|jj d S )Nr3   r4   r   r   )r#   r   rT  r  r   r   rB  	intervalx)r)   r   xtwinr_  r  r    r    r!   test_twinx_knows_limits  s   r	  c                   C   s   t jddgddgddd d S )Nr   r3   r  )r  r?  )r#   r   r    r    r    r!   test_zero_linewidth'  s   r	  c                  C   s<   t  \} }|jg g g dd |jg g g dd |  d S )Nzempty y)r  r+   zempty x)r  r+   )r#   r   r  rC   r(   r    r    r!   test_empty_errorbar_legend,  s   r	  c                 C   s\   t ddd}dd |D }dd |D }dd |D }|  || | || d S )Nr  rt   r   c                 S   s0   g | ]}d |d  d|d   d|  d qS )g@r   rx  r4   g\(\@      @r    r   r    r    r!   r   6  s   0 z%test_plot_decimal.<locals>.<listcomp>c                 S   r  r    r   r  r    r    r!   r   7  r  c                 S   r  r    r   r  r    r    r!   r   8  r  )ra   ri   r   r   )r   r   r  r  r-   r.   r    r    r!   test_plot_decimal3  s   r	  c                 C   s0   |   jddddd |  jddddd d S )Nr   r   r%  r   )r  rR  r  )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 s-J |j|jk s5J dS )z5Test that tick padding gets turned off if axis is offr[  zxtick.directionzytick.directionoffN)	r#   r   r   get_tightbboxr  r	  r  r  r  r)   r   bbbb2r    r    r!   test_tick_padding_tightbboxF  s   


r	  c                  C   s.  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||ddddf  |d |	  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d\}
}|du sxJ |j  t ddgd	dgg}t |
  |ksJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r8  r8  r3   r   rt   Nr   r   r   333333@r4   r  r   )boundsr   )ra   mgridr  r   rX  r#   r   r  r;  apply_aspectindicate_insetr  r  rB  ri  get_bbox
get_points)dxdyr.   r-   rI  r)   r   r   r   r  rec
connectorsxxr    r    r!   
test_insetR  s&   
*
,

r
  c                  C   sz  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
g d}||||d dd df  |dd	g |d
dg ||  ||\}}	t|	dksJ |j  t ddgd	dgg}
t |  |
ksJ t ddgddgg}
t jj|  |
dd d S )Nr	  r3   r   rt   r   r   )rb  rb  rv  rv  r   r	  r4   r  r$  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)ra   r	  r  r   rX  r#   r   r  r;  r	  
inset_axesr  r  r<  indicate_inset_zoomr  r  r  rB  ri  r	  r	  r   r   rA  )r	  r	  r.   r-   rI  r)   r   axin1r	  r	  r 
  r    r    r!   test_zoom_inseto  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   r4   r  )	r#   r   r
  r   r   ra   ri   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   hammerrC  )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sJ d S )Nr

  )r  )r#   r   r
  AAr   r   r
  r    r    r!   test_inset_subclass  rx	  r
  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r|  |r"|  |g d|\}}|\}}	}
}| r6dnd}|r<dnd}||
jd |jd   dksNJ ||jd |	jd   dks^J ||	jd |jd   dksnJ ||jd |
jd   dks~J dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r3   r4   rt   r   )r4   r4   r   r$  r   r   N)	r#   r   ra   ri   r   r  r  r	  r2  )r
  r
  r)   r
  r  r-   r  r	  
lower_left
upper_leftlower_rightupper_rightsign_x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s8J |d |jg dd	d t| jdsQJ d S )
Nrw  )r   r   r  r  r   r	  r   r   r  r+  active)r#   r   r;  r  ra   r  rA  r  r(   r    r    r!   test_set_position  s   


r
  c                  C   sd   t  \} }|jj| j }|ddd dd |jj| j }tj	j
| | dd d S )N)r  r  r1  r1  r  Fgư>r
  )r#   r   r  rI   r	  r  r	  _set_view_from_bboxra   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   r4   r   r3   r-  )rl  rl  r   rA	  atol)rl  rl  r   )gB!Bؿg{?)g      ڿg     ?r   r   )rl  rl  r   r   )
r#   r   r  r  r
  ra   r   r   r   r   )r)   r   r   r   rV  new_ylimres_xlim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 )Nr3   r	  i  )r#   r   r   r	  ra   r  r  r	  r   r   r	  r  )r)   r   r	  r    r    r!   test_gettightbbox_ignore_nan  s
   
r$
  c                 C   s^   t dd}| jtjjdd|d}| jtjjdd|d}| jg d|d}t||| d S )Nrt   r  r@  rY  r1  )r3   r3   r3   r3   r3   r   r   r   )r   rE  ra   rb   rR	  r#   r5   )r  r  r-   r.   r7   r    r    r!   "test_scatter_series_non_zero_index  s
   
r%
  c                   C   s"   t g g  t jg g g g d d S )N)r  r7   )r#   r5   r    r    r    r!   test_scatter_empty_data  s   r&
  zannotate_across_transforms.pngc               	   C   s   t ddd} t |  t |  }tjdd\}}|| | |g d}|d |j	
d |j
d |jd	| d
 |d
 f|jd|jtddd d S )Nr   rt   rl  )gQ@r   r  )r  r   r   r   r   Fr   r  r~  ry  )r{  )r  r  r  r  r  )ra   r   ry  r   r#   r   r   r
  r;  rR   r   rU   r  	transDatar4  rH  )r-   r.   r)   r   r
  r    r    r!   test_annotate_across_transforms  s   

r(
  zsecondary_xy.pngc                  C   s   t jddddd\} }dd }t|D ]A\}}|tddtdd |d	kr-|j}n|j}|d
||fd |ddd dd fd |ddd dd fd |d qd S )Nr3   r4   r  T)rE  r  c                 S   8   t jdd d|  W  d    S 1 sw   Y  d S Nr  r  r3   ra   r  r  r    r    r!   invert*     $z!test_secondary_xy.<locals>.invertr  r   r   	functionsr  c                 S   s   d|  S Nr4   r    r  r    r    r!   r  6  r  z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r0
  r    r  r    r    r!   r  6  r  ra  c                 S      | d S r0
  r    r  r    r    r!   r  7  r  c                 S   r1
  )Nr   r    r  r    r    r!   r  7  r  r  )r#   r   r  r   ra   ri   secondary_xaxissecondary_yaxis)r)   r  r,
  nnr   secaxr    r    r!   test_secondary_xy&  s   
r6
  c                  C   s   t  \} }|tddtdd tt |jddd d W d    n1 s-w   Y  tt |d W d    n1 sGw   Y  tt |	d W d    d S 1 sbw   Y  d S )	Nr4   r  r   c                 S   s   d|  S r  r    r  r    r    r!   r  ?  r  z%test_secondary_fail.<locals>.<lambda>r.
  r=   rI   )
r#   r   r   ra   ri   r   r   r  r2
  r3
  r(   r    r    r!   test_secondary_fail;  s   "r7
  c                  C   sr   t jdd\} }|tddtdd dd }|jd||fd | j  | d	 t	|
 jg d
 d S )Nr  r  r4   r  c                 S   r)
  r*
  r+
  r  r    r    r!   r,
  J  r-
  z%test_secondary_resize.<locals>.invertr9   r.
  )r)  r$  r 	  )r#   r   r   ra   ri   r2
  r  r  rw  r   rA  rU  )r)   r   r,
  r    r    r!   test_secondary_resizeF  s   

r8
  c                  C   s   t jdd\} }|tddtdd dd }|jd||fd}t|j t	j
s.J |  t|j t	js=J |d	 t   t|j t	jsQJ |d
 t   t|j t	j
seJ d S )Nr  r  r4   r  c                 S   r)
  r*
  r+
  r  r    r    r!   r,
  X  r-
  z'test_secondary_minorloc.<locals>.invertr9   r.
  r"  r  )r#   r   r   ra   ri   r2
  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr  r  
LogLocator)r)   r   r,
  r5
  r    r    r!   test_secondary_minorlocT  s*   





r>
  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjs(J d S )Nr"  r9   )r#   r   r  r2
  rR   r   r   ScalarFormatterr  r  r   r   r)   r   r5
  r    r    r!   test_secondary_formatterl  s   


rA
  c                  C   s*   t  \} }|d}t|dksJ d S )Nr9   z<SecondaryAxis: >)r#   r   r2
  r1   r@
  r    r    r!   test_secondary_reprv  s   
rB
  zaxis_options.pngc               	   C   s   t dd\} }tdD ]J\}}|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 )Nr4   r   )scaledr  imager   r#  )r3   g	@)r   r   r   r%  r  r  r3   )r3   g      @)r3   r   )r   r  rQ  )r#   r   r  r   r  r/  r!  r  )r)   rZ  r7  optionr    r    r!   test_axis_options|  s   
rF
  c                 C   sd  | j   | j  }g }t|j|jgD ](\}}||}|r7tj|j	|j
f|j|jdddddd}| | ||g7 }qg }tg dD ])\}}	|j|	 |}tj|j	|j
f|j|jdddddd}
| |
 ||g7 }qE| }tj|j	|j
f|j|jd	d
dddd}| | |}||}tj|j	|j
f|j|jdddddd}| | |}||||fS )zS
    Helper for the tests below that test the extents of various axes elements
    rb  r.   r%  Nr   )r  r  r+  r*  r)  r(  r  )rI   r9   rJ   r=   r   r   r  r4   r  r3   )r  r  r	  r  rR   rU   r	  r!  r"  r  r  r  r  r/  r  r	  )r)   r   r	  bbaxisr4
  axxr	  axisrbbspinesr   spinerr	  bbaxr	  bbtbr    r    r!   color_boxes  sP   







rN
  c                  C   sn  t ddi$ tjddd\} }| j  t|  t| |\}}}}W d    n1 s-w   Y  g dg dg}t|D ]\}}tj	j
||  }	t|j|	jdd	 q>g d
g dg dg dg}t|D ]\}}tj	j
||  }	t|j|	jdd	 qfg d}tj	j
| }	t|j|	jdd	 g d}tj	j
| }	t|j|	jdd	 | | jj}
t|
| jdd	 d S )N_internal.classic_modeFrl  r  r  rE  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r4   )decimal     b@-]@     @F8&@rS
  g     @rU
  r  rS
  Nё\]@rV
        @gR!@rY
  rV
  rZ
  rS
  g]@rU
  rZ
  )g+e`U@gbhR@g{G@g{Gȏ@)r
   r#   r   r  r  r^  rN
  r  r  Bboxfrom_boundsr   r	  rA  transformedtransFigurer	  )r)   r   rG
  rJ
  rL
  rM
  r	  r4
  r  targetbbaxbbr    r    r!   test_normal_axes  s8   

rc
  c            
      C   s&  t ddi& tjddd\} }| j  |jg g d t| |\}}}}W d    n1 s/w   Y  t|D ]
\}}|d u sBJ q8g dg dg d	g d
g}t|D ]\}}tj	j
||  }	t|j|	jdd qUg d}tj	j
| }	t|j|	jdd g d}tj	j
| }	t|j|	jdd d S )NrO
  Frl  r  rP
  xticklabelsyticklabelsrR
  rW
  rX
  r[
  r  r
  r\
  )rS
        ^@rU
  rZ
  )r
   r#   r   r  r  r   rN
  r  r  r]
  r^
  r   r	  )
r)   r   rG
  rJ
  rL
  rM
  r4
  r  r	  ra
  r    r    r!   test_nodecorator  s,   
rh
  c            
      C   s  t ddi- tjddd\} }|jg g d |jjd | j  t	| |\}}}}W d    n1 s6w   Y  g dg d	g d
g dg}t
||D ]\}}tjj| }	t|j|	jdd qNg d}tjj| }	t|j|	jdd g d}tjj| }	t|j|	jdd d S )NrO
  Frl  r  rP
  rd
  )rZ  r  )rS
        8@rU
  gs~8&@rW
  rX
  r[
  r  r
  r\
  )rS
  ri
  rU
  g     @)r
   r#   r   r   r  rI   r  r  r  rN
  r  r  r]
  r^
  r   r	  )
r)   r   rG
  rJ
  rL
  rM
  targetsr	  bbspinera
  r    r    r!   test_displaced_spine  s*   
rl
  c               	   C   s   g dg dgg dg dgg dg dgg} t g dD ]W\}}tdd	iE tjd
dd\}}|j|d |j  t||\}}}}t ddgD ]\}	}
tj	j
| | |	  }t||
 j|jdd qKW d   n1 sow   Y  qdS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )rS
  rg
  rU
  +e8&@)rS
  rg
  rV
  rZ
  )rS
  gZӼ8[@rU
  88&@)g r\a@r  rV
  rZ
  )rS
  gqq\@rU
  rn
  )g88b@rT
  rV
  rZ
  )r  r[  inoutrO
  Frl  r  rP
  r\  r   r4   r  r
  N)r  r
   r#   r   r  r  r  rN
  r  r]
  r^
  r   r	  )rj
  dnumdirsr)   r   rG
  rJ
  rL
  rM
  r4
  r   ra
  r    r    r!   test_tickdirs  s2   
rr
  c            	      C   sn  t ddi tjddd\} }| j  |jddd t| |\}}}}t| |\}}}}g d	g d
g}tdD ]}tj	j
||  }t||d  j|jdd q:tjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}g dg dg}tdD ]}tj	j
||  }t||d  j|jdd qW d    d S 1 sw   Y  d S )NrO
  Frl  r  rP
  r   r[  )r
  r   )rS
  g88[@rU
  rn
  )gCiq\a@rY
  rm
  rZ
  r4   r  r
  r  r   r  )rS
  gPUUUUUB@rU
  gVUUUUT@)gz6P@rg
  goTT@rZ
  )r
   r#   r   r  r  r  rN
  r   r  r]
  r^
  r   r	  r  )	r)   r   rG
  rJ
  rL
  rM
  rj
  r}  ra
  r    r    r!   test_minor_accountedfor2  s>   


"rs
  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )NrQ  Fr	  rR  Ton)r   r  r   r    r    r!   test_axis_bool_argumentsQ  s   


ru
  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rt   r   r?  r#   r   r  r	  r   r   r)   r   r_   r`   r  r  rc  r    r    r!   test_axis_extent_arg]  s   rx
  c                  C   sr   t  \} }d}d}d}d}|j||||d}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rt   r   r?  )r_   r`   r  r  rv
  rw
  r    r    r!   test_axis_extent_arg2m  s   ry
  c                  C   sD   t jg dg dgdd\} }} |d dksJ |d dks J d S )	Nr  )r   r$  r   r  rP  rf  r   r3   r   r  )r#   rI  r  rg  r    r    r!   test_hist_auto_bins~  s    r{
  c            
      C   s   t d\} \}}g d}|tjg }||\}}}tjdd ||\}}	}W d    n1 s4w   Y  tj|| tj||	 d S )Nr4   r  r  rL  )r#   r   ra   r  rI  r  r   r   )
r)   r
  r  r  nan_datarg  r  r  nanbinsnanedgesr    r    r!   test_hist_nan_data  s   r
  c                  C   sD   t jtjddddd\} }} |d dksJ |d dks J d S )	Nrt   rP  r  T)r   rp  r   r   r3   )r#   rI  ra   rb   ru   rz
  r    r    r!   test_hist_range_and_density  s
   r
  c            
      C   sz   t  \} }g d}|j|||ddd}|jj\}}}|jD ]}|D ]
}|j|jks,J q"|D ]
}	|	j|jks9J q/qd S )Nr  r   r   )r-   r  r  r  r  )r#   r   r  r  r  r0  r  )
r)   r   r-   barcont	data_linecaplinesbarlinecolsr  capline
barlinecolr    r    r!   test_bar_errbar_zorder  s   
r
  c                  C   sR   t  \} }|  |ddg | dksJ |dg | dks'J d S )Nr   rb  r~  r   r/  )r#   r   r  r  r   r(   r    r    r!   test_set_ticks_inverted  s   r
  c                  C   sv   t jdd} |  }|ddgddg |jddddd	d
d |d | j| }|j	|j
 tdks9J d S )Nr	  r  r  ra  r"  rm  logit)F]tE?g'^P?r3   r6  r  r   rx  r   r   r8  r   r4   )r#   r   r   r   r   rD  r`
  transform_bboxrA  r  r  r   approx)r)   r   r   r    r    r!   $test_aspect_nonlinear_adjustable_box  s   
r
  c                  C   s   t jdd} | g d}|ddgddg |jdddd	d
dd |d |  | t	ddgks8J |
 d	ks@J d S )Nr	  r  r4	  r  ra  r"  )r3   r   r
  )gbeF?r
  r3   r7  r
  r   gS[:XL	@g'In?@)r#   r   rC  r   r   rD  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 )Nr  iX  r3   r   r   r4   r  r@  r~  r6  r:  )r#   r   r  r   set_box_aspectget_box_aspectrD  r;  r  r  rA  r   rU  )r^  r
  axtwinr_  r  bb1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   r0  r   r   )	r#   r   r  r  r  r
  rA  r   rU  )r^  r
  r_  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 )Nr4   r   r3   )rD  T)rF  r  r   )r#   r   rH  r  r  r	  r  r	  r  r  r  r   )r)   r  r	  rq  r   r	  r    r    r!   test_bbox_aspect_axes_init  s   




r
  c                  C   s   t  \} }tjtdd |d W d    n1 sw   Y  tjtdd |d W d    n1 s9w   Y  tjtdd |tj W d    n1 sVw   Y  tjtdd |tj  W d    d S 1 suw   Y  d S )Nzmust be finite and positiverb  r   r   )r#   r   r   r   r  r;  ra   rq  r(   r    r    r!   test_set_aspect_negative  s   "r
  c                  C   s4   t dd\} }|g d | j  |  d S )Nr3   r  )r#   r   r   r  r  redraw_in_framer(   r    r    r!   test_redraw_in_frame  s   
r
  c                  C   sB   t  \} }| jdd usJ |d | jdd u sJ d S )N)rl  rl  F)r#   r   r  inaxesr   r(   r    r    r!   test_invisible_axes_events!  s   
r
  c                  C   <   dt jd< t  } | j }|D ]}|j dksJ qd S Nr  zlines.markeredgecolor)r#   r   rZ  rR   get_major_ticksrj	  get_markeredgecolorr   r  r  r    r    r!   "test_xtickcolor_is_not_markercolor)     

r
  c                  C   r
  r
  )r#   r   rZ  rU   r
  rj	  r
  r
  r    r    r!   "test_ytickcolor_is_not_markercolor1  r
  r
  r  rP  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d u r:| n|}	|d	|d
 |	| ksIJ |j  t	| d	 d S )Nr   r  r   get_autoscale_onr   limget_r
  )rP  )
r#   r   ra   ri   r   r5   r  r  r  r   )
r  rP  r)   r   r-   r.   r  set_limget_lim	post_autor    r    r!   test_unautoscale9  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  rC  r   r4   r3   r   e   )r   r   ra   r   get_path_interpolation_stepsr   )r   r   rv  r    r    r!   )test_polar_interpolation_steps_variable_rM  s
   $
r
  c                  C   s6   t  \} }|dd | j  | dksJ d S )Nr   g&.>)r   g	>)r#   r   r  r  r  r   r(   r    r    r!   test_autoscale_tiny_stickyU  s   
r
  c                  C   X   dt jd< dt jd< t  } | j }|D ]}|j dks J |j dks)J qd S )Nr|  xtick.colorr   xtick.labelcolor)r#   r   rZ  rR   r
  rj	  r  rc  r
  r    r    r!   &test_xtickcolor_is_not_xticklabelcolor]     


r
  c                  C   r
  )Nr|  ytick.colorr   ytick.labelcolor)r#   r   rZ  rU   r
  rj	  r  rc  r
  r    r    r!   &test_ytickcolor_is_not_yticklabelcolorg  r
  r
  c                  C   Z   dt jd< t  } | jj dksJ dt jd< dt jd< t  } | jj dks+J d S )Nr   r
  r|  r
  inherit)r#   r   rZ  rR   r  r  r  r    r    r!   test_xaxis_offsetText_colorq     


r
  c                  C   r
  )Nr   r
  r  r
  r
  )r#   r   rZ  rU   r  r  r  r    r    r!   test_yaxis_offsetText_color|  r
  r
  rZ  c                 C   s   g | ]}|d ur|qS r  r    )r   rZ  r    r    r!   r     s    r   )r@  rt   r  c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ]\}}|	 D ]}|j
 ||ks6J q(q d S )Nzxtick.labelsizezytick.labelsizer-   r.   )r   r   r#   r   r  r  r  rR   rU   r
  rc  r  _get_tick_label_size)rZ  r)   r   namer  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s,J d S )Nr4   r3   ri  r  r  )r4   r   r4   r   r  r   r   r	  )r#   r   r   r5   r\  r   ra   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 s*J d S )Nr:  )ra  ra  r   r   r  r   rJ   )r#   r   r   rC  rA  r?  r	  ri  )r)   r`  r
  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	 |d jddgddg|dd W d    n1 s?w   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   r3   r4   r   r  r-  rb  r   rt   r  r$  r/  )ra   rB  r   r   r   r   r  r5   rL  rI  ri   r  )r   r   r   r  r    r    r!   test_2dcolor_plot  s   
"$"&
"""*r
  c                 C   s~   t ddt j d}t |}|jddddd}|jD ]}||| q| jddddd}|jD ]}|  ||| q0d S )Nr  r4   r  TrG  )ra   ri   r   r   r   r  r   r  )r   r   r-   r.   r  r   r    r    r!   test_shared_axes_clear  s   


r
  c                  C   s   t jddddd\} }|jD ]
}|ddgd q|d g d |jD ]}| |d  ks3J q%|d g d |jD ]}| |d  ksNJ q@d S )	Nr4   ri  rG  r   zo-r  )r  r   r3   r   )r  r   r4   r  )r#   r   r  r   r  r   r  r   r	  r    r    r!   test_shared_axes_retick  s   


r
  r@   )rJ   rQ   r=   c                 C   sD   t  }| }|jdd| d |jd |j  | ks J d S )Ntestr3   r?   r=   )r   r   r%   rU   set_label_positionrS   r  )r@   r)   r   r    r    r!   test_ylabel_ha_with_position  s
   r
  c                  C   s   t  } ddgddg}}| ||}| |}|d j|d |d fks'J |d  dks1J |d  dks;J |d j|d |d fksJJ |d  dksTJ |d  dks^J d S )	Nr3   r4   r   r   rQ   rI   r9   r#   rU  r  	bar_labelr  rT   r  r   r  heightsr  r  r    r    r!    test_bar_label_location_vertical     
r
  c                  C   s   t  } |   ddgddg}}| ||}| |}|d j|d |d fks+J |d  dks5J |d  dks?J |d j|d |d fksNJ |d  dksXJ |d  dksbJ d S )	Nr3   r4   r   r
  r   rQ   r9   rI   )r#   rU  r  r  r
  r  rT   r  r
  r    r    r!   *test_bar_label_location_vertical_yinverted     
r
  c                  C   s   t  } ddgddg}}| ||}| |}|d j|d |d fks'J |d  dks1J |d  dks;J |d j|d |d fksJJ |d  dksTJ |d  dks^J d S 	Nr3   r4   r   r
  r   rJ   rQ   r=   r#   rU  r  r
  r  rT   r  r   r  r  r  r  r    r    r!   "test_bar_label_location_horizontal  r
  r
  c                  C      t  } |   ddgddg}}| ||}| |}|d j|d |d fks+J |d  dks5J |d  dks?J |d j|d |d fksNJ |d  dksXJ |d  dksbJ d S r
  )r#   rU  r  r  r
  r  rT   r  r
  r    r    r!   ,test_bar_label_location_horizontal_yinverted
   r
  r
  c                  C   r
  	Nr3   r4   r   r
  r   r=   rQ   rJ   )r#   rU  r  r  r
  r  rT   r  r
  r    r    r!   ,test_bar_label_location_horizontal_xinverted   r
  r
  c                  C   s   t  } |   |   ddgddg}}| ||}| |}|d j|d |d fks/J |d  dks9J |d  dksCJ |d j|d |d fksRJ |d  dks\J |d  dksfJ d S r
  )	r#   rU  r  r  r  r
  r  rT   r  r
  r    r    r!   -test_bar_label_location_horizontal_xyinverted&   s   
r
  c                  C   s   t  } ddgddg}}| ||}| j|dd}|d jdks#J |d  dks-J |d  dks7J |d jdks@J |d  dksJJ |d  dksTJ d S )	Nr3   r4   r   r
  rQ   
label_typer   ru  r
  r
  r    r    r!   test_bar_label_location_center5   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)r7   r  r   )r_  i  iX  r"  r3   rQ   r
  )r#   r   r  r  r  r
  r  )r  r   r?  r    r    r!   !test_centered_bar_label_nonlinearB   s   
r
  c                  C   sl   t  \} }d}tg dg dD ]\}}|jd|||d}|j|dd ||7 }q|d d |   d S )	Nr   r:  )rt   r?  r  r7  )r+   rJ   rQ   r
  r?  )r#   r   r  r  r
  r  r)  )r)   r   lastr+   r  r?  r    r    r!   +test_centered_bar_label_label_beyond_limitsL   s   
r
  c                  C   s   t  } ddgddg}}| j||dd}| |}|d j|d |d d fks+J |d  dks5J |d  dks?J |d j|d |d d fksPJ |d  dksZJ |d  d	ksdJ d S )
Nr3   r4   r   r
  r  r   rQ   rI   r9   r
  r
  r    r    r!   !test_bar_label_location_errorbarsY   s   
""r
  r   r  z{:.2f}c                 C   sV   t  }|ddgddg}|j|| d}|d  dksJ |d  dks)J d S )	Nr3   r4   r   r
  r  r   z3.00z-4.00r#   rU  r  r
  rd  )r   r   r  r  r    r    r!   test_bar_label_fmtf   s
   r
  c                  C   s^   t  } | ddgddg}tjtdd | j|dd}W d    d S 1 s(w   Y  d S )	Nr3   r4   r   r
  zstr or callablerb  rt   r  )r#   rU  r  r   r   r   r
  )r   r  r  r    r    r!   test_bar_label_fmt_errorq   s
   "r
  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dks!J |d  dks+J d S )	Nr3   r4   r   r
  r;  r<  r  r   r
  )r   r  r  r    r    r!   test_bar_label_labelsx   s
   r
  c                  C   sl   t  } | ddgtjdg}| |}dd |D ddgks!J |d jd	ks*J |d  d
ks4J d S )Nr4   r   r3   c                 S   r>  r    rX  r   rv  r    r    r!   r      r  z,test_bar_label_nan_ydata.<locals>.<listcomp>r   r  r   rE	  rI   )r#   rU  r  ra   r  r
  r  r  r   r=  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s%J |d jd	ks.J |d  d
ks8J d S )Nr4   r   r3   c                 S   r>  r    rX  r
  r    r    r!   r      r  z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>r   r  r   rE	  rI   )	r#   rU  rW  r  ra   r  r
  r  r  r
  r    r    r!   !test_bar_label_nan_ydata_inverted   s   
r
  c                  C   s6  t  \} }|jg dtjddgg dd}||}dd |D g dks(J t| d	s2J t  \} }|jg dg d
dtjdgd}||}dd |D g dksZJ t| dsdJ t  \} }|jg dtjddgtjtjdgd}||}dd |D g dksJ t| d	sJ d S )Nr  r3   r4   r0  r
  c                 S   r>  r    rX  r
  r    r    r!   r      r  z&test_nan_barlabels.<locals>.<listcomp>)r   r  2)r  rw  r:  r   ra  c                 S   r>  r    rX  r
  r    r    r!   r      r  )r  r  r
  )r  rw  c                 S   r>  r    rX  r
  r    r    r!   r      r  )r#   r   r  ra   r  r
  r  r   )r)   r   r=  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   rJ  r  r  r   r  gffffff?r   r  r4   gr8  r  )r#   r   r   r!  Wedgera   r   r   r   assert_array_almost_equal_nulprB  dataLimr	  )r)   r   botr    r    r!   test_patch_bounds   s   "r
  c                	   C   sN   t jtdd tjdgdgddddd W d    d S 1 s w   Y  d S )	Nz!You passed a edgecolor/edgecolorsrb  r   r  r1  r  r  )r}   r  r)  r*  )r   r  r  r#   r5   r    r    r    r!    test_warn_ignored_scatter_kwargs   s
   "r
  c                     sR  t  \}   fddtdD } tdtd} td} t	
ddd} ddd}t j|gks@J t j|gksJJ t j|ksSJ t j|gks]J  jrbJ t j|gkslJ  jd |d u swJ  jd	 |d	 u sJ tjtd
d  jt|d   W d    n1 sw   Y   jg d g |dddksJ 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rJ |   jrJ  jrJ |   jrJ  jD ]}|  qt jdks'J d S )Nc              	      s&   g | ]}  t||d  d qS )r   r   )r   ra   ri   r  r  r    r!   r      s   & z(test_artist_sublists.<locals>.<listcomp>r  r   )r   r   r  r   r  r   zout of rangerb  r3   r  r4   r   )r#   r   r   r5   ra   ri   r   rR  r   r!  r"  r	  r  r  imagesr  r0  tablesr  r   r   
IndexErrorr  r[  )r)   r  r7  r   r  r	  rv	  r    r  r!   test_artist_sublists   sB   
& $


r
  c                  C   sh   t d} t d}t \}}|| |}t|dksJ t \}}|g g }t|dks2J d S )Nrt   )rt   r   r   r3   )ra   r   r#   r   r   r  )r-   r.   r  r   r  r    r    r!   test_empty_line_plots   s   

r
  z
fmt, match))r  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))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   sl   t  \}}|d ur|dd}tjtd| d d |jd| |d W d    d S 1 s/w   Y  d S )Nnotzneither a data key norz\Az\Zrb  r
  r&  )r#   r   replacer   r   r  r   )r   rc  r  r)   r   r    r    r!   test_plot_format_errors   s   	"r
  c                  C   sp  t  \} }|g dd}|d  dksJ |d  dks"J t  \} }|g dd}|d  dks:J t  \} }|ddgddgdd}| j  |d  dks[J | d  dksgJ t  \} }|ddgddgdd}| j  |d  dksJ | d  dksJ t  \} }|g dd	}|d  d
ksJ |d  dksJ d S )Nr  z1.0r   )r   r   r   r   r  r  r3   r4   k3r   r  )	r#   r   r   r  r  r  r  r  rd  r  r    r    r!   test_plot_format!  s*   

r  c                  C   s   t  \} }|jddddid | }| j  | d  dks%J | d  dks1J t  \} }|jdddddid | }| j  | d  dksWJ |	 d  dkscJ | d  dksoJ d S )Nr   r  r6  r4   r&  r   r7   )
r#   r   r   rC   r  r  	get_textsrd  r  rC  )r)   r   legr    r    r!   test_automatic_legend!  s   

r  c                   C   s`  t jtdd tjg ddd W d    n1 sw   Y  t jtdd tjg dg dg dg ddd	gd
 W d    n1 sFw   Y  t jtdd tg ddg W d    n1 sfw   Y  t jtdd ttd W d    n1 sw   Y  t jtdd tjddddddid W d    d S 1 sw   Y  d S )Nz"plot\(\) got an unexpected keywordrb  r  r3   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)r4   r4   r4   zUsing arbitrary long args withr   r  r7   r6  r4   r&  )r   r   r   r#   r   r  ra   r   r    r    r    r!   test_plot_errors+!  s   *"r  c               	   C   s   t   } t| jtdtdtddt| jddgddggt| jddgddggt| jddgddggt| j	ddgddggfD ]}d}||dj
}|j|jf|ksVJ qBd S )Nr   r  r   r3   r4   )r)  r@  )clim)r#   r   r   r   r5   r   r   r  r  r  r  r  r  )r   plot_methodr  r  r    r    r!   	test_clim8!  s   r  c                  C   s   ddgddgddgddgg} t jjt jjt jjt jjg}t | |}t \}}|t	| |
  | d dks>J d S )Nr   r   r3   r  )mpathr.  r2  CURVE3	CLOSEPOLYr#   r   r   r!  r1  rY  r   )r  codesr   r)   r   r    r    r!   test_bezier_autoscaleF!  s   r  c                  C   s  t 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/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} t | d d dYf }t | d d dZf }t | d d dYf }t | d d dZf }t| }t \}}|t	
| |  | dY |kscJ | dZ |ksnJ | dY |ksyJ | dZ |ksJ d S )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r  gffffffgQgףp=
r[  g(\g{Gz?gHzGg      r2  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr  g=
ףp=g)\(?g\(\rQ  g=
ףp=gHzG?gQg(\?r  r   g(\տg{Gz?g
ףp=
ǿr6  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?r  g(\?r+  gQ?gGz?g=
ףp=?gffffff @r  gGz@r8  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r3   )ra   rB  r  rj  r	  r.  r#   r   r   r!  r1  rY  r   r   )r  minxminymaxxmaxyr   r)   r   r    r    r!   test_small_autoscale[!  s*  				



!
r  c                  C   sb   t  \} }|td tdD ]}| |  | ks!J | |  | ks.J qd S )Nrt   )	r#   r   r   ra   ri   r   rC  rd  r  )r)   r   r  r    r    r!   test_get_xticklabel!  s   r  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 ]2}|^}}	t 	|j
  sFJ t 	| sOJ |	D ]}
t 	|
j
 s]J t 	|
 sfJ qQq5d S )Nr   r  )r   r   r   r  r   rg  r
  )ra   ri   r  rB  r  r#   r   r  r  isfiniter  any	get_widthri  )barx
barheights	barstartsr)   r   r=  hbarsbar_setnanfulrestr  r    r    r!   test_bar_leading_nan!  s    
r  c                 C   sh   t jd |  }| }|tjgtjg |dgdg |dgdg  |dgdg d S )Nr   r3   )r   r   r   r   r  ra   r  r[  r  r    r    r!   test_bar_all_nan!  s   r   zextent_units.pngc                  C   s  t dd\} }tdd}tdd}dd tdD }|d d	 |d j|d
dd||gtjd d}|d d |d j|d
||ddgtjd d}|d j	
td |d j|d
||||gtjd d}|d j	
td |d jdd |d j|d
tjd d}|||||g |d j	
td |d jdd tjtdd |jdd||gdd W d    d S 1 sw   Y  d S )Nr4   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  rz  r    r!   r   !  r  z0test_extent_units.<locals>.<listcomp>.<listcomp>rt   )r   )r   r    r!  r!   r   !  r  z%test_extent_units.<locals>.<listcomp>rt   r  zDate extents on y axisr|   r3   r  plasma)r~   rc  r   r  z(Date extents on x axis (Day of Jan 2020)z%dr~  zDay of Jan 2020)r  r9  )r~   r   z set_extent\(\) got an unexpectedrb  r  Fr[  )r#   r   ra   r*  r   r0   r   r   r  rR   r   r  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastarrr   r    r    r!   test_extent_units!  s@   

"r)  c                  C   s   t  \} }|g g g g }|dgg}||g D ]}|j|u s#J |j| u s*J q|  ||g D ]}|jd u s=J |jd u sDJ q4d S r  )r#   r   r   r   rZ  r   r  )r)   r   r  r_  artr    r    r!   %test_cla_clears_children_axes_and_fig!  s   r+  c                  C   s@   t  \} }|jg d|d}| }|  |jddd d S )N)r3   r   r   r3   rS  r0  r  r4  )r#   r   r
  r  r[  r   )r)   r   marginalmarginal_twinr    r    r!   test_child_axes_removal!  s
   r.  c                  C   s\   dd } d}t jt|d d}tjjj|d i d| d W d    d S 1 s'w   Y  d S )Nc                   S   r   r+  r    r    r    r    r!   r,  !  r   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'rb  zred
r4   rQ  )r   r   r  r   rZ  r   r2  )r,  msgr7   r    r    r!   test_scatter_color_repr_error!  s   
"r0  c                  C   sh   t  \} }|d |jtdddd\}t }| j|dd W d    d S 1 s-w   Y  d S )Nr   Tr3   )r  r  r  )r^  )r#   r   set_rasterization_zorderr   r   r`  ra  rb  )r)   r   rv	  r  r    r    r!   &test_zorder_and_explicit_rasterization"  s   

"r2  zpreset_clip_paths.pngc               	   C   s>  t  \} }tjjddgddgddgddggddddd}|| tjjd	d
d|d}|t	
 g || tjjd	ddd|d}|| tjjddgddgddggddddd|d}|| |jdddddid|d tjjddgddgddgddggddddd|d}| j|dd |dd |dd d S )Nr3   r   r   z#ddffddz#00ff00r4   r   )r)  r*  r+  rR  r0  ru  T)clip_onr  )r  r  r  )r   r3  r  r  z#beefc0r   z#faded0)r)  rR  r*  r+  r3  r  r  )r  r  )r   r   r   r  )r  r  r3  r  r  r.   )r)  r*  r+  rR  r3  r  r#  )r#   r   r   r0  Polygonr   r  r  set_path_effectsr   withTickedStroker/  r  r  r  )r)   r   polyr  poly2poly3r    r    r!   test_preset_clip_paths
"  s8   





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s'J | jj dks1J d S )Nr  zaxes.labelcolorr?  zaxes.labelsizer  zaxes.labelweight)	r   r   r#   rZ  rR   r+   r  get_fontsizeget_fontweightr  r    r    r!   test_rc_axes_label_formatting/"  s   


r=  c           
   
   C   s  t dt j t j t jdddg}tt|}| dd}t|ddgD ]F\}}|j||d}|jddt j||d	|d
d
dd}t|	 t 
|  d ksTJ t|	 th |t 
|  d ksjJ q$|dd}	|	d jt j t j t j ddddt jgt dd dd |	d jt j dddt jt jgt g dd ddd |	d jt dd t j t j t j ddddt jgdd |	d jt g dd t j dddt jt jgddd d S )Nr   r3   r4   rY  rK   rL   r6  r  )r6  r  Tr  )r  rM   complementarycompressr  r@  r)  r  )ds)rP  r?  r  r  r   r   rP  z	steps-pre)r@  r  )ra   rB  rq  r   r  r   r  ecdfr   	get_xdataisnanr|  r   ri   )
r   r   r  r  r   r   rM   l0l1r   r    r    r!   	test_ecdf;"  s6   "$.( 
rF  c                   C   s   t t tdtjg W d    n1 sw   Y  t t ttjjddgddgd W d    d S 1 s=w   Y  d S )Nr3   r4   TFrN  )	r   r   r  r#   rA  ra   r  r   rB  r    r    r    r!   test_ecdf_invalidU"  s    "rG  c               	   C   s   t  \} }tddtj d}dt| }d}|j||dd | | f}|j	|dd	d
d |j
|dd||kdd| d | | f|ksNJ d S )Nr   r$  r  r   g333333?r  r  r   r4   rb  )r   r?  rR  r3   r   )r  r   rR  r(  )r#   r   ra   ri   r   r   r   r   r   rk   r  r  )r)   r   r-   r.   	thresholdoriginal_limsr    r    r!   test_fill_between_axes_limits\"  s   
rJ  c                  C   sz   t  \} }|g dg d |jddd |jddd |jddd	 t d
 | D ]}| d dks:J q.d S )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptr  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r#   r   r   r$   r%   r  r,   rC  get_fontfamily)r)   r   r	  r    r    r!   test_tick_param_labelfontl"  s   
rP  c                  C   s   t  \} }|jddd}t|jd  dsJ t|jd  ds'J t|j d ds4J t|j d dsAJ t|jj	
 dsMJ d S )Nr9   r  r  rI   r   r#  )r#   r   r2
  r  r  r  r  rR   r]	  r+   r  )r)   r   saxr    r    r!   test_set_secondary_axis_colorw"  s   rR  c                  C   sv   t jdddd\} }g }|d jd|j |d jd|j |d jddgdd	gd
 ||d |d gks9J d S )Nr4   TrG  r3   xlim_changedylim_changedr   r   r$  r4  )r#   r   	callbacksconnectr  r   )r)   r  eventsr    r    r!   test_xylim_changed_shared"  s   rX  r0
  (  r0  r  r   r  rQ
  r   	functoolsr   r  r`  	itertoolsr   platformrk  r   dateutil.tzr  numpyra   r   r	   r   rO   r   r
   r   matplotlib.colorsr%  r  matplotlib.datesr,  r  matplotlib.figurer   matplotlib.axesr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr`  r  matplotlib.patchesr0  r!  matplotlib.pathr-  r	  matplotlib.projections.geor   matplotlib.projections.polarr   matplotlib.pyplotpyplotr#   matplotlib.textr	  r  matplotlib.tickertickerr   matplotlib.transforms
transformsr  mpl_toolkits.axisartist
axisartistr
  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   r"   r*   r2   rH   rN   rP   rV   rr   ry   r   r   r   r   r   r   r  r  rC  rD  r  r8  rG  rP  ra  r  r  r  r  r   rE  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r'  r.  r8  r=  rL  rX  r]  re  rk  rt  r  r  r  r  r  r  r  r  machiner  r  r  rR  ri   r  r  r  r  r  r  r  r  r  r  r&  r)  rJ  rK  rS  r^  rc  rg  ri  rj  rl  ro  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r/  r3  r6  rA  rB  rF  rK  rP  rT  rW  ra  rb  rn  rr  rx  rz  r	  r  r  Patchr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG  rH  rB  rL  rH  rP  rR  r[  r`  rl  ro  rp  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/  r2  r6  r8  r:  r;  r<  r=  r>  rA  rC  rE  rF  rI  rL  rN  rS  rW  r[  rd  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r&  r)  r0  r3  r4  rE  rF  rK  rM  rV  rX  r[  r^  ra  rc  rf  rk  rm  rr  rv  rx  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  r,  rj  rk   rT  r\  r3  r4  r>  r?  rF  rI  r   r  r	  rN  rS  rV  rY  r]  rr  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  rD
  	AxesImager   PcolorImagerb   QuadMeshr   ru   r	  r	  r		  r
	  r	  r	  r	  r	  r!	  r"	  r#	  r'	  r(	  fixturer2	  r5	  r6	  r8	  r;	  r=	  r>	  rC	  rD	  rI	  rL	  rN	  rS	  rV	  rZ	  r[	  rh	  rl	  rn	  rr	  ru	  rw	  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(
  r6
  r7
  r8
  r>
  rA
  rB
  rF
  rN
  rc
  rh
  rl
  rr
  rs
  ru
  rx
  ry
  r{
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  font_scalingsr
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r^  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r  r  r  r  r  r  r  r   r)  r+  r.  r0  r2  r:  r=  rF  rG  rJ  rP  rR  rX  r    r    r    r!   <module>   s:	   
	














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

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

!








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




&


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

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

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

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

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

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

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

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