o
    j                    @   s=  d dl Z d dlmZ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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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/Z0 d dl1m2Z3 d dl4m5Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z= d dl>m?Z@ d dlAmBZC d dlDmEZF d dlGmHZI d dlJmKZKmLZLmMZM d dlNmOZOmPZPmQZQ d dlRmSZS ePdgddd ZTdd ZUdd ZVePdgddd ZWePdgddd ZXePdgddd  ZYd!d" ZZePdgdd#d$ Z[ePdgdd%d& Z\ePdgdd'd( Z]d)d* Z^ePdgdd+d, Z_eOd-d. e`d/d0D ea d1krWd nd2d3d4d5 Zbd6d7 Zcd8d9 ZdeOd:gd;d< Zed=d> Zfejghd?d@dAdB Ziejghd?d@ePdgdCdDdEdF ZjeOdGgea d1krd ndHd3dIdJ ZkdKdL ZldMdN ZmdOdP ZndQdR ZoePdgddSdT ZpeOdUgdVdWdXdY ZqejrsdZd[d\ ZtejrsdZd]d^ ZuejrsdZd_d` ZvePdgddadb ZweOdcgdVdddedfdg ZxeOdhgdVdddedidj Zydkdl Zzdmdn Z{dodp Z|eOdqgdVdWdrds Z}eOdtgdVdWdudv Z~dwdx Zdydz Zd{d| Zd}d~ ZeOdgddiddd Zdd ZePdgddd Zdd ZeOddgdd ZeOdgddddd ZePdgddd Zdd ZeOdgdgdVddddd ZeOdgdd ZeOdgdd3dd ZeOddgdVdWdd Zdd Zdd ZeOdgdVdWdd Zdd ZeOdgddddd Zdd ZeOdgdddVddd Zdd ZePdgddd Zdd ZeOdgdd ZejrsdZejghdg dePdgddd ZeOddgdVdddeddń ZeOdgddea d1kr,d nddȍddʄ Zdd̄ ZeOdgdVdWddτ Zejgjhdedѡddfedddedѡdfeddddedѡfgg dբd֍dd؄ Zejgjhdedѡddfedddedѡdfeddddedѡfgg dڢd֍dd܄ ZeOdgdVea d1krd nddߍdd ZeOdgdddVddd ZeOdgdVdWdd ZeOdgdd ZeOdgdVdWdd Zdd ZeOdgdVdWdd ZeOdgdgddd ZeOdgddgdVddd ZejghdddgePdgddd  ZePdgddd ZeOdgddddd ZeOdgddddd Zd	d
 Zdd Zdd ZePdgddd ZePdgddd Zdd Zdd ZejghdddVgePdgddd ZeOdgea d1krd ndd3dd ZeOdgdVdZdedd  ZeOd!gdVdWd"d# Zd$d% ZeOd&gdVdWd'd( ZeOd)gdVd*dߍd+d, ZeOd-gdVd.dߍd/d0 ZeOd1gdVdWd2d3 ZeOd4gdVdWd5d6 ZeOd7gdZdVdd8d9 ZeOd:gdVdWd;d< ZeOd=gdVdWd>d? ZeOd@d@gdAdB ZĐdCdD ZŐdEdF ZeOdGgdHdI ZeOdJgdKdL ZePdgddMdN ZePdgddOdP ZePdgddQdR ZePdgddSdT Z̐dUdV Z͐dWdX ZeOdYgdZd[ Zϐd\d] ZАd^d_ Zѐd`da ZҐdbdc ZӐddde ZԐdfdg ZՐdhdi ZejrsdZePdgddjdk Zejghdldmd/dmdngdmfg dog dpg dqg dqdnfg dog dpg drg drdnfg dog dpdsg dtdsfgdudv Zؐdwdx Zِdydz ZeOd{gdVdWd|d} ZePdgdd~d Zܐdd ZeOdgdVdWdd Zސdd ZeOdgdVdWdd ZeOdgdVdWdd ZeOdgdd Zdd Zdd Zejgjhdej!jdd dd gg dd֍dd Zejghdg d/fg gd/fg g gdfgdd Zejghddej2jjfdejj(jfdej2jjfgdd Zdd ZePdgddd ZePdgddd ZePdgddd ZePdgddd Zdd Zdd Zdd Zdd Zdd ZeOdgdVdWdd ZeOdgdd ZePdgddd Zdd ZeOdgdVdddedÐdĄ ZeOdgddea d1krd nddȍdǐdȄ ZeOdɐdgdVdddedʐd˄ ZeOdgdVddded͐d΄ ZdϐdЄ ZG dѐd҄ d҃Zd?ddӜdԐdՄZ ed֐d׃Zejghdؐe  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jghde 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Zdddgddgfg dg dgg dg dgfgZejghdedd Z	ejghdedd Z
dd Zd d Zdd Zdd Zdd ZeOddgea d1k	rd nd2d3d	d
 ZeOdgdVdWdd ZePdgddd Zdd Zi dd i fddZeOdgddidZddd ZeOdgddidZddd ZeOdgddidZddd ZeOd gddidZdd!d" ZeOd#gdVddidZd$d%d&d' ZeOd(gddidZd$d)d*d+ ZeOd,gdVddidZd-d.d/ ZeOd0gdVdd1idZd-d2d3 ZeOd4gdVddidZd-d5d6 ZeOd7gdVddidZd-d8d9 ZeOd:gdVddidZd-d;d< ZeOd=gdVddidZd-d>d? Z eOd@gdVddidZd-dAdB Z!eOdCgdVddidZd-dDdE Z"ePdgddFdG Z#eOdHgdVddidZd-dIdJ Z$eOdKgdVddidZd-dLdM Z%eOdNgdVddidZd-dOdP Z&eOdQgdVddidZd-dRdS Z'eOdTgdVddidZd-dUdV Z(eOdWgdVddidZd-dXdY Z)eOdZgdVddidZd-d[d\ Z*eOd]gdVddidZd-d^d_ Z+eOd`gdVddidZd-dadb Z,dcdd Z-dedf Z.eOdggddidZddhdi Z/eOdjgddidZddkdl Z0dmdn Z1eOdodogdpdZdqdrds Z2ePdgddtdu Z3eOdvgddidZddwdx Z4eOdygdVdZdedzd{ Z5eOd|gdVddidZd-d}d~ Z6eOddgdZddd Z7dd Z8eOdgdd1idVd/dZddd Z9eOdgdVddidZd-dd Z:eOdgdVddidZd-dd Z;dd Z<dd Z=dd Z>dd Z?eOdgdVddidZd-dd Z@eOddgdd ZAeOdgdd ZBeOdgdd ZCeOdgdd ZDeOdgdd ZEeOdgdd ZFeOdgdd ZGeOdgdd ZHeOdgdd ZIeOdgdd ZJeOdgdd ZKeOdgdd ZLeOdgdd ZMeOdgddÄ ZNeOdgdVdddedŐdƄ ZOdǐdȄ ZPdɐdʄ ZQdːd̄ ZRd͐d΄ ZSePdgddϐdЄ ZTePdgddѐd҄ ZUdӐdԄ ZVdՐdք ZWdאd؄ ZXeOg d٢dڐdۄ ZYeOdgdVdWdݐdބ ZZdߐd Z[ePdgddd Z\dd Z]eOdgdd Z^dd Z_dd Z`dd ZaePdgddd Zbdd Zcdd Zddd ZeePdgddd Zfejghdg deg dd/gdd ZgePdgddd ZheP dd ZieOd d gdd ZjeOdgdd ZkeOdgdVdWdd ZleOd	gd
d ZmeOdgdd ZneOdgdddVddd Zodd Zpdd Zqdd ZreOdgdddVddd ZseOdgdd ZteOdgdd  ZueOd!gd"d# ZveOd$gdVdWd%d& Zwd'd( Zxd)d* Zyd+d, Zzd-d. Z{eOd/gd0d1 Z|ejghd2d3g d4id5g d4id6g d7id8g d9id:g d;id<g d4ifePdgdd=d> Z}d?d@ Z~dAdB ZejghdCddܐdDddEdDdfddܐdDddEdFdfddܐddGdܐdfddܐddGdHdfddܐdDdIdDdJfddܐdDdIdFdfddDddKdDdfddDddKdFdfddܐdLdܐdJfddܐdLdHdfddDdMdDdJfddDdMdFdNfdddOdNdfdddOdPdfdQdidNdJfdQdidPdNfgdRdS ZdTdU ZdVdW ZdXdY ZdZd[ ZeOd\gdVdWd]d^ ZeOd_gdVdWd`da ZeOdbgdVdWdcdd Zdedf Zdgdh ZeOdigdVdWdjdi ZeOdkdkgdVdWdldm ZeOdngdVdWdodp Zejghdqg drdsdt Zdudv ZeOdwgdVdWdxdy Zdzd{ Zejghd|g gg d d/ggd d/gg ggejghd}g d~dd ZePdgddd ZeOdgdVdWdd ZeOdgea d1krd ndd3dd ZeOdgdVdWdd ZeOddgea d1krd ndd3dd ZePdgddd ZePdgddd ZePdgddd ZePdgddd Zdd ZeOg ddgddd Zdd ZeOg ddgddd Zdd Zejghd|d/ddejdgejg ddgePdgddd ZeOdgdgddddd ZeOddgdVddߍdd ZeOdgdVdWdd Zdd ZeOg ddVddZddd ZeOg ddVddZddd ZeOg ddVddZddd ZdÐdĄ ZePdgddŐdƄ ZdǐdȄ ZeOg dɢdVddߍdːd̄ ZeOg d͢dVdWdΐdτ ZdАdф ZePdgddҐdӄ ZeOdgdVea d1kr`d nddߍd֐dׄ ZeOdؐdgdVdWdِdڄ Zejghdg dܢdݐdބ Zdߐd Zdd ZePdgddd Zejrsdddd Zdd Zejghde=je=jdge=je=jdggdd Zdd Zdd Zdd Zdd Zdd ZejghdeÐdi dfeĐdi dfed/dgfi dfeÐeŃ ddidffd d ZƐdd Zejghd?d@dd ZȐdd Zɐdd	 ZeOd
gdd3dd ZeOg ddgdddddd ZeOdgddddȍdd ZeOdgddddȍdd ZeOdgddddȍdd ZeOdgddddȍdd ZeOdgdddHdȍdd  ZeOd!gdd3d"d# ZeOd$gddddȍd%d& ZӐd'd( ZԐd)d* ZՐd+d, Z֐d-d. Zאd/d0 Zؐd1d2 ZePdgdd3d4 ZePdgdd5d6 ZeOd7gea d1krEd nd8d3d9d: Zܐd;d< ZePdgdd=d> Zސd?d@ ZߐdAdB ZdCdD ZdEdF ZeOdGgdHdI ZdJdK ZdLdM ZeOdNgddOiddPdQ ZdRdS ZdTdU ZdVdW ZejghdeĐdXi dYfeĐdZi dYfeĐeŃ dmd[idYfeĐeŃ dDd[idYfeÐdd/d/d@d\feÐddmd/id\feÐd]i d^ffd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj Zdkdl Zdmdn Zdodp ZeOdqgddiddrds ZeOdtgddiddudv Zdwdx Zdydz Zd{d| Zd}d~ Zejghddejjfdejjfe`de`dfejjfg dg dfejjfejdejdfejjfgejghd|eddejdҐddҡgdd Z dd Zdd Zdd Zdd Zdd Zdd Zejghd2e dd ZeOdgdVdWdd Zdd Z	dd Z
ejghddVdgdd ZeOdgdVddߍdd ZeOdgdVddea d1krd ndddd ZejrsdZdd ZejdmdDgddd Zejg dddd Zdd Zdd Zdd Zdd ZejrsdZdd ZejrsdZdd Zdd Zdd Zdd ZdÐdĄ ZdŐdƄ ZdǐdȄ Zdɐdʄ Zdːd̄ Zd͐d΄ Z dϐdЄ Z!dѐd҄ Z"dӐdԄ Z#dՐdք Z$dאd؄ Z%dِdڄ Z&eOdgdd3dݐdބ Z'eOdgdd Z(eOdgdd3dd Z)eOdgdVdWdd Z*dd Z+dd Z,dd Z-dd Z.ejgjhdg dg dd֍dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd  Z5dd Z6dd Z7dd Z8ejrsdZdd Z9d	d
 Z:dd Z;dd Z<ejghded/ggdg idfed/ggdg idfed/ggdg idfed/ggdg idfed/ggdg idfed/gi dfed/ggdd/dgidfed/ggdd/dgidfed/ggdd/dgidfed/ggdd/dgidfed/ggdd/dgidfed/ggdqd/dgidffd d! Z=d"d# Z>d$d% Z?ejghd&d'd(gejghd)d'd(gd*d+ Z@d,d- ZAd.d/ ZBd0d1 ZCePdgdd2d3 ZDePdgdd4d5 ZEd6d7 ZFd8d9 ZGd:d; ZHeOd<gdVddded=d> ZId?d@ ZJdAdB ZKejghdCddVgejghdDddVgdEdF ZLdGdH ZMdIdJ ZNdKdL ZOdMdN ZPdOdP ZQdQdR ZReOdSgdddVea d1krd nd8dTdUdV ZSG dWdX dXeFjTZUeOdYgddea d1krd ndZdȍd[d\ ZVd]d^ ZWd_d` ZXdadb ZYdcdd ZZdedf Z[eOdggdVdddedhdi Z\djdk Z]dldm Z^dndo Z_dpdq Z`drds Zadtdu ZbePdgddvdw Zcdxdy Zddz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 Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztejghdd@ejghdddd ZuePdgddd ZvejrsdZdd Zwdd Zxdd Zydd Zzdd Z{ejghddd. e-j|D g d ejrsdZdd Z}dd Z~dd ZePdgddd ZePdgddd Zdd Zejghdg ddd Zdd Zdd ZddÄ ZdĐdń ZdƐdǄ ZdȐdɄ Zdʐd˄ ZeOdgd͐d΄ ZdϐdЄ Zdѐd҄ ZejghdӐdԐdՐdՐjgd֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ Zdސd߄ Zdd Zdd ZejrsdZdd Zdd Zdd Zejghddejghd|dde`d҃ig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 ZePdgddd  ZeOdgddddd Zdd Zdd Zdd	 Zd
d ZeOdgdVddea d1krd ndZddd ZejrsdZdd ZePdgddd Zdd Zdd Zdd Zdd Zdd ZeOdgdZddd ZePdgdejghd d@d!d" Zejgjejdd҅ d#koWejjd$kd%d&d'd( Zd)d* ZeSePdgdd+d, ZePdgdd-d. ZePdgdd/d0 ZeOd1gea d1krd nd2d3d3d4 Zd5d6 Zd7d8 ZePdgdd9d: Zd;d< Zd=d> ZdS (@      N)
namedtupledequeDecimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)Figure)Axes)Line2D)PathCollection)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titles)needs_usetexpng
extensionsc                 C   s   |   }|d d S NF)subplotsset_visiblefig_testfig_refax r$   [/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_axes.pytest_invisible_axes5   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_ylabelZ
get_xlabelZ
get_ylabelfigr#   r$   r$   r%   test_get_labels;   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_reprC   s   



r4   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r0   har/   rB   r   r7   legendr)   r(   colorbarr1   r!   r"   r#   sccbarr$   r$   r%   test_label_loc_verticalN   s   

rJ   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 )Nr5   r6   r7   r8   r:   bottomr<   r>   left
horizontalorientationr@   r   rA   rC   rD   rG   r$   r$   r%   test_label_loc_horizontala   s   rP   c                 C   s   t ddd5 |  }|jddgddgddgdd}|  |d |d	 | j|d
d}|d W d    n1 s@w   Y  | }|jddgddgddgdd}|  |jdddd |jd	ddd |j|d
d}|jdddd d S )Nr?   r;   )zxaxis.labellocationzyaxis.labellocationr5   r6   r7   r8   r:   r>   rM   rN   r@   rA   rC   )	
matplotlibr   r   r7   rE   r)   r(   rF   r1   rG   r$   r$   r%   test_label_loc_rct   s$   



rR   c                  C   s   t  \} }|jddd |jddd |jj dksJ |jddd |jj dks/J |jddd |jj dks@J |jddd |jddd |jj dksXJ |jddd |jj dksiJ |jddd |jj dkszJ d S )Nz
Test labelrL   r<   centerr?   r;   rK   )r'   r   r(   xaxisr-   get_horizontalalignmentr)   yaxisr*   r$   r$   r%   test_label_shift   s   rW   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   r5   maxlagsfullmoder0   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r!   r"   ZNxr/   r[   ax_testax_refZnorm_auto_corrZlagsr$   r$   r%   
test_acorr   s   rp   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 )
NrX   3   
   r5   rZ   r\   r]   r   r_   )rb   rc   rd   randrf   ceilastypeint64r   rg   rh   ri   rj   rk   rl   rm   r$   r$   r%   test_acorr_integers   s   rw   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 )NrX   i   r   rY   )    rx   r6   r5   .lower)markeroriginZgray_rnearest)cmapinterpolation
markersizerr   )aspectxlimylimboth)rb   rc   rd   onesshufflereshaper   spyimshowrT   tick_topplotZnonzerosetget_xlimget_ylimset_ticks_position)r!   r"   aaxs_testaxs_refr#   r$   r$   r%   test_spy   s$   



. r   c               	   C   sl   t  \} }ddidddfD ]$}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   rb   eye)r+   r#   Zunsupported_kwr$   r$   r%   test_spy_invalid_kwargs   s   r   c                 C   sT   t jd tjdd}|  | | }|| |j	
  |j	d d S )Nmpl20rx   r   )mplstyleuserb   rc   rs   add_subplotZmatshowr   rT   r   r   )r!   r"   r   ro   r$   r$   r%   test_matshow   s   

r   c                 C   s   g | ]	}d |ddqS )Zformatter_ticker_Z03dz.pngr$   .0ir$   r$   r%   
<listcomp>       r   r5      x86_64gX9v?)tolc                     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r   r/   unitsr$   r%   r          z)test_formatter_ticker.<locals>.<listcomp>rr   c                       g | ]}d | d  j  qS )      ?      ?kmr   r0   r   r$   r%   r          c                    r   )      ?      ?r   r   r   r$   r%   r      r   zx-label 001bluer   )colorZxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrQ   rcParamsranger'   figurer   r(   r   autoscale_view)ZxdataZydata1Zydata2r#   r$   r   r%   test_formatter_ticker   s0   






r   c                  C   s   dd } t   }|jjsJ |jjsJ |jj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   rT   isDefault_majfmtisDefault_minfmtrV   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r#   Ztarg_funcformatterr$   r$   r%   !test_funcformatter_auto_formatter  s    

r   c                  C   s   d} t   }|jjsJ |jjsJ |jj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   rT   r   r   rV   set_minor_formatterr   ZStrMethodFormatterr   Zget_minor_formatterfmt)Zformstrr#   Ztarg_strformatterr$   r$   r%   &test_strmethodformatter_auto_formatter3  s    

r   z!twin_axis_locators_formatters.pngc                  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   r5      T)numZendpoint       @皙?皙?333333?r   d   z%08.2lf)ZtricksZmindZjedi)   #   7   K   z%05.2lf)r9   3pr   )rb   linspacesinpir'   ZFixedLocatorr   r   r   rV   set_major_locatorZset_minor_locatorr   ZFormatStrFormatterr   ZFixedFormatterrT   ZLinearLocatortwinytwinx)valsZlocsZmajlZminlr+   ax1r$   r$   r%   "test_twin_axis_locators_formattersL  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   drawrT   get_visiblepatchclarV   )r+   r#   ax2ax3r$   r$   r%   test_twinx_clae  s"   r   twinr/   r0   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   Z	axis_name	twin_funcr   r   r+   r   r   r$   r$   r%   test_twin_units|  s   

 r  RQ?)r   r   c                 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_scaler5   r   r6   logr5   r6   r      nonezaxes.edgecoloraxes.linewidthZ
projecting)	transform	facecolor	edgecolor	linewidthZcapstyle)rb   rj   r   r   r   rQ   pathPath
add_artistpatches	PathPatchMOVETOZLINETO	transAxesr   r   r   )r!   r"   r   r   Z	set_scaler/   rn   ax_twinr   ro   r  r$   r$   r%   test_twin_logscale  sD   
r  ztwin_autoscale.pngg;On?c                  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   r5   r   r   r5   r6   r6   r   r   r5   r5   F)Zautoscalex_onZautoscaley_onr   rr   r   lwr--r   r  r   )rb   arrayr'   r   add_axesr   r   margins)r/   r0   x2y2r+   r#   r   r$   r$   r%   test_twinx_axis_scales  s   
r#  c                  C   st   t  \} }| }|d | }| sJ | rJ | }|d | }| s2J | r8J d S r   )r'   r   r   Zset_autoscalex_onget_autoscalex_onr   Zset_autoscaley_onget_autoscaley_on)r+   r#   Zax_x_onZax_x_offZax_y_onZax_y_offr$   r$   r%   #test_twin_inherit_autoscale_setting  s   

r&  c                  C   s  t d} |  }| rJ | rJ tjd}|| | 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   r6   r         shareyT)r'   r   gcaZxaxis_invertedyaxis_invertedrb   rc   r   r   r   r   r   cos	autoscaleaxesremovesubplotrV   Zset_invertedclose)r+   r#   imgr/   ax0r   r$   r$   r%   test_inverted_cla  sB   






r5  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$   r=  r$   r%   ClaAxes      rC  c                          e Zd Z fddZ  ZS )z-test_subclass_clear_cla.<locals>.ClaSuperAxesc                       dt    d S r:  )superr   r;  	__class__r>  r$   r%   r         z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla)r@  rA  rB  r   __classcell__r$   r=  rI  r%   ClaSuperAxes      rM  c                   @      e Zd ZdS )z+test_subclass_clear_cla.<locals>.SubClaAxesNr@  rA  rB  r$   r$   r$   r%   
SubClaAxes%      rQ  c                       r8  )z*test_subclass_clear_cla.<locals>.ClearAxesc                    r9  r:  r$   r;  r=  r$   r%   clear)  r?  z0test_subclass_clear_cla.<locals>.ClearAxes.clearN)r@  rA  rB  rS  r$   r=  r$   r%   	ClearAxes(  rD  rT  c                       rE  )z/test_subclass_clear_cla.<locals>.ClearSuperAxesc                    rF  r:  )rG  rS  r;  rH  r$   r%   rS  .  rJ  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear)r@  rA  rB  rS  rK  r$   r=  rL  r%   ClearSuperAxes-  rN  rU  c                   @   rO  )z-test_subclass_clear_cla.<locals>.SubClearAxesNrP  r$   r$   r$   r%   SubClearAxes3  rR  rV  Fr  )r   warnsPendingDeprecationWarningr   r   r   )	rC  rM  rQ  rT  rU  rV  r+   
axes_classr#   r$   r=  r%   test_subclass_clear_cla  s2   
rZ  c                  C   s*   t  D ]} d| jvrd| jvsJ qd S )NrZ  r   )r   __subclasses__rB  __dict__)klassr$   r$   r%   !test_cla_not_redefined_internallyD  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   r5   )rQ   r   r   r   minorticks_onr!   r"   rn   ro   r$   r$   r%    test_minorticks_on_rcParams_bothL  s   
ra  zautoscale_tiny_range.pngTremove_textc                  C   sL   t dd\} }t|jD ]\}}dd|  }|ddgdd| g qd S )Nr6   rr   ir   r5   )r'   r   	enumerateflatr   )r+   axsr   r#   y1r$   r$   r%   test_autoscale_tiny_rangeW  s
   rh  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 )Nr5   r5   r6   r   r  Tr/   F)enabler   tightr0   )g333333ÿg333333	@)r         @)rk  )
r'   r   r   r.  r   r   r   r$  r%  get_autoscale_onr*   r$   r$   r%   test_autoscale_tight`  s   ro  c                  C   s   t jdtd} tjdddd\}\}}|| |  || |  |jdd |jdd t  | d | d f}t	|
 | t	| | t	|
 | t	| | d	 | d f d S )
Nr   Zdtyper6   r5   Tsharex)rl  r   r   )rb   rj   floatr'   r   loglogsemilogxr.  r   r   r   r   )r/   r+   r   r   Zlimsr$   r$   r%   test_autoscale_log_sharedx  s   rv  c                  C   s   t  \} }|jddgddggdd t| d t| d d|_|  d	d|j  d
d|j  f}d	d|j	  d
d|j	  f}t| | t| | d|_|  t| d t| d d S )Nr   r5   r6   r   rz   r|   )      r   Frx  r   T)
r'   r   r   r   r   r   Zuse_sticky_edgesr.  Z_xmarginZ_ymargin)r+   r#   r   r   r$   r$   r%   test_use_sticky_edges  s   ry  c                 C   sZ   t ddd}| d}| jd|d}|| |d}|jd|d}|| d S )Nr   r   r   r'  r(  rq  )rb   rj   r   r   
pcolormesh)r!   r"   Zr4  r   r$   r$   r%   test_sticky_shared_axes  s   


r|  zsticky_tolerance.pngr   )rc  r   c                  C   s   t d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 |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 S )Nr6   r   r   gffff&@)r/   heightrK   r5   gffff@gffff&)r0   widthrL   gffffr   )r'   r   re  barbarh)r+   rf  r~  r$   r$   r%   test_sticky_tolerance  s   r  zsticky_tolerance_cf.pngc                  C   s:   t  \} }ddg }}ddgddgg}|||| d S )NgGZP@g    `P@r   r5   r6   r   )r'   r   contourf)r+   r#   r/   r0   datar$   r$   r%   test_sticky_tolerance_contourf  s   r  c                   C   s<   t jtdd t  W d    d S 1 sw   Y  d S )Nz0 were givenr6  )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 givenr6  ZFirstZSecondr   )r   r   r   r'   r1  rE   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 givenr6  r   r5   r   r6   r5   r6   r   )r   r   r   r'   r1  
pcolorfastr  r$   r$   r%   test_nargs_pcolorfast  s   "r  Zoffset_pointsc                  C   sf   t ddd} t dt j |  }t }|jdddd}|j| |d	d
d\}|jdddddd d S )N              @{Gz?r   F)r   r   r   )Zautoscale_onr   r   r   purpler  r   z	local maxr   r5   r  r   r   zoffset points)xyxycoordsxytext
textcoords)	rb   rj   r-  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\   rL   r?   r   r  r6      r   r   rr   )r~  length_includes_headshapehead_starts_at_zeroZ
head_widthhead_length)r   r'   r   rd  zipre  set_xlimset_ylimrb   r   arrowr   r-  )
r  r  r  kwargsr+   rf  r   r#   kwargthetar$   r$   r%   test_arrow_simple  s&   
r  c                  C   s$   t  \} }|jdddddd d S )Nr   )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 )Nr5   )皙?皙@)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  r6   r   )r  )r  
arrowprops)r'   r   r  Zarrow_patch)r+   r#   annr$   r$   r%   test_annotate_default_arrow  s
   r  c                  C   sp   t  \} }t|jj}ttjj}t|	 t|	 k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#   Zannotate_paramsZannotation_paramsp1p2r$   r$   r%   test_annotate_signature   s   r  zfill_units.pngdpi<   )savefig_kwargc                  C   s  dd l m  m}  |   | jdtdddd}d| j }| dd}tj	d	d
dd}t
|}tdd\}\\}}\}	}
|j|g|gddd g d}||| g dd |j|g|gddd ||||| || gg dd |	j|g|gddd |	|| d| j d| j d| j d| j gd |
j|g|gddd |
j|||| || gd| j d| j d| j d| j gdd |  d S )Nr   ET  r     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]rp  r6   degred)Zyunitsr   r  )r  r  g     V@r  r   Z   r   r  )r   r   r   r   Epochdatetimer  Durationrb   rj   mdatesdate2numr'   r   r   fillZautofmt_xdate)r   r  valuedayr  Zdtnr+   r   r   r   ax4indr$   r$   r%   test_fill_units*  s4   


""r  c                   C   s   t jtdd tjdgdgddd W d    n1 s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 definedr6  r   r   r/   r{   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r  )r   r   )r   rW  UserWarningr'   r   errorbarr$   r$   r$   r%    test_plot_format_kwarg_redundantL  s   r  c                 C   sz   g d}t |}| }|  }|j||t |t |d^}}|ddg |j||t |t |ddgd d S )Nrj  xerryerrr6   )r  r  dashes)rb   r   r+  r  absZ
set_dashes)r!   r"   r/   r0   ro   rn   r  r  r$   r$   r%   test_errorbar_dashesW  s   
"(r  c                  C   s>   dd t dD } t \}}|j|  |  |  d d S )Nc                 S   s   i | ]}||qS r$   r$   )r   iir$   r$   r%   
<dictcomp>f  s    z/test_errorbar_mapview_kwarg.<locals>.<dictcomp>rr   r/   r0   r  )r   r'   r   r  r  r  )Dr+   r#   r$   r$   r%   test_errorbar_mapview_kwarge  s    r  Zsingle_pointc                  C   s   dt jd< dt jd< td\} \}}|dgdgd |dgdgd dgdgd}td\} \}}|jd	d	d|d
 |jddd|d
 d S )Nr   lines.markerT	axes.gridr6   r   r5   r   r   r   r  r   )rQ   r   r'   r   r   )r+   r   r   r  r$   r$   r%   test_single_pointk  s   

r  zsingle_date.png)r   c                  C   s   dt jd< ttd} dg}dg}t dd\}}tt	j
 |d j||  |d	d
d W d    n1 s9w   Y  |d j||d	d
d d S )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr6   r5   r   r   r  r  )r'   r   r  r  rb   
datetime64r   r   rW  r   MatplotlibDeprecationWarning	plot_dater   )r  Ztime1data1r+   r#   r$   r$   r%   test_single_date}  s   
r  c                 C   s|   t dd}t dddd}| d}|d | |d | |d}|d jdd	d
 |d |  d S )Nrr   r5   r   r   r   r   r5   r6   r5   gQQ?)r   	   r   r   )rb   rj   r   r   r   r   ravel)r!   r"   rowcolrf  r$   r$   r%   test_shaped_data  s   

r  c                  C   sZ   t jddgdtfdtfgd} t d}|d jdd| d |d	 jddd
| d d S )Nr5   r5   r6   r6   r   Ztwosrp  r6   r   r  r5   r  )rb   r  rs  r'   r   r   r   )Zptsrf  r$   r$   r%   test_structured_data  s   r	  Zaitoff_proj)r   rc  r   c                  C   sz   t t j t jd} t t j d t jd d}t | |\}}tjdtddd\}}|  |j|j	|j	ddd	 d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r6   )   @ZaitoffZ
projection)figsize
subplot_kwr   r  )r   N)
rb   r   r   meshgridr'   r   dictgridr   re  )r/   r0   XYr+   r#   r$   r$   r%   test_aitoff_proj  s   
r  zaxvspan_epoch.pngc                  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  r5      r     r   r         ?)r  alphar  )r   r   r   r   r  r  r  r  convertr'   r+  axvspanr  r   t0tfr  r#   r$   r$   r%   test_axvspan_epoch      r!  zaxhspan_epoch.png{Gz?c                  C   r  r  )r   r   r   r   r  r  r  r  r  r'   r+  axhspanr  r  r$   r$   r%   test_axhspan_epoch  r"  r%  zhexbin_extent.pngc                  C   sl   t  \} }tdd d}|\}}|j||g dd ||d}t  \} }|jddg d|d d S )	N  )r6     r   r   333333?ffffff?extentr   r/   r0   )r,  r  )r'   r   rb   rj   r   hexbinr+   r#   r  r/   r0   r$   r$   r%   test_hexbin_extent  s   
r/  c                  C   s   t  \} }tdd d}|\}}tjtdd |j||dd W d    n1 s.w   Y  tjtdd |j||dd W d    d S 1 sNw   Y  d S )	Nr
  )r6   rr   z)In extent, xmax must be greater than xminr6  r5   r   r   r5   r+  z)In extent, ymax must be greater than ymin)r   r5   r5   r   )	r'   r   rb   rj   r   r   r   
ValueErrorr-  r.  r$   r$   r%   test_hexbin_bad_extents  s   "r2  c                  C   sz   t  \} }|jtjdtjddddd}t|tjj	s!J t|j
tjjs+J |j
jdks3J |j
jdks;J d S )Nrr   r  r6   r   normvminvmax)r'   r   r-  rb   rc   rs   r   rQ   collectionsPolyCollectionr4  colorsLogNormr5  r6  )r+   r#   hexr$   r$   r%   test_hexbin_string_norm  s   $r<  zhexbin_empty.pngc                  C   sV   t  \} }|g g  |jg g dd |jg g g tjd |jg g tdd d S )Nr  bins)Creduce_C_functionrr   )r'   r   r-  rb   maxrj   r*   r$   r$   r%   test_hexbin_empty  s
   rB  c                  C   s`   t  \} }tdd d}|\}}|j||g ddd}tddd}||d	 s.J d S )
N   r6   r   r(  r   )r,  Zpicker  ,  r   r   )r'   r   rb   rj   r   r-  r   contains)r+   r#   r  r/   r0   ZhbZmouse_eventr$   r$   r%   test_hexbin_pickable  s   rH  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 
| | jdksIJ d S )NFpcolormesh.snaprX   順 r         @rm  r6   r   r  T)yscaler>  	marginalsr@  )i&-  r6   )r'   r   rb   rc   rd   standard_normalpowerr   r-  sumrF   get_offsetsr  )nr/   r0   r+   r#   hr$   r$   r%   test_hexbin_log  s   

rT  c                  C   sz   t ddd} t \}}|j| | dddd}t j| t ddgddgddgddgddgddgddgd	dgg d S )
Nr5   r     r  r6   )xscalerL  gridsizer   r   r   )	rb   Z	geomspacer'   r   r-  r   Zassert_almost_equalrQ  r  )r/   r+   r#   rS  r$   r$   r%   test_hexbin_log_offsets(  s"   rX  zhexbin_linear.pngr   rc  c                  C   s^   t jd d} t j| }dd|  dt j|   }t \}}|j||ddt jd d S )	NrX   rJ  r   rK  rm  rr   r   T)rW  rM  r@  )rb   rc   rd   rN  r'   r   r-  rP  )rR  r/   r0   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 )NrC  rD  r  r6   r   )r>  r5  r6  )rb   rj   r   r'   r   r-  Zget_clim)r/   r0   r+   r#   rS  r$   r$   r%   test_hexbin_log_climG  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   r   r5   )      $rr   r^  rr   )r  r  )r,  rW  mincntr   c                 S   s   t | S r   )rP  )vr$   r$   r%   <lambda>m      z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>)r?  r@  r_  r,  rW  )r  lenr   r-  Zset_facecolor)
r!   r"   Z
datapointsr  r  r?  r,  rW  rn   ro   r$   r$   r%   ,test_hexbin_mincnt_behavior_upon_C_parameterN  s.   
rd  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  r6   r  )r5   r6   r  r   )r  re  r  )re  r  )r   r  r  rr   r5   )rr   r5   )
r'   r   invert_xaxisr   r   r   r2  invert_yaxis
set_yscaler  r*   r$   r$   r%   test_inverted_limitsu  s   
ri  Z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divider6   )
rb   rj   eerrstater  nanrc  r'   r   r   r/   r0   r+   r#   r$   r$   r%   test_nonfinite_limits  s   rq  plot_fun)r7   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  rp  C0r  )rb   rj   r   r   r   rc  )rr  r!   r"   r/   rn   ro   r#   r$   r$   r%   test_limits_empty_data  s   ru  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   r6   r  r  )rQ   r   rb   indicessqrtr'   r   r   )Nr/   r0   r  r+   r#   r  r$   r$   r%   test_imshow  s   

rz  Zimshow_clipgף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}   rv  r   r6   r  r   )	clip_path)rQ   r   rb   rw  rx  r'   r   contourmtransformsZTransformedPath	get_pathsget_transformr   )ry  r/   r0   r  r+   r#   r9   r{  r$   r$   r%   test_imshow_clip  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.r5   r6   r   r  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r6  rr   r   r   r3  N)r'   r/  r   r   r1  r   mcolors	Normalize)r   r#   r$   r$   r%   test_imshow_norm_vminvmax  s   "r  Zpolycollection_joinstylec                  C   sf   t  \} }tddgddgddgddgg}tjj|gdd}|| |dd |	dd d S )Nr5   r6   (   )
linewidthsr   r   )
r'   r   rb   r  r   r7  r8  add_collection
set_xbound
set_ybound)r+   r#   vertsr9   r$   r$   r%   test_polycollection_joinstyle  s   "
r  z	x, y1, y2r  r   r  r6   )Z
2d_x_inputZ2d_y1_inputZ2d_y2_input)idsc                 C   J   t  \}}tt || || W d    d S 1 sw   Y  d S r   )r'   r   r   r   r1  rs  r/   rg  r"  r+   r#   r$   r$   r%   test_fill_between_input     "r  z	y, x1, x2)Z
2d_y_inputZ2d_x1_inputZ2d_x2_inputc                 C   r  r   )r'   r   r   r   r1  fill_betweenx)r0   x1r!  r+   r#   r$   r$   r%   test_fill_betweenx_input  r  r  zfill_between_interpolate.pngg~jt?)rc  r   c               	   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  r6   r#  333333?r  r5   Trq  blackr  white/)wherer  hatchinterpolater  )r  r  r  r   r   r   )rb   rj   r   r   r'   r   r   rs  r	   Zmasked_greaterZmasked)r/   rg  r"  r+   r   r   r$   r$   r%   test_fill_between_interpolate  s(   
r  z'fill_between_interpolate_decreasing.pngc               	   C   s   t g d} t g d}t g d}tjdd\}}||| d ||| d |j| ||||k dd	d
d |j| ||||kdd	d
d |dd |dd d S )N)gfffff@i  i  )g"@r  r  )g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?r  r  r  r  r  r   r      X  )rb   r  r'   r   r   r  r  r  )r   r  Zprofr+   r#   r$   r$   r%   (test_fill_between_interpolate_decreasing(  s   r  z fill_between_interpolate_nan.pngc                  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 )Nrr   r              rx   r   r  r9   r   r   Tr   r  r  )rb   rj   asarrayro  r'   r   r   rs  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   r5   r6   r  r   r  r  r  )i@B i  rJ  r   r   r   r   r   symloglinearr   i )rb   r  r'   r   r   rh  
set_xscaler  rp  r$   r$   r%   test_symlogQ  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   r5   )      4@r   r   r   r  r  )	linthreshTr   皙r   )	rb   rj   r'   r   r  r   r  r  r  )r/   r+   rf  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)            rx  r  r   r   r   )r  g      r        rx        пr   r  r         ?r         ?r   r   )rb   r  hypotr'   pcolorr  )r/   r0   r  r  r{  r$   r$   r%   test_pcolorargs_5205j  s   
&r  rz  c                  C   s,  dt jd< d} tdd| }tdd| d }t||\}}t|t| }t|t| }|d }t||d }||  t	| }t
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 )NFrI  r  r  r   r6   皙?r   r   r5   r   r   r  r  
edgecolorsr   wgouraudshading)r'   r   rb   r   r  r-  r   r  minptpr	   masked_wherer  rA  r   rz  )rR  r/   r0   r  r  QxQzr{  Zmr  r   r   r   r$   r$   r%   test_pcolormeshx  s   
 $(r  Z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   r6   r  r   r   rx  r   r  r  r   r  r  r  )rb   r   r  r-  r   r  r  r  r	   r  r  rA  r'   r   rz  r/  set_axis_off)rR  r/   r0   r  r  r  r  r{  r  ZZm2r+   r   r   r   r  r#   r$   r$   r%   test_pcolormesh_small  s&    $(

r  Zpcolormesh_alphapdf)r   rc  c               
   C   s  dt jd< d} ttdd| tdd| d \}}|}|t| }t||d }||  t| }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 )NFrI  r  r  r   r6   r   viridis   r   r   )r   r  )r*  r   r   r   r   )r  zorderr   r  re  r5   )r~   r  r  r  r  )r~   r  r  )r'   r   rb   r  r   r   r  r  r  r   	colormaps	resampledrj   r  ZListedColormapr   	add_patchmpatches	Rectanglerz  )rR  r  r  r  ZQyr{  Zvirr9  r~   r+   r   r   r   r  r#   r$   r$   r%   test_pcolormesh_alpha  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   rp  r6   ).r   grayr   r5   )r~   r5  r6  r  )r   rb   r   rs  rz  )r!   r"   dimsr  r#   r9   r$   r$   r%   test_pcolormesh_rgba  s
   
r  c                 C   s`   t d}t d}t ||\}}|| }|  }|j|dd | }|j|||dd d S )Nr  r  r}   r  )rb   rj   r  r   rz  )r!   r"   r/   r0   r  r  r?  r#   r$   r$   r%   test_pcolormesh_nearest_noargs  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 )NFrI  r  \(\?333333?Zhspacer;   rK     r5   c                       g | ]
} t j|d  qS daysr  	timedeltar   dbaser$   r%   r         z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r
     r      r   r         r?   r   )r'   r   r   subplots_adjustr  rb   r  r   rj   r  r1  rz  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr+   r/   r0   Zz1Zz2zr#   r-   r$   r  r%   test_pcolormesh_datetime_axis  s0   


.

>

r  zpcolor_datetime_axis.pngc                     s  t  } | jdddd tddd t fddtd	D }td	}ttd
td
\}}|| }t 	d t 
|d d |d d |d dd df  t 	d t 
||| tj|tj d	dd}tj|d d tjf d	dd}t 	d t 
|d dd df |d dd df |d dd df  t 	d t 
||| |  D ]}| D ]}|d |d qqd S )Nr  r  r  r  r  r5   c                    r  r  r  r  r  r$   r%   r     r  z-test_pcolor_datetime_axis.<locals>.<listcomp>r  r
  r  r   r  r   r  r  r  r?   r   )r'   r   r  r  rb   r  r   rj   r  r1  r  r  r  r  r  r  r  r  r$   r  r%   test_pcolor_datetime_axis  s.   

.

>

r  c               	   C   s  d} t dd| }t dd| d }t ||\}}t ||d }t \}}tt |	||| W d    n1 s?w   Y  tt |	|||j
 W d    n1 s\w   Y  tt |j	|||d dd df dd W d    n1 sw   Y  tt |j	|||d dd df dd W d    n1 sw   Y  t j|d	< tt |	|||d dd df  W d    n1 sw   Y  t jd
d t jj||d	k d}W d    n1 sw   Y  tt |	|||d dd df  W d    n	1 sw   Y  g d}ddg}t ||\}}t |j}tjtdd |j	|||dd W d    n	1 sMw   Y  t ddd}t ddd}t ||\}}t |j}t jd t j|j}t j|j}	tjtdd9}
|j	|| ||	 |dd t|
d	ksJ |j	|d|  |d|	  |dd t|
dksJ W d    d S 1 sw   Y  d S )Nr  r  r   r6   r   r   r  r  r   rj  invalidmask)ig  r   r5   r  rr   z.are not monotonically increasing or decreasingr6  autor5   r   rX   )rb   r   r  r  r'   r   r   r   r   rz  Tro  r1  rn  r	   r  zerosr  rW  r  rc   rd   rc  )rR  r/   r0   r  r  r{  r  r#   Znoise_XZnoise_Yrecordr$   r$   r%   test_pcolorargs  sj   $$
  "$r  c                  C   s~   t jdd/ t ddd} t ddd}t jt|t| }t \}}|| || W d   dS 1 s8w   Y  dS )z
    Test that underflow errors don't crop up in pcolormesh.  Probably
    a numpy bug (https://github.com/numpy/numpy/issues/25810).
    raise)Zunderr   r   r   r   N)	rb   rn  rj   rc   randnrc  r'   r   rz  r/   r0   r  r+   r#   r$   r$   r%   test_pcolormesh_underflow_errorS  s   "r
  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   r6   r   FTFFr   r   r5   rr   rp  Tr   )rb   rj   r   broadcast_tor  flagsZ	writeabler	   r  r'   rz  r   r  r   r   r-  r  boolr  )r/   ZxmaskZmasked_xr0   r  r  r{  r  Zmasked_ZZmasked_XZmasked_Yr$   r$   r%   test_pcolorargs_with_read_only`  s$   
(r  c                 C   s   |   }tdd}tdd}tjd tjdd}|j|||dd |  }|d d	 t|d  }|d d	 t|d  }|j|||d
d d S )Nr   rr   r   rX   r6   r  re  r  r   r}   r   rb   rj   rc   rd   r  rz  diffr!   r"   r#   r/   r0   r{  r!  r"  r$   r$   r%   test_pcolornearestw  s   r  c                 C   s   |   }dd tdD }tdd}tjd tjdd}|j|||d	d
 |  }dd tdD }|d d t|d  }|j|||dd
 d S )Nc                 S   s   g | ]
}t j |d  qS )  r  fromtimestampr   r$   r$   r%   r     r  z+test_pcolornearestunits.<locals>.<listcomp>rr   r   r   rX   r6   r  re  r  c                 S   s    g | ]}t j |d  d qS )r   r  r  r   r$   r$   r%   r     s     r   r}   )	r   r   rb   rj   rc   rd   r  rz  r  r  r$   r$   r%   test_pcolornearestunits  s   r  c                  C   s   t  \} }tdd}tdd}tjd tjdd}tjt	dd |j
|||dd W d    d S 1 s;w   Y  d S )	Nr   r  r   rX   zDimensions of Cr6  re  r  )r'   r   rb   rj   rc   rd   r  r   r   r   rz  r+   r#   r/   r0   r{  r$   r$   r%   test_pcolorflaterror  s   "r  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 Xr6  re  r  )	r'   r   rb   r  rj   r   r   r   rz  r  r$   r$   r%   test_samesizepcolorflaterror  s   "r  snapFc           	      C   s   |   }tdd}tdd}tjd tjdd}|j||||d |  }|d d t|d	  }|d d t|d	  }|j||||d d S )
Nr   rr   r  rX   r   r  )r  r   r6   r  )	r!   r"   r  r#   r/   r0   r{  r!  r"  r$   r$   r%   test_pcolorauto  s   r  	canonicalc                  C   s   t  \} }|g d d S )Nr  r'   r   r   r*   r$   r$   r%   test_canonical  s   r  zarc_angles.pngc            
      C   sJ  d} d}d}d}t dd\}}t|jD ]\}}|d d }|d }	|tj|| |dd	 |tj|| ||	|d
 ||t	
t	|	 |d  |d |t	
t	| |d  g|t	t	|	 |d  |d |t	t	| |d  g || | || | | d9 } |d9 }|d d |d d f}|d9 }qd S )Nr6   r5   )r   r   r   h  r  -   r   r  )theta1theta2r   rr   )r'   r   rd  re  r  r  ZEllipseArcr   rb   r-  deg2radr   r  r  )
r  rS  Zcentrer  r+   rf  r   r#   r$  r#  r$   r$   r%   test_arc_angles  s4   
r'  Zarc_ellipsec               	   C   sH  d\} }d\}}d}t t d}|d t | }|d t | }t |}t t |t | gt |t |gg}	t |	||g\}}|| 7 }||7 }t }
|
j	ddd}|j
||d	d
d
ddd tj| |f|||dddd}|| |
j	ddd}|j
||d	dddd tj| |f|||dddd}|| d S )N)gRQ?gp=
ף?)r   r   r   r   r'  r  )r   r   yellowr5   )r  r  r  r  r  r6   F)angler  r  r  r(  equalr   )r  r  r  r  )rb   r&  rj   r-  r   r  ri   r'   r   r   r  r  r%  r  )Zxcenterycenterr~  r}  r*  r  r/   r0   ZrthetaRr+   r#   e1e2r$   r$   r%   test_arc_ellipse  s:   

r0  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   r6   r5   r  )r  r   r6   )r   r  r   )r'   r   mmarkersMarkerStyler   r7   r  )fixr#   mr$   r$   r%   test_marker_as_markerstyle
  s
   
r6  zmarkevery.pngc                  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   rr   r   r   r   ri  r-   r  mark all	markeveryr-   r  mark every 10+r   r
  mark every 5 starting at 10rb   r   r   rx  r'   r   r   rE   rp  r$   r$   r%   test_markevery  s   rA  zmarkevery_line.pngg{Gzt?c                  C   r7  )Nr   rr   r   r   z-ori  r8  z-dr9  r:  z-sr<  z-+r>  r?  r@  rp  r$   r$   r%   test_markevery_line   s   rB  zmarkevery_linear_scales.pngr  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   rC  r   r   r   r   r  r   ?r   r5   )\(?rr   r6   r   markevery=%sr   r  r  lsmsr;  )slicerQ   gridspecGridSpecrc  rb   r   r   rd  r'   r1  r.   strr   
casescolsgsdeltar/   r0   r   caser  r  r$   r$   r%   test_markevery_linear_scales2  s(   
rW  z"markevery_linear_scales_zoomed.pngc            
      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  rC  rD  r   r   r   rC  r   r   r   r   rE  rF  r5   rH  rr   r6   r   rI  r   r  r  rJ  )r   g@)r  g333333?)rM  rQ   rN  rO  rc  rb   r   r   rd  r'   r1  r.   rP  r   r   r   rQ  r$   r$   r%   #test_markevery_linear_scales_zoomedK  s,   

rX  zmarkevery_log_scales.pngc            
      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  rC  rD  r   r   r   rC  r   r   r   r   rE  rF  r5   rH  rr   r6   r   rI  r  r   r  r  rJ  )rM  rQ   rN  rO  rc  rb   r   r   rd  r'   r1  r.   rP  rV  rL  r   rQ  r$   r$   r%   test_markevery_log_scalesf  s,   


rY  zmarkevery_polar.pngc            	      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  rC  rD  r   r   r   rC  r   r   r   r   rE  rF  r5   rK  r6   TpolarrI  r   r  r  rJ  )rM  rQ   rN  rO  rc  rb   r   r   rd  r'   r1  r.   rP  r   )	rR  rS  rT  r  r  r   rV  r  r  r$   r$   r%   test_markevery_polar  s&   
r\  z markevery_linear_scales_nans.pngc            
      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  rC  rD  r   r   r   rC  r   r   r   r   rE  rF  r5   rH  rr   r6   r   r  F   rI  r   r  r  rJ  )rM  rQ   rN  rO  rc  rb   r   r   ro  rd  r'   r1  r.   rP  r   rQ  r$   r$   r%   !test_markevery_linear_scales_nans  s*   
&r_  Zmarker_edgesc                  C   sz   t ddd} t \}}|j| t | ddddd |j| d t | ddddd |j| d	 t | ddd
dd d S )Nr   r5   rr   zy.      >@r  )rL  mewmecr   r   r6   r   )rb   r   r'   r   r   r   r/   r+   r#   r$   r$   r%   test_marker_edges  s
    $rd  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   r5   edger   )align
tick_labelr  r   r   )rf  rg  r  )r'   r+  r  r   )r#   r  r+   r$   r$   r%   test_bar_tick_label_single  s   
rh  c                  C   s&   t  \} }|ddgtjdg d S )Nr   r5   r  )r'   r   r  rb   ro  r*   r$   r$   r%   test_nan_bar_values  s   ri  c                  C   s   t  \} }|g g  d S r   )r'   r   r  r*   r$   r$   r%   test_bar_ticklabel_fail     rj  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 )
Nr5         @r6   r   r   r   r   rS   r~  rg  rf  )r'   r+  r  r  r$   r$   r%   test_bar_tick_label_multiple     
ro  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 )NrS   zytick.alignmentr5   rm  r6   r   r   r   r   rn  )rQ   r   r'   r+  r  r  r$   r$   r%   *test_bar_tick_label_multiple_old_alignment  s
   

rq  c                 C   s`   |   }g d}g d}dd |D }dd |D }|j||dd |  }|j||dd d S )Nr   g @g333333@r  r  r  gffffff
@g@c                 S      g | ]}t |qS r$   r   r   r$   r$   r%   r         z+test_bar_decimal_center.<locals>.<listcomp>c                 S   rt  r$   r   r   r$   r$   r%   r     ru  rS   rf  r   r  r!   r"   r#   x0y0r/   r0   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 )	Nrr  rs  c                 S   rt  r$   r   r   r$   r$   r%   r     ru  z,test_barh_decimal_center.<locals>.<listcomp>c                 S   rt  r$   r   r   r$   r$   r%   r     ru  )r   r   r5   r5   rS   r}  rf  r   r  rx  r$   r$   r%   test_barh_decimal_center  s   r~  c                 C   ^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nrr  rs  r*  g333333?r5   r6   c                 S   rt  r$   r   r   r$   r$   r%   r     ru  z*test_bar_decimal_width.<locals>.<listcomp>rS   r~  rf  rw  )r!   r"   r/   r0   Zw0r  r#   r$   r$   r%   test_bar_decimal_width      r  c                 C   r  )Nrr  rs  r  c                 S   rt  r$   r   r   r$   r$   r%   r     ru  z,test_barh_decimal_height.<locals>.<listcomp>rS   r|  r}  )r!   r"   r/   r0   Zh0rS  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 )
Nr5   r6   r  r   r  r  r  r   r  r   r   r   r   r5   r   r   r   r'   r+  r  get_facecolorget_edgecolorr#   rectsrectr$   r$   r%   test_bar_color_none_alpha     r  c                  C   r  )
Nr5   r6   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   rl  )
Nr5   rm  r6   r   r   r   r   rS   )r}  rg  rf  )r'   r+  r  r  r$   r$   r%   test_barh_tick_label,  rp  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.  r5   r   r   hoursr~  r6   )r  r~  )r}  )r}  r  r   c                 S   s   g | ]}t j|d qS )r  r  r   r  r$   r$   r%   r   H      z&test_bar_timedelta.<locals>.<listcomp>r  rr   r
  N)	r'   r   r  r  r  r  rb   r  broken_barhr*   r$   r$   r%   test_bar_timedelta4  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   r5   r   )r}  rK   )r~  rL   N)rb   r  r  r'   r   r  r   rV   r   r  ZAutoDateFormatterr  rT   )startstopr+   r#   r$   r$   r%   test_bar_datetime_startN  s   r  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r6   z1/1/2000r5   )years)periodsfreq	positions)	rb   rc   rs   
date_rangeZ
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   r  r   )r   r   r   r   )	capwidthswidthsr5   r   r6   r  r   r  r   r  r  r  )rb   rc   rs   r'   r   r  r  r+   rf  r$   r$   r%   test_boxplot_capwidthsg  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     r5   r  r   x   )secondsr   )Zpandas.plottingr  r  r'   r   r   r  rc  appendr  rb   rj   r  r   rz  canvasr   )r  r  r  r+   r#   timesZy_valsZ	time_axisZy_axisr  Zz_dataimr$   r$   r%   test_pcolor_regressionx  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  r5   r5   r5   r  )r  monthr  r  )r  r  r  dater  rr   rS   r  oranger  r  )		DataFrameto_datetimegroupbyrP  indexr'   r   r  r   )r  dfZmonthlydatesZforecastbaseliner+   r#   r$   r$   r%   test_bar_pandas  s   r  c                 C   sD   | j g dg ddg dd}t \}}|j|jd|jd d S )N)r   r   rK  r   r  r)  )r/   r~  r  r  r   r  )r  r'   r   r  r/   r~  r  r  r+   r#   r$   r$   r%   test_bar_pandas_indexed  s
   r  c                 C   sh   |   }|  }ddg}ddg}ddg}tdD ]}|j|| || d|| d q|j|||d d S )	Nr5   r6   r   r/   r   rt  )r   r  r  )r   r   r  )r!   r"   rn   ro   r/   r0   hatchesr   r$   r$   r%   test_bar_hatches  s    r  )r/   r~  r-   expected_labelscontainer_labelr/   
_nolegend_r   r   r9   )rr   r
  r   ABr?  )r-  r  r  bars)r  r  r  c           	      C   sJ   t  \}}|j| ||d}dd |D }||ksJ | |ks#J d S )Nr8  c                 S      g | ]}|  qS r$   )	get_label)r   r  r$   r$   r%   r     ru  z#test_bar_labels.<locals>.<listcomp>)r'   r   r  r  )	r/   r~  r-   r  r  r  r#   bar_containerZ
bar_labelsr$   r$   r%   test_bar_labels  s
   r  c                  C   s   t  \} }tt |jddgddgg dd W d    n1 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/   r0   r5   r6   )r  r  r{  r8  r  )r'   r   r   r   r1  r  r  r$   r$   r%   test_bar_labels_length  s   "r  c                 C   s   | j ddgdd| j ddgddfD ]}t|| t|j| t| t|j q| dg di}t| t|| d S )Nr5   r6   float64rp  ZFloat64r  r  )Seriesr'   r   r  r  )r  r/   r  r$   r$   r%   test_pandas_minimal_plot  s   

r  zhist_log.pngc                  C   sH   t dddd } t d|  d|  g}t \}}|j|ddd d S )Nr   r5   rC  r   FT)r  r  )rb   r   concatenater'   r   hist)Zdata0r  r+   r#   r$   r$   r%   test_hist_log  s   r  c                 C   s   |  dd}| dd}tg dD ]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 )
Nr6   r   )r  step
stepfilledr   r  r5   histtypeT)r  r  )r   rd  rh  r  )r!   r"   r   r   r   r  r#   r$   r$   r%   test_hist_log_2  s   r  c                  C   s   t d\} }|d jdgddggddd |d d |d jg dddd |d d | j  |d  |d  ksCJ d S )Nr6   r   r5   
barstackedr  r  r   r   r5   )r'   r   r  rh  r  r   r   r+   rf  r$   r$   r%   test_hist_log_barstacked	  s   
 r  zhist_bar_empty.pngc                  C      t  } | jg dd d S )Nr  r  r'   r+  r  r  r$   r$   r%   test_hist_bar_empty	     r  c                  C   s   t jd t t jjddddddt j} tj| ddd	}|d
 }t	dt
|D ]}||d   }||  }|d d |d d ksIJ q+d S )NrX   r   r   r'  sizer   r5   r   )r>  r  r6   )rb   rc   rd   clipre   ru   Zfloat16r'   r  r   rc  Zget_corners)r  rS  bcr  ZrleftZrrightr$   r$   r%   test_hist_float16	  s   r  zhist_step_empty.pngc                  C   r  )Nr  r  r  r  r$   r$   r%   test_hist_step_empty!	  r  r  zhist_step_filled.pngc            
      C   s   t jd t jdd} d}ddiddidd ii gd }d	gd
 dgd
  }tjdd
d\}}t|||jD ]"\}}}|j| |f|dd| |	| d|  |j
dd q7|d j}	tdd |	D sjJ d S )Nr   r'  r   rr   r  TFr6   r  r  r  nrowsncolsr  stackedr  r  rK   r]  c                 s   s     | ]}|  | kV  qd S r   )r  r  r   r   r$   r$   r%   	<genexpr>8	  s    z(test_hist_step_filled.<locals>.<genexpr>)rb   rc   rd   r  r'   r   r  re  r  r2   r  r  all)
r/   Zn_binsr  typesr+   rf  Zkg_typer#   r  r$   r$   r%   test_hist_step_filled(	  s   
r  zhist_density.pngc                  C   s6   t jd t jd} t \}}|j| dd d S )NrX   r&  Tdensity)rb   rc   rd   rN  r'   r   r  r  r+   r#   r$   r$   r%   test_hist_density;	  s   r  c                  C   sV   t jd} | d}g d}tj||dd\}}}t j||dd\}}t|| d S )Ni  r   )r  r   rx  r   r5   r   T)r>  r   )rb   rc   ZRandomStater  r'   r  Z	histogramr   )rngr  r>  Zmpl_heightsr  Z
np_heightsr$   r$   r%   test_hist_unequal_bins_densityC	  s   
r  c                  C   sd   t  dddt  dddgt  dddt  dddgg} t \}}|j| dd |j| dd d S )N  r5   r6   T)r  F)r  r'   r   r  r  r$   r$   r%   test_hist_datetime_datasetsN	  s   r  bins_preprocessc                 C      | S r   r$   r=  r$   r$   r%   ra  X	      ra  c                 C   s   t | dS )Nr  )rb   r  r=  r$   r$   r%   ra  Y	  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  r5   r   r  r6   r   r  T)r>  r  F)
r  r'   r   r  rb   r   r   r   r  r  )r  r  Z
date_edgesr+   r#   r  r>  r$   r$   r%    test_hist_datetime_datasets_binsV	  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 )Nr5   r   )r'   r  rb   r  ndimr  )r  Zexpected_number_of_histsZhistsr  r$   r$   r%   test_hist_with_empty_inputm	  s
   

r  zhisttype, zorderr  r  r  c                 C   sH   t   }|jddg| d |jsJ |jD ]
}| |ks!J qd S )Nr5   r6   r  )r'   r   r   r  r  
get_zorder)r  r  r#   r   r$   r$   r%   test_hist_zorder{	  s   

r  c                  C   s\   t  \} }tjtdd |jg dg ddd dd W d    d S 1 s'w   Y  d S )Nzbaseline=None and fill=Truer6  )r  r   r5   r   r6   )r5   r6   r   r  r   r   r   T)r  r  r  )r'   r   r   rW  r  stairsr*   r$   r$   r%   "test_stairs_no_baseline_fill_warns	  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      rx   %   0   rx   r  r  )	r   r   rK  rm  r        @      @       @      "@r   r6   r  r5   rM   )r  rO   rN   r  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrb   r  r   flattenr  Zsemilogyru  r   r  add_liner   r  r  )r!   r"   Zmlinesr0   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)r5   r6   r   r  r6   r   r5   r6   r   r  r   r  r6   r   Tr  r5   rM   )rO   r  )r  r  r   )r  rO   r  r   post)r  r  )r   r"  r  rs  rb   r  r  r  r  r   rc  )r!   r"   rS  r>  bsr$  r%  r$   r$   r%   test_stairs_fill	  s,   ""r+  c                 C   s  d}|   }|g d}|| |g d |jtdd d |g dtdd  |g d |d td t| d td	dsQJ t| d	 tds`J |jd
d | jd
ksoJ |  }|jg dd
d}|| d S )N)r  r  r  r1  r  r6   edges)r5   r6   r5   r   r5   r  r  )	r   r  r  set_datarb   rj   allcloseget_datar  )r!   r"   r   test_axrS  ref_axr$   r$   r%   test_stairs_update	  s    
 r3  c                 C   sn   t g d}t g d}|  }|j||d d ddd}| }|j|t ||d fdd	i| d S )
N)r   r6   r   r   rr   )g|?5^?gV-?g+?r  r  r  r  r  r   r  r  )rb   r  r   r  r   r  )r!   r"   r/   r0   r$  r   r%  r$   r$   r%   test_stairs_baseline_None	  s   
(r4  c                  C   s>   t   } | g dg |  dksJ |  dksJ d S )N*   )'   r!  r  )r'   r   r   r  r   r   r  r$   r$   r%   test_stairs_empty	  s   r7  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"r6  r5   r6   r   )r   r   r1  r'   r  rb   ro  r$   r$   r$   r%   test_stairs_invalid_nan
  s   "r9  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 mismatchr6  r5   r6   r   )r   r   r1  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 )Nr5   r6   r  r8  r6  r,  )r'   r  r   r   r1  r.  rb   ro  rS  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 )Nr5   r6   r  r:  r6  r   r,  )r'   r  r   r   r1  r.  rb   rj   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r5   r6   r   r  r   rj  r5   r   r   Tr  )r   r  r-   r  rM   r  )r   r  rO   r-   r  r  r6   r?  )r   rK  r  r-   r   r  )rK  r  r  rO   r-   r      E)r   rK  r  r  r-   r  r  r  F)r  r   rK  r  r-   r   r     r   G)r  r   rK  r-   r  r  r  r  //H)r   rK  r  r  r  r-   r   r<   )rb   r  ru   rs  copyro  r'   r   r  r   rc  rE   )r/   r0   Zynr+   r#   r$   r$   r%   test_stairs_options
  s2   $
&.4rH  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  rb   rj   r  xticks)fr#   r$   r$   r%   test_stairs_datetime4
  s   rN  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"   r1  r2  str$   r$   r%   test_stairs_edge_handling=
  s
   rQ  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nr  r      r  )rb   r   r-  r   r  )r/   r0   r  r$   r$   r%   contour_datI
  s   "
rS  Zcontour_hatchingc               
   C   s@   t  \} }}t \}}|j| ||dg dtjd ddd d S )Nr  )r  \rE  r  r  r   r   )r  r~   extendr  )rS  r'   r   r  r   r  r	  r$   r$   r%   test_contour_hatchingP
  s   
rV  Z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   RdBug333333r)  r   )levelsr~   r5  r6  rU  gg^I+r0   r   r6   )rX  r9  
linestylesr  r  r9   )rX  r9  r  r  F)Zerase)rS  r'   r   r  rb   rj   r   r  r|  rF   Z	add_lines)	r/   r0   r  r+   r#   csZcs1Zcs2rI   r$   r$   r%   test_contour_colorbarY
  s(   
r[  z
hist2d.pngc                  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 )NFrI  r   r   r6   r   rr   Tr>  
rasterizedr   r/   r0   )r>  r  r]  )r'   r   rb   rc   rd   r  r   hist2d)r/   r0   r+   r#   r  r$   r$   r%   test_hist2dp
  s   

r_  zhist2d_transpose.pngc                  C   sX   dt jd< tjd tdgd } tjdd }t  \}}|j| |ddd	 d S )
NFrI  r   r   r   r6   rr   Tr\  )	r'   r   rb   rc   rd   r  r  r   r^  rp  r$   r$   r%   test_hist2d_transpose
  s   
r`  c                  C   s>   t jd\} }t  }|tfD ]
}|j| |dd qd S )NrD  Tr  )rb   rc   r'   r   r   r^  )r/   r0   r#   objr$   r$   r%   test_hist2d_density
  s
   rb  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TestScatterr7   r   TrY  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  r6   r   r6   r   r6   r   r  r0   r   limer  r         )0.50.60.7z0.8)r/   r0   r9   r  c2r/   r   r0   r9   r  r9   r  rn  )r9   r  r  )rb   r  r'   r   r7   )r<  r  r+   r#   r$   r$   r%   test_scatter_plot
  s   **zTestScatter.test_scatter_plotzscatter_marker.pngrb  c           
   
   C   s   t jdd\}\}}}|jg dg dg dg dg ddd	 |jg dg dg dg dg dtjd
ddd	 d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jg dg dg dg dg d|	d	 d S )Nr   r  rd  re  )r5   r   r   r0   r   rg  )r  r  r  r   )r  r  gr   r  )r9   r  r  r{   r   r;   	fillstyler  r   r6   r  )r'   r   r7   r2  r3  rb   r   r   Zcolumn_stackr-  r   )
r<  r+   r4  r   r   rxZryZarear  r  r$   r$   r%   test_scatter_marker
  s2   
zTestScatter.test_scatter_markerZ
scatter_2Dr   )rc  r   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r6   rC  face)r9   r  r  )rb   rj   r  r'   r   r7   )r<  r/   r0   r  r+   r#   r$   r$   r%   test_scatter_2D
  s   

zTestScatter.test_scatter_2Dr   c           
      C   s   t g d}t g d}t dd |D }t dd |D }g d}g d}| }	|	j||||d | }	|	j||||d d S )	Nrr  rs  c                 S   rt  r$   r   r   r$   r$   r%   r   
  ru  z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   rt  r$   r   r   r$   r$   r%   r   
  ru  rf  rh  ro  )rb   r  r   r7   )
r<  r!   r"   ry  rz  r/   r0   r9   r  r#   r$   r$   r%   test_scatter_decimal
  s   z TestScatter.test_scatter_decimalc                 C   s   t t tjddgddgddgd W d    n1 sw   Y  t t tjg dg dg dd W d    d S 1 sBw   Y  d S )Nr5   r6   r   r   r  r  )r   r   r1  r'   r7   r;  r$   r$   r%   test_scatter_color
  s   "zTestScatter.test_scatter_colorr  r~   r  r4  r5  r   r6  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 r6  r5   r6   r   r  r9   r   )r   rW  Warningr'   r7   )r<  r  Z
warn_matchr$   r$   r%   test_scatter_color_warning
  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  r5   r   r6   0.1z0.3rk  r   r  rt  r  r  ?r9   r{   r  )r   r  r   r   r   r5   r   r   r   r5   r   r   r   r5   )	r'   r7   r2  r3  get_facecolorsr  r   get_edgecolorsget_linewidthsr<  collr$   r$   r%   test_scatter_unfilled
  s   z!TestScatter.test_scatter_unfilledri  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'   r7   r   r  r  r  r  r$   r$   r%   test_scatter_unfillable
  s   z#TestScatter.test_scatter_unfillablec                 C   s   t d}tjtdd t|||dd   W d    n1 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 yr6  r5   zfloat array-liker  )rb   rj   r   r   r1  r'   r7   )r<  r/   r$   r$   r%   test_scatter_size_arg_size  s   
 "z&TestScatter.test_scatter_size_arg_sizec                 C   sj   t jg ddtjtjgdd}t| dsJ t jg ddtjtjdgdd}t| ds3J d S )Nr  r5   rr  r  rj  r0  )r'   r7   rb   ro  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  r5   r  r6   rj  Tr9   r  r~   Zplotnonfiniter   r   r9   r  r~   )r  r   	r   r   r  r  Zset_badr7   r   rb   ro  r<  r!   r"   r#   r~   r$   r$   r%   test_scatter_invalid_color  s   $"z&TestScatter.test_scatter_invalid_colorc                 C   s   |  }tjd d}|dd |jtdtddtjdtjgg d|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  r  r5   r  r6   rj  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  r6  r  rr   r   r   )r9   r4  r5  r6  N)r'   r/  r   r   r1  r7   r  r  )r<  r/   r#   r$   r$   r%   test_scatter_norm_vminvmax1  s   "z&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  }|jdddd |  }|jdgdgdgd d S )Nr5   r  )r   r7   )r<  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 )Nrr   r6   r   r  )rb   rj   r   r7   r   )r<  r!   r"   r/   r#   r$   r$   r%   test_scatter_different_shapesB  s
   
 $z)TestScatter.test_scatter_different_shapes)rk  NZrgby
conversion)r  N)r  N)NN)r  rs  r   r  N)jauner  r  r  r   r   r   r  )rk  z0.4rl  rm  )rk  r  rl  C5)rk  r   rl  r  rr  r5   r   r   r   r  z0.0r  r   r5   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_colorz  r   z2TestScatter.test_scatter_c.<locals>.get_next_colorr  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  r6  r   (argument looks like a single numeric RGBr  r9   r  r  xsizeget_next_color_func)r   r   r1  r   r  rc  rW  
contextlibnullcontextr   r/  r   _parse_scatter_color_args)r<  Zc_caseZre_keyr  r  REGEXPZassert_contextr$   r$   r%   test_scatter_cx  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)r5   r   皙?)r5   r   r  r   r   r  r  r6   r  )r   r7   rb   r   r   )r<  r!   r"   rgbZ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   r?  r/   r   r5   )r9   r{   r  r  C3lines.linewidth)rb   rj   r'   r   r   r7   r\   r  r   r   r   )r<  r/   r+   r#   r   Z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 anotherr6  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'   r7   r;  r$   r$   r%   &test_scatter_singular_plural_arguments  s*    "z2TestScatter.test_scatter_singular_plural_arguments)!r@  rA  rB  r   rp  rw  ry  r   rz  r{  r   markparametrizer  r  r}  r  r   r   contextr  r  r  r  r  r  r  r  Zparams_test_scatter_cr  r  r  r  r$   r$   r$   r%   rc  
  s    


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



	
	











+


rc  )r  c                K   s   | |||fS r   r$   )r9   r  r  r  r$   r$   r%   _params     r  _resultz	c, colorszparams, expected_resultr   r  )r9   r9  r  r  r0  r  rs  )r   r   r   r5   c                 C   s@   dd }t jjj| d|i\}}}||jksJ t||j d S )Nc                   S   r   r  r$   r$   r$   r$   r%   r    r   z5test_parse_scatter_color_args.<locals>.get_next_colorr  )r   r/  r   r  r9   r   r9  )paramsZexpected_resultr  r9   r9  Z_edgecolorsr$   r$   r%   test_parse_scatter_color_args  s   r  zkwargs, expected_edgecolorsr  rx  r  )r  r  )r9   r  r  )r   r  c                 C   sN   dd }|  dd }|  dd }tjjj||| d|d\}}}||ks%J d S )Nc                   S   r   r  r$   r$   r$   r$   r%   r    r   z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr9   r  r6   )r  r  )popr   r/  r   r  )r  Zexpected_edgecolorsr  r9   r  r  Zresult_edgecolorsr$   r$   r%   (test_parse_scatter_color_args_edgecolors  s   
r  c                  C   sj   dd } t jtdd  tg dg dg}tjjj|d i d| d W d    d S 1 s.w   Y  d S )	Nc                   S   r   r  r$   r$   r$   r$   r%   r    r   z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 ranger6  )r   r   r*  )r   r  gffffff?r6   r  r  r  )	r   r   r1  rb   r  r   r/  r   r  )r  r9   r$   r$   r%   #test_parse_scatter_color_args_error  s   
"r  zYou passed both c and facecolor/facecolors for the markers. c has precedence over facecolor/facecolors. This behavior may change in the future.)r  r   r  r   r   r)  rr  r  r  )r5   r5   r   zc, facecolorc                 C   s   dd }t jttd tjjj| dd|id|d W d   n1 s$w   Y  t jttd tjjj| dd|id|d W d   dS 1 sJw   Y  dS )	z<Test the internal _parse_scatter_color_args method directly.c                   S   r   r  r$   r$   r$   r$   r%   r    r   z=test_parse_c_facecolor_warning_direct.<locals>.get_next_colorr6  Nr  r6   r  r  )r   rW  r  WARN_MSGr   r/  r   r  )r9   r  r  r$   r$   r%   %test_parse_c_facecolor_warning_direct  s   

"r  c                 C   s   t  \}}t| ttfrddgndg}|}tjttd |j	||| |d W d   n1 s1w   Y  tjttd |j	||| |d W d   dS 1 sRw   Y  dS )z:Test the warning through the actual scatter plot creation.r   r5   r6  )r9   r  N)r9   r  )
r'   r   r   r  tupler   rW  r  r  r7   )r9   r  r+   r#   r/   r0   r$   r$   r%   ,test_scatter_c_facecolor_warning_integration*  s   "r  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_offsetr;  r$   r$   r%   __init__=     
z,test_as_mpl_axes_api.<locals>.Polar.__init__c                 S   s   t d| jifS )Nr  )r   r  r;  r$   r$   r%   _as_mpl_axes@  s   z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r@  rA  rB  r  r  r$   r$   r$   r%   Polar<  s    r  r  r  y   )	rb   r   r  r'   r/  typer   r2  r1  )r  ZprjZprj2r#   r$   r$   r%   test_as_mpl_axes_api:  s   r  c                  C   sZ   t  \} }t  \}}t | |t  u sJ | t  u s!J t |  t | d S r   )r'   r   Zscar+  Zgcfr2  )fig1r   fig2r   r$   r$   r%   test_pyplot_axesS  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        @r  r  c                 s   s"    | ]}d d |  D V  qdS )c                 S   s   g | ]}|  |j fqS r$   )Zget_loclabel1get_textr  r$   r$   r%   r   e  r   z-test_log_scales.<locals>.<genexpr>.<listcomp>N)Z_update_ticks)r   r   r$   r$   r%   r  d  s
    
z"test_log_scales.<locals>.<genexpr>))r   z$\mathdefault{9^{0}}$)r  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   rK  r   rm  r   r  r   )r  r   )r  r   )r  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)r  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   r  r  r  r  )r'   r   r   rb   r  r   rh  rg  r  rT   rV   )r+   r#   rL  Zyticksr$   r$   r%   test_log_scales^  s   

r  c                  C   sT   t  \} }|jddd |jtd | |   kr%dks(J  J d S )Nr  )rV  rL  r5   r5   rr   )	r'   r   r   rT   r   r   ZMultipleLocatorr   r   r  r$   r$   r%   test_log_scales_no_data  s   (r  c                  C   s   t  \} }|d tjtdd |dd W d    n1 s#w   Y  |d tjtdd |dd W d    d S 1 sFw   Y  d S )Nr  zAttempt to set non-positiver6  r   rr   )	r'   r   r  r   rW  r  r  rh  r  r*   r$   r$   r%   test_log_scales_invalid  s   

"r  zstackplot_test_image.pngc                  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   rr   r   r   r5   rK  r6   r   rr   r   r^  )r/   rg  r"  y3r/   rg  r"  r  )rt  C1C2)r  r9  )	r'   r   rb   r   r   	stackplotr  r  r   )r+   r/   rg  r"  r  r#   r  r$   r$   r%   test_stackplot  s   


r  zstackplot_test_baseline.pngc                  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   r5   r   r6   r   rr   )rb   r  r   rc   exprj   )rR  r5  r   r   jr/   r0   r  r$   r$   r%   layers  s   <z'test_stackplot_baseline.<locals>.layersr   r   r  r6   r]  zeror  r  symr5   r   Zwiggler  Zweighted_wiggle)rb   rc   rd   r'   r   r  r   r  )r  r  r+   rf  r$   r$   r%   test_stackplot_baseline  s   

r  c           	      C   s   t ddd}d| }d| d }d| d }| }|j||||g dd	gd
 |d |d t t|}|  }|j|||dd	d |j|||| dd	d |j||| || | dd	d |d |d d S )Nr   rr   r   r   r5   rK  r6   )r/   rE  \\r  )r  r9  r  r  r/   )r  r  rE  r  )	rb   r   r   r  r  r  r  rc  rs  )	r"   r!   r/   rg  r"  r  rn   Zstack_baselinero   r$   r$   r%   test_stackplot_hatching  s   

 
r  c                  C   s^   t  } | jddd}|D ]}|jddd}|jddgddggdgd q|   |   d S )Nr5   r6   r  r   r  r   labels)r'   r   Z
subfiguresr   r  rE   draw_without_rendering)r+   ZsubfigsZ_figr#   r$   r$   r%   test_stackplot_subfig_legend  s   r  c                 C   r  r   r$   )r  r$   r$   r%   ra    r	  c                 C   s   t jd tjjt jjddddfi | }t \}}|	dddkr+|
d n|d |	d	d
s>tjd tjd< |j||fi | d S )N  r  r   )r  r  )meansigmar  rO   verticalr  patch_artistFr  boxplot.boxprops.linewidth)rb   rc   rd   r   ZcbookZboxplot_statsZ	lognormalr'   r   getrh  r  r   Zbxp)stats_kwargstransform_stats
bxp_kwargsZlogstatsr+   r#   r$   r$   r%   _bxp_test_helper  s   
r  zbxp_baseline.pngr  )r  r   c                   C   s
   t   d S r   r  r$   r$   r$   r%   test_bxp_baseline  s   
r  zbxp_rangewhis.pngc                   C      t tddgdd d S )Nr   r   Zwhisr  r  r  r$   r$   r$   r%   test_bxp_rangewhis     r  zbxp_percentilewhis.pngc                   C   r  )Nr   _   r  r  r   r$   r$   r$   r%   test_bxp_percentilewhis  r  r  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   $   t | tdD ]\}}||d< q| S NZABCDr-   r  r  statsr  r-   r$   r$   r%   r
       
z(test_bxp_with_xlabels.<locals>.transform)r  r  r
  r$   r$   r%   test_bxp_with_xlabels  s   r  zbxp_horizontal.pngr   )rc  r  r   r   c                   C      t tddd d S )NrM   rN   r  r   r$   r$   r$   r%   test_bxp_horizontal   s   r  zbxp_with_ylabels.png)r  r   r   c                  C      dd } t | tddd d S )Nc                 S   r  r  r  r  r$   r$   r%   r
  .  r
  z(test_bxp_with_ylabels.<locals>.transformrM   rN   r  r  r   r  r$   r$   r%   test_bxp_with_ylabels)     
r  zbxp_patchartist.png)rc  r  r   c                   C   r  )NT)r  r  r   r$   r$   r$   r%   test_bxp_patchartist7     r  zbxp_custompatchartist.pngr   c                   C       t tdtdddddd d S )NTr)  r   :)r  r  rK  )r  boxpropsr  r   r$   r$   r$   r%   test_bxp_custompatchartist?     r  zbxp_customoutlier.pngc                   C      t ttdddddd d S )Nr  r  rs  r   r{   mfc)Z
flierpropsr  r   r$   r$   r$   r%   test_bxp_customoutlierI     r  zbxp_withmean_custompoint.pngc                   C   r  )NTr  r  r   r  )	showmeansZ	meanpropsr  r   r$   r$   r$   r%   test_bxp_showcustommeanR  r  r!  zbxp_custombox.pngc                   C   r  )Nr  r   r   r   r   r  )r  r  r   r$   r$   r$   r%   test_bxp_custombox]  r  r#  zbxp_custommedian.pngc                   C   r  )Nr  r   r   r"  Zmedianpropsr  r   r$   r$   r$   r%   test_bxp_custommedianf  r  r%  zbxp_customcap.pngc                   C   r  )Nr  rs  r   r"  )Zcappropsr  r   r$   r$   r$   r%   test_bxp_customcapo  r  r&  zbxp_customwhisker.pngc                   C   r  )Nr  r5  r   r"  )Zwhiskerpropsr  r   r$   r$   r$   r%   test_bxp_customwhiskerx  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$  )rb   rj   r   r  )r!   r"   r  Zmedianprops_testZmedianprops_refr$   r$   r%    test_boxplot_median_bound_by_box  s
   
r(  zbxp_withnotch.pngc                   C   r  )NT)Zshownotchesr  r   r$   r$   r$   r%   test_bxp_shownotches  r  r)  zbxp_nocaps.pngc                   C   r  )NF)Zshowcapsr  r   r$   r$   r$   r%   test_bxp_nocaps  r  r*  zbxp_nobox.pngc                   C   r  )NF)Zshowboxr  r   r$   r$   r$   r%   test_bxp_nobox  r  r+  zbxp_no_flier_stats.pngc                  C   r  )Nc                 S   s   | D ]}| dd  q| S )Nfliers)r  )r	  r  r$   r$   r%   r
    s   z*test_bxp_no_flier_stats.<locals>.transformF)Z
showfliersr  r   r  r$   r$   r%   test_bxp_no_flier_stats  r  r-  zbxp_withmean_point.pngc                   C   s   t tdddd d S )NTFr   Zmeanliner  r   r$   r$   r$   r%   test_bxp_showmean     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  r0  r1  zbxp_scalarwidth.pngc                   C   r  )Nr  r  r  r   r$   r$   r$   r%   test_bxp_scalarwidth  r  r2  zbxp_customwidths.pngc                   C      t tg ddd d S )N)r   r  g?g333333?r  r  r   r$   r$   r$   r%   test_bxp_customwidths     r4  zbxp_custompositions.pngc                   C   r3  )N)r5   r   r   r  r  r  r   r$   r$   r$   r%   test_bxp_custompositions  r5  r6  c                   C   B   t t ttdgdd W d    d S 1 sw   Y  d S )Nr5   r  r  r   r   r1  r  r  r$   r$   r$   r%   test_bxp_bad_widths     "r9  c                   C   sD   t t ttddgdd W d    d S 1 sw   Y  d S )Nr6   r   r  r  r8  r$   r$   r$   r%   test_bxp_bad_positions  s   "r;  zbxp_custom_capwidths.pngc                   C   r3  )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  )Nr)  r  r  r   r$   r$   r$   r%   test_bxp_custom_capwidth  s   r=  c                   C   r7  )Nr5   r  r  r8  r$   r$   r$   r%   test_bxp_bad_capwidths  r:  r>  zboxplot.pngg{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     rC  '  r5   	bootstrapnotchr(  r   r/   )rC  rD  r  	rb   rc   rd   r   hstackr'   r   r  r  )r/   r+   r#   r  r$   r$   r%   test_boxplot  s   
rH  c                 C   sP   t ddd}|  }||dk }|| t j|d}| }|| d S )Nr   r5   rC  r   )rb   r   r   r  r	   Zmasked_less)r!   r"   Zx_origr#   r/   r$   r$   r%   test_boxplot_masked  s   
rI  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@  rC  r5   r  r   )rD  r  )rb   r   rG  r'   r   r  rc  r$   r$   r%   test_boxplot_custom_capwidths  s   rJ  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@  rC  r5   r6   rA  ^)rC  r  rE  rs  rF  )r/   r+   r   r   r$   r$   r%   test_boxplot_sym2!  s   
rL  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@  rC  rT  r  rE  )rb   r   rG  r'   r   r  r  rc  r$   r$   r%   test_boxplot_sym1  s
   rN  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   r6   rA  r5   rB  )re  r   T)rC  rD  Z	autorange)	rb   rc   rd   r   rG  r'   r   r  r  )r/   r  r   r  r   r$   r$   r%   test_boxplot_autorange_whiskers>  s   

rO  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@  rC  )rb   r   rG  rQ   r   r  )r#   rc_dictr/   r$   r$   r%   _rc_test_bxp_helperQ  s   
rQ  zboxplot_rc_parameters.png)r  rc  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"gdd#}dd$d$d$dddddddd%d&}|||g}t||D ]	\}}t|| qitjj	d'd( |d) 
 D v sJ d S )*Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstraprA  zboxplot.flierprops.colorr   boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorrs  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.colorr9   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyler   r   )rR  zboxplot.patchartistF-.)rR  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   rt  r$   )r  r  r$   r$   r%   r     ru  z.test_boxplot_rc_parameters.<locals>.<listcomp>r5   )rb   rc   rd   r'   r   r  rQ  rQ   r  r  get_children)r+   r#   Zrc_axis0Zrc_axis1Zrc_axis2	dict_listr   Zrc_axisr$   r$   r%   test_boxplot_rc_parametersY  s|   	

rW  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@  rC  r  rK  r        @rA  r   r5   )rC  usermediansconf_intervalsrD  rE  )
rb   rc   rd   r   rG  r'   r   r  r  r  )r/   r+   r#   ZCIsr$   r$   r%   test_boxplot_with_CIarray  s   r[  zboxplot_no_inverted_whisker.pngc                  C   sP   t jg dt jd} t }||  |d |jjddd |j	d d S )N)r   i(#  rR  X   i^  i@ ix  i  rp  r  Fminorwhich)
rb   r  r  r'   r/  r  rh  rV   r  rT   )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@  rC  r5   r6   )rY  	rb   r   rG  r'   r   r   r   r1  r  rc  r$   r$   r%   test_boxplot_bad_medians  s    "rb  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@  rC  r5   r6   )rZ  ra  rc  r$   r$   r%   test_boxplot_bad_ci  s   "rc  c                  C   sZ   t d} t \}}|| d d  dksJ |j| ddd d  dks+J d S )Nrr   boxesr   r6   r  )rb   rj   r'   r   r  r  )r/   r4  r#   r$   r$   r%   test_boxplot_zorder  s   
&rf  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   rS  rK  zboxplot.meanprops.markerr   rR  r   T)r   )ZwhiskersZcapsrd  Zmediansr   r,  r   Zmeans)r'   r   r   rb   rj   r  
get_marker)r+   r#   Z	test_dataZ
bxp_handleZ	bxp_linesZ	each_liner$   r$   r%   test_boxplot_marker_behavior  s   



rh  z&boxplot_mod_artists_after_plotting.pngc                  C   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d qqd S )N)r  rH  r   r   Q?gQ?gQr   rM  r   )r'   r   r  rO  )r/   r+   r#   bpkeyra  r$   r$   r%   &test_boxplot_mod_artist_after_plotting  s   rl  zviolinplot_vert_baseline.pngc                  C   sp   t jd dd tdD } t }|j| tddddd d| i} t \}}|jdtdddd| d d S )	Niec                 S      g | ]	}t jjd dqS r   r  rb   rc   re   r   r  r$   r$   r%   r     r   z1test_vert_violinplot_baseline.<locals>.<listcomp>r  Fr  r   showextremashowmediansr  )r  r   rr  rs  r  )rb   rc   rd   r   r'   r/  
violinplotr   )r  r#   r+   r$   r$   r%   test_vert_violinplot_baseline  s   
ru  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   rm  rn  ro  rp  r$   r$   r%   r     r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>r  TFrq  r'   r/  rb   rc   rd   r   rt  r#   r  r$   r$   r%   test_vert_violinplot_showmeans      
rx  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   rm  rn  ro  rp  r$   r$   r%   r     r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>r  FTrq  rv  rw  r$   r$   r%    test_vert_violinplot_showextrema
  ry  rz  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   rm  rn  ro  rp  r$   r$   r%   r     r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>r  FTrq  rv  rw  r$   r$   r%    test_vert_violinplot_showmedians  ry  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   rm  rn  ro  rp  r$   r$   r%   r   #  r   z0test_vert_violinplot_showall.<locals>.<listcomp>r  Tr   ?r   r  r   r*  r  r)  )r  r   rr  rs  	quantilesrv  rw  r$   r$   r%   test_vert_violinplot_showall  s   
r~  z#violinplot_vert_custompoints_10.pngc                  C   D   t  } tjd dd tdD }| j|tdddddd d S )Ni$c                 S   rm  rn  ro  rp  r$   r$   r%   r   .  r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r  Frr   r  r   rr  rs  pointsrv  rw  r$   r$   r%   $test_vert_violinplot_custompoints_10)     
r  z$violinplot_vert_custompoints_200.pngc                  C   r  )NiYqVc                 S   rm  rn  ro  rp  r$   r$   r%   r   8  r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r  FrC  r  rv  rw  r$   r$   r%   %test_vert_violinplot_custompoints_2003  r  r  zviolinplot_horiz_baseline.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )Ni\dc                 S   rm  rn  ro  rp  r$   r$   r%   r   B  r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>r  rM   Fr  rO   r   rr  rs  rv  rw  r$   r$   r%   test_horiz_violinplot_baseline=  r  r  z violinplot_horiz_showmedians.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nilo/c                 S   rm  rn  ro  rp  r$   r$   r%   r   L  r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r  rM   FTr  rv  rw  r$   r$   r%   !test_horiz_violinplot_showmediansG  r  r  zviolinplot_horiz_showmeans.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Ni&c                 S   rm  rn  ro  rp  r$   r$   r%   r   V  r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r  rM   TFr  rv  rw  r$   r$   r%   test_horiz_violinplot_showmeansQ  r  r  z violinplot_horiz_showextrema.pngc                  C   sD   t  } tjd dd tdD }| j|tdddddd d S )	Nie!c                 S   rm  rn  ro  rp  r$   r$   r%   r   `  r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r  rM   FTr  rv  rw  r$   r$   r%   !test_horiz_violinplot_showextrema[  r  r  zviolinplot_horiz_showall.pngc                  C   s^   t  } tjd dd tdD }| j|tdddddddgd	d
gddgddggd d S )Ni"c                 S   rm  rn  ro  rp  r$   r$   r%   r   j  r   z1test_horiz_violinplot_showall.<locals>.<listcomp>r  rM   Tr   r|  r   r  r   r*  r  r)  )r  rO   r   rr  rs  r}  rv  rw  r$   r$   r%   test_horiz_violinplot_showalle  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   rm  rn  ro  rp  r$   r$   r%   r   u  r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r  rM   Frr   r  rO   r   rr  rs  r  rv  rw  r$   r$   r%   %test_horiz_violinplot_custompoints_10p     
r  z%violinplot_horiz_custompoints_200.pngc               	   C   r  )	Ni<9!c                 S   rm  rn  ro  rp  r$   r$   r%   r     r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r  rM   FrC  r  rv  rw  r$   r$   r%   &test_horiz_violinplot_custompoints_200z  r  r  zviolinplot_sides.pngc               
   C   s   t  } tjd tjjddg}tg dg dD ]\}}| j||gdddd|d	 qtg d
g dD ]\}}| j||gdddd|d	 q6d S )NrX   r   r  )r   rx  r   )r   lowhighrM   FT)r  rO   r   rr  rs  side)r  rX        @r  )r'   r/  rb   rc   rd   re   r  rt  )r#   r  r   r  r$   r$   r%   test_violinplot_sides  s   r  c                  C   sh   t  } tjd dd tdD }tt | j	|tdd W d    d S 1 s-w   Y  d S )Ni@ 3c                 S   rm  rn  ro  rp  r$   r$   r%   r     r   z1test_violinplot_bad_positions.<locals>.<listcomp>r  r   r  
r'   r/  rb   rc   rd   r   r   r   r1  rt  rw  r$   r$   r%   test_violinplot_bad_positions  s   "r  c                  C   sn   t  } tjd dd tdD }tt | j	|tdg dd W d    d S 1 s0w   Y  d S )NiA#c                 S   rm  rn  ro  rp  r$   r$   r%   r     r   z.test_violinplot_bad_widths.<locals>.<listcomp>r  r  )r  r  r  rw  r$   r$   r%   test_violinplot_bad_widths  s   "r  c                  C   sn   t  } tjd tjjddg}tt | j	|ddgddggd W d    d S 1 s0w   Y  d S )	Nil r   r  r   r   r   r*  r}  
r'   r/  rb   rc   rd   re   r   r   r1  rt  rw  r$   r$   r%   test_violinplot_bad_quantiles  s   "r  c                  C   s   t  } tjd tjjddg}tt | j	|g dgd W d    n1 s,w   Y  tt | j	|g dgd W d    d S 1 sLw   Y  d S )Niq4r   r  )r   r   r   ?r  )皙r   r   r  r  rw  r$   r$   r%   $test_violinplot_outofrange_quantiles  s   "r  c                 C   sV   t jd t jjddg}|  }|j|g dd | }|j|g dgd d S )N+r   r  )r   r   r|  r  )rb   rc   rd   re   r   rt  )r!   r"   r  r#   r$   r$   r%   %test_violinplot_single_list_quantiles  s   r  c                 C   s   t jd |jt jjddg dd}|jt jjddtdd}|t jjdd}|  |||g | |j|j|jg d S )	Nr  r  r  )r  r  r  r   r   r  r   r  r  Z	ABCDEFGHIr  )	rb   rc   rd   r  re   r  r   rt  r  )r!   r"   r  s1s2Zs3r$   r$   r%   test_violinplot_pandas_series  s   r  c                  C   sz   t  \} }|dd | }tjd tjddd}tjddd}|j||gddgdd	 | }t	|| d S )
Nr   r  rr   r   r
  r5   r6   F)r  Zmanage_ticks)
r'   r   r  r   rb   rc   rd   re   r  r   )r  r#   Zold_xlimrg  r"  new_xlimr$   r$   r%   test_manage_xticks  s   r  c                  C   s   t  \} }|jtjddgd |jtjddgd | j  | dks+J t	|
 ddgks7J dd | D dd	gksFJ d S )
Nr   r   r  r   )rm  r  c                 S   r  r$   r  r  r$   r$   r%   r     ru  z+test_boxplot_not_single.<locals>.<listcomp>r   5)r'   r   r  rb   rc   rs   r  r   r   r  
get_xticksr  r*   r$   r$   r%   test_boxplot_not_single  s   
"r  c                  C   s@   t ddgddg tjddi t } t j| ddd d S )Nr   r5   z	font.sizeP   raw)r  format)r'   r   rQ   r   updateioBytesIOsavefigr   r$   r$   r%   test_tick_space_size_0  s   r  )errorbar_basic.pngzerrorbar_mixed.pngr  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   rp  r   r  r  z&Simplest errorbars, 0.2 in x, 0.4 in yr6   T)r  r  rr  r]  r   r  r   zVert. symmetricZnbinsr  )r  r   r  zHor. symmetric w/ alphar  z--or  r  r   zH, V asymmetricr  r  r  rs  )r  r  r   ecolorZcapthickzMixed sym., log yr  zVariable errorbarsr   r/   r0   r  r  r  )rb   rj   Z
longdoubler  rx  r'   r   r+  r  r2   r   locator_paramsrh  maximumr  Zsuptitle)
r/   r0   r  r  r+   r#   rf  ZylowerZ
yerr_lowerr  r$   r$   r%   test_errorbar  sD   


$




r  zmixed_errorbar_polar_caps.pngc                  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[  r  r  r|  r   ffffff?r   r   r  r  r   r6   r   g?r  r  r  r  r   r  )r   r   r   )r   r   r   )r  r   r   )r   r  r    @@rr   N)r'   r   r1  r  rb   r   )r+   r#   Zth_symZr_symZth_longZr_longZth_asymZr_asymr  r  Zth_overZr_overr$   r$   r%   test_mixed_errorbar_polar_caps/  s    
0
r  c                  C   s   t  \} }td}d| }|j||d d\}}}|j|d| d d\}}}||d| \}t| tdks>J t| tdksLJ t| tdksZJ d S )Nrr   r6   r  r  rt  r  r  )	r'   r   rb   rj   r  r   r  to_rgba	get_color)rM  r#   r/   r0   r.  r  r/  Z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$   )rb   r  r   rR  r/   r$   r%   r   c  r  z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)rt  r  r  r  r  r  r   r  )r  r   r{   r  )r  r   r{   r   r  )rb   rj   r   r   r  r  )r!   r"   r0   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   r6   r   r  )r  r   r  )r'   r   r+  rb   rj   r  rx  vstackr  r   r   r1  r  )r+   r#   r/   r0   Zyerr1r  r  r$   r$   r%   test_errorbar_shapeo  s    "r  zerrorbar_limits.pngc                  C   s\  t ddd} t |  }d}d}d}t \}}|j| ||||dd t | }d|g d	< |j| |d ||||d
d t | }d|g d< |j| |d ||||dd |j| |d dd|||||dd
 d}t | d}d|ddg< |}	|}
t | }t | }d|dg< d|dg< |j| |d dd|||	|
||ddddd |d |	d d S )Nr   r  r   r   dottedr   )r  r  rK  r   T)r5   r   r  r   )r  r  uplimsrK  r   )r6   r  r  r   r  )r  r  lolimsrK  r   r   r   r  magenta)r{   rL  r  r  r  r  rK  r   r   r   r   r  r  r   cyan)r{   rL  r  r  xlolimsxuplimsr  r  rK  rb  capsizer   )r   r  zErrorbar upper and lower limits)
rb   rj   r  r'   r   r  Z
zeros_likeZ	full_liker  r2   )r/   r0   r  r  rK  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   r5   r  r  rt  )rb   rj   r'   r  r  r  r  r  )r/   r0   plotliner  ZbarlinesZerrbarr$   r$   r%   test_errorbar_nonefmt  s   

r  c                  C   s   t d} t d}t \}}|j| |ddd}t|jdks"J t|jdks+J t|jdks4J |	  |jr=J |jrBJ |jrGJ d S )Nr   r5   r  r6   )
rb   rj   r'   r   r  rc  
containersr!  r7  r0  )r/   r0   r+   r#   ecr$   r$   r%   test_errorbar_remove  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   r5   Noner  r\   z	steps-midroundr  r  Zbevel)
r  r  rK  r{   ru  r  Zdash_capstyleZdash_joinstyler  r  )rb   rj   r'   r  Zget_fillstyleZget_drawstyle)r/   r0   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)r6   r  rr   r  r   r  r  r  )r/   r0   r  rK  r{   r  r6   r   r  z	tab:greenr  r0   )r/   r0   r  r   rK  r{   r  r  r   r   ztab:bluerT  r   r9   )r/   r0   r  r   rK  r{   r  r5   r  )r  r  rT  )r  r  r   )r  r0   r9   r   rs  r  )rK  r{   r  r   r/  )Z
prop_cycler/   r0   r  )r/   r0   r  r   )r/   r0   r  r   )r   r  r  r
   r'   rc)r!   r"   r#   Z_cycler$   r$   r%   test_errorbar_with_prop_cycle  s(   r  c                  C   s8  t ddd} | d|   }|d }t  }tjtdd |j| ||dd W d    n1 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   r5   r   r   znot a tuple of two integersr6  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valueZfoobar)	rb   r   r'   r   r   r   r   r1  r  )r/   r0   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 valuesr6  r   rx  r5   r/   r0   r  r  r  z''yerr' must not contain negative valuesr  r   c                 S   s"   g | ]}t  d d|d d qS )r  r  r6   r5   r  r   r$   r$   r%   r        " z/test_xerr_yerr_not_negative.<locals>.<listcomp>r  r  )r'   r   r   r   r   r1  r  rb   rj   r  r  )r#   r/   r0   r$   r$   r%   test_xerr_yerr_not_negative  s4   (

"r  c                  C   s   t   } tjtdd | jdgdgd gdggd gdggd W 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    d S 1 svw   Y  d S )	Nz'xerr' must not contain Noner6  r   r5   r  r  z'yerr' must not contain Noner  )r'   r   r   r   r   r1  r  r  r$   r$   r%   test_xerr_yerr_not_none  s    ("r  c           	   
   C   s6  t ddd}|d|  }|d }| }|  }tdg dD ]8\}}|d7 }|j||||dfd|d	 |j|||d
d |j||d d ||d d ||d d d|dd q |j||d |dddd |j|dd d |dd d d dd
d |j||d |ddd |j||d |tdd dtdd ddddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd |j||d |g dd g dd dddd |j|dd d |dd d d ddd
d |j|dd d |dd d d |dd d dddd d S )Nr   r5   r   r   Zrgbk)r   r   r6   r  r#  r  )r  r  r9   r  )r9   r  r  )r  r9   r   r   )r5   r  r   )r;  r  r   re  )r  r   r   r6   r   rt  )r  r;  r  r9   r   r  r   r  )rb   r   r   r  r  r   rM  )	r!   r"   r/   r0   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_typeS  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}|j|||d |  }|jddgddgddgd |jdgdgdgd	d
 d S )Nr   r5   r6   r   r  r   r  r   rt  r  )r   r   rb   r  ro  r  )r!   r"   r#   xsysesr$   r$   r%   test_errorbar_nanZ  s   r  c                 C   s   |   }td}tg d}tjjg d|d}tjjg d|d}|j|||d |  }|jddgdd	gd
dgd |jd
gdgdgdd d S )Nr   )FFTTF)r5   r6   r6   r6   r   r   )r  r   r   r  r   r  r   r5   r6   r  r   r   rt  r  )r   r   rb   r  r	   r  )r!   r"   r#   r  r  r  r  r$   r$   r%   test_errorbar_masked_negativef  s   r  zhist_stacked_stepfilled.pngc                  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 )Nr5   r   r
  r   rr   r  r  Tr  r/   )r  r  r  rb   r   r'   r   r  )d1d2r+   r#   r  r$   r$   r%   test_hist_stacked_stepfilleds  s   r  zhist_offset.pngc                  C   sH   t ddd} t ddd}t \}}|j| dd |j|d	d d S )
Nr   rr   r  r5   r   r
  r   r  r   r  r  r  r+   r#   r$   r$   r%   test_hist_offset  s
   r  zhist_step.pngc                  C   sD   t ddd} t \}}|j| dd |dd |dd	 d S )
Nr5   r   r
  r  r  r   rr   r   r   )rb   r   r'   r   r  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   rr   r  r5   r   r
  r  rM   )r  rO   r  r  r$   r$   r%   test_hist_step_horiz     r  zhist_stacked_weights.pngc                  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   rr   r  r5   r   r
  r  rX  r  r   r  T)weightsr  r  r  )r  r  Zw1Zw2r+   r#   r$   r$   r%   test_hist_stacked_weighted  s   r  zstem.pngc                  C   sH   t ddt j d} t \}}|j| t | ddddd |  d S )	Nr   r6   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr-   )rb   r   r   r'   r   r  r-  rE   rc  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 tt ||gg W d   n1 sw   Y  tt ||gg| W d   dS 1 sw   Y  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   r5   )mapr  
markerliner0  )stem_containerexpectedr/   r0   r$   r$   r%   _assert_equal  s   z%test_stem_args.<locals>._assert_equalr5   r   r   r  r  r  r  )r  r  r  zb--)r  r  N)r'   r   r  r   r   r1  r  r+   r#   r/   r0   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  Z	stemlinesr  r	  rg  get_linestyle)r
  	linecolormarkercolorr{   r$   r$   r%   r    s   z*test_stem_markerfmt.<locals>._assert_equalr  r  rt  r   )r  r{   r/   )r  rv  r  )r  r  r{   rs  Zgxr  r  r   r  )r  r  )NNN)r'   r   r  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 )Nr5   z2013-9-28 11:00:00z2013-9-28 12:00:00r   rC  )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   r6   r  r   Zkxr  rM   )r  r  r  rO   )rb   r   r   r'   r   r  r-  rc  r$   r$   r%   test_stem_orientation  s   
r  z!hist_stacked_stepfilled_alpha.pngc                  C   sB   t ddd} t ddd}t \}}|j| |fddd	d
 d S )Nr5   r   r
  r   rr   r  r  Tr   )r  r  r  r  r  r$   r$   r%   "test_hist_stacked_stepfilled_alpha#  s   r  zhist_stacked_step.pngc                  C   r  )
Nr5   r   r
  r   rr   r  r  Tr  r  r  r$   r$   r%   test_hist_stacked_step,  r  r  zhist_stacked_normed.pngc                  C   s@   t ddd} t ddd}t \}}|j| |fddd d S )	Nr5   r   r
  r   rr   r  T)r  r   r  r  r$   r$   r%   test_hist_stacked_density5  r  r  zhist_step_bottom.pngc                  C   s4   t ddd} t \}}|j| t ddd d S )Nr5   r   r
  rr   r  )rK   r  )rb   r   r'   r   r  rj   r  r$   r$   r%   test_hist_step_bottom>  s   r  c               	   C   s   g d} g 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}ddgddgddgddgddgg}d|fd|| ffD ]\}}t j|| |d	\}}\}t| | q=d S )
Nr   r5   r6   r   r   r   r5   r5   r5   r6   r   r6   r5   r   r  r  r>  r  r'   r  r   get_xyr>  r  r;   rK   r  r  r  polygonr$   r$   r%   test_hist_step_geometryF  s   4"r&  c               	   C   s   g d} g 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}dd	gddgddgddgddgg}d
|fd|| ffD ]\}}t j|| g d|d\}}\}t| | q=d S )Nr  r   r   r5   r   r   r6   rm  r   r  r  r5   r6   r   )r>  rK   r  r"  r$  r$   r$   r%   test_hist_step_bottom_geometryQ  s   4"r(  c               
   C   sZ  g d} g d}g 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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g}ddgddgddgddgddggddgddgddgddgddggg}d	d
 t ||D }d|fd|ffD ]6\}}tj||g| d|d\}}}	t|	dksJ |	d \}
t|
 |d  |	d \}
t|
 |d  qtd S )Nr  r   r  r   r6   r5   r   r  c                 S      g | ]\}}|| qS r$   r$   r   r  r   r$   r$   r%   r   i  r  z3test_hist_stacked_step_geometry.<locals>.<listcomp>r  r  T)r>  r  r  r  r'   r  rc  r   r#  r>  Zdata_1Zdata_2ZtopsZbottomscombinedr  r  r  r  r%  r$   r$   r%   test_hist_stacked_step_geometry]  s(   22  

r.  c               
   C   s`  g d} g d}g 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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g}dd
gddgddgddgddggdd	gddgddgddgddggg}dd t ||D }d|fd|ffD ]9\}}tj||g| dg d|d\}}}	t|	dksJ |	d \}
t|
 |d  |	d \}
t|
 |d  qtd S )Nr  r   r  r   r5   r   r   r6   rm  r   r  r   rX  c                 S   r)  r$   r$   r*  r$   r$   r%   r     r  z:test_hist_stacked_step_bottom_geometry.<locals>.<listcomp>r  r  Tr'  )r>  r  rK   r  r+  r,  r$   r$   r%   &test_hist_stacked_step_bottom_geometryu  s(   22  

r/  zhist_stacked_bar.pngc                  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   rC  @  i  r  r
  r  6  r  )r
     r  r  r   i  )r  r  r  r?  r?  rR     )r  r  r  r  rF  rF  r   r   r   r   rr   rF  )+  r4  r4  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   rE  rE  rE  rE  rE  rE  rE  rE  ))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  rr   r  mid)r>  r  rf  r   r-   zupper right)r   r   r5   )r=   Zbbox_to_anchorr  )r'   r   r  rE   )r  r9  r  r+   r#   r$   r$   r%   test_hist_stacked_bar  s   r6  r  r  r  r  r  )r  rT  ry   r   )r  r  r  r  )r5   r   r6   r   c                 C   s   t jd dd dD }| d\}}|d\}}d||fd||ffD ]D\}}	}
|	j|fd|d	|\}}}tt| \}}tt	||D ]\}\}}|
j|f||d	||id
t
|| d i qJq%d S )NrX   c                 S   s   g | ]}t j|qS r$   )rb   rc   r  r  r$   r$   r%   r     r  z/test_hist_vectorized_params.<locals>.<listcomp>)r
  r  r   r6   r  r  rr   r!  r  )rb   rc   rd   r   r  nextiteritemsrd  r  rc  )r!   r"   r  r  Zaxt1Zaxt2Zaxr1Zaxr2r  r  r  r  r>  kwr  r   r/   r  r$   r$   r%   test_hist_vectorized_params  s   
r;  c                  C   s~   d} g d}d}t jjdd}tj|| ||d\}}}t|d  | s'J t|d  |s3J |d 	 |ks=J d S )N)r  r   r   r   r   )r   r  r  r  )r  r  r   r   )
rb   rc   uniformr'   r  r  r  r  r  r  )r  r  r   arrr  r  r$   r$   r%   test_hist_sequence_type_styles  s   
r?  c                  C   sP   t jjdd} tj| ddd\}}}|d  sJ d|d  s&J dd S )Nr  r  r  )r  r  r   r  )rb   rc   r=  r'   r  r  r  )r>  r  r  r$   r$   r%   test_hist_color_none  s   r@  zkwargs, patch_face, patch_edger0   )r  r   r  r  )r0   r   )r  r   r  )r  r   )r  r   r  r  )r  r  r  )r  r   )r  r  rt  )r  r  )rt  r   r  c                    sD   t   jg dfi | \}}}t fdd|D s J d S )Nr  c                 3   s,    | ]}t | | g gV  qd S r   )r  r  r  r  r  
patch_edge
patch_facer$   r%   r    s    z,test_hist_color_semantics.<locals>.<genexpr>)r'   r   r   r  r  )r  rC  rB  r  r  r$   rA  r%   test_hist_color_semantics  s   $rD  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 )Nrr   r
  r   r5   r6   r  )r  rK   )rb   r  r'   r  tolistr  r$   r$   r%   %test_hist_barstacked_bottom_unchanged  s   rF  c                  C   s,   t  \} }|jg tdtdgdd d S )Nrr   r  r  )r'   r   r  r   r*   r$   r$   r%   test_hist_emptydata  s    rG  c                  C   sB   t  \} }|jg dgg dd | \}}|dgksJ d S )Nr  )r  Zunusedzalso unusedr8  r  )r'   r   r  Zget_legend_handles_labels)r+   r#   r  r  r$   r$   r%   test_hist_unused_labels  s   rH  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   r5   r8  r   r  Z00)r'   r   r  r  )r+   r#   r  r  r$   r$   r%   test_hist_labels  s   rI  Ztransparent_markersc                  C   s:   t jd t jd} t \}}|j| dddd d S )Nr   r  r  r  r   )r  r   rb   rc   rd   r'   r   r   r  r$   r$   r%   test_transparent_markers  s   rK  Zrgba_markersc               	   C   s   t jdd\} }ddg}ddg}d dg}tdd	d
}t|D ]?\}}t|D ]6\}}	t|D ]-\}
}|| j|d |
d df||	|d| || j|d |
d df|	|d| q.q&q|D ]	}|g d q`d S )Nr6   rq  r0  r  r  )r   r   r5   r   r   r   r
  )rL  ra  r5   r   )r  rb  r  r   r/   )rb  r  )r   r  r   r   )r'   r   r  rd  r   r   )r+   rf  ZrcolorsZbcolorsZalphasr:  r   r  r  Zrcolorr  Zbcolorr#   r$   r$   r%   test_rgba_markers  s&   *rL  zmollweide_grid.pngc                  C   s    t  } | jdd}|  d S )N	mollweider  )r'   r   r   r  r*   r$   r$   r%   test_mollweide_grid+  s   rN  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 )	NrM  r  r   r   r3  r5   r   r   )r'   r   r   rb   r   r   r  r  r"  r  transProjectionr
  invertedr   r   )r+   r#   ZlonZlatllr  Zll2r$   r$   r%   &test_mollweide_forward_inverse_closure4  s   $rR  c                  C   sz   t  } | jdd}tddd}t||\}}t| | fj}|j	
 |}|j	|}tj||d d S )NrM  r  r   r5   rU  r   )r'   r   r   rb   r   r  r  r"  r  rO  rP  r
  r   r   )r+   r#   r/   r0   r  rQ  xy2r$   r$   r%   &test_mollweide_inverse_forward_closureK  s   rT  
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-Drr  r  r
  rr   )r   r  r   r  r6   r5   )r   r  r   r  r  r  r   r   r  rJ  r  r$   r$   r%   rU  `  s(   
zeventplot.pngc                  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   rx   r
  r   )r   r5   r*  rr  r  r  )r5   r  r   )r5   r   r5   )r   r5   r5   r  Q?)ir  r5   r   r   rr   )r   r6   r5   r5   r   r   )r9  lineoffsetslinelengths)r   r9   lorQ  r   r9   rY  rQ  )r9  rW  rX  r  )
rb   rc   rd   rE  rc  rj   r'   r   r   	eventplot)r  data2r  Znum_datasetsZcolors1Zcolors2r9  Zlineoffsets1Zlineoffsets2rW  Zlinelengths1Zlinelengths2rX  r+   axobjZcollsZnum_collectionsr$   r$   r%   test_eventplot~  sF   

r]  ztest_eventplot_defaults.pngc                  C   sZ   t jd t jddg } t jddg }| | }t }| }|| dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   rx   r
  r   N)rb   rc   rd   rE  r'   r   r   rZ  )r  r[  r  r+   r\  r$   r$   r%   test_eventplot_defaults  s   r^  r9  ))rk  )z
tab:orangeztab:pinkztab:cyanZbLacK)r  r  N)r5   r   r5   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   r5   r6   r   c                 S   s   g | ]
}|d ur
|ndqS )Nrt  r$   r   r9   r$   r$   r%   r     r  z)test_eventplot_colors.<locals>.<listcomp>r  r9  N)rc  rb   r  r  Zto_rgba_arrayr'   r   rZ  r  r   r  )r9  r  r  r+   r#   r7  r  r   r$   r$   r%   test_eventplot_colors  s   ra  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   r6   r  )r5   r   r   r  r*  r"  r   r5   r   zalpha and positions are unequalr6  )r   r*  r|  )r'   r   rZ  	get_alphar   r   r1  )r+   r#   r7  r$   r$   r%   test_eventplot_alpha  s    "rc  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
  rr   r  r   r9   r5  r6   r5   r   Zdasheddashdotr  )r9  r   r  r  rY  r   r   c                 s   s    | ]
}t |jtjV  qd S r   )
issubclasscategoryr   r  )r   Zwir$   r$   r%   r        z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
rb   rc   rd   rE  r'   r   r   rZ  rc  r  )Zrecwarnr  r[  r  r+   r\  r$   r$   r%   test_eventplot_problem_kwargs  s$   rh  c                  C   s.   t dd\} }|jg gdgd t   d S )Nr5   )r  r  r  r  r`  r'   r   rZ  r   r*   r$   r$   r%   test_empty_eventplot  s   rj  r  rO   )Nr  rM   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.NrO   r5   ri  )r  rO   optsr+   r#   r$   r$   r%   test_eventplot_orientation  s   rl  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  r5   r6   r   r   r  r   )rW  )r  r   rZ  )r!   r"   Zts_1Zts_2r#   r$   r$   r%   test_eventplot_units_list  s   rm  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   )rP  r  r  r$   r$   r%   ra  -  ru  z$test_marker_styles.<locals>.<lambda>)rk  r  r6   r   rr   r   )r   r{   r   r-   )r'   r   sortedrQ   markersr3  r0  rd  r   rb   rj   r   )r+   r#   ro  r0   r{   r$   r$   r%   test_marker_styles%  s   


.rp  zrc_markerfill.pnggl?c                  C   sP   t  \} }td}tg dD ]\}\}}|tjd< |j|| |d qd S )Nr  ))r;   r  )rK   r   )r  rK  zmarkers.fillstyler  )r'   r   rb   rj   rd  rQ   r   r   )r+   r#   r/   idxr   r{   r$   r$   r%   test_markers_fillstyle_rcparams5  s   

rr  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 )Nrr   ))r   r   r  r  r  r   r  r  r   r   )r  r   r'   r   r   r  r  )r  Zmarker_as_tupleZmarker_as_listr+   r#   r$   r$   r%   test_vertex_markers@  s   rs  zvline_hline_zorder.pngzerrorbar_zorder.pngg9v?c                  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 )Nrr   r   )r  r  r5   r  )r   r  r  r   r  r5  r6   r  r   zaxvline and axhline zorder testr  )r  r  r  r   )r  r   r  zerrorbar zorder test)r  r   r'   r   r+  r   rl   axvliner2   rb   r  r  )r/   r+   r#   r0   r  r  r$   r$   r%   test_eb_line_zorderL  s&   

ru  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   rr   )r  r5   r  r   r)  z.-)r5   r  )rr   r  r  r  r5   rr   r  r  )r   r   rt  axliner    r$   r$   r%   test_axline_loglogj  s   rw  c                 C   s   |   }|jddd |dd |jdddd |jdd	d
d |jdddd |jdddd |jdtddd |  }|jddd |ddgddg |jddd |jdd
d |jddd |jddgddgdd |jddd d S )Nr  r  r]  r  r  r  r  )r   r   r5   r   r  )gffffffrx  r   r  )sloper   )r5   rx  rx  ZC4)rx  r5   infr  r   r5   r   )r   r   rv  rs  r   rl   rt  r    r$   r$   r%   test_axlinew  s    r{  c                 C   s   |   }|jddd |jdd|jd |jddd|jd |jd	d
d|jd |jddd|jd |  }|jddd |ddgddg |jd
dgdd
gdd |jddgd
d
gdd |jd
d
gddgdd d S )Nr  r  r]  r5   ry  r
  rx  r  ry  r   r
  r   r   r   r  )r   r   )r   r5   r  )r   r
  r   r  )r   r   rv  r  r   r    r$   r$   r%   test_axline_transaxes  s   r  c                 C   s   |   }|jddd |jdd|jd |jddd|jd	 |jdd
d|jd	 |jddd | dd |  }|jddd |dd |d
dgd
dg |jd
dgd
dgdd |jd
dgddgdd d S )Nr  r  r]  r5   r|  r~  r6   r  r}  r   r  )r   r   r  r   r   rr   r  )r   r   rv  r  set_size_inchesr   r    r$   r$   r%   test_axline_transaxes_panzoom  s   r  c                  C   sV  t  \} }tt |d W d   n1 sw   Y  tt |jdddd W d   n1 s8w   Y  |d tt |jddd W d   n1 sYw   Y  |d |d tt |jddd W d   n1 sw   Y  |d tt |dd t 	  W d   dS 1 sw   Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r]  Nr  r5   )ry  r  r  )
r'   r   r   r   r   rv  r  rh  r1  r   r*   r$   r$   r%   test_axline_args  s*   




"r  )Zvlines_basicZvlines_with_nanZ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)r6   r   r  r   r  )r6   r   r  r6   r   rs  r   r9  r  )r6   r   r  r   r   r  r6   r  r   r  )r  r  )r  r  r  r  )r9  r  r   r  rr   )r6   r  r   r  rr   r  )r   r5   r   r   r6   r5   )r@  r  r   r     r  r  r   )	r'   r   rk   rb   ro  r  r   r	   masked_equal)r  rg  r  r   r!  r"  r  r   r   r  x3r  x4y4r#   fig3ax5Zx5Zymin5Zymax5r$   r$   r%   test_vlines  2   r  c                  C   d   t  \} }tddi |ddd}tj| ds J W d    d S 1 s+w   Y  d S Nzlines.colorr  r   r   r5   )r'   r   r   r   rk   r9  r  r  r+   r#   r!  r$   r$   r%   test_vlines_default  
   "r  )Zhlines_basicZhlines_with_nanZhlines_maskedc                  C   r  r  )	r'   r   hlinesrb   ro  r  r   r	   r  )rg  r  r  r   r"  r!  r  r   r   r  r  r  r  r  r#   r  r  Zy5Zxmin5Zxmax5r$   r$   r%   test_hlines  r  r  c                  C   r  r  )r'   r   r   r   r  r9  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  r6   r5   r   r   r  )r5   r6   r   r   )r  r   r   r  )r   rk   r  )r!   r"   r  Ztest_colorsZ	expect_xyZexpect_colorr$   r$   r%   test_lines_with_colors%  s   
r  Z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   r6   rr   r5   r   r   r  rK  r  r   r   r  )r`   ra   r
  r9  r   r  r  )yminymaxr
  r9  )rb   rj   r  r   r   r'   r   r   r  get_yaxis_transformrk   get_xaxis_transform)r  r  r+   ZhaxZvaxr$   r$   r%   $test_vlines_hlines_blended_transform7  s   $
r  Z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 )Nrr   r6   )r  r  rT  r  r   pre)r  r   r  r5   r5  r)  r   r  )r  Y0Y1Y2r  r  )r  r   r  r  r  r  )	rb   rj   r'   r   r"  r  r  r  r  )r/   r0   r+   ax_lstZ	ln_stylesr#   rK  r  r$   r$   r%   test_step_linestyleE  s*   r  Zmixed_collectionc                  C   s   t  \} }tjddddd}tjj|gdd}|ddgd	d	gg |d
dg tjj|gdd}|ddgddgg |d
dg |	g dg dg |j
d || || |dd |dd d S )Nr  r  r  r  r   radiusr  r  T)Zmatch_originalr   r  r5   r   r  ii)r   r   r   r   )r   r   r   r   rk  r  )r'   r   r  Circler   r7  ZPatchCollectionZset_offsetsZset_linewidthsZset_edgecolorsr   rO  r  r  r  )r+   r#   r9   r  r  r$   r$   r%   test_mixed_collectionf  s   

r  c                  C   s:   t tdtdd} |   |   dksJ d S )Nr   r5   )r   r5   r   r   )r'   r1  rb   Zint32rv   r   Zget_subplotspecZget_geometryr  r$   r$   r%   test_subplot_key_hash  s   r  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)rc  r   r   c                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }ttdtj tj	
|| jdd}td| d }tjd ttj| tj| g}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}   rv  r'  r  r  r   r  @ffffff@'@rr   r   r5   r6   r  ri  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr  )r  r  r  r  r  r  r4  N)rQ   r   intrb   r  rj   r  r   r   multiplyouterrP  rc   rd   rN  rs   rt   log2r  r'   r   r   specgramr9  r:  )rR  r  fstims
NFFT_freqsr/   y_freqs
NFFT_noisey_noise	all_sidesr0   r  r  r  r#   r  r$   r$   r%   test_specgram  s6   
,$
r  )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]O\}}
|
d }tdtt|
 }tt d|	D ]\}}|j||
||||dd qtt d|	D ]\}}|j||
||||ddt j d	 qq|dS )z%Test axes.specgram in magnitude mode.r}   rv  r'  r  r  r   r  r  r  r  r   r   r5   r6   r  Nr   rr   r  r   Z	magnituder  r  r  r  r  r^   r  )r  r  r  r  r  r^   r  r4  )rQ   r   r  rb   r  rj   r   r   r  r  rP  rG  rc   rd   r  rN  rs   rt   r  r  r'   r   r   r  r9  r:  )rR  r  r  r  r/   r0   r  r  r  r  r  r  r  r#   r  r$   r$   r%   test_specgram_magnitude  s6   
,&

r  )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }tdtj tj	|| j
dd}d|dddf< t|}td| d }tjd ttj| tj| g}g d}	||f||ffD ]V\}}
|
d }tdtt|
 }dD ]?}tt d|	D ]2\}}|j||
|||||d tt |j||
|||||dd W d   n1 sw   Y  qqq|dS )z,Test axes.specgram in angle and phase modes.r}   rv  r'  r  r  r   r  r  r  r  rr   r   r5   r6   r  Nr   r  )r*  Zphaser   r  dB)r  r  r  r  r  r^   r  )rQ   r   r  rb   r  rj   r   r   r  r  rP  rG  rc   rd   r  rN  rs   rt   r  r  r'   r   r   r  r   r   r1  )rR  r  r  r  r/   r0   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.rF  Nr  )r  r  rx   `   )r'   r  rb   r   Z
get_extent)specfreqsr  r  r`   ra   Zfreq0Zfreq1r$   r$   r%   test_specgram_fs_none  s   r  c                 C   sH   t d}t |}dtjd< | | dtjd< |  | dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.rU  upperzimage.originrz   N)rb   rj   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.rU  rz   rw  N)rb   rj   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 )NrA        Y@r  r   r  r  r  r  r'  r   r5   r6   r  r  ri  r  F)r  return_liner  Tr   )r  r  r  r  r  r   xlabelZylabel)r  rb   r  rj   r   r   r  r  rP  rc   rd   rN  rs   rt   r  r  r'   r   r   psdr  rc  r  r   csd)rR  r  r  r  r/   Zys_freqsr  Zys_noiseZ
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 )NrA  r  r  r   r  r'  r6   r   r5   rr   r   r  r   r  )r  r  r  r   r  r  r  )r  r  rb   rt   r  rj   r   r   r  rP  rc   rd   rG  rN  rs   r  r'   r   r   Zmagnitude_spectrumr   Zangle_spectrumZphase_spectrum)rR  r  Zfstims1r  r  r/   r  r  r  r  r0   r#   r  r  r  r  r$   r$   r%   test_spectrum9  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 )	Nr6   T)rP  rj  rk  r   r   r5   )
r'   r   r   rV   r   rb   rn  r  r  r  rf  r#   r$   r$   r%   test_psd_csd_edge_casesc  s   "r  c                 C   sH   |   }| }| }|  |  |  }|j  |j  d S r   )r   r   r   r0  rT   Ztick_bottomrV   Z	tick_left)r!   r"   rn   Zax_twinxZax_twinyro   r$   r$   r%   test_twin_removem  s   
r  ztwin_spines.pnggI+?c            	      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)Z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?   )r/  r  Tr  zb-)r   r   r6   zr-)r  r   r   zg-r   r6   r  r5   A   r   )r  r~  r0   )r   r9  r   r/   r$   )r'   r   r  r   r   r  r?   set_positionr   r   r  r  rV   r-   rO  r  r  tick_params)	r  r+   hostZpar1Zpar2r  r  Zp3Ztkwr$   r$   r%   test_twin_spines|  s0   r  ztwin_spines_on_top.pngc                  C   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  r5   )r'  iL  i  i  )r1  i-  r   rE  r   g     @@z#BEAED4r  r  )r   r  z#7FC97Fr   )r   r  r   r  )r   r  )r   r  r  )
rQ   r   r'   r   r   rb   r  r   r   rs  )r+   r   r  r   r$   r$   r%   test_twin_spines_on_top  s(   


r  z(grid_which, major_visible, minor_visible))r   TT)majorTF)r]  FTc                    sh   t jd| d t \}}|j  t fdd|jj	D s#J tfdd|jj
D s2J d S )NT)r  zaxes.grid.whichc                 3       | ]
}|j   kV  qd S r   gridliner   r   tick)major_visibler$   r%   r    rg  z*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   r  r   r  r  )minor_visibler$   r%   r    rg  )r   r   r  r'   r   r  r   r  rT   
majorTicks
minorTicks)Z
grid_whichr  r  r+   r#   r$   )r  r  r%   test_rcparam_grid_minor  s   
r  c                  C   s   t  \} }|  | j  |jjd j sJ |jdd | j  |jjd j r0J |jdd | j  |jjd j sFJ |  | j  |jjd j rZJ d S )Nr   FvisibleT)	r'   r   r  r  r   rT   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  rr   )resetr_  	labelsizer   r  r  r  )
r'   r   r  rT   r  r  r   r  r   rS  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inrr   r   rt  r  r  r  r!  r  r  r   r  )	directionlengthr~  r   padr  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r  r  r/  rT   Zreset_ticksrV   )r!   r"   r+   r#   r$   r$   r%   test_reset_ticks  s   




r  c                  C   s   t dddddddddd		 t  \} }W d    n1 s w   Y  |   |jjd
 }|jjdd  D ]2}|j|jksAJ |j|jksIJ |j|jksQJ |j	|j	ksYJ |j
|j
ksaJ |j|jksiJ q7d S )Nr  r   r   rt  r  Tr  r  )	xtick.directionzxtick.major.sizezxtick.major.widthxtick.colorzxtick.major.padxtick.bottom	xtick.topxtick.labelsizextick.labelcolorr   r5   )r'   r   r   r  rT   r  _size_widthZ	_base_padZ_labelrotationZ_zorderZ_tickdir)r+   r#   Z
first_tickr  r$   r$   r%   test_context_ticks	  s$   
r  c                  C   s:   t  } |  }|d |g d t| d d S )Nr   )r  r   r   r   )r  r   )r'   r   r+  rt  r   r   r   r*   r$   r$   r%   test_vline_limit  s
   
r  zfv, fh, args)r5   r  c                 C   s
  t jd}tjtdd | ||dd W d    n1 s w   Y  tjtdd | |d|d W d    n1 s?w   Y  tjtdd |||dd W d    n1 s^w   Y  tjtdd ||d|d W d    d S 1 s~w   Y  d S )	Nr5   z"ymin must be a single scalar valuer6  r  r  z"ymax must be a single scalar valuez"xmin must be a single scalar value)r`   ra   z"xmax must be a single scalar value)rQ   r  Znum2dater   r   r1  )ZfvfhargsZbad_limr$   r$   r%   test_axline_minmax'  s   "r  c                  C   s   t jddddd\} }|d g dg d |d  \}}|d  \}}|dks-J |dks3J |dks9J |d	ks?J d S )
Nr5   r6   T)r  r  rr  r*  r   r  )r6   r  r   r   r   )r'   r   r   r   r   )r+   rf  ry  r  rz  rg  r$   r$   r%   test_empty_shared_subplots7  s   r  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datalimr6   T)r  rr  r   )
adjustablesharer5   r  r  )r'   r   
set_aspect
get_aspectZget_adjustable)r  r+   rf  r$   r$   r%   test_shared_with_aspect_1C  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 )	Nr6   T)r  rr  r*  r   )r  r5   r   r  )r'   r   r  r   r   r   r   r  r$   r$   r%   test_shared_with_aspect_2P  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 )Nr  r6   T)r  r*  r   r  r5   r   r   r  )r'   r   r  r   r   r   r   Zbbox_inchesr}  r~  get_positionviewLimr  r  )	r  r+   rf  Z
fig_aspectr#   r   
box_aspectZ
lim_aspectr  r$   r$   r%   test_shared_with_aspect_3[  s$   r  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 )	Nr5   r6   Trr  r*  r   r+  zset_aspect\(..., adjustable=r6  )r'   r   r   r   r   RuntimeErrorr  )r+   r/  r$   r$   r%   test_shared_aspect_erroro  s
   
"r  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 Nr6  )r   r   r'   r   errr  r  r7  r$   r$   r%   test_axis_errorsv  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 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'r6  r  z!Cannot supply both positional andr  r8  zargument must be amongzscilimits must be a sequencer5   )Z	scilimitszSpecifying 'loc' is disallowedrL   )r=   r/   r;   )r=   r0   zCannot pass both 'left'r   )rL   r`   zCannot pass both 'right')r?   ra   zCannot pass both 'bottom')rK   r  zCannot pass both 'top')r;   r  )r'   r+  r   r   r1  r  r  r   Zset_prop_cycleZ
set_anchorZticklabel_formatr(   r)   r  r  r  r$   r$   r%   test_axis_method_errors  sD   $r$  c                 C   sH   t  \}}t|d|   }|d |d t|jj|jj d S )Nr   r   r6   )r'   r   r   r  r   bboxextents)r   r+   r#   r  r$   r$   r%   test_twin_with_aspect  s   

r'  c                  C   s   d} d}d}d}t j }| }|| | | | ksJ | |ks'J |||\}| |ks6J | |ks>J |d | |ksKJ | |ksSJ |jdd |	  | | kseJ | |ksmJ d S )N)r  r  )r^  r  )r^  r`  FT)Zvisible_only)
rQ   r   r   r   r   r   r   r   Zrelimr   )r  rg  r!  r"  r+   r#   r  r$   r$   r%   test_relim_visible_only  s&   

r(  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    Zlarge)r  outr  N)r'   r   r+  r  r*   r$   r$   r%   test_text_labelsize  s   r+  zpie_default.pngr  c               	   C   sD   d} g d}g d}d}t jdd\}}|j||| |ddd	d
 d S )NFrogsZHogsDogsLogsr   r   r!  rr   ZyellowgreenZgoldZlightskyblueZ
lightcoralr   r   r   r   )r  r   r  %1.1f%%Tr  )exploder  r9  autopctshadow
startangler'   r   pie)r  sizesr9  r4  r  r   r$   r$   r%   test_pie_default  s   
r;  )pie_linewidth_0r<  r<  )r   r   r   c                  C   s   d} g d}g d}d}t j||| |ddddd	id
 t d | |||d}t  }| }|jddddddddd	i|d	 |d t   t jddddddddd	i|d	 t d d S )Nr,  r0  r1  r2  r3  Tr  r  r   r4  r  r9  r5  r6  r7  
wedgepropsr+  )lr  r9   exr  r@  r?  r9   )r4  r  r9  r5  r6  r7  r>  r  )r'   r9  r   r   r+  )r  r:  r9  r4  r  r+   r#   r$   r$   r%   test_pie_linewidth_0  s.   

rA  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,  r0  r1  r2  r3  Tr  r  r   r  r   )	r4  r  r9  r5  r6  r7  r>  rS   r  zCenter point)r5   r  ->Zarc3)
arrowstyleZconnectionstylesquareZ	lightgrey)Zboxstyler  )r  r  r  r%  r+  )r'   r9  r  r  r   r  r:  r9  r4  r$   r$   r%   test_pie_center_radius  s   


rF  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,  r0  r1  r2  r3  Tr  r  r6   r=  r+  r'   r9  r   rE  r$   r$   r%   test_pie_linewidth_2  s   rH  zpie_ccw_true.pngc               
   C   @   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nr,  r0  r1  r2  r3  Tr  )r4  r  r9  r5  r6  r7  Zcounterclockr+  rG  rE  r$   r$   r%   test_pie_ccw_true%     rJ  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,  r0  r1  r2  r3  Tr  r  r   r  )	r4  r  r9  r5  r6  r7  r>  framerS   r   )r   r6   )r   r   r+  rG  rE  r$   r$   r%   test_pie_frame_grid4  s(   rM  zpie_rotatelabels_true.pngc               
   C   rI  )
N)ZHogwartsr-  r.  r/  r0  r1  r2  r3  Tr  )r4  r  r9  r5  r6  r7  rotatelabelsr+  rG  rE  r$   r$   r%   test_pie_rotatelabels_trueO  rK  rO  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,  r0  r1  r2  r3  Tr  )r4  r  r9  r5  r6  r7  ZlabeldistancerN  r+  g333333r  )r'   r9  r   r   rE   rE  r$   r$   r%   test_pie_nolabel_but_legend^  s   
rP  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 )Nr0  r1  r2  r6   r   Tr  r  )r4  r9  r6  r7  r>  r5   Fr  r|  r  )oxZoyshader  r  r   )rQ  r  rR  r8  )r:  r9  r4  r  r/  r$   r$   r%   test_pie_shadowl  s(   

rS  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)r2  "   r!  )zLong name 1zLong name 2zLong name 3rS   r;   r  anchorr  r  )horizontalalignmentverticalalignmentrK  rotation_moder  r   %.2f)r  r5  	textpropsrV  rW  rK  rX  r  r   )
r  r'   r+  r9  get_haZget_vaget_rotationZget_rotation_modeget_sizer  )r  r  rZ  r  textsr5  Z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   r4  r'   r   r   r   r1  r9  r*   r$   r$   r%   test_pie_get_negative_values     "rb  c                  C   sR   t  \} }tt |jg dddgd W d    d S 1 s"w   Y  d S )Nr  r   r`  ra  r*   r$   r$   r%   test_pie_invalid_explode  rc  rd  c                  C   sR   t  \} }tt |jg dddgd W d    d S 1 s"w   Y  d S )Nr  ZOneZTwor  ra  r*   r$   r$   r%   test_pie_invalid_labels  rc  re  c                  C   sN   t  \} }tt |jg ddd W d    d S 1 s w   Y  d S )Nr  re  )r  ra  r*   r$   r$   r%   test_pie_invalid_radius  s   "rf  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   r9  r  r$  )r+   r#   r/   t1t2r$   r$   r%   test_normalize_kwarg_pie  s   "rk  c                    sF   g d}d |   j| d |  |\}} fdd|D  d S )Nrg  r=  r  c                    s   g | ]}|  qS r$   Z	set_hatch)r   r  r  r$   r%   r     r   z)test_pie_hatch_single.<locals>.<listcomp>r   r9  )r!   r"   r/   wedgesr  r$   r  r%   test_pie_hatch_single  s
   ro  c                 C   sL   g d}g d}|   j||d |  |\}}dd t||D  d S )Nrg  )r  r=  ry   r  c                 S   s   g | ]	\}}| |qS r$   rl  )r   r  hpr$   r$   r%   r     r   z(test_pie_hatch_multi.<locals>.<listcomp>)r   r9  r  )r!   r"   r/   r  rn  r  r$   r$   r%   test_pie_hatch_multi  s
   rq  zset_get_ticklabels.pngg?c                  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 )Nr6   re   zset_x/yticklabelsr   rr   r5   r   r   r9   r  r   r   )Z11Z12Z13Z14)r'   r   r   rb   rj   r2   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r+   r#   rB   r$   r$   r%   test_set_get_ticklabels  s   ry  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'r6  r   r"  N)r'   r   r   r   r1  rT   	set_ticks)r+   r#   ticksr$   r$   r%   0test_set_ticks_kwargs_raise_error_without_labels  s
   "r|  c                 C   s   |  }|g d |jg ddd |g d |jddgdd	 |jd
dgdd	 |   }|jg dg ddd |g d |jddgd
dgdd	 dS )z
    Test that these two are identical::

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

    )r5   r6   r  r   rr  bold)Z
fontweightr  r6   r  T)r]  r  r  N)r   rs  ru  rt  rv  r    r$   r$   r%   test_set_ticks_with_labels  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 sequencer6  r6   r  r  z
must be 1Dr  r  r  r  )r'   r   r   r   r   r   rs  r1  rL  rb   rj   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 )
Nrr   r   r   r  c                 S   s   g | ]}|qS r$   r$   r_  r$   r$   r%   r   !  s    z.test_subsampled_ticklabels.<locals>.<listcomp>Z
bcdefghijkc                 S   r  r$   r  r  r$   r$   r%   r   #  ru  )r   r  rM  rS  r  )r'   r   r   rb   rj   rT   rz  r  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 )Nrr   r   rm  r  )r'   r   r   rb   rj   rT   rz  r   r   r1  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 )Nr5   r6   )r'   r   r  rs  ru  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  r0   r   r   r   r_  r  )r'   r   r   Zsetprx  r  r*   r$   r$   r%   test_retain_tick_visibility7  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 numberr6  r   r  r  z$The number of FixedLocator locations)	r'   r   r   rW  r  ru  rs  r   r1  r*   r$   r$   r%   test_warn_too_few_labels?  s   "r  c                  C   sr   t  \} }dd }|jt | |g d |dd | j  dd |j	 D }|g dks7J d S )	Nc                 S   s   | dkrdS dS )Nr5   
unit valuer   r$   r   r$   r$   r%   formatter_funcT  s   z.test_tick_label_update.<locals>.formatter_func)r   r   r5   r6   r   rx  rm  c                 S   r  r$   r  r  r$   r$   r%   r   ]  ru  z*test_tick_label_update.<locals>.<listcomp>)r   r   r  r   r   )
r'   r   rT   r   r   rs  r  r  r   r  )r+   r#   r  Z
tick_textsr$   r$   r%   test_tick_label_updateN  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   r5   r   r6   r   )rL  rr   rC  r   r  )r'   r   r   r   r   rb   r   r   )r+   r#   rL  r$   r$   r%   test_o_marker_path_snapa  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 )Nr5   rr   r  r   r  r   r6   )r   r6   皙ɿr   )r  r   )	rc  r  rA  r'   r   r   r   r   r   )r  r`   ra   r  r  r  r   r  r   r  r   r$   r$   r%   test_marginsl  sF   








r  c                  C   s@   t  } |  }|dd | dksJ | dksJ d S )Nr   r   )r'   r   r   r   Zget_xmarginZget_ymarginr*   r$   r$   r%   test_margin_getters  s
   r  c                  C   sN   t jd t \} }|ddgddg |jddd | dks%J d S )Nri  r5   r6   r  r   )rV  Z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   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 r   )r   r   r'   r   r   r   )r"  r  r  r7  r+   r#   r$   r$   r%   test_margins_errors  s
   "r  c                  C   s&   t  \} }|d |dg d S Nr5   )r'   r   r  r*   r$   r$   r%   test_length_one_hist  s   
r  c                  C   s  t  } |  }|dd | dksJ | dksJ |jdd | dk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   rK  )r   rK  rm  )r  )r   rm  )rz   )rK  rm  )	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 )Nrr   r   r5   )r'   r   r-  r  r  r  )Zmylistr+   r#   r$   r$   r%   test_pathological_hexbin  s   
r  c                  C   s(   t  \} }|jddgddgd d d S )Nr5   r6   r  r  r*   r$   r$   r%   test_color_None  s   r  c                  C   s6   t  \} }|jddgddd }d| ksJ d S )Nr   r5   rg  r  )r'   r   r   r  r+   r#   r  r$   r$   r%   test_color_alias  s   r  c                  C   s4   t  \} }|jtdgd tdd |  d S )Nr   r   r8  )r'   r   r  r   rE   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   r8  )r'   r   decoder  r   rE   )r+   r#   r   r   r  r$   r$   r%   test_unicode_hist_label  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 )	Nrr   g^ 9^;rL   r   r5   r?   r;   rK   )rb   rc   r'   r   r   r  r   rV   
offsetTextr  rU   Z
tick_rightrT   get_verticalalignmentr   )r  r+   r#   beforeafterr$   r$   r%   test_move_offsetlabel  s*   



$



$r  zrc_spines.pngc                  C   sF   ddddd} t |  t  W d    d S 1 sw   Y  d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rQ   r   r'   r   )rP  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/   r0   r5   r   )r'   r   rd  rQ   r   r   )r+   Zrc_dict0Zrc_dict1Zrc_dict2rV  r   rP  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)r  r  
ytick.leftytick.rightr  r5   tick1Ontick2Onr'   r   r   r   rT   rV   _major_tick_kw_minor_tick_kwr  r+   r   ZxaxZyaxr$   r$   r%   test_rc_tick4  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  r5   r  r  r  r  r$   r$   r%   test_rc_major_minor_tickH  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   rK  r  r  morD  r5   T)originalg      ?r   r|  r|  F)g333333?r   g      ?r|  )rb   rj   r  r'   r   r   r   r   r   r  r  r   r  r&  )r/   r0   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   r5   )	r   r   r1  r'   r   rb   r  rj   r   r$   r$   r$   r%   test_bad_plot_argsn  s   *"r  zxy, clsr$   ))r   r  )r6   r   )r5   r6   r  r  r  r  )r  r   r  )r   r  c                 C   s0   t  \}}t|jg | |R  |ksJ d S r   )r'   r   r  r  )r  r  clsr+   r#   r$   r$   r%   test_pcolorfasty  s   $r  c                  C   s`   t  \} }tjtdd |tdtdtd W d    d S 1 s)w   Y  d S )Nz)the given X was 1D and the given Y was 2Dr6  r   )r  r  r  )r'   r   r   r   r   r  rb   emptyr*   r$   r$   r%   test_pcolorfast_bad_dims  s   ""r  c               	   C   s   t  \} }tjtdd |tdtdtj	dd W d   n1 s*w   Y  tjtdd |td	tdtj	dd W d   dS 1 sTw   Y  dS )
am  
    Test that the sizes of X, Y, C are compatible for regularly spaced X, Y.

    Note that after the regualar-spacing check, pcolorfast may go into the
    fast "image" mode, where the individual X, Y positions are not used anymore.
    Therefore, the algorithm had worked with any regularly number of regularly
    spaced values, but discarded their values.
    zKLength of X \(5\) must be one larger than the number of columns in C \(20\)r6  r   r  rr   r
  NzHLength of Y \(5\) must be one larger than the number of rows in C \(10\)r  )
r'   r   r   r   r1  r  rb   rj   rc   rs   r*   r$   r$   r%   ,test_pcolorfast_regular_xy_incompatible_size  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 )Nr6   Tr  r]  r  r  r  )r'   r   r  rh  re  Z
get_yscaleZ
get_xscaler+   rf  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 )NTrq  r)  )r   r   r   r'   r1  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'   rt  rb   r  r$   r$   r$   r%   test_violin_point_mass  s   r  c               	   C   s   t dtdgt dtdg } t ddg dg dg dgtdtdd g}t d|}t d	|}t dg gt dg g t dg d g t d	g d g }| | }| | }| | | }g ||||S )
Nr/   r   r0   r"  r5   )r5   r5   r5   r5   r5   )r6   r   r  r  )r
   rb   rj   r   )Zbase_xyZ
err_cyclerZxerr_cyZyerr_cyr  Z	xerr_onlyZ	yerr_onlyZboth_errr$   r$   r%   generate_errorbar_inputs  s*   $

r  c                 C   s$   t  }|jdi | }|  d S )Nr$   )r'   r+  r  r0  )r  r#   Zebr$   r$   r%   test_errorbar_inputs_shotgun  s   r  Zdash_offsetc                  C   sT   t  \} }tdd}t|}tdddD ]}|j||| |dfddd qd S )	Nr   rr   r   r6   rr   rr   r   r  )rK  r  r   )r'   r   rb   r   Z	ones_liker   r   )r+   r#   r/   r0   r  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.titlepadr  )r'   r   r2   ZtitleOffsetTransZ
get_matrixr  rQ   r   )r+   r#   r5  r$   r$   r%   test_title_pad  s   


$r  c                  C   s   t  \} }dt jd< |d |jddd |jddd d|jddk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 )	NrS   zaxes.titlelocationr  rL   r<   r?   r  Zfail)r'   r   r   r2   Z	get_titler   r   r1  r*   r$   r$   r%   test_title_location_roundtrip  s   

"r  rr  c                 C   s   t jdd| d\}}|d jddd |d jddd |  |d j \}}|d j \}}||  kr=d	ks@J  J d S )
Nr6   r5   rq  r   r  ir  r  r   )r'   r   r2   r  r.   r  )rr  r+   rf  r/   rg  r"  r$   r$   r%   test_title_location_shared  s    r  z
loglog.pngc                  C   sN   t  \} }tdd}|j||d dd |jddd |jd	dd
d d S )Nr5   r  r   r   r  rC  r6   )r  r~  r   r]  )r  r~  r_  )r'   r   rb   rj   rt  r  )r+   r#   r/   r$   r$   r%   test_loglog  s
   r  ztest_loglog_nonpos.pnggV-?)rc  r   r   c                  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   r5   r  g      r  r  r  )r  r  r   r6   )r  )r  nonpositiver  r  )r  )
r'   r   rb   rj   r  r   re  rt  r  rh  )r+   rf  r/   r0   ZmcyZmcxr#   r$   r$   r%   test_loglog_nonpos"  s&   r  c                  C   s~  t  \} }|g d | d dksJ t  \} }|g dg d | d dk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   )r5   r5   r5   r5   r  r  rr   )rx  g      #@)r'   r   r   r  r  r  r  r  rb   r  r  r  rj   r   r*   r$   r$   r%   test_axes_margins9  s0   r  )r  c                 C   s    dd }dd }||d| j  S )Nc                 S   <   |   }|  | dd | j  }|d dksJ d S Nr   r   r   r  )r   r0  r  rT   get_major_locatorr#   r   r  r$   r$   r%   	_helper_x]  
   z&shared_axis_remover.<locals>._helper_xc                 S   r  r  )r   r0  r  rV   r  r  r$   r$   r%   	_helper_yd  r  z&shared_axis_remover.<locals>._helper_yr   )param)requestr  r  r$   r$   r%   shared_axis_remover[  s   r  )r+  r   subplots_sharedr  c                 C   s   | j dkrt }| }||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 )
Nr+  r   r  r6   r  r  r   r  r   r   r  r  )r  r'   r   r+  r   r  )r  r+   r#   r  r$   r$   r%   shared_axes_generatorn  s   
	


r  c                 C   s   | \}}|| d S r   r$   )r  r  r+   r#   r$   r$   r%   test_remove_shared_axes  s   r  c                  C   s`   t jddddd\} }|d d }|d d  }|  |dd t|d d  | d S )Nr6   r  r  r   r5   r   )r'   r   r   r0  r  r   )r+   r  r#   Z	orig_xlimr$   r$   r%   test_remove_shared_axes_relim  s   r  c                  C   s   t ddd} t j| j| jf}tjddddd\}\}}|dd	 |dd	 |	| | | |	| | | |
 s@|
 rBJ | sJ| rLJ | |   kr[d
ks^J  J | |   krmd
kspJ  J d S )Nir  r  r6   r5   Tr  r'  )r  r'  )rb   rj   rc   Zrandom_sampler  r'   r   r  r  r|  r$  r%  r   r   )r?  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 )Nr  r  r   r'  r+  r6   )r'   r   rV   r  Z
set_paramsr  r  r  r   rc  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  r  )r'   r   r   re  r  rw  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 )NZround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<rr   ir  r  r]  r   )r'   r   r   r   rt  rb   log10r  rj   r  rw  r*   r$   r$   r%   test_auto_numticks_log  s
   
$(r  c                  C   s   t  \} }|g d d S )N)r   r   )r'   r   r  r*   r$   r$   r%   test_broken_barh_empty  rk  r  c                  C   s   t  \} }tdddddd}||tjddfgddg}| d jd t|ks/J | d jd	 t|d
 ksAJ dS )z9Check that timedelta works as x, dx pair for this method.r  r  r  r   r5   r  r6   r]  r6   r   gUUUUUU?N)	r'   r   r  r  r  r~  Zverticesr  r  )r+   r#   Zd0ppr$   r$   r%   test_broken_barh_timedelta  s
    (r  c                 C   sD   | j ddd}td}tjdd}t \}}|||| d S )Nz
2000-01-01rr   )r  r
  ri  r  )r  rb   rj   rc   rs   r'   r   rz  )r  timedepthr  r+   r#   r$   r$   r%   test_pandas_pcolormesh  s
   
r  c                 C   sj   t jdddd}t tt|}| ||d}t }|t |j	d dk 
 }|jdd	|d
 d S )Nz2005-02z2005-03r  rp  )r  r  r6   r5   r  r  r  )rb   rj   r   r   rc  r  r'   r+  r  r  rG  r   )r  r  r  r  r#   Zwithout_zero_indexr$   r$   r%   test_pandas_indexing_dates  s   r  c                 C   sF   | j tjjddg dg dd}t \}}|jdddd	|d
 d S )N)r   r  r  )r/   r0   xeyer?  )columnsr  r/   r0   r  r  r  )r  rb   rc   r=  r'   r   r  r  r$   r$   r%   test_pandas_errorbar_indexing  s   r  c                 C   s:   |  g dg dd}t \}}||j|d  d S )Nr  )r  r5   r6   )ZXXYYr  )r  r'   r   r   r  r  r$   r$   r%   test_pandas_index_shape  s   r  c                 C   s8   | j g dd}|jdd  }t \}}|| d S )N)
r5   r6   r6   r   r   r  r  r  r  r   r  r5   )r  Zilocr'   r   r  )r  Zser_1Zser_2r+   r#   r$   r$   r%   test_pandas_indexing_hist  s   r  c                 C   sh   |  tdtdd}td\}}|j|j|d dkdf |j|d dkdf dd |j  d S )Nr6   r  r5   r   r   rS   rv  )r  r   r'   r   r  r=   r  r   r  r$   r$   r%   test_pandas_bar_align_center  s   r  c            	      C   s   t  j} i | jdd}i | jdd}| j| jdd}| j| jdd}||k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'   r1  rV   get_tick_paramsZ_translate_tick_paramsr  r  set_tick_params)	r   Zinitial_major_style_translatedZinitial_minor_style_translatedZtranslated_major_kwZtranslated_minor_kwZnew_major_style_translatedZnew_minor_style_translatedZnew_major_styleZnew_minor_styler$   r$   r%   test_axis_get_tick_params   s,   


r  c                  C   s   t  } | jjdddd | jjd jdk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   rm  r  r`  )
r'   r1  rV   r  r  r  	tick1liner  r  r]  )Zaxis_1r$   r$   r%   .test_axis_set_tick_params_labelsize_labelcolor  s   
r  c                  C   s   t  } | jddddd | j| jfD ]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   rd  )r  r  r  r  r   rT  )r'   r1  r  rT   rV   r  r  r  Zget_linewidthrb  r  )r#   r   r$   r$   r%   test_axes_tick_params_gridlines(  s   
r  c                  C   s   t  } | jdddd | jdddd | jjd j d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'   r1  r  rV   r  r  r   label2r  r  r$   r$   r%    test_axes_tick_params_ylabelside4  s   r  c                  C   s   t  } | jdddd | jdddd | jjd j du s!J | jjd j du s.J | jjd j du s;J | jjd j du sHJ d S )NTFr  )labeltoplabelbottomr_  r]  r   )	r'   r1  r  rT   r  r  r   r  r  r  r$   r$   r%    test_axes_tick_params_xlabelsideB  s   r  c                  C   s4   t   } | jtdd d\}| dksJ d S )Nrx   r  r  )r'   r   r   r   r   r  )r#   lnr$   r$   r%   test_none_kwargsR     r  c                  C   sT   g d} t jtj| tjdg ddd}t|j| D ]\}}|jd |ks'J qd S )Nr  rp  )r6   r   r  r   re  rv  r   )r'   r  rb   r  Zuint8r  r  r  )r  r   r   r/   r$   r$   r%   test_bar_uint8X  s
    r  zdate_timezone_x.pngr   c                  C   s   dd t dD } tjdd tddd ttj tj| dgd dd	 W d    n1 s2w   Y  tddd ttj tj| dgd d
d	 W d    d S 1 s[w   Y  d S )Nc              
   S   (   g | ]}t j d dd|tjddqS   r6   r  Canada/Easternr   tzinfor  r  tzZgettzr   r$   r$   r%   r   b  
    

z(test_date_timezone_x.<locals>.<listcomp>r   r
  r  r  r6   r5   r  )r  UTC	r   r'   r   r1  r   rW  r   r  r  Z
time_indexr$   r$   r%   test_date_timezone_x_  s   "r  zdate_timezone_y.pngc                  C   s   dd t dD } tjdd tddd ttj tjdgd | dd	d
d W d    n1 s4w   Y  tddd ttj tjdgd | dd	d
d W d    d S 1 s_w   Y  d S )Nc              
   S   r  r  r
  r   r$   r$   r%   r   u  r  z(test_date_timezone_y.<locals>.<listcomp>r   r  r  r6   r5   r  FT)r  Zxdateydater  r  r  r$   r$   r%   test_date_timezone_yr  s   "r  zdate_timezone_x_and_y.pngc                     s   t jj  fddtdD } tjdd tddd tt	j
 tj| | dd	d
 W d    n1 s6w   Y  tddd tt	j
 tj| | dd	d
 W d    d S 1 s]w   Y  d S )Nc              	      s    g | ]}t j d dd| dqS )r  r6   r  r  r  r   r  r$   r%   r     s    z.test_date_timezone_x_and_y.<locals>.<listcomp>r   r  r  r6   r5   r  T)r  r  z
US/Eastern)r  timezoneutcr   r'   r   r1  r   rW  r   r  r  r  r$   r  r%   test_date_timezone_x_and_y  s   
"r  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]A\}}|jddddd tjd	d
d}|| |jdddd |j	ddddd |j
d d  d || | |ksRJ qd S )Nr   T)r  rr  r*  )Fr  Tr  rr   r5  r  r  r  r  r9   r  )r   r   r  F)r;   rK   rL   r?   )r'   r   r   r  r   r  r  r  r  r  r  r   Zset_axisbelowZget_axisbelow)rf  settingsr#   Z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(   r2   r  r   get_rendererget_window_extentrz  rg  rb   isclose)	r+   r#   r   Zxlabel2r.   rendererZbbox_y0_titleZbbox_y1_xlabel2Zy_diffr$   r$   r%   test_titletwiny  s   



r!  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |ks:J d S )Nr  )r;   ZXlabelr  r  )r   g(\?)r'   r   r  r   r(   r2   r.   r  r  r  Z_update_title_positionr  )r+   r#   r   r   r   r$   r$   r%   test_titlesetpos  s   




r"  c                  C   sP   d t jd< t \} }|jd |d | j  |j	
 d dks&J d S )Naxes.titleyr;   
xlabel topr5   p=
ף?)r   r   r'   r   rT   r   r2   r  r   r.   r  r*   r$   r$   r%   test_title_xticks_top  s   


r&  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dks*J d S )Nr#  r/   Tr   rK   r;   r  r  r$  r5   r%  )
r   r   r'   r   r  r2   r  r   r.   r  r*   r$   r$   r%   test_title_xticks_top_both  s   


r(  zleft, center))rL   r   )r   rS   )rL   rS   )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   vH7BrL   r<   r5   r   )
r   r   r'   r   r  r2   r  Z_left_titler  r.   )rL   rS   r+   r#   Zyleftr,  r$   r$   r%   test_title_above_offset  s   


r)  c                  C   s`   d t jd< t } | g d}|jdddddd |d}| j  |	 d dks.J d S )	Nr#  )r   rx  r  r   r/   Tr'  Boor5   r   )
r   r   r'   r   r  r  r2   r  r   r  )r+   r#   ttr$   r$   r%   test_title_no_move_off_page  s   


r,  c                  C   sn   d t jd< t \} }|d |   |j d dksJ |g d |   |j d dks5J d S )Nr#  r  r5   )r   r5   r5   r   r  )	r   r   r'   r   r2   r  r.   r  
inset_axesr*   r$   r$   r%   test_title_inset_ax
  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   rV   r  get_offset_textr  r*   r$   r$   r%   test_offset_label_color  s   r1  c                  C   s`   t  \} }|g d |jjddd |j  sJ |jjdd |j  r.J d S )Nr/  FT)Zlabel1Onlabel2On)r2  )r'   r   r   rV   r  r0  r   r*   r$   r$   r%   test_offset_text_visible  s   r3  c                  C   s6   t  \} }|dtddg d  | j  d S )Nr5   r   g-q=gqىE)r'   r   r   rb   r  r  r   r*   r$   r$   r%   test_large_offset'  s   r4  c                  C   ^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S      g | ]}t  d ddd|qS r  r  r   r  r  r   r$   r$   r%   r   /  r   z#test_barb_units.<locals>.<listcomp>r   r  rr   r   r  )r'   r   r   rb   r   rc  Zbarbsr+   r#   r  r0   ur`  r$   r$   r%   test_barb_units-  
   r:  c                  C   r5  )Nc              	   S   r6  r7  r  r   r$   r$   r%   r   7  r   z%test_quiver_units.<locals>.<listcomp>r   r  rr   r   r  )r'   r   r   rb   r   rc  Zquiverr8  r$   r$   r%   test_quiver_units5  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#   r  r   Zbrsbrr$   r$   r%   test_bar_color_cycle=  s   r?  c                  C   s  t dd\} \}}|ddgddg |ddgddg |jjddd |jjddd |jddD ]
}| dk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 )Nr5   r6   r   r   r   )r_  rK  r  r^  r/   5   )r   r  r0   r   )r   rK  r  )
r'   r   r   rT   r  rV   r  r\  rx  r  )r4  r#   r   textr$   r$   r%   test_tick_param_label_rotationG  s    rB  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   r?  r   r  )r  r  r   r  r  )r  )r'   r   r   rs  r  r  r  r  Zsqueezer  rd  r  )	r+   r#   r  cctargetalZedge_targetelZface_targetr$   r$   r%   test_fillbetween_cycleZ  s(   
 
 rG  c                  C   s   dt jd< t  \} }d}|| |ddgddg | \}}|j }|||g\}}|ddg\}}	|	| | }
t	||
 ||
 g||	g d S )Nr  r  r  rr   r   )
r'   r   r   Zset_xmarginru  r   rT   r  r
  r   )r+   r#   marginZxlim0Zxlim1r
  Zxlim0tZxlim1tZx0tZx1trU  r$   r$   r%   test_log_marginsv  s   


rI  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   r5   r  r  r6  r<  )	rb   rj   r'   r   r   r   r1  r7   rW  )ry  r/   r0   r9  r+   r#   r$   r$   r%   test_color_length_mismatch  s   rJ  c                   C   s   t jdgdd t   d S )Nr   Labelr8  )r'   rZ  rE   r$   r$   r$   r%   test_eventplot_legend  s   rL  rW  zlineoffsets cannot be emptyrX  zlinelengths cannot be emptyr  zlinewidths cannot be emptyrY  zlinestyles cannot be emptyr  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   r  r   )r   r   r'   rZ  r!  r$   r$   r%   test_eventplot_errors  s   "rM  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  r5   r   )rL   r}  )r   r   r   r  r  )r'   r   r  r   r  r  )r+   r#   Zrect1rect2r$   r$   r%   test_bar_broadcast_args  s
   (rO  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   r1  r   rb   ro  rz  r   r$   r$   r$   r%   test_invalid_axis_limits  s   "rP  rV  r  r  rL  c                 C   s6   t  }|g d ||  || |  d S )Nrj  )r'   r1  r   r  rh  r_  )rV  rL  r#   r$   r$   r%   test_minorticks_on  s
   

rQ  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 )Nr5   r6   r   r   )r'   r   r  r   r   r   r  Z	intervalx)r+   r#   Zxtwinr  r   r$   r$   r%   test_twinx_knows_limits  s   rR  c                   C   s   t jddgddgddd d S )Nr   r5   r  )rK  r  )r'   r   r$   r$   r$   r%   test_zero_linewidth  s   rS  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  rE   r*   r$   r$   r%   test_empty_errorbar_legend  s   rT  c                 C   s\   t ddd}dd |D }dd |D }dd |D }|  || | || d S )Nr  rr   r   c                 S   s0   g | ]}d |d  d|d   d|  d qS )g@r   r  r6   g\(\@r  r$   r   r$   r$   r%   r     s   0 z%test_plot_decimal.<locals>.<listcomp>c                 S   rt  r$   r   r   r$   r$   r%   r     ru  c                 S   rt  r$   r   r   r$   r$   r%   r     ru  )rb   rj   r   r   )r!   r"   ry  rz  r/   r0   r$   r$   r%   test_plot_decimal  s   rU  c                 C   s0   |   jddddd |  jddddd d S )Nr   r   r  r   )r  r  r  )r   r   )r!   r"   r$   r$   r%   test_markerfacecolor_none_alpha  s   rV  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)  r  zytick.directionoffN)	r'   r   r   get_tightbboxr  r  r   ry  rz  r+   r#   bbbb2r$   r$   r%   test_tick_padding_tightbbox  s   


r\  c                  C   s.  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||ddddf  |d |	  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d}
|
jdu swJ |j  t ddgd	dgg}t |
j  |ksJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r5   r   rr   Nr   r   r   333333@r6   rm  r   )boundsr   )rb   mgridrM  r   r-  r'   r   rz  r  apply_aspectindicate_inset
connectorsr  r   r  r  Z	rectangleget_bbox
get_points)dxdyr0   r/   r  r+   r#   r   r   r  insetxxr$   r$   r%   
test_inset
  s&   
*
,

 rj  c                  C   s  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
g d}||||d dd df  |dd	g |d
dg ||  ttj ||\}}	W d    n1 sw   Y  |j  t|	dksJ 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]  r5   r   rr   r   r   )r*  r*  r  r  r   r^  r6   rm  r  r   g=
ףp=?gKXc'?g(\?g?g-C6?Zrtol)rb   r`  rM  r   r-  r'   r   rz  r  ra  r-  r  r  r  r   rW  r   r  Zindicate_inset_zoomr  r   rc  r  r  rd  re  r   r   r  )rf  rg  r0   r/   r  r+   r#   Zaxin1Zrecrc  ri  r$   r$   r%   test_zoom_inset'  s:   
*




rl  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   rG  rG  TrZ  r   r6   r  )	r'   r   r-  r   r   rb   rj   r   r   )r  r#   axinsr  r  r$   r$   r%   test_inset_polarI  s   rn  c                  C   s0   t  \} }|jg ddd}t|tsJ d S )Nr   r   r   r   hammerr  )r'   r   r-  r   r   r  r#   rm  r$   r$   r%   test_inset_projectionV  s   rr  c                  C   s4   t  \} }|jg dtjd}t|tjsJ d S )Nro  )rY  )r'   r   r-  AAr   r   rq  r$   r$   r%   test_inset_subclass\  r  rt  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r|  |r"|  |g d|}|j\}}}	}
| r5dnd}|r;dnd}||	j	d |j	d   dksMJ ||
j	d |j	d   dks]J ||j	d |j	d   dksmJ ||
j	d |	j	d   dks}J dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r5   r6   rr   r   )r6   r6   r   r  r   r   N)
r'   r   rb   rj   r   rf  rg  rb  rc  rS  )ru  rv  r+   r   r   r/   rh  Z
lower_leftZ
upper_leftZlower_rightZupper_rightZsign_xZsign_yr$   r$   r%   test_indicate_inset_invertedb  s   
   $rw  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 )
NrK  )r   r   r  r  r   r^  r   r   r  r  Zactive)r'   r   r  r  rb   r/  r  r~  r*   r$   r$   r%   test_set_position|  s   


rx  c                  C   sd   t  \} }|jj| j }|ddd dd |jj| j }tj	j
| | dd d S )N)r0  r0  rU  rU  r  Fgư>rk  )r'   r   r  rK   r  r  r  _set_view_from_bboxrb   r   r   re  rY  r$   r$   r%   !test_spines_properbbox_after_zoom  s   rz  c                  C   sV  t  \} }d}d}|| |j|d |d d |d tjj|| dd tjj||	 dd |d	 d
}d}| }|	 }tj|d |d  d tj|d |d  d tjj||dd tj|| |d | }|	 }tj|d |d  d tj|d |d  d tjj||dd tjj||dd d S )Nrx  r   )r   r6   r   r5   r	  )rC  rC  r   r  Zatol)rC  rC  r   )gB!Bؿg{?)g      ڿg     ?r   r   )rC  rC  r   r   )
r'   r   r  r  ry  rb   r   r   r   r   )r+   r#   r   r   r  Znew_ylimZres_xlimZres_ylimr$   r$   r%   test_limits_after_scroll_zoom  s0   



r}  c                  C   sH   t  \} }t|  |tjdd | j }tj	|
|jd d S )Nr5   r*  i  )r'   r   r   rA  rb   ro  r  r  r   r   rX  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 )Nrr   r  r  r  r  )r5   r5   r5   r5   r5   r   r   r   )r   r  rb   rc   r=  r'   r7   )r  r  r/   r0   r9   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  r9   )r'   r7   r$   r$   r$   r%   test_scatter_empty_data  s   r  zannotate_across_transforms.png)r   rc  r   c               	   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   rr   rC  )gQ@r   r  )r  r   r   r   r   Fr   rR  r  rB  )rC  )r  r  r  r  r  )rb   r   r  r   r'   r   r   r-  r  rT   r   rV   r  	transDatar  r  )r/   r0   r+   r#   rm  r$   r$   r%   test_annotate_across_transforms  s   

r  c                   @   s,   e Zd ZdZdZdd Zdd Zdd ZdS )	_Translationr5   c                 C   s
   || _ d S r   rf  )r<  rf  r$   r$   r%   r    r  z_Translation.__init__c                 C   s
   || j  S r   r  )r<  r  r$   r$   r%   r
    r  z_Translation.transformc                 C   s   t | j S r   )r  rf  r;  r$   r$   r%   rP    r  z_Translation.invertedN)r@  rA  rB  Z
input_dimsZoutput_dimsr  r
  rP  r$   r$   r$   r%   r    s    r  zsecondary_xy.pnggS㥛?c                  C   s   t jddddd\} }dd }t|D ]V\}}|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 ||d	kr[dndtdd |d|j	d qd S )Nr5   r6   rZ  T)r  rI  c                 S   8   t jdd d|  W  d    S 1 sw   Y  d S Nrj  rk  r5   rb   rn  r  r$   r$   r%   invert     $z!test_secondary_xy.<locals>.invertr  r   r   Z	functionsr  c                 S   s   d|  S Nr6   r$   r  r$   r$   r%   ra    rb  z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r  r$   r  r$   r$   r%   ra    rb  r)  c                 S      | d S r  r$   r  r$   r$   r%   ra    rb  c                 S   r  )Nr   r$   r  r$   r$   r%   ra    rb  r  r;   r?   g      @r  )
r'   r   rd  r   rb   rj   secondary_xaxissecondary_yaxisr  r  )r+   rf  r  nnr#   secaxr$   r$   r%   test_secondary_xy  s   r  c                  C   s
  t  \} }|tddtdd tt |jddd d W d    n1 s-w   Y  tt |d W d    n1 sGw   Y  tt |	d W d    n1 saw   Y  tt
 |jdd	d
 W d    d S 1 s~w   Y  d S )Nr6   r  r   c                 S   s   d|  S r  r$   r  r$   r$   r%   ra  	  rb  z%test_secondary_fail.<locals>.<lambda>r  r?   rK   errorr  )r'   r   r   rb   rj   r   r   r1  r  r  r   r*   r$   r$   r%   test_secondary_fail  s   "r  c                  C   sr   t jdd\} }|tddtdd dd }|jd||fd | j  | d	 t	|
 jg d
 d S )NrZ  r  r6   r  c                 S   r  r  r  r  r$   r$   r%   r    r  z%test_secondary_resize.<locals>.invertr;   r  )r  r  r  )r'   r   r   rb   rj   r  r  r   r  r   r  r&  )r+   r#   r  r$   r$   r%   test_secondary_resize  s   

r  c                  C   s   t jdd\} }|tddtdd dd }|jd||fd}t|j t	j
s.J |  t|j t	js=J |d	 t   t|j t	jsQJ |d
 t   t|j t	j
seJ d S )NrZ  r  r6   r  c                 S   r  r  r  r  r$   r$   r%   r  $  r  z'test_secondary_minorloc.<locals>.invertr;   r  r  r  )r'   r   r   rb   rj   r  r   Z_axisZget_minor_locatorr   ZNullLocatorr_  ZAutoMinorLocatorr  r   Z
LogLocator)r+   r#   r  r  r$   r$   r%   test_secondary_minorloc   s*   





r  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjs(J d S )Nr  r;   )r'   r   r  r  rT   r   r   ZScalarFormatterr  r   r   r   r+   r#   r  r$   r$   r%   test_secondary_formatter8  s   


r  c                  C   s*   t  \} }|d}t|dksJ d S )Nr;   z<SecondaryAxis: >)r'   r   r  r3   r  r$   r$   r%   test_secondary_reprB  s   
r  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 )Nr6   r   )Zscaledrl  imager   r  )r5   g	@)r   r   r   r  r  r  r5   )r5   g      @)r5   r   )r   r  r  )r'   r   rd  r   r   r  r  r  )r+   r/  r   optionr$   r$   r%   test_axis_optionsH  s   
r  c                 C   sd  | j   | j  }g }t|j|jgD ](\}}||}|r7tj|j	|j
f|j|jdddddd}| | ||g7 }qg }tg dD ])\}}	|j|	 |}tj|j	|j
f|j|jdddddd}
| |
 ||g7 }qE| }tj|j	|j
f|j|jd	d
dddd}| | |}||}tj|j	|j
f|j|jdddddd}| | |}||||fS )zS
    Helper for the tests below that test the extents of various Axes elements
    r*  r0   r  Nr   )r~  r}  r  r  r  r
  r  )rK   r;   rL   r?   r   r   r  r6   r  r5   )r  r   r  rd  rT   rV   rX  r  r  ry  rz  r~  r}  r  r  r  )r+   r#   r   bbaxisr  ZaxxrZ  Zaxisrbbspinesr   ZspinerrN  bbaxr[  bbtbr$   r$   r%   color_boxesZ  sP   







r  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_modeFrC  r  r  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r6   )decimal     b@-]@     @F8&@r  g     @r  r  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r   r'   r   r  r   r2  r  rd  r}  Bboxfrom_boundsr   r_  r  ZtransformedtransFigurer  )r+   r#   r  r  r  r  rD  r  r   targetbbZaxbbr$   r$   r%   test_normal_axes  s8   

r  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 )Nr  FrC  r  r  ZxticklabelsZyticklabelsr  r  r  r  r  r|  r  )r        ^@r  r  )r   r'   r   r  r   r   r  rd  r}  r  r  r   r_  )
r+   r#   r  r  r  r  r  r   rD  r  r$   r$   r%   test_nodecorator  s,   
r  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 )Nr  FrC  r  r  r  )r/  r  )r        8@r  gs~8&@r  r  r  r  r|  r  )r  r  r  g     @)r   r'   r   r   r  rK   r  r  r   r  r  r}  r  r  r   r_  )
r+   r#   r  r  r  r  targetsrD  Zbbspiner  r$   r$   r%   test_displaced_spine  s*   
r  c               	   C   s   g dg dgg dg dgg dg dgg} t g dD ]W\}}tdd	iE tjd
dd\}}|j|d |j  t||\}}}}t ddgD ]\}	}
tj	j
| | |	  }t||
 j|jdd qKW d   n1 sow   Y  qdS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r  r  +e8&@)r  r  r  r  )r  gZӼ8[@r  88&@)g r\a@r  r  r  )r  gqq\@r  r  )g88b@r  r  r  )r  r)  Zinoutr  FrC  r  r  r*  r   r6   r  r|  N)rd  r   r'   r   r  r  r   r  r}  r  r  r   r_  )r  Zdnumdirsr+   r#   r  r  r  r  r  r   r  r$   r$   r%   test_tickdirs  s2   
r  c            	      C   sn  t ddi tjddd\} }| j  |jddd t| |\}}}}t| |\}}}}g d	g d
g}tdD ]}tj	j
||  }t||d  j|jdd q:tjddd\} }| j  |jddd |  |jdddd | j  t| |\}}}}g dg dg}tdD ]}tj	j
||  }t||d  j|jdd qW d    d S 1 sw   Y  d S )Nr  FrC  r  r  r   r)  )r_  r  )r  g88[@r  r  )gCiq\a@r  r  r  r6   r  r|  r]  r   r  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@r  )r   r'   r   r  r   r  r  r   r}  r  r  r   r_  r_  )	r+   r#   r  r  r  r  r  rR  r  r$   r$   r%   test_minor_accountedfor  s>   


"r  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr'  FrW  r(  Ton)r   r   r    r$   r$   r%   test_axis_bool_arguments   s   


r  c                  C   sr   t  \} }d}d}d}d}|||||g}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rr   r   r
  r'   r   r   r  r   r   r+   r#   r`   ra   r  r  r,  r$   r$   r%   test_axis_extent_arg)   s   r  c                  C   sr   t  \} }d}d}d}d}|j||||d}t|||||fks#J ||f| ks-J ||f| ks7J d S )Nr   rr   r   r
  )r`   ra   r  r  r  r  r$   r$   r%   test_axis_extent_arg29   s   r  c                  C   sD   t jg dg dgdd\} }} |d dksJ |d dks J d S )	Nr  )r   r  r   r   r  r=  r   r5   r   r   )r'   r  r  r>  r$   r$   r%   test_hist_auto_binsJ   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 )Nr6   r  rj  r  )r'   r   rb   ro  r  rn  r   r   )
r+   r   r   r  Znan_datar>  r-  r  ZnanbinsZnanedgesr$   r$   r%   test_hist_nan_dataP   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 )	Nrr   r  r  T)r   r   r   r   r5   )r'   r  rb   rc   rs   r  r$   r$   r%   test_hist_range_and_density^   s
   r  c            
      C   sz   t  \} }g d}|j|||ddd}|jj\}}}|jD ]}|D ]
}|j|jks,J q"|D ]
}	|	j|jks9J q/qd S )Nr  r   r   )r/   r}  r  r  r  )r'   r   r  r  r!  r  r  )
r+   r#   r/   ZbarcontZ	data_lineZcaplinesZbarlinecolsr  ZcaplineZ
barlinecolr$   r$   r%   test_bar_errbar_zordere   s   
r  c                  C   sR   t  \} }|  |ddg | dksJ |dg | dks'J d S )Nr   r*  r  r   r  )r'   r   rf  rs  r   r*   r$   r$   r%   test_set_ticks_invertedt   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  r)  r  r  logit)F]tE?g'^P?r5   r  rV  r   rL  r   r   r  r   r6   )r'   r   r   r   r   r   r  Ztransform_bboxr  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  r  r  r)  r  )r5   r   r  )gbeF?r  r5   r  r  r   gS[:XL	@g'In?@)r'   r   r  r   r   r   ra  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  r5   r   r   r6   r   r  r+  r  r  )r'   r   r   r   set_box_aspectZget_box_aspectr   r  r  r   r  r   r&  )r  r   Zaxtwinr  r   bb1Zbbtr[  r$   r$   r%   test_box_aspect   s    



r  c                  C   s   t  \} }|g d | j  |d t  \}}|d |j  |g d | j  |j  | }| }t|j|j d S )N)r   r   r|  r   r   )	r'   r   r  r  r   r  r  r   r&  )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 )Nr6   r   r5   )r  T)r  rI  r   )r'   r   r  r  r   r  re  r  rU  r~  r}  r   )r+   rf  r   r:  r#   rZ  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 positiver6  r   r   )r'   r   r   r   r1  r  rb   rz  r*   r$   r$   r%   test_set_aspect_negative   s   "r  c                  C   s4   t dd\} }|g d | j  |  d S )Nr5   r  )r'   r   r   r  r   Zredraw_in_framer*   r$   r$   r%   test_redraw_in_frame   s   
r  c                  C   sB   t  \} }| jdd usJ |d | jdd u sJ d S )N)rC  rC  F)r'   r   r  Z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  lines.markeredgecolor)r'   r   r/  rT   get_major_ticksr  get_markeredgecolorr#   r{  r  r$   r$   r%   "test_xtickcolor_is_not_markercolor      

r  c                  C   r  r  )r'   r   r/  rV   r  r  r  r  r$   r$   r%   "test_ytickcolor_is_not_markercolor   r  r  r   r  )TFNc           
      C   s   t  \}}td}tddd}||| t|d|  d}t|d|  d}t|d|  d}|d u r:| n|}	|d	|d
 |	| ksIJ |j  t	| d	 d S )Nr   r  r   Zget_autoscaleZ_onr  Zlimget_r{  )r  )
r'   r   rb   rj   r   r7   r   r  r   r   )
r   r  r+   r#   r/   r0   rn  Zset_limZget_limZ	post_autor$   r$   r%   test_unautoscale!  s   

r  c                 C   s`   | j dddtjd gddg\}d| _|j ddtdtjd dtddd d S )Nr[  r  r   r6   r5   r   e   )r   r   rb   r   get_pathZ_interpolation_stepsr   )r!   r"   r?  r$   r$   r%   )test_polar_interpolation_steps_variable_r!  s
   $
r  c                  C   s6   t  \} }|dd | j  | dksJ d S )Nr   g&.>)r   g	>)r'   r   r  r  r   r   r*   r$   r$   r%   test_autoscale_tiny_sticky!!  s   
r  c                  C   X   dt jd< dt jd< t  } | j }|D ]}|j dks J |j dks)J qd S )Nr)  r   r   r  )r'   r   r/  rT   r  r  r  r  r  r$   r$   r%   &test_xtickcolor_is_not_xticklabelcolor)!     


r  c                  C   r  )Nr)  ytick.colorr   ytick.labelcolor)r'   r   r/  rV   r  r  r  r  r  r$   r$   r%   &test_ytickcolor_is_not_yticklabelcolor3!  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   r/  rT   r  r  r  r$   r$   r%   test_xaxis_offsetText_color=!     


r  c                  C   r  )Nr   r  r  r  r  )r'   r   r/  rV   r  r  r  r$   r$   r%   test_yaxis_offsetText_colorH!  r  r  r  c                 C   s   g | ]}|d ur|qS r   r$   )r   r  r$   r$   r%   r   S!  s    )r  rr   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 )Nr  zytick.labelsizer/   r0   )r   r   r'   r   r  r   r  rT   rV   r  r  r]  Z_get_tick_label_size)r  r+   r#   namer   r  r$   r$   r%   test_relative_ticklabel_sizesS!  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 )Nr6   r5   r  rq  )PF  iJG  iDH  i>I  )r6   r   r6   r   re  r   r  ipI  )r'   r   r   r   r$  r   rb   r/  )r+   r   r   r   r$   r$   r%   test_multiplot_autoscalea!  s   r  c                  C   sX   t  } | d}| jg d|d}| }| jdd |  | k s*J d S )Nr  )r)  r)  r   r   rq  r   rL   )r'   r   r   r  r  r  re  r  )r+   r4  r   Zinit_posr$   r$   r%   $test_sharing_does_not_link_positionsj!  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   r5   r6   r   r  r  r6  r   rr   r  r  r  )rb   r  r   r   r   r   rW  r7   r  r  rj   r  )r!   r"   r   rf  r$   r$   r%   test_2dcolor_plots!  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  r6   r  Tr  )rb   rj   r   r   r   re  r   rS  )r!   r"   r/   r0   rf  r#   r$   r$   r%   test_shared_axes_clear!  s   


r  c                  C   s   t jddddd\} }|jD ]
}|ddgd q|d g d |jD ]}| |d  ks3J q%|d g d |jD ]}| |d  ksNJ q@d S )	Nr6   r  r  r   zo-r]  )rx  r   r5   r   )rx  r   r6   rm  )r'   r   re  r   rs  r   rt  r   r  r$   r$   r%   test_shared_axes_retick!  s   


r  rB   )rL   rS   r?   c                 C   sB   t  }| }|jdd| d |jd |jj | ksJ d S )Ntestr5   rA   r?   )r   r   r)   rV   Zset_label_positionr-   r[  )rB   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 )	Nr5   r6   r   r   rS   rK   r;   r'   r+  r  	bar_labelr  rU   r  r#   r  Z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 )	Nr5   r6   r   r  r   rS   r;   rK   )r'   r+  rg  r  r 	  r  rU   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 	Nr5   r6   r   r  r   rL   rS   r?   r'   r+  r  r 	  r  rU   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'   r+  rg  r  r 	  r  rU   r  r	  r$   r$   r%   ,test_bar_label_location_horizontal_yinverted!  r	  r	  c                  C   r
	  	Nr5   r6   r   r  r   r?   rS   rL   )r'   r+  rf  r  r 	  r  rU   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'   r+  rf  rg  r  r 	  r  rU   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 )	Nr5   r6   r   r  rS   Z
label_typer   r~  r	  r	  r$   r$   r%   test_bar_label_location_center"  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)r9   r   r   )r'  i  iX  r  r5   rS   r	  )r'   r   r  r  r  r 	  r  )r  r#   r  r$   r$   r%   !test_centered_bar_label_nonlinear"  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  )rr   r
  r  r  )r-   rL   rS   r	  r
  )r'   r   r  r  r 	  r  r  )r+   r#   lastr-   r  r  r$   r$   r%   +test_centered_bar_label_label_beyond_limits"  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 )
Nr5   r6   r   r  r  r   rS   rK   r;   r  r	  r$   r$   r%   !test_bar_label_location_errorbars%"  s   
""r	  r   rY  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 )	Nr5   r6   r   r  r   r   z3.00z-4.00r'   r+  r  r 	  r  )r   r#   r  r  r$   r$   r%   test_bar_label_fmt2"  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 )	Nr5   r6   r   r  zstr or callabler6  rr   r	  )r'   r+  r  r   r   r   r 	  )r#   r  r  r$   r$   r%   test_bar_label_fmt_error="  s
   "r	  c                  C   sZ   t  } | ddgddg}| j|ddgd}|d  dks!J |d  dks+J d S )	Nr5   r6   r   r  r  r  r  r   r	  )r#   r  r  r$   r$   r%   test_bar_label_labelsD"  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 )Nr6   r   r5   c                 S   r  r$   r  r   r?  r$   r$   r%   r   P"  ru  z,test_bar_label_nan_ydata.<locals>.<listcomp>r   r   r   r  rK   )r'   r+  r  rb   ro  r 	  r  r  r#   r  r  r$   r$   r%   test_bar_label_nan_ydataL"  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 )Nr6   r   r5   c                 S   r  r$   r  r	  r$   r$   r%   r   Z"  ru  z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>r   r   r   r  rK   )	r'   r+  r,  r  rb   ro  r 	  r  r  r	  r$   r$   r%   !test_bar_label_nan_ydata_invertedU"  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  r5   r6   r  r  c                 S   r  r$   r  r	  r$   r$   r%   r   c"  ru  z&test_nan_barlabels.<locals>.<listcomp>)r   r   2)r  rK  r  r   r)  c                 S   r  r$   r  r	  r$   r$   r%   r   i"  ru  )r   r   r	  )rx  rK  c                 S   r  r$   r  r	  r$   r$   r%   r   o"  ru  )r'   r   r  rb   ro  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   r  r  r  r   r  gffffff?r   r3  r6   gr  r  )r'   r   r  r  ZWedgerb   r   r   r   Zassert_array_almost_equal_nulpr  ZdataLimr_  )r+   r#   Zbotr$   r$   r%   test_patch_boundss"  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/edgecolorsr6  r   r=  rU  r  r   )r{   r  r  r  )r   rW  r  r'   r7   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   rb   rj   r   r  r$   r%   r   "  s   & z(test_artist_sublists.<locals>.<listcomp>r   r   r   r   r]  r   r  r   zout of ranger6  r5   r  r6   r   )r'   r   r   r7   rb   rj   r   r  r  r  r  rA  r  r7  Zimagesr!  r  Ztablesr^  r   r   
IndexErrorrc  r0  )r+   r!  r  r  r   rA  r   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 )Nrr   )rr   r   r   r5   )rb   r   r'   r   r   rc  )r/   r0   r  r#   r  r$   r$   r%   test_empty_line_plots"  s   

r%	  z
fmt, match))rM  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))Zrkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\))r?  zE'C' is not a valid format string \('C' must be followed by a number\))z.CzF'.C' is not a valid format string \('C' must be followed by a number\)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\Zr6  r&	  r  )r'   r   replacer   r   r1  r   )r   r7  r  r+   r#   r$   r$   r%   test_plot_format_errors"  s   "r)	  c                  C   s  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 t  \} }|g dd}|d  dksJ |d  t	
dksJ |d  dksJ d S )Nr  z1.0r   )r   r   r   r   r  r   r5   r6   Zk3r   r  z.C12:ry   ZC12r  )r'   r   r   r  rg  r  r   rx  r  r  r  r  r  r$   r$   r%   test_plot_format"  s4   

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   r  r6   r  r   r9   )
r'   r   r   rE   r  r   Z	get_textsr  rx  r  )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 keywordr6  r  r5   r  zplot\(\) with multiple groupsr  r   r	  r8  zx and y must have same firstzx and y can be no greater than)r6   r6   r6   zUsing arbitrary long args withr   r   r9   r  r6   r  )r   r   r   r'   r   r1  rb   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   r5   r6   )r  r  )clim)r'   r   r   r   r7   r   r   r  rz  r  r4  r5  r6  )r#   Zplot_methodr.	  r4  r$   r$   r%   	test_clim#  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   r5   rx  )mpathr  r  ZCURVE3Z	CLOSEPOLYr'   r   r  r  r  r.  r   )r  codesr   r+   r#   r$   r$   r%   test_bezier_autoscale#  s   r2	  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      r   gQ g{Gz?gzGr   gRQri  g(\gQ?g333333g(\?gr  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?rx  r   g(\տg{Gz?g
ףp=
ǿrV  g{Gzgp=
ף?gףp=
?rG  gQ?gQ?p=
ף?g(\?gq=
ףp?r  g(\?r  gQ?gGz?g=
ףp=?gffffff @r  gGz@r  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r5   )rb   r  r  rA  r0	  r  r'   r   r  r  r  r.  r   r   )r  ZminxZminyZmaxxZmaxyr   r+   r#   r$   r$   r%   test_small_autoscale.#  s*  				



!
r4	  c                  C   sb   t  \} }|td tdD ]}| |  | ks!J | |  | ks.J qd S )Nrr   )	r'   r   r   rb   rj   r   r  r  rx  )r+   r#   r  r$   r$   r%   test_get_xticklabelb#  s   r5	  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   rp  )r   r   r   r3	  r   r  r  )rb   rj   rs  r  ro  r'   r   r  r  isfiniter  anyZ	get_widthr  )ZbarxZ
barheightsZ	barstartsr+   r#   r  ZhbarsZbar_setZnanfulrestr   r$   r$   r%   test_bar_leading_nanj#  s    
r9	  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   r5   )r   r   r   r   r  rb   ro  r0  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 )Nr6   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   r  r$   r%   r   #  ru  z0test_extent_units.<locals>.<listcomp>.<listcomp>rr   )r   )r   r$   r;	  r%   r   #  r  z%test_extent_units.<locals>.<listcomp>rr   r]  zDate extents on y axisrz   r5   r  Zplasma)r|   r,  r~   r  z(Date extents on x axis (Day of Jan 2020)z%dr  zDay of Jan 2020)r  r  )r|   r~   z set_extent\(\) got an unexpectedr6  r  Fr  )r'   r   rb   r  r   r2   r   r   r  rT   r   r  ZDateFormatterr   Z
set_extentr   r   r   )r  rf  Z
date_firstZ	date_lastr>  r  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 | | u s+J q|  ||g D ]}|jd u s>J | d u sFJ q5d S r  )r'   r   r   r   r/  Z
get_figurerS  )r+   r#   r!  r3  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)r5   r   r   r5   r)  r  r  r  )r'   r   r-  r   r0  r   )r+   r#   ZmarginalZ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'r6  zred
r6   r  )r   r   r1  r   r/  r   r  )r  msgr9   r$   r$   r%   test_scatter_color_repr_error#  s   
"rB	  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   Tr5   )r]  r  r  )r  )r'   r   Zset_rasterization_zorderr   r   r  r  r  )r+   r#   r   r   r$   r$   r%   &test_zorder_and_explicit_rasterization#  s   

"rC	  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 )Nr5   r   r   z#ddffddz#00ff00r6   r   )r  r  r  r  r  r~  T)clip_onr{  )rx  rx  r  )r   rD	  r{  r  z#beefc0r   z#faded0)r  r  r  r  rD	  r{  r  )r  r  )r   r  r   r  )r  r  rD	  r{  rs  r0   )r  r  r  r  rD	  r{  r<	  )r'   r   r   r  ZPolygonr  r!  r   Zset_path_effectsr   ZwithTickedStroker  r  r  r  )r+   r#   Zpolyr  Zpoly2Zpoly3r$   r$   r%   test_preset_clip_paths#  s8   





rE	  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'   r/  rT   r-   r  Zget_fontsizeZget_fontweightr  r$   r$   r%   test_rc_axes_label_formatting$  s   


rF	  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   r5   r6   r  rM   rN   r  r  )r  r  Tr  )r  rO   ZcomplementarycompressrK  r  r  r  )ds)r  r
  r  r  r   r   r  z	steps-pre)rH	  rK  )rb   r  rz  r   rc  r   r  ecdfr	   Z	get_xdataisnanrP  r   rj   )
r!   r"   r  r  r   r#   rO   Zl0l1r   r$   r$   r%   	test_ecdf$  s6   "$.( 
rL	  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 )Nr5   r6   TFr   )	r   r   r1  r'   rI	  rb   ro  r	   r  r$   r$   r$   r%   test_ecdf_invalid)$  s    "rM	  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   r6   r*  )r   r  r  r5   r   )r  r   r  r
  )r'   r   rb   rj   r   r   r   r   r   rl   rs  r  )r+   r#   r/   r0   	thresholdZoriginal_limsr$   r$   r%   test_fill_between_axes_limits0$  s   
rO	  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 )Nrj  zX label in Impact fontZImpact)ZfontnamezY label in xkcd scriptzxkcd scriptr  Z	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r'   r   r   r(   r)   r  r.   r  Zget_fontfamily)r+   r#   rA  r$   r$   r%   test_tick_param_labelfont@$  s   
rQ	  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 )Nr;   r  r  rK   r   r  )r'   r   r  r  r  r  r  rT   r  r-   r  )r+   r#   saxr$   r$   r%   test_set_secondary_axis_colorK$  s   rS	  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 )Nr6   Tr  r5   Zxlim_changedZylim_changedr   r   r  r  )r'   r   	callbacksconnectr  r   )r+   rf  eventsr$   r$   r%   test_xylim_changed_sharedU$  s   rW	  zaxhvlinespan_interpolation.pngc                  C   s   t  jdd} |   | jddd | jdddd	 | jd
ddddd	 | jdddd | jddddd | jddddddd d S )Nr[  r  r   rt  r  r   r   r  )fcr  r   r  r5   )r9   r  r  r|  )rX	  r  r)  r*  )r'   r   r   r  rt  r  rl   r$  r  r$   r$   r%   test_axhvlinespan_interpolation^$  s   rY	  r_  c                 C   s   |  }|   }i 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ddd }|jd#d!|i| |jd#d!|i| |  |d |d d"S )$z<Test that the given tick params are not reset by ax.clear().r  r  r  rr   r~  r   zxkcd:wine redr  r   rP	  Zserifr  r  r  r!  r  zxkcd:shocking pinkr  zxkcd:fluorescent greenr  r   r  r   r  r  rK   Fr;   TrL   r?   )r  r  r  r  r   Nr$   )r   r  rS  r  )r"   r!   r_  rn   ro   rD  r$   r$   r%   test_axes_clear_behaviorj$  s^   	
rZ	  )r   r@  r   finalz/https://github.com/python/cpython/issues/124538)reasonc               	   C   s   dd } t  }| }tjd}||| ||| | }|  dd |D }t	|dks4J |D ]}| | q6t	|dksEJ |D ]}z|
  W qG tyX   Y qGw d S )Nc                 S   sz   t | g}t }t|dkr;| }t|D ]}t||v r q|| us&J |t| || qt|dksd S d S r  )	r   r   rc  popleftgcZget_referentsidaddr  )r  Zto_visitZexploredparentchildr$   r$   r%   assert_not_in_reference_cycle$  s   
zFtest_axes_clear_reference_cycle.<locals>.assert_not_in_reference_cycler'  c                 S   s   g | ]}t |ttfr|qS r$   )r   r   r   )r   r   r$   r$   r%   r   $  s    z3test_axes_clear_reference_cycle.<locals>.<listcomp>r   )r   r   rb   rc   rs   r   r7   rU  rS  rc  r0  NotImplementedError)rc	  r+   r#   r  Zax_childrenZbig_artistsZ
big_artistrb	  r$   r$   r%   test_axes_clear_reference_cycle$  s,   
re	  c                  C   s   t jd t jd} tjdddd\}}tjtjdd |d	 j	| g d
d W d    n1 s4w   Y  dd |d	 
 D g d
ksJJ |d j	| g d
d dd |d 
 D g d
ksfJ d S )NrX   )rr   r   r5   r6   T)r  r  r*  zhas been renamed 'tick_labels'r6  r   r  r  c                 S   r  r$   r  r	  r$   r$   r%   r   $  ru  z,test_boxplot_tick_labels.<locals>.<listcomp>)Ztick_labelsc                 S   r  r$   r  r	  r$   r$   r%   r   $  ru  )rb   rc   rd   r'   r   r   rW  r   r  r  r  r  r$   r$   r%   test_boxplot_tick_labels$  s   "&rf	  c                 C   sD   g d}|   }|j|dddid |  }|j|dddid d S )N)r
  rr   r^  z%1.0f%%ZusetexT)r5  rZ  z%1.0f\%%rm  )r!   r"   r  r#   r   r$   r$   r%   test_latex_pie_percent$  s
   rg	  c                 C   s@  t jddd\}}tjd dd tddD }|d	 | t|d	  t	g d
ks1J t|d	 
 t	g dksBJ |d j|dd t|d  t	g dks\J t|d 
 t	g d
ksmJ t   | }tjtdd |j|dd W d    n1 sw   Y  |  }|j|dd d S )Nr5   r   r  rX   c                 S      g | ]
}t jd |dqS r   r   ro  r   Zstdr$   r$   r%   r   $  r  z/test_violinplot_orientation.<locals>.<listcomp>r   rr   r   )	r   r   r   r   rm  rK  rX  rm  r  g      >g      4r^  r  r  r  r`  rM   rN   z
vert: boolr6  F)Zvert)r'   r   rb   rc   rd   r   rt  r  r  r  rw  r2  r   rW  rX  r!   r"   r+   rf  Zall_dataro   rn   r$   r$   r%   test_violinplot_orientation$  s0   rm	  c              	   C   sn  t jddd\}}tjd dd tddD }|d	 | t|d	  t	g d
ks1J t|d	 
 t	g dksBJ |d j|dd t|d  t	g dks\J t|d 
 t	g d
ksmJ t   tjtjdd4 tddi | }|| W d    n1 sw   Y  |  }|j|dd W d    d S 1 sw   Y  d S )Nr5   r6   r  rX   c                 S   rh	  ri	  ro  rj	  r$   r$   r%   r   	%  r  z,test_boxplot_orientation.<locals>.<listcomp>r   rr   r   rj  rk	  rM   rN   z!was deprecated in Matplotlib 3.10r6  zboxplot.verticalF)r'   r   rb   rc   rd   r   r  r  r  r  rw  r2  r   rW  r   r  r   rl	  r$   r$   r%   test_boxplot_orientation%  s8   "rn	  zuse_colorizer_keyword.pngr  c                  C   s  t jd t jd} t jd}t jdddd}tdd\}}tj	dd	}tj
j|d
d}|d j||||d |d j| ||dd |d j||d |d j||d |d j||d |d j||d |d jdd||d |d j|j||d dd df |d |d j||d |d j||d |d j|j | | |d |d j|j | | |d |jt jt j|dddddd|d t| d S ) Nr   r   rC  float32rp  r"	  r   r  r
  rW  r4  r~   r]  r9   	colorizerr  r  rr	  rW  r  )rr	  r   r   r  r  r  r'  r   r5   r6   r   r   r   r5   r   r  r6   r5   r  r   r  r5   )rb   rc   rd   rj   r   r'   r   r   r9  r  rr	  	Colorizerr7   r-  r   r  rz  r  r  r|  r  
tricontourr  tricontourffigimager  r   )rand_xrand_yr9   r+   r/  r4  clr$   r$   r%   test_use_colorizer_keyword*%  s.   ($$&r	  c            
   	   C   sr  t jd t jd} t jd}t jdddd}tdd\}}tj	dd	}tj
j|d
d}d}ddiddiddiddig}|D ](}	tjt|d |d j||f||d|	 W d    n1 shw   Y  qE|D ](}	tjt|d |d j||f||d|	 W d    n1 sw   Y  qp|D ](}	tjt|d |d j| |f|dd|	 W d    n1 sw   Y  q|D ]&}	tjt|d |d j|fd|i|	 W d    n1 sw   Y  q|D ]'}	tjt|d |d j|fd|i|	 W d    n	1 sw   Y  q|D ](}	tjt|d |d j|fd|i|	 W d    n	1 s;w   Y  q|D ](}	tjt|d |d j|fd|i|	 W d    n	1 sfw   Y  qD|D ]*}	tjt|d |d jdd |fd|i|	 W d    n	1 sw   Y  qo|D ]3}	tjt|d  |d! j|j||d dd df fd|i|	 W d    n	1 sw   Y  q|D ](}	tjt|d |d" j|fd|i|	 W d    n	1 sw   Y  q|D ](}	tjt|d |d# j|fd|i|	 W d    n	1 sw   Y  q|D ]1}	tjt|d |d j|j | | fd|i|	 W d    n	1 sSw   Y  q(|D ]1}	tjt|d |d$ j|j | | fd|i|	 W d    n	1 sw   Y  q\|D ]&}	tjt|d |j|fd|i|	 W d    n	1 sw   Y  qd S )%Nr   r   rC  ro	  rp  r"	  r   r  r
  rW  rp	  z5The `colorizer` keyword cannot be used simultaneouslyr5  r6  r4  r  r~   r  r6  r]  rq	  r  r  rs	  r  rr	  rt	  r  r  r  r'  ru	  rv	  r  rw	  r  )rb   rc   rd   rj   r   r'   r   r   r9  r  rr	  rx	  r   r   r1  r7   r-  r   r  rz  r  r  r|  r  ry	  r  rz	  r{	  )
r|	  r}	  r9   r+   r/  r4  r~	  Z	match_strZkwrdsZkwrdr$   r$   r%   test_wrong_use_colorizerI%  s      2$$r	  c                  C   s   t  \} }|g dg d}|D ]}t| dsJ q|jg dg ddd}|D ]}t| ds9J q-|jg dg ddd	}|D ]}t| dsTJ qH|jg d
g dddd}|D ]}t| dspJ qdd S )Nr  r  r   )r  r  r@  r  r  )r  r  r2  r)  r  )   rx   !   r   )r   r  )r'   r   r  r  r  r  )r+   r#   r  r  r$   r$   r%   test_bar_color_precedence%  s   r	  c                 C   s\   t ddgddgg}| |}|g d |j|j|j|jfdks%J |g d}d S )Nr  r   )r  r  r   r   )r  r  r   r   )r}  r  r  r  ry  rz  r~  r}  )r!   r"   r%  rn   ro   r$   r$   r%   .test_axes_set_position_external_bbox_unchanged%  s
   
r	  c                  C   sf   t ddd} dtjd< d}t \}}|j| t | d|d}|d D ]}t	|
 |s0J q$d S )	Nr   rr   r   r  r  r   )r  r  r6   rb   r   r   r   r'   r   r  r   r  r  r  )r/   r  r+   r#   	errorbarscapr$   r$   r%   test_caps_color%  s   
r	  c                  C   s`   t ddd} dtjd< t \}}|j| t | dd}|d D ]}t	|
 ds-J q!d S )	Nr   rr   r   r  r   r  r6   r   r	  )r/   r+   r#   r	  r	  r$   r$   r%   test_caps_no_ecolor%  s   
r	  r  (  r  r7  r   r   r  r  r   	functoolsr   r^	  r  r  	itertoolsr   platformsysr  r   Zdateutil.tzr  numpyrb   r	   r
   r   rQ   r   r   r   Zmatplotlib.colorsr9  r  Zmatplotlib.datesr  r  Zmatplotlib.figurer   Zmatplotlib.axesr   r   r   Zmatplotlib.collectionsr   Zmatplotlib.font_managerZfont_managerZmfont_managerZmatplotlib.markersro  r2  Zmatplotlib.patchesr  r  Zmatplotlib.pathr  r0	  Zmatplotlib.projections.geor   Zmatplotlib.projections.polarr   Zmatplotlib.pyplotZpyplotr'   Zmatplotlib.textrA  r  Zmatplotlib.tickerZtickerr   Zmatplotlib.transformsZ
transformsr}  Zmpl_toolkits.axisartistZ
axisartistrs  Znumpy.testingr   r   r   Zmatplotlib.testing.decoratorsr   r   r   Zmatplotlib.testing._markersr   r&   r,   r4   rJ   rP   rR   rW   rp   rw   r   r   r   r   machiner   r   r   r   r   r  r  r  r  r#  r&  r5  rZ  r^  ra  rh  r   r  ro  rv  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r!  r%  r/  r2  r<  rB  rH  rT  rX  r[  r\  rd  ri  rq  ru  rz  r  r  r  r  rj   r  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  r6  rA  rB  rW  rX  rY  r\  r_  rd  rh  ri  rj  ro  rq  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  ZPatchr  r!  r  r  r&  r+  r3  r4  r7  r9  r;  r=  r>  rH  rN  rQ  rS  rV  r[  r_  r`  rb  rc  r  r  r  r  r  r  r  r  ZCOLOR_TEST_CASESr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r&  r'  r(  r)  r*  r+  r-  r/  r1  r2  r4  r6  r9  r;  r<  r=  r>  rH  rI  rJ  rL  rN  rO  rQ  rW  r[  r`  rb  rc  rf  rh  rl  ru  rx  rz  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r(  r.  r/  r6  r;  r?  r@  rD  rF  rG  rH  rI  rK  rL  rN  rR  rT  rU  r]  r^  ra  rc  rh  rj  rl  rm  rp  rr  rs  ru  rw  r{  r  r  r  r  r  r  r  ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rt  rl   r  r$  r  r  r  r  r  r  r   r1  r  r#  r$  r'  r(  r+  r;  rA  rF  rH  rJ  rM  rO  rP  rS  r_  rb  rd  re  rf  rk  ro  rq  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Z	AxesImageZPcolorImagerc   ZQuadMeshr   rs   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zfixturer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r"  r&  r(  r)  r,  r.  r1  r3  r4  r:  r<  r?  rB  rG  rI  rJ  rL  rM  rO  rP  rQ  rR  rS  rT  rU  rV  r\  rj  rl  rn  rr  rt  rw  rx  rz  r}  r~  r  r  r  Z	Transformr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zfont_scalingsr  r  r  r  r  r  r  r	  r	  r		  r	  r	  r	  r	  r	  r	  r	  r  r	  r	  r	  r	  r	  r	  r 	  r!	  r$	  r%	  r)	  r*	  r,	  r-	  r/	  r2	  r4	  r5	  r9	  r:	  r=	  r?	  r@	  rB	  rC	  rE	  rF	  rL	  rM	  rO	  rQ	  rS	  rW	  rY	  rZ	  Zskipifversion_inforeleaselevelre	  rf	  rg	  rm	  rn	  r	  r	  r	  r	  r	  r	  r$   r$   r$   r%   <module>   sn
   

















'

*
43



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

!








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

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

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

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

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

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

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

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




"
$	

.'
	




	
	

	
	

.	4
"
$

	
)('


#&<

