o
    i79                    @   s'  d dl mZ d dlZd dlmZ d dlZd dlmZ d dlZd dl	m
Z
 zd dlmZ W n ey;   d dlmZ Y nw d dlZd dlZd dlmZ d d	lmZ d dlZd dlZd dlZd d
lmZmZmZ d dlmZ d dlm Z! d dl"m#Z$ d dl%m&Z' d dl(m)Z* d dl+m,Z- d dl.m/Z0 d dl1m2Z3 d dl4m5Z5m6Z6m7Z7 d dlm8Z8 d dl9m:Z: dd Z;e dd Z<e dd Z=e dd Z>edgddd Z?edgddd Z@dd ZAedgddd ZBeg d d!d" ZCd#d$ ZDd%d& ZEed'gd(d) ZFd*d+ ZGejHId,d-edgd.d/d0d1 ZJed2gd3d4 ZKd5d6 ZLd7d8 ZMedgdd9d: ZNed;gd<d=d>d? ZOejHPd@dAdB ZQejHPd@dCdD ZRejHPd@dEdF ZSedgddGdH ZTedIgd<d=dJdK ZUdLdM ZVedNgd<d=dOdP ZWdQdR ZXdSdT ZYdUdV ZZedWgdXdYidZd[d\ Z[ed]d]gd^d_ Z\ed`gdadbdcdd Z]edgddedf Z^dgdh Z_edigdgd<dadjdkdl Z`edmgdndo Zaedpgdqdrdsdt Zbedudugd<d=dvdw Zcedxgd<d=dydz Zdd{d| Zeed}gdadbd~d Zfdd Zgedgdd ZhejHPd@ejHIdg dedgddd Zieddgd<daddd Zjedgdadbdd Zkedgddd Zledgd<d=dd ZmejHjIdendddfeodddqenddfeodddqdendfgg dddd ZpejHjIdendddfeodddqenddfeodddqdendfgg dddd Zqedgd<d=dd Zredgdad<ddd Zsedgdd Ztedgd<d=dd Zudd Zvedgd<d=dd Zwedgddgd<ddd Zxedgddaddd Zyedgddaddd Zzdd Z{edgdddÄ Z|edgdddń Z}edgdddǄ Z~edgdddɄ Zedgdd̄ Zedgd<d@dddτ Zedgd<d=dd҄ Zedgd<d=ddՄ Zedgd<d=dd؄ Zedgd<d=ddۄ Zedgd<d=ddބ Zedgd<d=dd Zedgd@d<ddd Zedgd<d=dd Zeddgdd Zdd Zdd Zedgdd Zedgdd Zedgddd Zedgddd Zedgddd Zedgddd Zdd Zdd  Zedgdd Zdd Zdd Zdd	 Zd
d Zdd Zedgd<d=dd Zedgddd Zdd Zedgd<d=dd Zedgd<d=dd Zedgd<d=dd Zedgdd  Zd!d" Zd#d$ ZejHjId%ej jd&d' d(d' gg d)dd*d+ ZejHId,g d-fg gd-fg g gdfgd.d/ ZejHId0d1ej)jjfd2ejjjfd3ej)jjfgd4d5 Zd6d7 Zed8gd<dadd9d: Zed;gdadbd<d= Zed>d>gd<dadd?d@ ZedAgd<daddBdC ZdDdE ZG dFdG dGZdDddHdIdJZedKdLZejHIdMe edNeg dOgdPfedQdRedQeg dSgdPfedQdNdPedQeg dSgdPfedNdTedNeg dOgdPfedNdUgdTedNdUgeg dOg dVgdPfgdWdX Z[[ejHIdYe dfedNdRdfedQdHdQfedQdUgdHdQdUgfedQdZdQfed[dHd[fed\dHd\fedQdUd]dQfedNdQdUd^dQfedQdTdQfedQdUd_dUfgd`da Zdbdc Zddde Zdfdg Zedhgdidj Zdkdl Zdmdn Zedodogdpdq Zedrgd<d=dsdt Zi dud' i fdvdwZedxgdXdyid@dzd{d| Zed}gdXdyid@dzd~d ZedgdXdyid@dzdd ZedgdXdyid@dzdd Zedgd<dXdyid@dddd ZedgdXdyid@dddd Zedgd<dXdyid@ddd Zedgd<dXdid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@ddd Zedgd<dXdyid@dddÄ ZؐdĐdń ZِdƐdǄ ZedȐdgdd@dʍdːd̄ Zedgd<d@ddΐdτ Zedgd<dXdyid@ddѐd҄ ZedӐdgd@dbdՐdք Zސdאd؄ ZedgdXdid<d-d@dڍdېd܄ Zedgd<dXdyid@ddސd߄ Zedgd<dXdyid@ddd Zdd Zdd Zdd Zdd Zedgd<dXdyid@ddd Zeddgdd Zedgdd Zedgdd Zedgdd Zedgdd Zedgdd Zed gdd Zedgdd Zedgdd Zed	gd
d Zedgdd Zedgdd Zedgdd Zedgdd Zdd Zdd Zdd Zdd Zedgdd d! Zedgdd"d# Zd$d% Zd&d' Zd(d) Zeg d*d+d, Zd-d. Z e d/d0 Zd1d2 Zed3gd4d5 Zd6d7 Zed8gdad<dd9d: Ze d;d< Zed=d=gd>d? Zed@gdAdB ZedCgd<d=dDdE Z	edFgdGdH Z
edIgdJdK ZejHjIdLd<dgdMdNgdedOgdad<ddPdQ ZdRdS ZdTdU ZedVgdWdX ZedYgdZd[ Zed\gd]d^ Zed_gd<d=d`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zedrgdsdt Zdudv Zdwdx Zedygd<d=dzd{ Zed|gd<d=d}d~ Zedgd<d=dd Z dd Z!dd Z"edgd<d=dd Z#eddgd<d=dd Z$edgd<d=dd Z%ejHIdg ddd Z&edgd<d=dd Z'dd Z(ejHIdg gg d d-ggd d-gg ggejHIdg ddd Z)edgd<d=dd Z*edgdd Z+edgd<d=dd Z,eddge- dkr_d ndqdrdd Z.e dd Z/dd Z0eg ddgddd Z1dd Z2eg ddgddd Z3dd Z4ejHIdd-ddej5dgej6g ddgedgddd Z7eddgd<d=dd Z8edgd<d=dd Z9dÐdĄ Z:eg dŢd<dd@dǍdȐdɄ Z;eg dʢd<dd@dǍdːd̄ Z<eg d͢d<dd@dǍdΐdτ Z=dАdф Z>eg dҢd<dӐdԍdՐdք Z?eg dעd<d=dؐdل Z@edgd<d=dېd܄ ZAedݐdgd<d=dސd߄ ZBejHIdg ddd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIejHId,d-dd ZJdd ZKdd ZLedgdd ZMeg ddgddd ZNedgdd ZOedgd d ZPedgdd ZQedgdd ZRedgd	d
 ZSedgdd ZTdd ZUdd ZVdd ZWdd ZXedgdd ZYdd ZZdd Z[dd Z\edgd d! Z]d"d# Z^ed$gdXd%idZd&d' Z_d(d) Z`d*d+ Zad,d- Zbd.d/ Zcd0d1 Zdd2d3 Zed4d5 Zfd6d7 Zgd8d9 Zhed:gdXdyidZd;d< Zied=gdXdyidZd>d? Zjd@dA ZkdBdC ZldDdE ZmdFdG ZnejHIdHdIejojpfdJejojpfeqdeqdfejojpfg dKg dLfejojrfejssdMejssdMfej jtfgejHIdeodNudOejsvdddgdPdQ ZwdRdS ZxdTdU ZydVdW ZzdXdY Z{ejHIdZe{ d[d\ Z|ed]gd<d=d^d_ Z}d`da Z~dbdc Zeddgd<dqdԍdedf ZejHIdgdd<gedhgd<daddidj ZejHPd@dkdl Zejdmdngdodpdq Zejg drdodsdt Zdudv Zdwdx Zdydz Zd{d| Zed}gd@dbd~d Zedgd@dbdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zedgddrdd Zedgdd Zedgddrdd Zedgd<d=dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZddÄ ZdĐdń ZejHPd@dƐdǄ ZdȐdɄ Zdʐd˄ Zd̐d̈́ Zdΐdτ ZdАdф ZejHIdҐdӐdgejHIdՐdӐdgd֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ Zedgddސd߄ Zedgddd Zdd Zdd Zdd ZejHIddd<gejHIddd<gdd Zdd Zdd Zdd Zdd Zdd Zdd Zedgdad<ddd Zedgdadbdd Zdd ZÐd d ZĐdd ZŐdd ZƐdd Zǐdd	 ZȐd
d Zɐdd Zʐdd Zːdd Zedgddd Z͐dd Zΐdd Zϐdd ZАdd Zѐdd ZҐdd ZӐd d! ZԐd"d# ZՐd$d% Z֐d&d' Zאd(d) Zؐd*d+ Zِd,d- Zڐd.d/ Zېd0d1 Zܐd2d3 ZejHId4d5d6d7 ZejHId4d5d8d9 Zedgdd:d; ZejHPd@d<d= ZejHId>d?d@ e$jD g dA ejHPd@dBdC ZdS (E      )
namedtupleNDecimal)product)SimpleNamespace)nullcontext)	ExitStack)ma)cycler)image_comparisoncheck_figures_equalremove_ticks_and_titles)assert_allcloseassert_array_equalassert_array_almost_equal)
rc_context)MatplotlibDeprecationWarningc                  C   sD   t  \} }|d |d | dksJ | dks J d S )Nzx labelzy label)pltsubplots
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigax r   U/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_axes.pytest_get_labels+   s
   

r   c                 C   s   |   }|jddgddgddgd}|jddd |jddd | |}|jd	dd |  }|jddgddgddgd}|jdddd
 |jdddd ||}|jd	ddd
 d S )N      cY LabeltoplocX LabelrightZ Labelyhaxr,   r   scatterr   r   colorbar	set_labelfig_testfig_refr   sccbarr   r   r   test_label_loc_vertical3   s   

r8   c                 C   s   |   }|jddgddgddg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}|jdddd |jdddd |j|d	d
}|jdddd d S )Nr   r    r!   r#   bottomr%   r'   left
horizontalorientationr)   r   r*   r-   r/   r3   r   r   r   test_label_loc_horizontalD   s   r>   c                 C   s   t ddd0 |  }|jddgddgddg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}|jdddd |jdddd |j|d	d
}|jdddd d S )Nr(   r$   )zxaxis.labellocationzyaxis.labellocationr   r    r!   r#   r'   r;   r<   r)   r*   r-   )
matplotlibr   r   r0   r   r   r1   r2   r3   r   r   r   test_label_loc_rcU   s    


	r@   png
extensionsc           	      C   s   t jd d}t jdd| }|d }t \} }|j||d t \}}t j||ddt 	|| }t 
| |d }||d | ||  }||dg| |jdddd d S )	N!N,   r   r   )maxlagsfull)mode)r+   xminxmax)nprandomseednormalcumsumr   r   acorr	correlatedotarangevlinesaxhline)	r4   r5   Nxr.   rF   ax_testax_refnorm_auto_corrlagsr   r   r   
test_acorrh   s   r[   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 )NrD   i   r   rE   )    r\   r    r   .lower)markerorigingray_rnearest)cmapinterpolation
markersize
   )aspectxlimylimboth)rK   rL   rM   onesshufflereshaper   spyimshowxaxistick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r4   r5   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 )Nrd   rb   osolid)r_   	linestyle   )r   r   pytestraises	TypeErrorro   rK   eye)r   r   unsupported_kwr   r   r   test_spy_invalid_kwargs   s   r   c                 C   sT   t jd tjdd}|  | | }|| |j	
  |j	d d S )Nmpl20r\   rk   )mplstyleuserK   rL   randadd_subplotmatshowrp   rq   rr   rx   )r4   r5   ry   rX   r   r   r   test_matshow   s   

r   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005c                     sV  dd l m  m     dtjd<  fddtdD }  fddtdD } fddtdD }t 	 }|
d	 t 	 }|
d	 |j| |d
dd t 	 }|
d	 |j| |d
dd |
d t 	 }|j| |d
dd |j| |ddd |
d t 	 }|j| |d
dd |j| |ddd |
d |  d S )Nr      zlines.markeredgewidthc                    s   g | ]}| j  qS r   )sec.0r.   unitsr   r   
<listcomp>   s    z)test_formatter_ticker.<locals>.<listcomp>rg   c                       g | ]}d | d  j  qS )      ?      ?kmr   r+   r   r   r   r          c                    r   )g      ?      ?r   r   r   r   r   r      r   zx-label 001bluer   )colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr?   rcParamsranger   figurer   r   rs   autoscale_view)xdataydata1ydata2r   r   r   r   test_formatter_ticker   s0   






r   c                  C   s   dd } t   }|jjsJ |jjsJ |jjsJ |jjs"J |j|  |jjr.J |jjs4J |jjs:J |jjs@J t	| }t
|j tj	sPJ |j j|jks[J d S )Nc                 S      dS )N r   r.   posr   r   r   	_formfunc      z4test_funcformatter_auto_formatter.<locals>._formfunc)r   r   r   rq   isDefault_majfmtisDefault_minfmtyaxisset_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r   targ_funcformatterr   r   r   !test_funcformatter_auto_formatter   s    

r   c                  C   s   d} t   }|jjsJ |jjsJ |jjsJ |jjs J |j|  |jjs,J |jjs2J |jjs8J |jjr>J t	| }t
|j tj	sNJ |j j|jksYJ d S )Nz	{x}_{pos})r   r   r   rq   r   r   r   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr   targ_strformatterr   r   r   &test_strmethodformatter_auto_formatter   s    

r   twin_axis_locators_formattersc                  C   s
  t jddddd} t t j|  d }t|}tg d}t }|ddd}|dd	gddg |j	
| |j	| |j	td
 |j	tg d |j
t  |jtg d |jtd |jtg d |  |  d S )Nr   r      T)numendpoint       @)皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r"   3pr}   )rK   linspacesinpir   FixedLocatorr   r   rs   r   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterrq   LinearLocatortwinytwinx)valslocsmajlminlr   ax1r   r   r   "test_twin_axis_locators_formatters  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   drawrq   get_visiblepatchclar   )r   r   ax2ax3r   r   r   test_twinx_cla  s"   r   twinr.   r+   gRQ?)rC   tolc                 C   sF  d| }d| d}t dd}| ddd}t|| }t||d ||| | ddd}t||d t|| }||| dD ]Q}|dd|}	t|	|d |	|| tjj}
|tj	j
|
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j|
jgd
 |	jdtjd tjd dd qGt|  t| d S )Nr   set_scaler   r   r    logr   r    r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rK   rS   r   getattrrs   r?   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r4   r5   r   	twin_func	set_scaler.   rW   ax_twinirX   r	  r   r   r   test_twin_logscale4  sD   
r  ztwin_autoscale.pngc                  C   s   t g d} d|  }t g d}d| }t }|jdddd}|j| |dd	d
 t|}|j||ddd |dd |dd d S )N)r   r   r   r   r   r   r    r    r   r   r   r   F)autoscalex_onautoscaley_onr   rg   r   lwr--r   r  r   )rK   arrayr   r   add_axesrs   r   margins)r.   r+   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 )NF)r   r   r   set_autoscalex_onget_autoscalex_onr   set_autoscaley_onget_autoscaley_on)r   r   ax_x_onax_x_offax_y_onax_y_offr   r   r   #test_twin_inherit_autoscale_settingr  s   

r+  c                  C   sl  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 t d}t jd|d}|jd | sJ ||t| |  | rJ |  || ||t| |  | sJ t |  d S )	Nr   )r   r   r    r         shareyT)r   r   gcaxaxis_invertedyaxis_invertedrK   rL   rp   r   r   r   rs   cos	autoscalesubplotr   set_invertedclose)r   r   imgr.   ax0r   r   r   r   test_inverted_cla  s>   




r:  c                 C   st   t ddd |  }|ddgddg W d    n1 s!w   Y  | }|ddgddg |  d S )NT)zxtick.minor.visiblezytick.minor.visibler   r   )r?   r   r   rs   minorticks_on)r4   r5   rW   rX   r   r   r    test_minorticks_on_rcParams_both  s   
r<  autoscale_tiny_rangeTremove_textc                  C   sL   t dd\} }t|jD ]\}}dd|  }|ddgdd| g qd S )Nr    rg   ir   r   )r   r   	enumerateflatrs   )r   axsr  r   y1r   r   r   test_autoscale_tiny_range  s
   rD  defaultc                  C   s^   t dd\} }|g d |jdddd |jdddd t| d t| d	 d S )
Nr   r   r    r   r   Tr.   F)enableaxistightr+   )g333333ÿg333333	@)r         @)r   r   rs   r4  r   rv   rw   r   r   r   r   test_autoscale_tight  s   rK  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   dtyper    r   Tsharex)rI  re   r   )rK   rS   floatr   r   loglogsemilogxr4  r   r   rv   rw   )r.   r   r   r   limsr   r   r   test_autoscale_log_shared  s   rT  c                  C   s   t  \} }|jddgddggdd t| d t| d d|_|  d	d|j  d
d|j  f}d	d|j	  d
d|j	  f}t| | t| | d|_|  t| d t| d d S )Nr   r   r    r   r^   )r`   )      r   FrU  r   T)
r   r   rp   r   rv   rw   use_sticky_edgesr4  _xmargin_ymargin)r   r   ri   rj   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-  rN  )rK   rS   rn   r   
pcolormesh)r4   r5   Zr9  r   r   r   r   test_sticky_shared_axes  s   


r\  offset_pointsc                  C   sh   t ddd} t dt j |  }t }|jddddd	}|j| |d
dd\}|jdddddd d S )N              @{Gz?r   o   F)re   r   r   )autoscale_onri   rj   r   purpler  r   z	local maxr   r   datar   r   zoffset points)xyxycoordsxytext
textcoords)	rK   rS   r3  r   r   r   r   rs   annotate)tsr   r   liner   r   r   test_basic_annotate  s   

rr  c                  C   sN   t  \} }tjtdd |jddd W d    d S 1 s w   Y  d S )Nz;The \'s\' parameter of annotate\(\) has been renamed 'text'matchznow named textr   r   )rp  rj  )r   r   r   warnsr   rn  r   r   r   r   test_annotate_parameter_warn  s   "rw  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)rG   r:   r(   r   r   r       r   r   rg   )widthlength_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r   r   r@  ziprA  set_xlimset_ylimrK   r   arrowr   r3  )
r{  r|  r}  kwargsr   rB  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 )Nr   )皙?皙@)r   r   r  rv   rw   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fooru  r    r   )rl  )rl  
arrowprops)r   r   rn  arrow_patch)r   r   annr   r   r   test_annotate_default_arrowG  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}|j|g|gddd g d}||| g dd |d}	|	j|g|gddd |	|||| || gg dd |d}
|
j|g|gddd |
|| d| j d| j d| j d| j gd |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]rL     degred)yunitsr   r  )r^  r^  g     V@r^  b      Z      r   )r  )r   r   r   r   Epochdatetimer  DurationrK   rS   mdatesdate2numr   r   r   rs   fillautofmt_xdate)r   ro  valuedayr  dtnr   r   indr   r   ax4r   r   r   test_fill_unitsP  s<   





"
"r  single_pointc                  C   s   dt jd< dt jd< t  td tdgdgd td tdgdgd dgdgd	} t  td tjd
d
d| d td tjddd| d d S )Nr}   lines.markerT	axes.gridr,  r   r-  r   ry   r  ry   rh  r  )r?   r   r   r   r5  rs   r  r   r   r   test_single_pointw  s   





r  zsingle_date.pngr   )r   c                  C   sj   dt jd< ttd} dg}dg}t dd\}}|d j||  |d	d
d |d j||d	d
d d S )N)   zaxes.formatter.limits
0000-12-31g    X&Ag(\bPr    r   r   r}   rr   )	r   r   r  r  rK   
datetime64r   	plot_daters   )r  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 )Nrg   r   re   r   r   re   r   r    r   )gQQ?)r   	   ri   rj   )rK   rS   rn   r   rs   ru   ravel)r4   r5   rowcolrB  r   r   r   test_shaped_data  s   

r  c                  C   sZ   t jddgdtfdtfgd} t d}|d jdd| d |d	 jddd
| d d S )Nr   r   r    r    rl   twosrL  r    r   r  r   r  )rK   r  rP  r   r   r   rs   )ptsrB  r   r   r   test_structured_data  s   r  aitoff_proj)rC   r?  r   c                  C   sz   t t j t jd} t t j d t jd d}t | |\}}tjdtddd\}}|  |j|j	|j	ddd	 d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r    )   @aitoff
projection)figsize
subplot_kwr}   r   )rf   N)
rK   r   r   meshgridr   r   dictgridrs   rA  )r.   r+   XYr   r   r   r   r   test_aitoff_proj  s   
r  axvspan_epochc                  C   s   dd l m  m}  |   | jdtdddd}| jdtdddd}| d| jd}t	
 }t	j||d	d
d ||d|  |d|   d S Nr   r  r  r   r  r     r   r         ?)r  alphar_  )r   r   r   r   r  r  r  r  convertr   r0  axvspanr  r   t0tfr  r   r   r   r   test_axvspan_epoch      r  axhspan_epoch{Gz?)r   c                  C   s   dd l m  m}  |   | jdtdddd}| jdtdddd}| d| jd}t	
 }|j||d	d
d ||d|  |d|   d S r  )r   r   r   r   r  r  r  r  r  r   r0  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  )r      r   r   333333?ffffff?)extentr   r.   r+   )r  rh  )r   r   rK   rS   rn   hexbin)r   r   rh  r.   r+   r   r   r   test_hexbin_extent  s   
r  zhexbin_empty.pngc                  C   s   t  } | g g  d S r   )r   r0  r  r   r   r   r   test_hexbin_empty  s   r  c                  C   s`   t  \} }tdd d}|\}}|j||g ddd}tddd}||d	 s.J d S )
N   r    r   r  re   )r  picker  ,  r   r   )r   r   rK   rS   rn   r  r   contains)r   r   rh  r.   r+   hbmouse_eventr   r   r   test_hexbin_pickable  s   r  zhexbin_log.pngc                  C   st   t jd d} t j| }dd|  dt j|   }t d|d }t \}}|j||ddd	}t| d S )
NrD   順 r         @rJ  r    r   r   )yscalebins)	rK   rL   rM   standard_normalpowerr   r   r  r1   )nr.   r+   r   r   hr   r   r   test_hexbin_log  s   r  c                  C   s   t  \} }|  |g dg d | dksJ | dks$J t   t  \} }|  |g dg d | dksDJ | dksLJ t  \} }|d |	dd	 | d
kseJ d S )N)rc  r    r   )r   r    rc  r   )r   r  rb  )r  r   )r   rc  r   rg   r   )rg   r   )
r   r   invert_xaxisrs   rv   rw   r7  invert_yaxis
set_yscaler  r   r   r   r   test_inverted_limits  s   
r  nonfinite_limitsc                  C   st   t dt jd} t jdd t | }W d    n1 sw   Y  t j| t| d < t \}}|	| | d S )Nr^  r`  ignoredivider    )
rK   rS   eerrstater   nanlenr   r   rs   r.   r+   r   r   r   r   r   test_nonfinite_limits/  s   r  plot_fun)r0   rs   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  rL  C0r  )rK   rS   r   r  r   r  )r  r4   r5   r.   rW   rX   r   r   r   r   test_limits_empty_data:  s   r  rp   )r?  r   c                  C   s   dt jd< d} t| | f\}}|| d 8 }|| d 8 }t|d |d  ||  }t \}}|| d|i}t }|	d}|jd|d d S )Nrb   image.interpolationr   r    r  ra  r  )
r?   r   rK   indicessqrtr   r   rp   r   r   )Nr.   r+   r  r   r   rh  r   r   r   test_imshowK  s   


r$  imshow_clipc            	      C   s   dt jd< d} t| | f\}}|| d 8 }|| d 8 }t|d |d  ||  }t \}}||| d g}|jd }|	 d }|
 }t||}|j||d d S )Nrb   r   r   r    r   r   )	clip_path)r?   r   rK   r!  r"  r   r   contourcollections	get_pathsget_transformmtransformsTransformedPathrp   )	r#  r.   r+   r  r   r   r"   r&  clip_transformr   r   r   test_imshow_clipa  s   

r.  c                 C   s~   ddgddgg}|  }|j|ddd |   }tjtdd	 |j|td
dddd W d   dS 1 s8w   Y  dS )9Parameters vmin, vmax should be ignored if norm is given.r   r    r   r   r   r   )vminvmaxCPassing parameters norm and vmin/vmax simultaneously is deprecated.rs  rg   )normr0  r1  N)r   rp   r   rv  r   mcolors	Normalize)r4   r5   ry   r   r   r   r   test_imshow_norm_vminvmax|  s   "r7  polycollection_joinstylec                  C   sf   t  \} }tddgddgddgddgg}tjj|gdd}|| |dd |	dd d S )Nr   r    (   )
linewidthsr   r   )
r   r   rK   r  r   r(  PolyCollectionadd_collection
set_xbound
set_ybound)r   r   vertsr"   r   r   r   test_polycollection_joinstyle  s   "
r@  z	x, y1, y2r  r   r^  r    )
2d_x_input2d_y1_input2d_y2_input)idsc                 C   J   t  \}}tt || || W d    d S 1 sw   Y  d S r   )r   r   r   r   
ValueErrorr  )r.   rC  r!  r   r   r   r   r   test_fill_between_input     "rG  z	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                 C   rE  r   )r   r   r   r   rF  fill_betweenx)r+   x1r   r   r   r   r   r   test_fill_betweenx_input  rH  rN  fill_between_interpolatec               	   C   s  t ddd} t dt j |  }dt dt j |   }tjdddd\}\}}|j| || |d	d
 |j| ||||kdddd |j| ||||kddd t j	|d}t jj
|d< |j| || |d	d
 |j| ||||kddd |j| ||||kddd d S )Nr^  r    r  333333?r   r   TrN  blackr  white/)wherer  hatchinterpolater  )rT  r  rV  r   r   r   )rK   rS   r   r   r   r   rs   r  r	   masked_greatermasked)r.   rC  r!  r   r   r   r   r   r   test_fill_between_interpolate  s(   
rY  #fill_between_interpolate_decreasingr   r?  c               	   C   s   t g d} t g d}t g d}tjdd\}}||| d ||| d |j| ||||k dd	d
d |j| ||||kdd	d
d |dd |dd d S )N)gfffff@i  i  )g"@r  r  )g@gffffff@gffffff@)r  r  r  ztab:redkr   T皙?)rT  r  rV  r  r  r   r      X  )rK   r  r   r   rs   rL  r  r  )r   ro  profr   r   r   r   r   (test_fill_between_interpolate_decreasing  s   rb  z
symlog.pdfc                  C   sX   t g d} t g d}t \}}|| | |d |d |dd d S )N)r   r   r    r      r  ry     )i@B i  r  r   r   r   r   r   symloglinearre   i )rK   r  r   r   rs   r  
set_xscaler  r  r   r   r   test_symlog  s   

rh  zsymlog2.pdfc                  C   sn   t ddd} tdd\}}t|g dD ]\}}|| |  |jd|d |d	 q|d
 dd d S )N2   MbP?r   r   )      4@r   r   r   r`  re  )	linthreshTre   皙r   )	rK   rS   r   r   r  rs   rg  r  r  )r.   r   rB  r   rm  r   r   r   test_symlog2  s   ro  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)            rU  r^  r   r   r   )rp  g      rq  g      rU  g      пr   r  r         ?r         ?r   re   )rK   r  hypotr   pcolorlist)r.   r+   r  r  r[  r   r   r   test_pcolorargs_5205  s   
&rw  rZ  c                  C   s   d} t dd| }t dd| d }t ||\}}t |t | }t |t | }|d }t ||d }||  |  }t	t 
|dt | k |}tdd	\}	\}
}}|
j|||d d
d d
f ddd |j|||d d
d d
f dddgd |j|||dd d S )Nry  rp  r   r    皙?r   r   r   r   re   r]  )r  
edgecolorsr  wgouraudshading)rK   r   r  r3  r   rt  minptpr	   masked_whereabsmaxr   r   rZ  )r
  r.   r+   r  r  QxQzr[  Zmr   r   r   r   r   r   r   test_pcolormesh  s    $(r  pcolormesh_alphapdf)rC   r?  c               
   C   sv  d} t t dd| t dd| d \}}|}|t | }t ||d }||  |  }tdd}|t 	d}ddt t 	d  |d d d	f< t
|}tdd\}	\\}
}\}}|
|||fD ]}|tjd
dd	g ddd qi|
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 )Nry  rp  r   r    r   viridis   r   r   )r   rp  )r  r   r   r   r   )r  zorderre   r^  rA  r   )rc   r  r}  r  r{  )rc   r}  r  )rK   r  r   r   rt  r~  r  r   get_cmaprS   r5  ListedColormapr   	add_patchmpatches	RectanglerZ  )r
  r  r  r  Qyr[  vircolorsrc   r   r   r   r   r  r   r   r   r   test_pcolormesh_alpha"  s0   $

&r  zpcolormesh_datetime_axis.pngFc                       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^  \(\?333333?hspacer$   r9     r   c                       g | ]
} t j|d  qS )daysr  	timedeltar   dbaser   r   r   H      z1test_pcolormesh_datetime_axis.<locals>.<listcomp>r  r  r  re   r  r   rH  r  r  r(   r   )r   r   subplots_adjustr  rK   r  r   rS   r  r5  rZ  repeatnewaxisget_axesget_xticklabelsset_haset_rotationr   r.   r+   z1z2zr   labelr   r  r   test_pcolormesh_datetime_axisB  .   

.

>

r  zpcolor_datetime_axis.pngc                     r  )Nr^  r  r  r  r  r   c                    r  r  r  r  r  r   r   r   b  r  z-test_pcolor_datetime_axis.<locals>.<listcomp>r  r  r  re   r  r   r  r  r  r(   r   )r   r   r  r  rK   r  r   rS   r  r5  ru  r  r  r  r  r  r  r  r   r  r   test_pcolor_datetime_axis\  r  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    d S 1 sNw   Y  d S )Nry  rp  r   r    r   re   r{  r|  r   r  invalid)mask)ig  r   r   r3  rg   z.are not monotonically increasing or decreasingrs  auto)rK   r   r  rt  r   r   r   r   r   rZ  TNaNrF  r  r	   r  zerosr|  rv  UserWarning)r
  r.   r+   r  r  r[  r  r   r   r   r   test_pcolorargsv  sJ   $$
  $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   rg   r   rD   r    r  rA  r|  re   rb   r   rK   rS   rL   rM   randnrZ  diffr4   r5   r   r.   r+   r[  r   r!  r   r   r   test_pcolornearest     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>rg   r   r   rD   r    r  rA  r|  c                 S   s    g | ]}t j |d  d qS )r   r  r  r   r   r   r   r     s     re   rb   )	r   r   rK   rS   rL   rM   r  rZ  r  r  r   r   r   test_pcolornearestunits  s   r  c                 C   s   |   }tdd}tdd}tjd tjdd}|j|d d |d d |d dd df dd	 |  }|d d }|d d }tt	 |j|||dd	 W d    d S 1 s`w   Y  d S )
Nr   rg   r   rD   r   r  re   rA  r|  )
r   rK   rS   rL   rM   r  rZ  r   rv  r   r  r   r   r   test_pcolordropdata  s   2"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   rg   r   rD   r   r  r  r|  re   r    r  r  r   r   r   test_pcolorauto  r  r  	canonicalc                  C   s   t  \} }|g d d S )Nr   r    r   r   r   rs   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 )Nr    r   )r   r   r   h  r  -   r   )r  )theta1theta2r   rg   )r   r   r@  rA  r  r  EllipseArcrs   rK   r3  deg2radr   r  r  )
rz  r  centrer   r   rB  r  r   r  r  r   r   r   test_arc_angles  s4   
r  arc_ellipsec               	   C   sN  d\} }d\}}d}t t d}|d t | }|d t | }t |}t t |t | gt |t |gg}	t |	t ||g\}}|| 7 }||7 }t }
|
j	ddd}|j
||d	d
d
ddd tj| |f|||dddd}|| |
j	ddd}|j
||d	dddd tj| |f|||dddd}|| d S )N)gRQ?gp=
ף?)r   r   r  r   r,  r  )rh   r   yellowr   )r  r  r  r  r  r    F)angler  r  r  r-  equalr   )r  r  r  r  )rK   r  rS   r3  r   r  rR   r   r   r   r  r  r  r  )xcenterycenterrz  heightr  r  r.   r+   rthetaRr   r   e1e2r   r   r   test_arc_ellipse  s:   

r  	markeveryc                  C      t ddd} t | t | d d  }t }|d}|j| |ddd |j| |d	d d
d |j| |dddd |j| |dddd |  d S )Nr   rg   r   r   ra  r}   rE  r  r  mark allr  r  rp  mark every 10+r   r  mark every 5 starting at 10	rK   r   r   r"  r   r   r   rs   legendr  r   r   r   test_markevery&     
r  markevery_linec                  C   r  )Nr   rg   r   r   ra  z-orE  r  z-dr  r  z-sr  z-+r  r  r  r  r   r   r   test_markevery_line5  r  r  markevery_linear_scalesc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ])\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d q@d S )Nr  r   r  r  rd  r   r   re   r   r  r   r   r   r   r^  r   g?r   r   )\(?rg   r    r   markevery=%sr}   -r   lsmsr  )slicer?   gridspecGridSpecr  rK   r   r   r@  r   r5  titlestrrs   
casescolsgsdeltar.   r+   r  caser  r  r   r   r   test_markevery_linear_scalesD  s(   
r	  markevery_linear_scales_zoomedc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	j||ddd|d t	d t	d q@d S )Nr  r  r  r   re   r   r  r   r   r   r   r  r  r   r  rg   r    r   r  r}   r  r   r  )rc  g@)rx  g333333?)r  r?   r  r   r  rK   r   r   r@  r   r5  r  r  rs   ri   rj   r  r   r   r   #test_markevery_linear_scales_zoomed]  s,   

r  markevery_log_scalesc            
      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}d}tddd|  d| }t|d | }t| D ]3\}}|| }|| }	t	
|||	f  t	dt|  t	d t	d t	j||ddd|d q@d S )Nr  r  r  r   re   r   r  r   r   r   r   r  r  r   r  rg   r    r   r  r   r}   r  r   r  )r  r?   r  r   r  rK   r   r   r@  r   r5  r  r  xscaler  rs   r  r   r   r   test_markevery_log_scalesx  s,   


r  markevery_polarc            	      C   s   d ddg dddgt dddd	d
dddg} d}tjt| | d |}tddd}dtj | }t| D ]+\}}|| }|| }t	j
|||f dd t	dt|  t	j||ddd|d q6d S )Nr  r  r  r   re   r   r  r   r   r   r   r  r  r   r  r    T)polarr  r}   r  r   r  )r  r?   r  r   r  rK   r   r   r@  r   r5  r  r  rs   )	r  r  r  r  r  r  r  r  r  r   r   r   test_markevery_polar  s&   
r  marker_edgesc                  C   s   t ddd} t }|d}|j| t | ddddd |j| d	 t | ddddd |j| d
 t | ddddd d S )Nr   r   rg   ra  zy.      >@r  )r  mewmecr   r   r    r  )rK   r   r   r   r   rs   r   r.   r   r   r   r   r   test_marker_edges  s   
 $r  zbar_tick_label_single.pngc                  C   sV   t  } | jddddd ddd}t  }|d} t  } | jdd	dd|d
 d S )Nr   r   edge0)align
tick_labelr  ra  ry   r  )r  r  rh  )r   r0  barr   r   )r   rh  r   r   r   r   test_bar_tick_label_single  s   

r  c                  C   s&   t  \} }|ddgtjdg d S )Nr   r   r   )r   r   r  rK   r  r   r   r   r   test_nan_bar_values  s   r  c                  C   s   t  \} }|g g  d S r   )r   r   r  r   r   r   r   test_bar_ticklabel_fail     r  zbar_tick_label_multiple.pngc                  C   0   t  } | jddgddgddgddgdd	 d S )
Nr         @r    r   r   ry   r  centerrz  r  r  )r   r0  r  r  r   r   r   test_bar_tick_label_multiple     
r%  z/bar_tick_label_multiple_old_label_alignment.pngc                  C   s:   dt jd< t } | jddgddgddgdd	gdd
 d S )Nr#  zytick.alignmentr   r"  r    r   r   ry   r  r$  )r?   r   r   r0  r  r  r   r   r   *test_bar_tick_label_multiple_old_alignment  s
   

r'  c                 C   s`   |   }g d}g d}dd |D }dd |D }|j||dd |  }|j||dd d S )Nr   g @g333333@r  rx  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   r*  r   r   r   r   r   r   r     r+  r#  r  r   r  r4   r5   r   x0y0r.   r+   r   r   r   test_bar_decimal_center  s   r1  c                 C   sl   |   }g d}g d}dd |D }dd |D }|j||g ddd |  }|j||g ddd d S )	Nr(  r)  c                 S   r*  r   r   r   r   r   r   r     r+  z,test_barh_decimal_center.<locals>.<listcomp>c                 S   r*  r   r   r   r   r   r   r     r+  )r   r   r   r   r#  r  r  r   barhr.  r   r   r   test_barh_decimal_center  s   r5  c                 C   ^   g d}g d}g d}dd |D }|   }|j|||dd |  }|j|||dd d S )Nr(  r)  r  g333333?r   r    c                 S   r*  r   r   r   r  r   r   r   r     r+  z*test_bar_decimal_width.<locals>.<listcomp>r#  rz  r  r-  )r4   r5   r.   r+   w0rz  r   r   r   r   test_bar_decimal_width     r;  c                 C   r6  )Nr(  r)  r7  c                 S   r*  r   r   r8  r   r   r   r     r+  z,test_barh_decimal_height.<locals>.<listcomp>r#  r2  r3  )r4   r5   r.   r+   h0r  r   r   r   r   test_barh_decimal_height  r<  r>  c                  C   R   t  } | jddgddgdddd}|D ]}| dksJ | d	ks&J qd S )
Nr   r    r   r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r0  r  get_facecolorget_edgecolorr   rectsrectr   r   r   test_bar_color_none_alpha     rI  c                  C   r?  )
Nr   r    r   r   r  r   r@  rB  rA  rC  rF  r   r   r   test_bar_edgecolor_none_alpha  rJ  rK  zbarh_tick_label.pngc                  C   r!  )
Nr   r"  r    r   r   ry   r  r#  )r  r  r  )r   r0  r4  r  r   r   r   test_barh_tick_label&  r&  rL  c                  C   s^  t  \} }|jtddddtjddd |jtddddtjddtjddd t  \} }|jtddddtjddd	 |jtddddtjddtjddd
 t  \} }|jtdddtdddgtddgtjddd	 |jtdddtdddgtddgdd dD d	 |tdddtjddfgd dS )z>Smoketest that bar can handle width and height in delta units.  r   r   r   hoursrz  r    )xerrrz  )r  )r  yerrr   c                 S   s   g | ]}t j|d qS )rN  r  r   ro  r   r   r   r   B  s    z&test_bar_timedelta.<locals>.<listcomp>r   )rg   r  N)	r   r   r  r  r  r4  rK   r  broken_barhr   r   r   r   test_bar_timedelta.  s<   







rU  c                 C   sB   t jdd}| jdd| jdddj}t  tj||d d S )Nr   r    z1/1/2000r   )years)periodsfreq	positions)	rK   rL   r   
date_range
DateOffsetyearr   r   boxplot)pdrh  rV  r   r   r   test_boxplot_dates_pandasH  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)rM  rM  rM  )r   r   r   r  )r]  monthr  r  )r]  ra  r  dater  rg   r#  r9  oranger   r  )		DataFrameto_datetimegroupbysumindexr   r   r  rs   )r_  dfmonthlydatesforecastbaseliner   r   r   r   r   test_bar_pandasQ  s   rn  c                 C   sD   | j g dg ddg dd}t \}}|j|jd|jd d S )N)r   r   r  )r   r^  r  )r.   rz  r  rh  r   rP  )rd  r   r   r  r.   rz  r_  ri  r   r   r   r   r   test_bar_pandas_indexedd  s
   rq  c                 C   sF   | j ddgdd}t|| t|j| t| t|j d S )Nr   r    float64rL  )Seriesr   rs   rh  )r_  r.   r   r   r   test_pandas_minimal_plotl  s
   
rt  hist_logc                  C   sN   t dddd } t d|  d|  g}t }|d}|j|ddd d S )	Nr   r   r  r   ra  FT)r  r   )rK   r   concatenater   r   r   hist)data0rh  r   r   r   r   r   test_hist_logu  s
   
ry  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 )
Nr    r   )r  step
stepfilledr   r   r   histtypeT)r   r}  )r   r@  r  rw  )r4   r5   rz   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 )Nr    r   r   
barstackedr|  r   r   r   r   )r   r   rw  r  canvasr   rw   r   rB  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   r0  rw  r  r   r   r   test_hist_bar_empty     r  zhist_step_empty.pngc                  C   r  )Nrz  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||f  |j
dd q7|d j}	tdd |	D siJ d S )Nr   r  r   rg   r  TFr    rz  r   r{  )nrowsncolsr}  stackedz%s/%sri  r9   r   r   c                 s   s     | ]}|  | kV  qd S r   )rD  rE  )r   r   r   r   r   	<genexpr>  s    z(test_hist_step_filled.<locals>.<genexpr>)rK   rL   rM   r  r   r   r  rA  rw  	set_titler  r  all)
r.   n_binsr  typesr   rB  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 )NrD   r  Tdensity)rK   rL   rM   r  r   r   rw  rh  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   )rc  re   rU  r   r   r   T)r  r  )rK   rL   RandomStater  r   rw  	histogramr   )rngro  r  mpl_heightsr  
np_heightsr   r   r   test_hist_unequal_bins_density  s   
r  c                  C   sd   t  dddt  dddgt  dddt  dddgg} t \}}|j| dd |j| dd d S )N  r   r    T)r  F)r  r   r   rw  r  r   r   r   test_hist_datetime_datasets  s   r  bins_preprocessc                 C      | S r   r   r  r   r   r   <lambda>      r  c                 C   s   t | dS )Nr  )rK   asarrayastyper  r   r   r   r        )r  zdatetime.datetimeznp.datetime64c              	   C   s   t  dddt  dddt  dddt  dddgt  dddt  dddt  dddt  dddgg}t  dddt  dddt  dddg}t \}}|j|| |dd	\}}}tj|tj	| |j|| |d
d	\}}}tj|tj	| d S )Ni  r   r      r    r      T)r  r  F)
r  r   r   rw  rK   r   r   r   rk  r  )r  rh  
date_edgesr   r   r  r  r   r   r    test_hist_datetime_datasets_bins  s   r  zdata, expected_number_of_histsr   c                 C   sJ   t | \}}}t|}|jdkrd|ksJ d S |jd |ks#J d S )Nr   r   )r   rw  rK   r  ndimr|  )rh  expected_number_of_histshistsr  r   r   r   test_hist_with_empty_input  s
   

r  zhisttype, zorderr  rz  r{  c                 C   sH   t   }|jddg| d |jsJ |jD ]
}| |ks!J qd S )Nr   r    r|  )r   r   r   rw  r  
get_zorder)r}  r  r   r   r   r   r   test_hist_zorder  s   

r  c                  C   sH   t ddd} t ddd}t | t |d d t jf  }| ||fS )Nrc  r      x   )rK   r   r3  r   r  )r.   r+   r  r   r   r   contour_dat  s   "
r  contour_hatchingc               
   C   sF   t  \} }}t }|d}|j| ||dg dtdddd d S )Nra  r  )rS  \z//r  grayrk   r   )hatchesrc   extendr  )r  r   r   r   contourfr  )r.   r+   r  r   r   r   r   r   test_contour_hatching  s   

r  contour_colorbarc            	   
   C   s   t  \} }}t }|d}|j| ||tdddtddddd	}|j| ||td
dddgddd}|j| ||tddddgdd}|j	||d}|
| |j
|dd d S )Nra  gg7A`?r   RdBug333333r  rk   )levelsrc   r0  r1  r  gg^I+r+   r~   r    )r  r  
linestylesr:  r  r"   )r  r  r:  r  F)erase)r  r   r   r   r  rK   rS   r  r'  r1   	add_lines)	r.   r+   r  r   r   cscs1cs2r7   r   r   r   test_contour_colorbar  s*   

r  hist2dc                  C   s   t jd t jdd d } t jdd }t }|d}|j| |ddd | |d	}t }|d}|jd
dd|dd d S )Nr   r   r    r   ra  rg   Tr  
rasterizedr   r.   r+   )r  rh  r  )rK   rL   rM   r  r   r   r   r  )r.   r+   r   r   rh  r   r   r   test_hist2d-  s   


r  hist2d_transposec                  C   sT   t jd t dgd } t jdd }t }|d}|j| |ddd d S )	Nr   r   r   r    ra  rg   Tr  )	rK   rL   rM   r  r  r   r   r   r  r  r   r   r   test_hist2d_transpose>  s   
r  c                  C   s>   t jd\} }t  }|tfD ]
}|j| |dd qd S )Nr  Tr  )rK   rL   r   r   r   r  )r.   r+   r   objr   r   r   test_hist2d_densityJ  s
   r  c                "   @   s  e Zd Zedgddddd Zedgddd	d
 Zedgddgddd Zedgddd Zdd Z	dd Z
edgddd Zedgddd Zedgddd Zedgddd Zedgddd  Zd!d"gd#fd$d%d&g d'd(fd)d*gd#fd*gd+ d#fd,gd- d(fd,gd+ d(fd,gd. d/fg d0d(fg d1d(fg d2d#fg d3gd(fg d3gd- d/fg d3gd+ d(fg d3gd. d/fg d4gd(fg d4gd- d/fg d4gd+ d(fg d4gd. d/fg d4gd- g d3g d(fg d4d5d6gd/fg d4d5d6d7gd(fg d4d5d6d7g d8gd/fg d4d5d*gd#fg d4d5d6d*gd#fg d4d5d6d7d*gd#fgZejd9ed:d; Zejd<edgdd=d> Zd?d@ Zd(S )ATestScatterr0   r   Tr[  c                 C   s   t g dt g dg dg dg dd}t \}}|j|d d |d	 d |d
 |d d |j|d d |d	 d |d |d d |jdd	d
d|d d S )Nr   r   r    rc  r    r   r    r   r  r+   r  limerd  r         )0.50.60.7z0.8)r.   r+   r"   rp  c2r.   r   r+   r"   rp  r"   rp  r  )r"   rp  rh  )rK   r  r   r   r0   )selfrh  r   r   r   r   r   test_scatter_plotR  s   **zTestScatter.test_scatter_plotzscatter_marker.pngr>  c           
   
   C   s   t jdd\}\}}}|jg dg dg dg dg ddd	 |jg dg dg dg dg dtjd
ddd	 d\}}|| tj }tddtj d}tt	|| | t
|| | g}	|jg dg dg dg dg d|	d	 d S )Nr   r  r  r  )r   r   r   r+   r  r  )r  rj  r9  r   )r]  r  gr  rp  )r"   rp  ry  r_   r}   r$   )	fillstylerg  r   r    r  )r   r   r0   mmarkersMarkerStylerK   r   r   column_stackr3  r   )
r  r   r9  r   r   rxryarear  r?  r   r   r   test_scatter_marker]  s2   
zTestScatter.test_scatter_marker
scatter_2DrA   )r?  rC   c                 C   sP   t d}t d}t ||\}}|| }t \}}|j|||ddd d S )Nr   r    r  face)r"   rp  ry  )rK   rS   r  r   r   r0   )r  r.   r+   r  r   r   r   r   r   test_scatter_2Dv  s   

zTestScatter.test_scatter_2DrB   c           
      C   s   t g d}t g d}t dd |D }t dd |D }g d}g d}| }	|	j||||d | }	|	j||||d d S )	Nr(  r)  c                 S   r*  r   r   r8  r   r   r   r     r+  z4TestScatter.test_scatter_decimal.<locals>.<listcomp>c                 S   r*  r   r   r8  r   r   r   r     r+  r  r  r  )rK   r  r   r0   )
r  r4   r5   r/  r0  r.   r+   r"   rp  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 )Nr   r    r   r   r  r  )r   r   rF  r   r0   r  r   r   r   test_scatter_color  s   "zTestScatter.test_scatter_colorc                 C   s   t d}tt t|||dd   W d    n1 s w   Y  tt t|dd  |dd  | W d    d S 1 sEw   Y  d S )Nr   r   )rK   rS   r   r   rF  r   r0   )r  r.   r   r   r   test_scatter_size_arg_size  s   
 "z&TestScatter.test_scatter_size_arg_sizec                 C   s   |  }tdd}|dd |jtdtddtjdtjgg d|dd	 |  }tdd}|jd
dgd
dgddgddg|d |jddgddgddgdd d S )Nr  r  r]  r   r   r    rF  Tr"   rp  rc   plotnonfiniter   r   r"   rp  rc   )rp  r   r   r   r  set_badr0   r   rK   r  r  r4   r5   r   rc   r   r   r   test_scatter_invalid_color  s   $"z&TestScatter.test_scatter_invalid_colorc                 C   s~   |  }tdd}|dd |jtdtddtjdtjgg d|dd	 |  }|jd
dgd
dgddgddg|d d S )Nr  r  r]  r   r   r    rF  Fr  r   r   r  r  r  r   r   r   test_scatter_no_invalid_color  s   (z)TestScatter.test_scatter_no_invalid_colorc              	   C   s~   g d}|  }|j|||ddd |  }tjtdd |j|||tddddd	 W d
   d
S 1 s8w   Y  d
S )r/  r  r   r   )r"   r0  r1  r2  rs  r3  rg   )r"   r4  r0  r1  N)r   r0   r   rv  r   r5  r6  r  r4   r5   r.   r   r   r   r   test_scatter_norm_vminvmax  s   "z&TestScatter.test_scatter_norm_vminvmaxc                 C   s:   |  }|jdddd |  }|jdgdgdgd d S )Nr   r!   )r   r0   )r  r4   r5   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 )Nrg   r    r   r!   )rK   rS   r   r0   rn   r  r   r   r   test_scatter_different_shapes  s
   
 $z)TestScatter.test_scatter_different_shapes)r  Nrgby
conversion)r  N)r   N)NN)r  r  r  r   N)jauner  r   r   r   r   r   r|  )r  z0.4r  r  )r  r  r  C5)r  r   r  r  r  r   r   r   r   r  z0.0r  r   r   r   zc_case, re_keyc                 C   s   dd }d}ddd}|d u rt jjj|di ||d d S tjt|| d	 t jjj|di ||d W d    d S 1 s>w   Y  d S )
Nc                   S   r   Nr   r   r   r   r   r   get_next_color  r   z2TestScatter.test_scatter_c.<locals>.get_next_colorr   z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r|  r  rQ  )r"   ry  r  xsizeget_next_color_funcrs  )r   axesAxes_parse_scatter_color_argsr   r   rF  )r  c_casere_keyr  r  REGEXPr   r   r   test_scatter_c  s    
"zTestScatter.test_scatter_crE  c                 C   s   g dg}g dg}|  }|jtdtd|d |jtdd td|d |  }|jtdtd|d |jtdd td|d d S )N)r   r   皙?)r   r   r  r   r   r  r   r    r!   )r   r0   rK   rl   r   )r  r4   r5   rgbrgbarX   rW   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   Cr.   r   r   )r"   r_   rp  r:  C3lines.linewidth)rK   rS   r   r   r   r0   rG   get_linewidthsr   r   r   )r  r.   r   r   r  pcr   r   r   test_scatter_linewidths(  s   
z#TestScatter.test_scatter_linewidths)__name__
__module____qualname__r   r  r  r  r   r  r  r  r  r  r  r  r  params_test_scatter_cr   markparametrizer  r   r  r  r   r   r   r   r  Q  st    



















+


r  )ry  c                K   s   | ||d ur
||fS i |fS r   r   )r"   r  ry  r  r   r   r   _params7  s   r  _resultz	c, colorszparams, expected_resultr  r  )r"   r  r  r!   r   r   r   r   r  r  )r   r   r   r   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  K  r   z5test_parse_scatter_color_args.<locals>.get_next_colorr  )r   r  r	  r
  r"   r   r  )paramsexpected_resultr  r"   r  _edgecolorsr   r   r   test_parse_scatter_color_args<  s   r%  zkwargs, expected_edgecolorsr  r  r   )r  ry  )r"   r  ry  )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  f  r   z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_colorr"   ry  r    )r  r  )popr   r  r	  r
  )r  expected_edgecolorsr  r"   ry  r  result_edgecolorsr   r   r   (test_parse_scatter_color_args_edgecolorsW  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  r   z;test_parse_scatter_color_args_error.<locals>.get_next_colorz&RGBA values should be within 0-1 rangers  )r   r   r  )r   r^  gffffff?r    )r  r  r  )	r   r   rF  rK   r  r   r  r	  r
  )r  r"   r   r   r   #test_parse_scatter_color_args_errorq  s   
"r+  c                     s  ddl m  G  fddd} |  }|  }tj|_|  }tjg d|d}t| ks-J tj|d}||u s9J t	  tj|d}t|t
jj ksPJ tj|d}||u s\J tt!}tj|d}t|dkspJ dt|d jv s{J W d    n1 sw   Y  ||usJ | dksJ | tjksJ tt! tj|d}t|dksJ dt|d jv sJ W d    n1 sw   Y  ||u sJ t	  tjd	|d}t|t
jj ksJ t	  d S )
Nr   	PolarAxesc                       s    e Zd Zdd Z fddZdS )z#test_as_mpl_axes_api.<locals>.Polarc                 S   s
   d| _ d S )Nr   theta_offsetr  r   r   r   __init__  s   
z,test_as_mpl_axes_api.<locals>.Polar.__init__c                    s    d| j ifS )Nr/  r.  r  r,  r   r   _as_mpl_axes  s   z0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axesN)r  r  r  r0  r1  r   r,  r   r   Polar  s    r2  r  r  r   z!Requested projection is differenty   )matplotlib.projections.polarr-  rK   r   r/  r   r  typer0  r7  r   	_subplotssubplot_class_factoryr   rv  r  r  r  messageget_theta_offsetr5  )r2  prjprj2prj3r   
ax_via_gcarecr   r,  r   test_as_mpl_axes_api|  sB   r?  c                  C   sZ   t  \} }t  \}}t | |t  u sJ | t  u s!J t |  t | d S r   )r   r   scar0  gcfr7  )fig1r   fig2r   r   r   r   test_pyplot_axes  s   

rD  
log_scalesc                  C   sV   t  } | ddd}|ttdd |jddd |  |j	ddd d S )Nr   r   r   r         @r  g      "@)
r   r   r   rs   rK   r   r   r  r  rg  r   r   r   r   test_log_scales  s   rG  c                  C   sT   t  \} }|jddd |jtd | |   kr%dks(J  J d S )Nr   )r  r  r   r   rg   )	r   r   ru   rq   r   r   MultipleLocatorrv   rw   r  r   r   r   test_log_scales_no_data  s   (rJ  c                  C   s   t  } | ddd}|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 sKw   Y  d S )Nr   r   zAttempted to set non-positivers  re   rg   )
r   r   r   rg  r   rv  r  r  r  r  r   r   r   r   test_log_scales_invalid  s   

"rK  stackplot_test_imagec                  C   s   t  } tddd}d| }d| d }d| d }| ddd}||||| |d |d	 ||||d
}t  } | ddd}|jdddd|d |d |d	 d S )Nr   rg   r   r   r   r  r    r   rg   )r   F   )r.   rC  r!  y3r.   rC  r!  rO  r  )r   r   rK   r   r   	stackplotr  r  )r   r.   rC  r!  rO  r   rh  r   r   r   test_stackplot  s   


rQ  stackplot_test_baselinec                  C   s   t jd dd } | dd}d|dd d f< tdd\}}|d jtd|jd	d
 |d jtd|jdd
 |d jtd|jdd
 |d jtd|jdd
 d S )Nr   c                 S   s   t || f}t| D ]A}tdD ]:}ddt j   }dt j  d }ddt j   }|d d |f  |t t || | | d   7  < qq|S )Nr   r   r   r    r   rg   )rK   r  r   rL   exprS   )r
  mry   r  jr.   r+   r  r   r   r   layers  s   <z'test_stackplot_baseline.<locals>.layersr   r   rj  r    r  zero)rm  ru  symr   r   wiggler  weighted_wiggle)rK   rL   rM   r   r   rP  r   r  )rV  r  r   rB  r   r   r   test_stackplot_baseline  s   

r\  c                 C   r  r   r   )rp  r   r   r   r  	  r  c                 C   s   t jd tjjt jjddddfi | }t \}}|	ddr)|
d n|d |	d	d
s<tjd tjd< |j||fi | d S )N  rs  r   )%   r   )meansigmasizevertTr   patch_artistFr  boxplot.boxprops.linewidth)rK   rL   rM   r   cbookboxplot_stats	lognormalr   r   getr  rg  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr   r   r   r   r   _bxp_test_helper	  s   
rn  zbxp_baseline.pngr9  )r  r   c                   C   s
   t   d S r   rn  r   r   r   r   test_bxp_baseline	  s   
rp  zbxp_rangewhis.pngc                   C      t tddgdd d S )Nr   r   whisrj  rn  r  r   r   r   r   test_bxp_rangewhis	     rv  zbxp_percentilewhis.pngc                   C   rq  )Nr   _   rr  rt  ru  r   r   r   r   test_bxp_percentilewhis$	  rw  ry  zbxp_with_xlabels.pngc                  C   s   dd } t | d d S )Nc                 S   $   t | tdD ]\}}||d< q| S NABCDr  r  rv  statsrp  r  r   r   r   r  /	     
z(test_bxp_with_xlabels.<locals>.transform)rk  ro  r  r   r   r   test_bxp_with_xlabels+	  s   r  zbxp_horizontal.pngr   )r?  r  r   r   c                   C      t tddd d S )NFrb  rl  ru  r   r   r   r   test_bxp_horizontal7	  s   r  zbxp_with_ylabels.png)r  r   r   c                  C      dd } t | tddd d S )Nc                 S   rz  r{  r}  r~  r   r   r   r  E	  r  z(test_bxp_with_ylabels.<locals>.transformFr  rk  rl  ru  r  r   r   r   test_bxp_with_ylabels@	  s   r  zbxp_patchartist.png)r?  r  r   c                   C   r  )NT)rc  r  ru  r   r   r   r   test_bxp_patchartistM	     r  zbxp_custompatchartist.pngr   c                   C       t tdtdddddd d S )NTr  r   :)r  r  r  )rc  boxpropsr  ru  r   r   r   r   test_bxp_custompatchartistU	     r  zbxp_customoutlier.pngc                   C      t ttdddddd d S )Nr   r  r  r   r_   mfc)
flierpropsr  ru  r   r   r   r   test_bxp_customoutlier_	     r  zbxp_withmean_custompoint.pngc                   C   r  )NTr   r  r   r  )	showmeans	meanpropsr  ru  r   r   r   r   test_bxp_showcustommeanh	  r  r  zbxp_custombox.pngc                   C   r  )N--r  r   r   r   r  )r  r  ru  r   r   r   r   test_bxp_customboxs	  r  r  zbxp_custommedian.pngc                   C   r  )Nr  r  r   r  )medianpropsr  ru  r   r   r   r   test_bxp_custommedian|	  r  r  zbxp_customcap.pngc                   C   r  )Nr  r  r   r  )cappropsr  ru  r   r   r   r   test_bxp_customcap	  r  r  zbxp_customwhisker.pngc                   C   r  )Nr  rT  r   r  )whiskerpropsr  ru  r   r   r   r   test_bxp_customwhisker	  r  r  zbxp_withnotch.pngc                   C   r  )NT)shownotchesr  ru  r   r   r   r   test_bxp_shownotches	  r  r  zbxp_nocaps.pngc                   C   r  )NF)showcapsr  ru  r   r   r   r   test_bxp_nocaps	  r  r  zbxp_nobox.pngc                   C   r  )NF)showboxr  ru  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  rp  r   r   r   r  	  s   z*test_bxp_no_flier_stats.<locals>.transformF)
showfliersr  ru  r  r   r   r   test_bxp_no_flier_stats	  s   
r  zbxp_withmean_point.pngc                   C   s   t tdddd d S )NTFr  meanliner  ru  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  ru  r   r   r   r   test_bxp_showmeanasline	  r  r  zbxp_scalarwidth.pngc                   C   r  )Nr  widthsr  ru  r   r   r   r   test_bxp_scalarwidth	  r  r  zbxp_customwidths.pngc                   C      t tg ddd d S )N)r   r  g?g333333?r  r  ru  r   r   r   r   test_bxp_customwidths	     r  zbxp_custompositions.pngc                   C   r  )N)r   r   rc  r  rY  r  ru  r   r   r   r   test_bxp_custompositions	  r  r  c                   C   sB   t t ttdgdd W d    d S 1 sw   Y  d S )Nr   r  r  r   r   rF  rn  r  r   r   r   r   test_bxp_bad_widths	  s   "r  c                   C   sD   t t ttddgdd W d    d S 1 sw   Y  d S )Nr    r   rY  r  r  r   r   r   r   test_bxp_bad_positions	  s   "r  r^  g{Gz?)r   r   c                  C   s   t jd t ddd} t d| dg} t \}}|j| | gddd	 |d
 d| | gi}t \}}|jddd|d |d
 d S )Nr]  r  r        '  r   	bootstrapnotchr  r   r.   )r  r  rh  	rK   rL   rM   r   hstackr   r   r^  r  )r.   r   r   rh  r   r   r   test_boxplot	  s   
r  zboxplot_sym2.pngc                  C   s~   t jd t ddd} t d| dg} tdd\}\}}|j| | gd	d
d |d |j| | gd	dd |d d S )Nr]  r  r  r  r  r  r   r    r  ^)r  rX  r  r  r  )r.   r   r   r   r   r   r   test_boxplot_sym2
  s   
r  zboxplot_sym.pngc                  C   sJ   t ddd} t d| dg} t \}}|j| | gdd |d d S )	Nr  r  r  r  r  r  rX  r  )rK   r   r  r   r   r^  r  r  r   r   r   test_boxplot_sym
  s
   r  z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                  C   s   t jd t d} t d| dg} t \}}|j| | gddd |d t \}}|j| | gddd	d
 |d d S )Nr]  r  r   r    r  r   r  )r  r   T)r  r  	autorange)	rK   rL   rM   rl   r  r   r   r^  r  )r.   rB  r   rC  r   r   r   r   test_boxplot_autorange_whiskers
  s   

r  c                 C   s\   t ddd}t d|dg}t| | ||g W d    | S 1 s'w   Y  | S )Nr  r  r  r  r  )rK   r   r  r?   r   r^  )r   rc_dictr.   r   r   r   _rc_test_bxp_helper2
  s   
r  boxplot_rc_parameters)r  r?  r   r   c                  C   s  t jd td\} }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"d#gdd$}dd!d!d!dddddddd%d&}|||g}t||D ]	\}}t|| qjtjj	d'd( |d) 
 D v sJ d S )*Nr]  r   zboxplot.notchTboxplot.whiskersr   rx  zboxplot.bootstrapr  zboxplot.flierprops.colorr  boxplot.flierprops.markerr}   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr  rd  zboxplot.boxprops.linestylezboxplot.capprops.colorr"   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr]  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalr  zboxplot.patchartist-.)r  zboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylec                 S   r*  r   )r5  rS  r   r   r   r   x
  r+  z.test_boxplot_rc_parameters.<locals>.<listcomp>r   )rK   rL   rM   r   r   r  r  r?   r  r  get_children)r   r   rc_axis0rc_axis1rc_axis2	dict_listrH  rc_axisr   r   r   test_boxplot_rc_parameters:
  s~   	

r  zboxplot_with_CIarray.pngc                  C   s|   t jd t ddd} t d| dg} t }|d}t dd	gd
dgg}|j	| | gdd dg|dd |
d d S )Nr]  r  r  r  r  r  ra  rp  r  rq        @r  r   r   )r  usermediansconf_intervalsr  r  )rK   rL   rM   r   r  r   r   r   r  r^  r  )r.   r   r   CIsr   r   r   test_boxplot_with_CIarray{
  s   
r  zboxplot_no_inverted_whisker.pngc                  C   sP   t jg dt jd} t }||  |d |jjddd |j	d d S )N)r   i(#  r  X   i^  i@ ix  i  rL  r   Fminorwhich)
rK   r  rr  r   r  r^  r  r   r  rq   )r.   r   r   r   r   test_boxplot_no_weird_whisker
  s   


r  c                  C   s   t ddd} t d| dg} t \}}tt |j| ddgd W d    n1 s.w   Y  tt |j| | gddgddggd W d    d S 1 sSw   Y  d S )	Nr  r  r  r  r  r   r    )r  	rK   r   r  r   r   r   r   rF  r^  r  r   r   r   test_boxplot_bad_medians
  s    "r  c                  C   s   t ddd} t d| dg} t \}}tt |j| | gddggd W d    n1 s1w   Y  tt |j| | gddgdggd W d    d S 1 sUw   Y  d S )	Nr  r  r  r  r  r   r    )r  r  r  r   r   r   test_boxplot_bad_ci
  s   "r  c                  C   sZ   t d} t \}}|| d d  dksJ |j| ddd d  dks+J d S )Nrg   boxesr   r    )r  )rK   rS   r   r   r^  r  )r.   fixr   r   r   r   test_boxplot_zorder
  s   
&r  c                  C   s   dt jd< dt jd< dt jd< t  \} }td}d|d	< |j|d
d}dD ]}|| D ]
}| dks7J q-q'|d d  dksEJ |d d  dksQJ d S )Nrp  r  r}   r  r  zboxplot.meanprops.markerr   r  re   T)r  )whiskerscapsr  mediansr   r  r   means)r   r   r   rK   rS   r^  
get_marker)r   r   	test_data
bxp_handle	bxp_lines	each_liner   r   r   test_boxplot_marker_behavior
  s   



r  z&boxplot_mod_artists_after_plotting.pngc                  C   sH   g d} t  \}}|j| dd}|D ]}|| D ]}|d qqd S )N)r  r  r  r  gQ?gQ?gQr}   r  r   )r   r   r^  	set_color)r.   r   r   bpkeyr  r   r   r   &test_boxplot_mod_artist_after_plotting
  s   r  zviolinplot_vert_baseline.pngc                  C   sx   t jd dd tdD } t }|j| tddddd d| i} t \}}t }|jdtdddd| d d S )	Niec                 S      g | ]	}t jjd dqS r   ra  rK   rL   rN   r8  r   r   r   r   
      z1test_vert_violinplot_baseline.<locals>.<listcomp>r   r   rZ  r  showextremashowmediansr  )rZ  r  r  r  rh  )rK   rL   rM   r   r   r  
violinplotr   )rh  r   r   r   r   r   test_vert_violinplot_baseline
  s   
r   zviolinplot_vert_showmeans.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Niw5+c                 S   r  r  r  r8  r   r   r   r   
  r  z2test_vert_violinplot_showmeans.<locals>.<listcomp>r   r   r   r  r   r  rK   rL   rM   r   r  r   rh  r   r   r   test_vert_violinplot_showmeans
     
r  zviolinplot_vert_showextrema.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nic                 S   r  r  r  r8  r   r   r   r   
  r  z4test_vert_violinplot_showextrema.<locals>.<listcomp>r   r   r   r  r  r  r   r   r    test_vert_violinplot_showextrema
  r  r  zviolinplot_vert_showmedians.pngc                  C   sB   t  } tjd dd tdD }| j|tddddd d S )Nib}&c                 S   r  r  r  r8  r   r   r   r   
  r  z4test_vert_violinplot_showmedians.<locals>.<listcomp>r   r   r   r  r  r  r   r   r    test_vert_violinplot_showmedians
  r  r  zviolinplot_vert_showall.pngc                  C   s\   t  } tjd dd tdD }| j|tddddddgdd	gd
dgddggd d S )NiOc                 S   r  r  r  r8  r   r   r   r     r  z0test_vert_violinplot_showall.<locals>.<listcomp>r   r   r   ?r   r  r   r  r^  r  )rZ  r  r  r  	quantilesr  r  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   r  r  r  r8  r   r   r   r     r  z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>r   r   rg   rZ  r  r  r  pointsr  r  r   r   r   $test_vert_violinplot_custompoints_10     
r  z$violinplot_vert_custompoints_200.pngc                  C   r
  )NiYqVc                 S   r  r  r  r8  r   r   r   r     r  z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>r   r   r  r  r  r  r   r   r   %test_vert_violinplot_custompoints_200  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   r  r  r  r8  r   r   r   r   &  r  z2test_horiz_violinplot_baseline.<locals>.<listcomp>r   Fr   rZ  rb  r  r  r  r  r  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   r  r  r  r8  r   r   r   r   0  r  z5test_horiz_violinplot_showmedians.<locals>.<listcomp>r   Fr   r   r  r  r  r   r   r   !test_horiz_violinplot_showmedians+  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   r  r  r  r8  r   r   r   r   :  r  z3test_horiz_violinplot_showmeans.<locals>.<listcomp>r   Fr   r   r  r  r  r   r   r   test_horiz_violinplot_showmeans5  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   r  r  r  r8  r   r   r   r   D  r  z5test_horiz_violinplot_showextrema.<locals>.<listcomp>r   Fr   r   r  r  r  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   r  r  r  r8  r   r   r   r   N  r  z1test_horiz_violinplot_showall.<locals>.<listcomp>r   Fr   r   r  r   r  r   r  r^  r  )rZ  rb  r  r  r  r  r  r  r   r   r   test_horiz_violinplot_showallI  s   
r  z$violinplot_horiz_custompoints_10.pngc               	   C   F   t  } tjd dd tdD }| j|tddddddd d S )	Ni0c                 S   r  r  r  r8  r   r   r   r   Y  r  z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>r   Fr   rg   rZ  rb  r  r  r  r  r  r  r   r   r   %test_horiz_violinplot_custompoints_10T     
r  z%violinplot_horiz_custompoints_200.pngc               	   C   r  )	Ni<9!c                 S   r  r  r  r8  r   r   r   r   c  r  z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>r   Fr   r  r  r  r  r   r   r   &test_horiz_violinplot_custompoints_200^  r  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   r  r  r  r8  r   r   r   r   l  r  z1test_violinplot_bad_positions.<locals>.<listcomp>r   r   rY  
r   r  rK   rL   rM   r   r   r   rF  r  r  r   r   r   test_violinplot_bad_positionsh  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   r  r  r  r8  r   r   r   r   u  r  z.test_violinplot_bad_widths.<locals>.<listcomp>r   r  )rZ  r  r  r  r   r   r   test_violinplot_bad_widthsq  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  rK   rL   rM   rN   r   r   rF  r  r  r   r   r   test_violinplot_bad_quantilesz  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   g?r  )gr   r   rr  r  r  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  )rK   rL   rM   rN   r   r  )r4   r5   rh  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  rc  r   r   r   ro  r  	ABCDEFGHIr  )	rK   rL   rM   rs  rN   rv  r   r  values)r4   r5   r_  s1s2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   rg   r   r  r   r    F)rZ  manage_ticks)
r   r   r  rv   rK   rL   rM   rN   r^  r   )r  r   old_xlimrC  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   rY  r   )r"  rF  c                 S      g | ]}|  qS r   get_textrS  r   r   r   r     r+  z+test_boxplot_not_single.<locals>.<listcomp>r   5)r   r   r^  rK   rL   r   r  r   rv   rv  
get_xticksr  r   r   r   r   test_boxplot_not_single  s   
"r3  c                  C   s@   t ddgddg tjddi t } t j| ddd d S )Nr   r   z	font.sizeP   raw)r  format)r   rs   r?   r   updateioBytesIOsavefig)r  r   r   r   test_tick_space_size_0  s   r;  )errorbar_basicerrorbar_mixedr<  c            
   	   C   s  t ddd} t |  }ddt |   }d| }t }| }|j| |ddd |d tj	ddd	d
\}}|d }|j| ||dd |d |j
dd |d }|j| ||ddd |d |d }|j| ||d| g|d| gdd |d |d }|d t d|| }|| }|j| ||d| g|dddd |d |d | |d}	t }| }|jdd dd|	d! |d d S )"Nr   r   r   r   r^  )rQ  rR  z&Simplest errorbars, 0.2 in x, 0.4 in yr    T)r  r  rO  r  r}   rR  r   zVert. symmetricnbinsru  )rQ  r   r  zHor. symmetric w/ alpharY  z--orR  rQ  r   zH, V asymmetricr  r   r`  r  )rR  rQ  r   ecolorcapthickzMixed sym., log yzVariable errorbarsr   r.   r+   rQ  rR  rh  )rK   rS   rS  r"  r   r   r0  errorbarr  r   locator_paramsr  maximumsuptitle)
r.   r+   rR  rQ  r   r   rB  ylower
yerr_lowerrh  r   r   r   test_errorbar  sB   


$




rK  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 )Nrg   r    r!   r   r  C1C2)	r   r   rK   rS   rE  rs   r5  to_rgba	get_color)fr   r.   r+   r  r  r  ln1r   r   r   test_errorbar_colorcycle   s   
 rR  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   )rK   rS  r   r
  r.   r   r   r     r  z.test_errorbar_cycle_ecolor.<locals>.<listcomp>)r  rL  rM  r  r  r  r}   rQ  )rR  r   r_   rB  )rR  r   r_   r   rB  )rK   rS   r   r   r  rE  )r4   r5   r+   axtaxryir   r   rT  r   test_errorbar_cycle_ecolor  s   rX  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   r    r}   r>  )rQ  r   rA  )r   r   r0  rK   rS   rS  r"  vstackr  r   r   rF  rE  )r   r   r.   r+   yerr1rR  rQ  r   r   r   test_errorbar_shape  s    "r[  errorbar_limitsc                  C   sf  t ddd} t |  }d}d}d}t }|ddd}tj| ||||dd t | }d	|g d
< tj| |d ||||dd t | }d	|g d< tj| |d ||||dd tj| |d dd|||||dd
 d}t | d}d|ddg< |}	|}
t | }t | }d	|dg< d	|dg< tj| |d dd|||	|
||ddddd |	d |
d d S ) Nr   rF  r   r   dottedr   r   )rQ  rR  r  r   T)r   r   r  r   )rQ  rR  uplimsr  r   )r    r   r  r   r  )rQ  rR  lolimsr  r   r   r}   r  magenta)r_   r  rQ  rR  r_  r^  r  r   r   r   rc   @r   r   cyan)r_   r  rQ  rR  xlolimsxuplimsr^  r_  r  r  capsizer   )r   rF  zErrorbar upper and lower limits)rK   rS   rS  r   r   r   rE  
zeros_like	full_liker  r  )r.   r+   rQ  rR  r  r   r   r^  r_  rc  rd  r   r   r   test_errorbar_limits0  sJ   






rh  c                  C   sd   t d} t d}tj| |dddd\}}}|d u sJ |D ]}t | tdks/J qd S )Nr   r   r   )rQ  rR  r   r  )rK   rS   r   rE  r  rO  r5  rN  )r.   r+   plotliner  barlineserrbarr   r   r   test_errobar_nonefmt`  s   

rl  zerrorbar_with_prop_cycle.pngc                  C   sh   t ddgddgddgd} tjd| d t \}}|jg d	g d
dd |jg d	g ddd d S )Nr  r  rp  r]  rz  )r  r_   r  r  )
prop_cycle)r    r   rg   )r   r    r   r   )r.   r+   rR  )rc  r   r    )r
   r   rcr   rE  )_cycler   r   r   r   r   test_errorbar_with_prop_cyclek  s
   rp  c           	   	   C   s   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 d S )Nr   r   r   rc  rgbk)r   r   r    r  r  r   )
erroreveryre  r"   ra  )r"   r  r   )re  r"   r   )rK   r   r   r  rE  rs   )	r4   r5   r.   r+   rR  rX   rW   r   shiftr   r   r   test_errorbar_offsetsu  s   (rt  hist_stacked_stepfilledc                  C   sv   t ddd} t ddd}t }|d}|j| |fdd	d
 d| |fi}t }|d}|jddd	|d d S )Nr   r   r  r   rg   rj  ra  r{  Tr  r.   )r}  r  rh  rK   r   r   r   r   rw  )d1d2r   r   rh  r   r   r   test_hist_stacked_stepfilled  s   

ry  hist_offsetc                  C   sN   t ddd} t ddd}t }|d}|j| dd	 |j|d
d	 d S )Nr   rg   rj  r   r   r  ra  r   r  r   rv  rw  rx  r   r   r   r   r   test_hist_offset  s   
r|  zhist_step.pngc                  C   sJ   t ddd} t }|d}|j| dd |dd |d	d
 d S )Nr   r   r  ra  rz  r|  r   rg   re   r   )rK   r   r   r   r   rw  r  r  rw  r   r   r   r   r   test_hist_step  s   
r~  zhist_step_horiz.pngc                  C   F   t ddd} t ddd}t }|d}|j| |fdd	d
 d S )Nr   rg   rj  r   r   r  ra  rz  r;   )r}  r=   rv  r{  r   r   r   test_hist_step_horiz  
   
r  hist_stacked_weightsc                  C   sh   t ddd} t ddd}t ddd}t d	d
d}t }|d}|j| |f||fddd d S )Nr   rg   rj  r   r   r  r`  r  r  r   ra  r{  T)weightsr}  r  rv  )rw  rx  w1w2r   r   r   r   r   test_hist_stacked_weighted  s   
r  use_line_collectionzw/ line collectionzw/o line collectionzstem.pngc                 C   s\   t ddt j d}|t |f}tdddd| d}t \}}|j|i | |  d S )	Nr   r    r   zC2-.zk+zC1-. )linefmt	markerfmtbasefmtr  r  )	rK   r   r   r3  r  r   r   stemr  )r  r.   argsr  r   r   r   r   r   	test_stem  s   r  c                  C   sh   t  } | ddd}ttd}ttd}|| ||| |||d |j||ddd d S )Nr   rg   r  zb--)r  )r   r   r   rv  r   r  )r   r   r.   r+   r   r   r   test_stem_args  s   
r  c                  C   sB   t dd\} }tjdtjdg}ddg}|||d d S )Nr   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  z*-)r   r   dateutilparserparser  )r   r   xsysr   r   r   test_stem_dates  s   

r  hist_stacked_stepfilled_alphac                  C   sH   t ddd} t ddd}t }|d}|j| |fdd	d
d d S )Nr   r   r  r   rg   rj  ra  r{  Tr   )r}  r  r  rv  r{  r   r   r   "test_hist_stacked_stepfilled_alpha  s
   
r  hist_stacked_stepc                  C   r  )Nr   r   r  r   rg   rj  ra  rz  Tr  rv  r{  r   r   r   test_hist_stacked_step  r  r  hist_stacked_normedc                  C   s@   t ddd} t ddd}t \}}|j| |fddd d S )	Nr   r   r  r   rg   rj  T)r  r  )rK   r   r   r   rw  r{  r   r   r   test_hist_stacked_density  s   r  zhist_step_bottom.pngc                  C   s:   t ddd} t }|d}|j| t ddd d S )Nr   r   r  ra  rg   r{  )r9   r}  )rK   r   r   r   r   rw  rS   r}  r   r   r   test_hist_step_bottom  s   
r  c                  C   s   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgddgddgddgddgddgg}t| | d S )	Nr   r   r    r   r   r   r   r   r   r    r{  r  r}  r   r    r   r   r   rw  r   get_xyr  rh  r  polygonrj  r   r   r   test_hist_stepfilled_geometry  s   *$r  c               	   C   sn   g d} g d}t j|| dd\}}\}ddgddgddgddgddgddgddgddgg}t| | d S )	Nr  r  rz  r  r   r    r   r   r  r  r   r   r   test_hist_step_geometry   s   4r  c                  C   s   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgd
dgd
d
gdd
gddgddgg}t| | d S )Nr  r  r   r    r   r{  r  r9   r}  r   r   r   r   r    r"  r   r  r  r   r   r   $test_hist_stepfilled_bottom_geometry*  s   *$r  c               	   C   st   g d} g d}t j|| g ddd\}}\}ddgddgddgdd	gd
d	gd
dgddgddgg}t| | d S )Nr  r  r  rz  r  r   r   r   r   r    r"  r   r  r  r   r   r   test_hist_step_bottom_geometry6  s   4r  c                  C   s  g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgddgddgd	dgd	dgddgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg}t| | d S )Nr  r  r  Tr{  r  r  r}  r    r   r   r   r   r   rw  r  r   r  r  data_1data_2r  r  r  rj  r   r   r   %test_hist_stacked_stepfilled_geometryA  s&   

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| ddd\}}}t|dks"J |d \}ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t| | |d	 \}ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t| | d S )Nr  r  r  Trz  r  r    r   r   r   r   r  r  r   r   r   test_hist_stacked_step_geometryW  s   

4
4r  c                  C   s"  g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
d
gd	d
gg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t| | d S )Nr  r  r  Tr  r{  r  r  r9   r}  r    r   r   r   r   r"  r   r   rc  r  r  r  r   r   r   ,test_hist_stacked_stepfilled_bottom_geometryk  s(   

*$
*$r  c               	   C   s   g d} g d}g d}t j||g| dg ddd\}}}t|dks%J |d	 \}d	d
gd	dgd
dgd
dgddgddgddgddgg}t| | |d
 \}d	dgd	dgd
dgd
dgddgddgddgddgg}t| | d S )Nr  r  r  Tr  rz  r  r    r   r   r   r   r"  r   r   rc  r  r  r  r   r   r   &test_hist_stacked_step_bottom_geometry  s    

4
4r  hist_stacked_barc                  C   st   g dg dg dg dg dg dg} g d}g d}t  }|d	}|j| d
dd||d |jdddd d S )N)r   r   r   r   r  @  i  r4  r  r`  6  r_  )r     rj  r  r   i  )r  r  r  r  r  r     )r  r  r  r  r  r  r   r   r   r   rg   r  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   r^  )r^  r   g `p?)r^  r   gǟ?)r^  gˢ`?r   )gC?r^  r   )gK?r^  r   )r   rc  z yellowr`  rQ  ra  rg   r  mid)r  r}  r  r   r  zupper right)r   r   r   )r&   bbox_to_anchorncol)r   r   r   rw  r  )r  r  labelsr   r   r   r   r   test_hist_stacked_bar  s   
r  c                  C   s2   t  } | d}|jg tdtdgdd d S )Nra  rg   rz  r|  )r   r   r   rw  r   r   r   r   r   test_hist_emptydata  s   
 r  c                  C   s   t  \} }|jddgdd}|d d  dksJ |jddgdgd}|d d  dks1J |jddgd d}|d d  dksFJ |jddgdd}|d d  dks[J |jddgdd}|d d  dkspJ d S )Nr   r   r  r    r  
_nolegend_00)r   r   rw  	get_label)r   r   lr   r   r   test_hist_labels  s   r  transparent_markersc                  C   s@   t jd t jd} t }|d}|j| dddd d S )Nr   rj  ra  Dr   r   )r  rf   rK   rL   rM   r   r   r   rs   r  r   r   r   test_transparent_markers  s
   
r  rgba_markersc               	   C   s   t jdd\} }ddg}ddg}d dg}tdd	d
}t|D ]?\}}t|D ]6\}}	t|D ]-\}
}|| j|d |
d df||	|d| || j|d |
d df|	|d| q.q&q|D ]	}|g d q`d S )Nr    r  r!  r  r  )r   r   r   r   r   r   r  )r  r  r   r}   )r  r  r  r   r.   )r  r  )re   r   r   r   )r   r   r  r@  rs   rH  )r   rB  rcolorsbcolorsalphaskwr  r  rU  rcolorr]  bcolorr   r   r   r   test_rgba_markers  s&   *r  mollweide_gridc                  C   s"   t  } | jddd}|  d S )Nra  	mollweider  )r   r   r   r  r   r   r   r   test_mollweide_grid  s   r  c                  C   s   t  } | jddd}ttj tjd}ttj d tjd d}t||\}}t| | fj	}|j
|}|j
 |}tj||d d S )Nra  r  r  r  r   r  r   )r   r   r   rK   r   r   r  rY  flattenr  transProjectionr  invertedr   r   )r   r   lonlatllrj  ll2r   r   r   &test_mollweide_forward_inverse_closure  s   r  c                  C   s|   t  } | jddd}tddd}t||\}}t| | fj}|j	
 |}|j	|}tj||d d S )Nra  r  r  r   r     r   )r   r   r   rK   r   r  rY  r  r  r  r  r  r   r   )r   r   r.   r+   rj  r  xy2r   r   r   &test_mollweide_inverse_forward_closure  s   r  
test_alphac               	   C   s   t jd t jd} t }|d}|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   rj  ra  z-Dr  r  r  rg   )r   r  rf   r  r    r   )r   r  rf   r  r  r   r   rc  r  r  r  r   r   r   r    s*   

	eventplotc                  C   sT  t jd t jddg } t jddg }| | }t|}g dgt|  }g dg dg dg d	g d
g dg}|| }dt dt| d  }g d}| | }	dgt|  }
g d}|
| }t }|d}|j	|||	|d}t|}||ksJ |||	|d}t }|d}|j	dddd|d}t|}||ksJ d S )Nr   r\   r  rc  )r   r   r  r  r  r  )r   rr  r   )r   r   r   )r   r   r   ry  gQ?)irc  r   r   rc  rg   )r   r    r   r   r   r   ra  )r  lineoffsetslinelengths)r   r"   lor  r   r"   r  r  )r  r  r  rh  )
rK   rL   rM   tolistr  rS   r   r   r   r  )r  data2rh  num_datasetscolors1colors2r  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r   axobjcollsnum_collectionsr   r   r   test_eventplot-  sF   



r  ztest_eventplot_defaults.pngc                  C   s\   t jd t jddg } t jddg }| | }t }|d}|| dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r\   r  rc  ra  N)rK   rL   rM   r  r   r   r   r  )r  r  rh  r   r  r   r   r   test_eventplot_defaultsY  s   
r  r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r  r  N)r   r   r   r   c                 C   s   dd t dD }dd | D }t|dkr|d }tt|t|df}t \}}t| dkr7| d } |j|| d}t	||D ]\}}t
| | qCdS )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.c                 S   s   g | ]}|gqS r   r   r8  r   r   r   r   q  s    z)test_eventplot_colors.<locals>.<listcomp>r   c                 S   s   g | ]
}|d ur
|ndqS )Nr  r   r   r"   r   r   r   r   t  r  r   r   r  N)r   r  rK   broadcast_tor5  to_rgba_arrayr   r   r  r  r   rO  )r  rh  expectedr   r   r(  collr   r   r   r   test_eventplot_colorsj  s   r  z!test_eventplot_problem_kwargs.pngc              	   C   s   t jd t jdg }t jdg }||g}t }|d}|j|ddgddgd	d
gd
d	gddgddgd t| dksEJ t	dd | D sPJ dS )z
    test that 'singular' versions of LineCollection props raise an
    IgnoredKeywordWarning rather than overriding the 'plural' versions (e.g.
    to prevent 'color' from overriding 'colors', see issue #4297)
    r   r  rg   ra  r  r  r"   rT  r    r   r~   dasheddashdotr]  )r  r   r:  r  r  r   r   c                 s   s    | ]	}t |jtV  qd S r   )
issubclasscategoryr   )r   wir   r   r   r    s    z0test_eventplot_problem_kwargs.<locals>.<genexpr>N)
rK   rL   rM   r  r   r   r   r  r  r  )recwarnr  r  rh  r   r  r   r   r   test_eventplot_problem_kwargs  s$   
	r   c                  C   s.   t dd\} }|jg gdgd t   d S )Nr   )r^  r^  r^  r^  r  )r   r   r  r   r   r   r   r   test_empty_eventplot  s   r  rh  r=   )_emptyverticalr;   Nr   c                 C   sz   |dkri nd|i}t dd\}}|dv rttnt  |j| fi | W d   n1 s2w   Y  t   dS )z#Introduced when fixing issue #6412.r  r=   r   )Nr   N)r   r   r   rv  r   r   r  r   )rh  r=   optsr   r   r   r   r   test_eventplot_orientation  s   
r  zmarker_styles.pngc               	   C   s|   t  } | d}tttjjjdd dD ]%\}}|j|d d t	
dd  t	dd | d|d|d  |d	 qd S )
Nra  c                 S   s   t t| t |  S r   )r  r5  rT  r   r   r   r    r+  z$test_marker_styles.<locals>.<lambda>)r  r    r   rg   r   )r   r_   rf   r  )r   r   r   r@  sortedr?   markersr  rs   rK   rS   rl   )r   r   r+   r_   r   r   r   test_marker_styles  s   
.r  zrc_markerfill.pngc                  C   sP   t  \} }td}tg dD ]\}\}}|tjd< |j|| |d qd S )Nr  ))r$   rp  )r9   r}   )r   r  zmarkers.fillstyle)r_   )r   r   rK   rS   r@  r?   r   rs   )r   r   r.   idxr   r_   r   r   r   test_markers_fillstyle_rcparams  s   

r
  zvertex_markers.pngc                  C   sx   t td} d}g d}t }|d}|j| d|dd |j| d d d d|dd |ddg |ddg d S )	Nrg   ))re   re   r  r  r  ra  r   r]  r  re   r  )rv  r   r   r   r   rs   r  r  )rh  marker_as_tuplemarker_as_listr   r   r   r   r   test_vertex_markers  s   
r  vline_hline_zordererrorbar_zorderx86_64c                  C   s  t td} t }| }|j| ddd |jddddd |jddddd |jdd	ddd |jd
dddd |d t }| }t td} t	
d}t td}|j| ||dddd tdD ]}|j|dd|d |j| dd|d qg|d d S )Nrg   r   )r  r  r   r  )r   r  r  r   r  rT  r    r]  r   zaxvline and axhline zorder testr  )rR  r  r  r   )r  r   r  zerrorbar zorder test)rv  r   r   r   r0  rs   rU   axvliner  rK   r  rE  )r.   r   r   r+   rR  rU  r   r   r   test_eb_line_zorder  s&   

r  c                 C   s   |   }|jddd |dd |jdddd |jdd	d
d |jdddd |jdddd |jdtddd |  }|jddd |ddgddg |jddd |jdd
d |jddd |jddgddgdd |jddd d S )Nr  r  r  r  rY  rL  r  )r   r   )r   r   rM  )gffffffrU  r   r  )sloper   )r   rU  rU  C4)rU  r   infr  re   r   r   )r   ru   axlinerP  rs   rU   r  r4   r5   r   r   r   r   test_axline  s    r  c                  C   s  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   dS 1 sw   Y  dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r   )r  r   rf  )r   r   r   r   r   r  rg  r  r   r   r   r   test_axline_args  s    


"r  )vlines_basicvlines_with_nanvlines_maskedc                  C     g d} g d}t  \}}|j| d|ddd g d}dd	d
dtjdg}t jd
dd\}\}}}	|j|d|ddd g d}
tjdd	d
ddg}|j|
d|dd
dd g d}tjdd	d
dtjg}|	j|d|ddd ||||	fD ]}|dd qq| | ksJ | | ksJ | |	 ksJ t  \}}tjg dd}tjg dd}tjg dd}|j|||ddd |dd d S N)r    r   r   r   r  )r    r   r  r    r   r  r   r  r  )r    r   r   r   rc  r  r    r  r   r  )r   r  )r  r  r  r  )r  r  r   r]  rg   )r    r   rc  r  rg   ry  )r   r   re   r   r    r   )      r   r     r  r  r   )	r   r   rT   rK   r  r  rw   r	   masked_equal)rM  rC  rB  r   r   r!  rC  r   r   r  x3rO  x4y4r   fig3ax5x5ymin5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   r   )r   r   r   r   rT   r  
same_colorrO  r   r   linesr   r   r   test_vlines_defaultC  
   "r4  )hlines_basichlines_with_nanhlines_maskedc                  C   r  r  )	r   r   hlinesrK   r  r  rv   r	   r$  )rC  rM  rB  r   r!  r   rC  r   r   r  rO  r%  r'  r&  r   r(  r)  y5xmin5xmax5r   r   r   test_hlinesJ  r.  r=  c                  C   r/  r0  )r   r   r   r   r9  r  r1  rO  r2  r   r   r   test_hlines_defaultr  r5  r>  r   r   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   re  rc  r    r   r   r   r   )r   r    r   r   )r  r   r   rc  )r   rT   r9  )r4   r5   rh  test_colors	expect_xyexpect_colorr   r   r   test_lines_with_colorsy  s   
rC  step_linestylec               	   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 )Nrg   r    )r  r  r  r  r   pre)r  r   rT  r   r  postre   r  )r  Y0Y1Y2r  rG  )r  r   rT  rh  rH  rI  )	rK   rS   r   r   r  r  rz  r  r  )r.   r+   r   ax_lst	ln_stylesr   r  rh  r   r   r   test_step_linestyle  s*   rL  mixed_collectionc                  C   s   t  } | ddd}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 )Nr   )r  r  r   r   r   )radiusr  r  T)match_originalr   rd  r   0   ii)r   r   r   r   )r   r   r   r   r  r  )r   r   r   r  Circler   r(  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr   r  r<  r  r  )r   r   r"   p1p2r   r   r   test_mixed_collection  s   

rX  c                  C   s:   t tdtdd} |   |   dksJ d S )Nr   r   )r   r   r   r   )r   r5  rK   int32int64r   get_subplotspecget_geometryr  r   r   r   test_subplot_key_hash  s   r]  )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pnggQ?)r?  r   r   c                  C   s  dt jd< d} d}|d |d |d g|d |d	 |d
 gg}td| t| }td| d| }ttdtj tj	
|| jdd}td| d }tjd ttj| tj| g}g d}||f||ffD ]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.rb   r   r  r  r   r   r  @ffffff@'@rg   r   r   r    r  rE  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesrf  )rd  re  rf  rg  rh  r   r4  N)r?   r   intrK   r~  rS   rv  r   r   multiplyouterrg  rL   rM   r  r   ceillog2r  r   r   r   specgramr  LogNorm)r
  re  fstims
NFFT_freqsr.   y_freqs
NFFT_noisey_noise	all_sidesr+   rd  rf  rg  r   rh  r   r   r   test_specgram  s6   
,$
rv  )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.rb   r   r  r  r   r   r  r^  r_  r`  r   r   r   r    r  Nre   rg   ra  r   	magnituderd  re  rf  rg  rh  rH   rf  )rd  re  rf  rg  rh  rH   r   r4  )r?   r   ri  rK   r~  rS   r   r   rj  rk  rg  r  rL   rM   rv  r  r   rl  rm  r  r   r   r   rn  r  ro  )r
  re  rp  rq  r.   r+   rr  rs  rt  ru  rd  rf  rg  r   rh  r   r   r   test_specgram_magnitude  s6   
,&

ry  )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.rb   r   r  r  r   r   r  r^  r_  r`  rg   r   r   r    r  Nre   ra  )r  phaser   rx  dB)rd  re  rf  rg  rh  rH   r   )r?   r   ri  rK   r~  rS   r   r   rj  rk  rg  r  rL   rM   rv  r  r   rl  rm  r  r   r   r   rn  r   r   rF  )r
  re  rp  rq  r.   r+   rr  rs  rt  ru  rd  rf  rg  rH   r   rh  r   r   r   test_specgram_angle  s>   
,&
r|  c                  C   sD   t jtddd\} }}}| \}}}}|dkr|dks J dS )z;Test axes.specgram when Fs is None, should not throw error.r  N)re  r\   `   )r   rn  rK   rl   
get_extent)specfreqsro  imrI   rJ   freq0freq1r   r   r   test_specgram_fs_none9  s   r  )zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?)r?  r   c               	   C   s  d} d}|d |d |d g|d |d |d gg}t d	| t| }td
| d| }tdtj tj|| jdd}t d	| d }tj	
d
 tj	| tj	| g}ddiddddddg}||f||ffD ]z\}	}
|
d }t dtt|
 }tt d|D ]*\}}|jt|	f|
|||d|}t|d|dd ksJ |jddd qtt d|D ]&\}}|j|	|
|||d|}t|d|dd ksJ |jddd qqpd S )Nr        Y@r   r   r  r^  r_  r`  r  r   r   r    r  rh  rE  rb  F)rh  return_linerc  Tr   )rd  re  rf  rg  r  r   xlabelylabel)ri  rK   r~  rS   r   r   rj  rk  rg  rL   rM   r  r   rl  rm  r  r   r   r   psdrv  r  rh  ru   csd)r
  re  rp  rq  r.   ys_freqsrs  ys_noise
all_kwargsr  rd  rf  rg  r   r  retr   r   r   test_psd_csd@  sD   ,&
r  )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  C   s  d} d}|d |d |d g}t d| t| }t dtt| }td| d	| }tdtj t|| d
td  j	d	d}tj
d ttj
| tj
| gd }g d}||d}	||fD ]}
tt d|D ]\}}|j|
fd|i|	\}}}|jddd qwtt d|D ]\}}|j|
fd|i|	ddi\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qtt d|D ]\}}|j|
fd|i|	\}}}|jddd qqkd S )Nr  r  r   r   r  r  r    r   r   rg   r   r  r   ra  )re  rg  rh  r   r  r   r{  )ri  r~  rK   rl  rm  rS   r   r   rk  rg  rL   rM   r  r  r   r  r   r   r   magnitude_spectrumru   angle_spectrumphase_spectrum)r
  re  fstims1rd  rg  r.   rr  rt  ru  r  r+   r   rh  r  r  rq  r   r   r   test_spectrumb  s<   ("
r  ztwin_spines.pngc            	      C   s  dd } t jdd}|jdd |d}| }| }|jd d	 | | |jd 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   s4   |  d | jd | j D ]}|d qd S )NTF)set_frame_onr   set_visiblespinesr%  )r   spr   r   r   make_patch_spines_invisible  s
   
z5test_twin_spines.<locals>.make_patch_spines_invisible)r   r   r\  rr  )r(   ra  r(   )r  rP  Tr  zb-)r   r   r    zr-)rj  r   r   zg-r   r    r   r   A   r   )ra  rz  r+   )rH  r  rH  r.   r   )r   r   r  r   r   r  set_positionr  rs   r  r  r   r  r  rO  r  tick_params)	r  r   hostpar1par2rV  rW  p3tkwr   r   r   test_twin_spines  s0   
r  ztwin_spines_on_top.pngc                  C   s@  dt jd< dt jd< t } | ddd}tg dg dg}| }|j|d |d d d	d
 |j	|d |d d d	dd |j|d |d d dd
 |j	|d |d d ddd |d |d d d}t } | ddd}| }|jddd	|d |j	ddd	d|d |jddd|d |j	dddd|d d S )Ng      H@r   r  r   )r  iL  i  i  )r  i-  r  r  r   g     @@z#BEAED4r  r  )r   r  z#7FC97Fr   )r  rU  r  rU  )r   rh  )r   r  rh  )
r?   r   r   r   r   rK   r  r   rs   r  )r   r   rh  r   r   r   r   test_twin_spines_on_top  s(   


r  z(grid_which, major_visible, minor_visible))rk   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        z*test_rcparam_grid_minor.<locals>.<genexpr>c                 3   r  r   r  r  )minor_visibler   r   r    r  )r   r   r7  r   r   r  r   r  rq   
majorTicks
minorTicks)
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   rq   r  r  r   r   r   r   r   	test_grid  s   



r  c                  C   sF   t  } |  }|d |g d | \}}t| d d S )Nr   )rn  r   r   r   )rn  r   )r   r   r0  r  rs   rw   r   )r   r   yminymaxr   r   r   test_vline_limit  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 )
Nr   r    T)r  r  rO  r/  r   r  )r    r   rc  r   rc  )r   r   rs   rv   rw   )r   rB  r/  rM  r0  rC  r   r   r   test_empty_shared_subplots  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datalimr    T)r  rO  r   )
adjustablesharer   r  r  )r   r   
set_aspect
get_aspectget_adjustable)r  r   rB  r   r   r   test_shared_with_aspect_1  s   r  c                  C   s   t jdddd\} }|d jddd |d ddgddg |d ddgddg t   |d  |d  ks=J |d  |d  ksKJ d S )	Nr    T)r  rO  r/  r   )r  r   r   r   )r   r   r  rs   r   rv   rw   r  r   r   r   test_shared_with_aspect_2  s    r  c            	      C   s  dD ]} t jddd\}}|d jd| d |d jd| d |d ddgd	d
g |d d	d
gddg t   |d  |d  ksIJ |d  |d  ksWJ |jj|jj	 }|D ](}|
 }|j|j	 }|jj|jj	 }|| | }t|d
t| d
ksJ qaqd S )Nr  r    T)r  r/  r   r  r   r   r   r   )r   r   r  rs   r   rv   rw   bbox_inchesr  rz  get_positionviewLimroundr  )	r  r   rB  
fig_aspectr   r   
box_aspect
lim_aspectr  r   r   r   test_shared_with_aspect_3%  s$   r  c                 C   sH   t  \}}t|d|  }|d |d t|jj|jj d S )Nztwin{}r   r    )r   r   r  r6  r  r   bboxextents)r   r   r   r  r   r   r   test_twin_with_aspect9  s   

r  c                  C   s   d} d}d}d}t j }|d}|| | | | ks J | |ks(J |||}| |ks6J | |ks>J |d d | |ksMJ | |ksUJ |jdd |	  | | ksgJ | |ksoJ d S )	N)r^  r  )      $rl  )r  r  ra  r   FT)visible_only)
r?   r   Figurer   rs   rv   rw   r  relimr   )rM  rC  r   r!  r   r   r  r   r   r   test_relim_visible_onlyD  s&   

r  c                  C   s,   t  } |  }|jdd |jdd dS )z
    tests for issue #1172
    large)	labelsizeout	directionN)r   r   r0  r  r   r   r   r   test_text_labelsize]  s   r  zpie_default.pngc               	   C   sD   d} g d}g d}d}t jdd\}}|j||| |ddd	d
 d S )NFrogsHogsDogsLogsr   r   r  rg   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  rc  r\  %1.1f%%Tr  )exploder  r  autopctshadow
startangle)r   r   pie)r  sizesr  r  rB  r   r   r   r   test_pie_defaultg  s   
r  )pie_linewidth_0r  r  c                  C   s   d} g d}g d}d}t j||| |ddddd	id
 t d | |||d}t  }| }|jddddddddd	i|d	 |d t   t jddddddddd	i|d	 t d d S )Nr  r  r  r  r  Tr  r  r   r  r  r  r  r  r  
wedgepropsr  )r  rp  r"   exrp  r  r  r"   )r  r  r  r  r  r  r  rh  )r   r  rH  r   r0  )r  r  r  r  rh  r   r   r   r   r   test_pie_linewidth_0s  s.   

r  zpie_center_radius.pngc                  C   sb   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d t d d S )Nr  r  r  r  r  Tr  r  r   r   r   )	r  r  r  r  r  r  r  r#  rN  zCenter point)r   r   ->arc3)
arrowstyleconnectionstyle)rj  rl  r  r  )r   r  rn  r  rH  r  r  r  r  r   r   r   test_pie_center_radius  s   

r  zpie_linewidth_2.pngc               
   C   sD   d} g d}g d}d}t j||| |ddddd	id
 t d d S )Nr  r  r  r  r  Tr  r  r    r  r  r   r  rH  r  r   r   r   test_pie_linewidth_2  s   r  zpie_ccw_true.pngc               
   C   @   d} g d}g d}d}t j||| |ddddd t d	 d S )
Nr  r  r  r  r  Tr  )r  r  r  r  r  r  counterclockr  r  r  r   r   r   test_pie_ccw_true     r  zpie_frame_grid.pngc                  C   s   d} g d}g d}d}t j||| |ddddd	idd
d
 t j|d d d || |ddddd	iddd
 t j||d d d | |ddddd	iddd
 t d d S )Nr  r  r  r  r  Tr  r  r   r  )	r  r  r  r  r  r  r  framer#  re   )r   r    )r   r   r  r  r  r   r   r   test_pie_frame_grid  s(   r   zpie_rotatelabels_true.pngc               
   C   r  )
N)Hogwartsr  r  r  r  r  r  r  Tr  )r  r  r  r  r  r  rotatelabelsr  r  r  r   r   r   test_pie_rotatelabels_true  r  r  zpie_no_label.pngc                  C   sV   d} g d}g d}d}t j||| |dddd dd	 t d	 t d
d t   d S )Nr  r  r  r  r  Tr  )r  r  r  r  r  r  labeldistancer  r  g333333rP  )r   r  rH  rj   r  r  r   r   r   test_pie_nolabel_but_legend  s   
r  c                  C   s   g d} g d}t ddddddd	}t j| |d
|d\}}}||fD ]C}|D ]>}| |d ks4J | |d ks>J | |d ksHJ | |d ksRJ | |d ks\J |	 |d ksfJ q(q$d S )N)r  "   r  )zLong name 1zLong name 2zLong name 3r#  r$   r  anchorry  r  )horizontalalignmentverticalalignmentrotationrotation_modera  r   z%.2f)r  r  	textpropsr  r	  r
  r  ra  r   )
r  r   r0  r  get_haget_vaget_rotationget_rotation_modeget_sizerO  )rh  r  r  r  textsr  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   rc  )r   r   r   )r  )r   r   r   r   rF  r  r   r   r   r   test_pie_get_negative_values  s   "r  c                  C   sL   t  \} }tt |jdgd d W d    d S 1 sw   Y  d S )Nr   r.   	normalize)r   r   r   rv  r   r  r   r   r   r   test_normalize_kwarg_warn_pie  s   "r  c                  C   sp   t  \} }g d}|j|dd}t|d d jd dk s J |j|dd}t|d d jd dks6J d S )	N)r   r   r   Tr  r   re   g     v@rk  F)r   r   r  r  r  )r   r   r.   t1t2r   r   r   test_normalize_kwarg_pie   s   "r  zset_get_ticklabels.pngc                  C   s  t d\} }ddg}|d td |d |d  |d td |d |d  |d td |d td |d 	g ddd	g   |d 
g d
dd	g   |d |d   |d |d   |d 	|d   |d 
|d   d S )Nr    rN   zset_x/yticklabelsr   rg   r   )ry   r  r"   r  rc  r   )11121314)r   r   rs   rK   rS   r  
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr2  
get_yticksr  get_yticklabels)r   r   r,   r   r   r   test_set_get_ticklabels)  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 )
Nrg   r   r   r?  c                 S   s   g | ]}|qS r   r   r  r   r   r   r   I  r  z.test_subsampled_ticklabels.<locals>.<listcomp>
bcdefghijkc                 S   r.  r   r/  rS  r   r   r   r   K  r+  )r  r  rP  r  rU  )r   r   rs   rK   rS   rq   	set_ticksrF  set_ticklabelsr   get_ticklabels)r   r   r  r   r   r   test_subsampled_ticklabelsC  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 )Nrg   r   r"  )ry   r  r"   )r   r   rs   rK   rS   rq   r(  r   r   rF  r)  r   r   r   r   test_mismatched_ticklabelsO  s   "r,  c                  C   s<   t  \} }|ddgddg |ddg |g  d S )Nr   r    )r   r   r  r   r"  r   r   r   r   test_empty_ticks_fixed_locW  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   re   r   Fr  r+   rk   r   rH  r  length)r   r   rs   setpr%  r  r   r   r   r   test_retain_tick_visibility_  s   r1  c                  C   st   t  \} }dd }|jt | |g d |dd |jj	  dd |j
 D }|g dks8J d S )	Nc                 S   s   | dkrdS dS )Nr   
unit valuer   r   r   r   r   r   formatter_funcm  s   z.test_tick_label_update.<locals>.formatter_func)re   r   r   r    r   rU  r"  c                 S   r.  r   r/  r  r   r   r   r   v  r+  z*test_tick_label_update.<locals>.<listcomp>)r   r   r2  r   r   )r   r   rq   r   r   r   r  r   r  r   r*  )r   r   r3  
tick_textsr   r   r   test_tick_label_updateg  s   r5  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   r   r   r    r}   )r  rg   r  r   r   )r   r   r  r   rs   rK   rl   r   )r   r   r  r   r   r   test_o_marker_path_snapz  s   
""r7  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 )Nr   rg   r^  r   r  r   r    )r   r    皙ɿr   )r8  r   )	r  r~  r  r   r   rs   r  rv   rw   )rh  rI   rJ   r  r  rB  r   rC  r   r(  r   r   r   r   test_margins  sF   








r9  c                  C   sN   t jd t \} }|ddgddg |jddd | dks%J d S )NrE  r   r    r   r   )r  xmarginr   )r   r   r   r   r   rs   ru   rv   r   r   r   r   test_set_margin_updates_limits  s
   r;  c                  C   s&   t  \} }|d |dg d S Nr   )r   r   rw  r   r   r   r   test_length_one_hist  s   
r=  c                  C   s8   dgd } t dd\}}|| |  |t  d S )Nrg   r   r   )r   r   r  r:  r8  r9  )mylistr   r   r   r   r   test_pathological_hexbin  s   
r?  c                  C   s(   t  \} }|jddgddgd d d S )Nr   r    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   r   r  r!   )r   r   rs   rO  )r   r   rq  r   r   r   test_color_alias  s   rA  c                  C   s4   t  \} }|jtdgd tdd |  d S )Nr   r   r  )r   r   rw  r   r  r   r   r   r   test_numerical_hist_label  s   rB  c                  C   sN   t  \} }d}d}|dd|dg}|jtdgd |d |  d S )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr   r   r  )r   r   decoderw  r   r  )r   r   ry   r  r  r   r   r   test_unicode_hist_label  s   rD  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 )	Nrg   g^ 9^;r:   r   r   r(   r$   r9   )rK   rL   r   r   rs   r  r   r   
offsetTextr  get_horizontalalignment
tick_rightrq   get_verticalalignmentrr   )rh  r   r   beforeafterr   r   r   test_move_offsetlabel  s*   



$



$rK  zrc_spines.pngc                  C   sJ   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)r?   r   r   r   )r  r   r   r   r   r   test_rc_spines  s   "rL  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 )NTrk   )r  zaxes.grid.axisr.   r+   r   r   )r   r   r@  r?   r   r   )r   rc_dict0rc_dict1rc_dict2r  r  r  r   r   r   test_rc_grid  s"   
rP  c                  C   s   ddddd} t j| dR t  }|ddd}|j}|j}|jd r&J |jd s-J |jd r4J |jd s;J |jd sBJ |jd rIJ |jd sPJ |jd rWJ W d    d S 1 sbw   Y  d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightrn  r   tick1Ontick2Onr   r   r   r   rq   r   _major_tick_kw_minor_tick_kwr  r   r   xaxyaxr   r   r   test_rc_tick  s"   "r^  c               	   C   s   ddddddddd} t j| dR t  }|ddd}|j}|j}|jd r*J |jd s1J |jd r8J |jd s?J |jd rFJ |jd sMJ |jd rTJ |jd s[J W d    d S 1 sfw   Y  d S )NTF)rR  rT  rQ  rS  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftrU  r   rV  rW  rX  r[  r   r   r   test_rc_major_minor_tick/  s&   "r_  c                  C   s   t d} t g d}t \}}|| |d |d | | }}t 	|t 	|ks3J |
 dks;J t|jddjd t|jd	djd
 d S )Nr   )r   r  r_  g      @mosquarer   T)originalg      ?r   r  r  F)g333333?r   g      ?r  )rK   rS   r  r   r   rs   rH  rv   rw   r  r  r   r  r  )r.   r+   r   r   ri   rj   r   r   r   test_square_plotF  s   

rd  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  re   r   )	r   r   rF  r   rs   rK   r  rS   rn   r   r   r   r   test_bad_plot_argsU  s   *"re  zxy, clsr   ))r   r  )r    rc  )r   r    r   r  r  r  )r   r   ry  )r   r   c                 C   s0   t  \}}t|jg | |R  |ksJ d S r   )r   r   r5  
pcolorfast)rj  rh  clsr   r   r   r   r   test_pcolorfast`  s   $rh  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 )Nr    TrO  r/  r  r   r  rf  )r   r   rg  r  rA  
get_yscale
get_xscale)r   rB  r   r   r   r   test_shared_scales  s   

rl  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 )NTrN  r.  )r   r   r   r   r5  r   r   r   r   test_shared_bool  s   "rm  c                   C   s   t tddg dS )z4Violin plot should handle point mass pdf gracefully.r   N)r   r  rK   r  r   r   r   r   test_violin_point_mass  s   rn  c               	   C   s   t dtdgt dtdg } t ddg dg dg dgtdtdd g}t d|}t d	|}t dg gt dg g t dg d g t d	g d g }| | }| | }| | | }g ||||S )
Nr.   r   r+   errr   )r   r   r   r   r   )r    r   rQ  rR  )r
   rK   rS   rl   )base_xy
err_cyclerxerr_cyyerr_cyempty	xerr_only	yerr_onlyboth_errr   r   r   generate_errorbar_inputs  s*   $

rx  r  c                 C   s$   t  }|jdi | }|  d S )Nr   )r   r0  rE  remove)r  r   ebr   r   r   test_errorbar_inputs_shotgun  s   r{  dash_offsetc                  C   sT   t  \} }tdd}t|}tdddD ]}|j||| |dfddd qd S )	Nr   rg   r   r    rg   rg   r   r]  )r  r  r   )r   r   rK   r   	ones_liker   rs   )r   r   r.   r+   rU  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  )padr  g?r^  zaxes.titlepadg      R@)r   r   r  titleOffsetTrans
get_matrixr  r?   r   )r   r   rT  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 )	Nr#  zaxes.titlelocationr  r:   r%   r(   r  fail)r   r   r   r  	get_titler   r   rF  r   r   r   r   test_title_location_roundtrip  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 )Nr   r  r   r   r  r  r    )r/  rz  r   r  )r/  rz  r  )r   r   rK   rS   rQ  r  )r   r   r.   r   r   r   test_loglog  s
   r  new_apiztest_loglog_nonpos.pngc              	   C   sL  t dd\}}tdd}|d }d|d< d|d< t|D ]\\}}}g d| }g d| }	| rm||	krP|rE|j||d d	|d
 q|j||d d	d q|j||d d	d |rc|jd|d |	rl|jd|	d qi }
|ru||
d< |	r{|	|
d< |
rt	t
nt  |j||d fdd	i|
 W d    n1 sw   Y  qd S )Nr   r   r  g      r  r3  r   )r  clipr   r    )r  nonpositiver  r   )r  nonposxnonposyr  )r   r   rK   rS   ndenumeraterQ  rg  r  r   rv  r   r   )r  r   rB  r.   r+   r  rU  r   mcxmcykwsr   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   )r   r   r   r   r}  rM  rg   )rU  g      #@)r   r   rs   
get_yboundr  r4  
get_xboundru  rK   r  rf  rw  rS   rp   r   r   r   r   test_axes_margins  s0   r  r.   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   re   r"  )r   ry  r  rq   get_major_locatorr   r   r  r   r   r   	_helper_x(  
   z&shared_axis_remover.<locals>._helper_xc                 S   r  r  )r   ry  r  r   r  r  r   r   r   	_helper_y/  r  z&shared_axis_remover.<locals>._helper_yr   )param)requestr  r  r   r   r   shared_axis_remover&  s   r  )r0  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 )
Nr0  r   r  r    r  ri  r   r  r   r   r  r  )r  r   r   r0  r   r  )r  r   r   rJ  r   r   r   shared_axes_generator9  s   
	


r  c                 C   s   | \}}|| d S r   r   )r  r  r   r   r   r   r   test_remove_shared_axesJ  s   r  c                  C   s`   t jddddd\} }|d d }|d d  }|  |dd t|d d  | d S )Nr    r  ri  r   r   r   )r   r   rv   ry  r  r   )r   rJ  r   	orig_xlimr   r   r   test_remove_shared_axes_relimP  s   r  c                  C   s   t ddd} t j| j| jf}td}|dd |dd |	| | | tjd||d}|	| | | |
 s@|
 rBJ | sJ| rLJ | |   kr[d	ks^J  J | |   krmd	kspJ  J d S )
Nir  r9  r,  r  r-  ri  )r  r  )rK   rS   rL   random_samplera  r   r5  r  r  r'  r$  r&  rv   rw   )r  ro  r   r   r   r   r   test_shared_axes_autoscaleY  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  r    )r   r   r   r  
set_paramsr  r  r  r   r  r  r   r   r   r   test_adjust_numtick_aspectj  s   


r  zauto_numticks.pngc                  C   s   t dd\} }d S )Nr   )r   r   r  r   r   r   test_auto_numticksv  s   r  zauto_numticks_log.pngc                  C   s.   t  \} }dtjd< |ddgddg d S )Nround_numbersaxes.autolimit_modeg#B;g     j@gؗҜ<rg   )r   r   r?   r   rQ  r   r   r   r   test_auto_numticks_log|  s   
r  c                  C   s   t  \} }|g d d S )N)r   r   )r   r   rT  r   r   r   r   test_broken_barh_empty  r   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.rM  r  r  r   r   rN  r    r  )r    r   gUUUUUU?N)	r   r   r  rT  r  r)  verticesr  r  )r   r   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-01rg   )rW  r  r  r  )r[  rK   rS   rL   r   r   r   rZ  )r_  timedepthrh  r   r   r   r   r   test_pandas_pcolormesh  s
   
r  c                 C   sp   t jdddd}t t tt|}| ||d}t }|t |j	d dk 
 }|jdd	|d
 d S )Nz2005-02z2005-03r  rL  )rk  r%  r    r   rk  r%  r  )rK   rS   r   r  r   r  rd  r   r0  rh  copyrs   )r_  rk  r%  ri  r   without_zero_indexr   r   r   test_pandas_indexing_dates  s   r  c                 C   sF   | j tjjddg dg dd}t \}}|jdddd	|d
 d S )N)r   r   r  )r.   r+   xeyer?  )columnsrh  r.   r+   r  r  rD  )rd  rK   rL   uniformr   r   rE  rp  r   r   r   test_pandas_errorbar_indexing  s   r  c                 C   s:   |  g dg dd}t \}}||j|d  d S )N)r   r   rc  )r  r   r    )XXYYr  )rd  r   r   rs   rh  rp  r   r   r   test_pandas_index_shape  s   r  c                 C   s8   | j g dd}|jdd  }t \}}|| d S )N)
r   r    r    r   r   r   r   r   r   r   r  r   )rs  ilocr   r   rw  )r_  ser_1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 )Nr    r  r   ry   r  r#  r,  )rd  r   r   r   r  r&   r  r   rp  r   r   r   test_pandas_bar_align_center  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  
labelcolorr  r   rJ  r]  r  )
r   r5  r   set_tick_paramsr  _size	tick1linerO  label1r  )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   r  )
grid_colorgrid_linewidth
grid_alphagrid_linestyler   r  )r   r5  r  rq   r   r  r  rO  get_linewidth	get_alphaget_linestyle)r   rH  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   r5  r  r   r  r  r   label2r  r  r   r   r    test_axes_tick_params_ylabelside  s   r  c                  C   s   t  } | jdddd | jdddd | jjd j d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   r5  r  rq   r  r  r   r  r  r  r   r   r    test_axes_tick_params_xlabelside  s   r  c                  C   s4   t   } | jtdd d\}| dksJ d S )Nr\   )r   r  )r   r   r   rs   r   r  )r   lnr   r   r   test_none_kwargs  s   r  c                	   C   s~   t j 0 tt tjtdddd W d    n1 s w   Y  W d    d S W d    d S 1 s8w   Y  d S )Nr\   z
steps-pre:z
steps-post)r   	drawstyle)	r?   re  (_suppress_matplotlib_deprecation_warningr   r   rF  r   rs   r   r   r   r   r   test_ls_ds_conflict  s
   Pr  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  rL  )r    r   r   r   r  r,  r   )r   r  rK   r  uint8r  r  rj  )r  r  r   r.   r   r   r   test_bar_uint8  s
    r  zdate_timezone_x.pngr   c                  C   sj   dd t dD } tjdd tddd tj| dgd dd	 tddd tj| dgd d
d	 d S )Nc              
   S   (   g | ]}t j d dd|tjddqS   r       Canada/Easternr   tzinfor  r  tzgettzr   r   r   r   r     
    

z(test_date_timezone_x.<locals>.<listcomp>r   r  ry  r\  r    r   r  )r  UTCr   r   r   r5  r  
time_indexr   r   r   test_date_timezone_x  s   r  zdate_timezone_y.pngc                  C   sr   dd t dD } tjdd tddd tjdgd | dd	d
d tddd tjdgd | dd	d
d d S )Nc              
   S   r  r  r  r   r   r   r   r   )  r  z(test_date_timezone_y.<locals>.<listcomp>r   r  r\  r    r   r  FT)r  xdateydater  r  r  r   r   r   test_date_timezone_y&  s   r  zdate_timezone_x_and_y.pngc                     sn   t jj  fddtdD } tjdd tddd tj| | dd	d
 tddd tj| | dd	d
 d S )Nc              	      s    g | ]}t j d dd| dqS )r  r    r  r  r  r   r  r   r   r   <  s    z.test_date_timezone_x_and_y.<locals>.<listcomp>r   r  r\  r    r   r  T)r  r  z
US/Eastern)r  timezoneutcr   r   r   r5  r  r  r   r  r   test_date_timezone_x_and_y8  s   
r  zaxisbelow.pngc                  C   s   t  jdddd} d}t| |D ]<\}}|jddddd tjd	d
d}|| |jdddd |j	ddddd |j
 D ]}|d q@|| qd S )Nr   T)r  rO  r/  )Frq  TrM  rg   rT  rf  ri  r  r  r"   r  )r   r   r  F)r$   r9   r:   r(   )r   r   r   r  rs   r  rQ  r  r  r  r  r%  r  set_axisbelow)rB  settingsr   settingcircspiner   r   r   test_axisbelowI  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   r6  )r  Xlabel2Titler   )r   r   r   r   r   r   r  r  r   get_rendererget_window_extentr0  rC  rK   isclose)	r   r   r   xlabel2r  rendererbbox_y0_titlebbox_y1_xlabel2y_diffr   r   r   test_titletwiny]  s   



r  c                  C   sx   t  \} }| jdd | }|d |d |d d}|j| | j	 }|
| |j |ks:J d S )Nr  )r$   Xlabelr  r  )r   g(\?)r   r   r  r   r   r  r  r  r  r  _update_title_positionr  )r   r   r   r   r	  r   r   r   test_titlesetposl  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 topr   p=
ף?)r   r   r   r   rq   rx   r  r  r   r  r  r   r   r   r   test_title_xticks_top{  s   


r  c                  C   sX   d t jd< t \} }|jdddddd |d | j  |j	 d dks*J d S )Nr  r.   TrH  r9   r$   r  r  r  r   r  )
r   r   r   r   r  r  r  r   r  r  r   r   r   r   test_title_xticks_top_both  s   


r  c                  C   s`   d t jd< t } | g d}|jdddddd |d}| j  |	 d dks.J d S )	Nr  )r   rU  r  r   r.   Tr  Boor   r   )
r   r   r   r   r  r  r  r  r   r  )r   r   ttr   r   r   test_title_no_move_off_page  s   


r  c                  C   sL   t  } | ddd}|g d |jjdd |j  dks$J d S )Nr   g   @Ag   eAg   FAr  )r  )r   r   r   rs   r   r  get_offset_textrO  r   r   r   r   test_offset_label_color  s
   r  c                  C   sj   t  } | ddd}|g d |jjddd |j  s#J |jjdd |j  r3J d S )Nr   r  FT)label1Onlabel2On)r  )r   r   r   rs   r   r  r  r   r   r   r   r   test_offset_text_visible  s   r  c                  C   s6   t  \} }|dtddg d  | j  d S )Nr   r   g-q=gqىE)r   r   rs   rK   r  r  r   r   r   r   r   test_large_offset  s   r   c                  C   ^   t  \} }dd tdddD }tddt|}tddt| }}||||| d S )Nc              	   S      g | ]}t  d ddd|qS r  r  r   r  r  r8  r   r   r   r     r   z#test_barb_units.<locals>.<listcomp>r   r  rg   r   rj  )r   r   r   rK   r   r  barbsr   r   rk  r+   uvr   r   r   test_barb_units  
   r(  c                  C   r!  )Nc              	   S   r"  r#  r  r8  r   r   r   r     r   z%test_quiver_units.<locals>.<listcomp>r   r  rg   r   rj  )r   r   r   rK   r   r  quiverr%  r   r   r   test_quiver_units  r)  r+  c                  C   sn   t j} t \}}tdD ]'}|td\}|tdtd}|D ]}| | | | ks3J q#qd S )Nr   r   )	r5  to_rgbr   r   r   rs   r  rO  rD  )r,  r   r   rU  r  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 )Nr   r    r   rk   r   )r  r
  r  r  r.   5   )rH  labelrotationr+   r   )rH  r
  r  )
r   r   rs   rq   r  r   r  r  r%  r  )r  r   r   textr   r   r   test_tick_param_label_rotation  s    r3  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   zC{}rc  r]  )r  
facecolorsr   r  ry  )start)r   r   r   r  r5  rN  r6  tupleget_facecolorssqueezerL  r@  get_edgecolors)	r   r   rU  cctargetaledge_targetelface_targetr   r   r   test_fillbetween_cycle  s(   
 
 r@  c                  C   s   dt jd< t  \} }d}|| |ddgddg | \}}|j }|||g\}}|ddg\}}	|	| | }
t	||
 ||
 g||	g d S )Nrh  r  r  rg   r   )
r   r   r   set_xmarginrR  rv   rq   r*  r  r   )r   r   marginxlim0xlim1r  xlim0txlim1tx0tx1tr  r   r   r   test_log_margins  s   


rI  c                  C   s   d} t | t | }}t | d }t \}}tt |j|||d W d    n1 s2w   Y  d}|j|||d |j|||g|  d d S )Nr   r   r!   )r   r   r   )rK   rS   r   r   r   r   rF  r0   )r#  r.   r+   r  r   r   c_rgbr   r   r   test_color_length_mismatch  s   rK  c                   C   s   t jdgdd t   d S )Nr   Labelr  )r   r  r  r   r   r   r   test_eventplot_legend  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   r   r   )r:   r  )r   r   r   r^  r&  )r   r   r  r   r4  rE  )r   r   rect1rect2r   r   r   test_bar_broadcast_args  s
   (rP  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 )Nr   r   )
r   rs   r   r   rF  ri   rK   r  r  rj   r   r   r   r   test_invalid_axis_limits)  s   "rQ  r  re  r   r  c                 C   s8   t d}|g d ||  || |  d S )Nra  rF  )r   r5  rs   rg  r  r;  )r  r  r   r   r   r   test_minorticks_on6  s
   


rR  c                  C   sv   t  \} }|dd | }|ddgddg t  \}}|dd |ddgddg t|jj|jj d S )Nr   r    r   r   )r   r   r  r   rs   r   r  	intervalx)r   r   xtwinrC  r   r   r   r   test_twinx_knows_limits@  s   rU  c                   C   s   t jddgddgddd d S )Nr   r   r  )r  r  )r   rs   r   r   r   r   test_zero_linewidthO  s   rV  c                  C   s<   t  \} }|jg g g dd |jg g g dd |  d S )Nzempty y)rQ  r  zempty x)rR  r  )r   r   rE  r  r   r   r   r   test_empty_errorbar_legendT  s   rW  c                 C   s\   t ddd}dd |D }dd |D }dd |D }|  || | || d S )Nr3  rg   r   c                 S   s0   g | ]}d |d  d|d   d|  d qS )g@r   ra  r    g\(\@g      @r   r   r   r   r   r   ^  s   0 z%test_plot_decimal.<locals>.<listcomp>c                 S   r*  r   r   r8  r   r   r   r   _  r+  c                 S   r*  r   r   r8  r   r   r   r   `  r+  )rK   rS   r   rs   )r4   r5   r/  r0  r.   r+   r   r   r   test_plot_decimal[  s   rX  c                 C   s0   |   jddddd |  jddddd d S )Nr   r}   r   r   )r  r  rz  )r   rs   )r4   r5   r   r   r   test_markerfacecolor_none_alphah  s   rY  c                  C   sn   dt jd< dt jd< t  \} }|| j }|d || j }|j|jk s-J |j|jk s5J dS )z5Test that tick padding gets turned off if axis is offr  zxtick.directionzytick.directionoffN)	r   r   r   get_tightbboxr  r  rH  r/  r0  r   r   bbbb2r   r   r   test_tick_padding_tightbboxn  s   


r_  c                  C   s.  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||ddddf  |d |	  dd	g}d
dg}|d |d |d |d  |d |d  g}	|j
|	d\}
}|du sxJ |j  t ddgd	dgg}t |
  |ksJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r   r   rg   Nre   r   r   333333@r    r"  r   )boundsr   )rK   mgridr  r   r3  r   r   rZ  r  apply_aspectindicate_insetr  r   r  r  get_bbox
get_points)dxdyr+   r.   r  r   r   ri   rj   rH  r>  
connectorsxxr   r   r   
test_insetz  s&   
*
,

rl  c                  C   sz  d\} }t jtdd| |tdd|  | f \}}t |d t d||  t |  }t \}}||||d dd df  |d |	  |
g d}||||d dd df  |dd	g |d
dg ||  ||\}}	t|	dksJ |j  t ddgd	dgg}
t |  |
ksJ t ddgddgg}
t jj|  |
dd d S )Nr`  r   r   rg   re   r   )r  r  ffffff?rm  r   ra  r    r"  r   r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rK   rc  r  r   r3  r   r   rZ  r  rd  
inset_axesr  r  r  indicate_inset_zoomr  r  r   r  r  rf  rg  r   r   r  )rh  ri  r+   r.   r  r   r   axin1r>  rj  rk  r   r   r   test_zoom_inset  s6   
*




rs  
x_inverted
y_invertedc                 C   s   t dd\}\}}td}|||d | r|  |r"|  |g d|\}}|\}}	}
}| r6dnd}|r<dnd}||
jd |jd   dksNJ ||jd |	jd   dks^J ||	jd |jd   dksnJ ||jd |
jd   dks~J dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r   r    rg   r}   )r    r    r   r   re   r   N)	r   r   rK   rS   rs   r  r  re  r  )rt  ru  r   r   r   r.   rH  rb  
lower_left
upper_leftlower_rightupper_rightsign_xsign_yr   r   r   test_indicate_inset_inverted  s   
   $r|  c                  C   s   t  \} }|d |jg ddd t| jdsJ |d |jg ddd t| jds8J |d |jg dd	d t| jdsQJ d S )
Nr  )r   r   r^  r^  rk   r  r   r   rb  r  active)r   r   r  r  rK   allcloser  rz  r   r   r   r   test_set_position  s   


r  c                  C   sh   t  \} }|jd | j }|ddd dd |jd | j }tjj	|
 |
 dd d S )Nr9   )r  r  r  r  inFgư>rn  )r   r   r  r  r  r  _set_view_from_bboxrK   r   r   rg  r\  r   r   r   !test_spines_properbbox_after_zoom  s   r  c                     sX   G dd dt jj G  fdddt jj } | t jjj < t j }| |u s*J d S )Nc                   @   s   e Zd ZdS )z&test_cartopy_backcompat.<locals>.DummyN)r  r  r  r   r   r   r   Dummy  s    r  c                       s   e Zd Z ZdS )z-test_cartopy_backcompat.<locals>.DummySubplotN)r  r  r  _axes_classr   r  r   r   DummySubplot  s    r  )r?   r  r	  SubplotBaser6  _subplot_classesr7  )r  FactoryDummySubplotr   r  r   test_cartopy_backcompat  s
   r  c                  C   sH   t  \} }t|  |tjdd | j }tj	|
|jd d S )Nr   r  i  )r   r   r   r2  rK   r  r  r  r   r   r[  rz  )r   r   r	  r   r   r   test_gettightbbox_ignoreNaN  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 )Nrg   r  r  r  ro  )r   r   r   r   r   r   r   r   )r   rs  rK   rL   r  r   r0   )r_  rD  r.   r+   r"   r   r   r   "test_scatter_series_non_zero_index   s
   
r  c                   C   s"   t g g  t jg g g g d d S )N)rp  r"   )r   r0   r   r   r   r   test_scatter_empty_data	  s   r  zannotate_across_transforms.pngc               	   C   s   t ddd} t |  t |  }tjdd\}}|| | |g d}|d |j	
d |j
d |jd	| d
 |d
 f|jd|jtddd d S )Nr   rg   r  )gQ@r   r\  )r^  r   r   r   r   Fr   r  rY  r  )r  )rj  rk  rl  rm  r  )rK   r   rS  r   r   r   rs   rp  r  rq   r  r   rn  	transDatar  r  )r.   r+   r   r   axinsr   r   r   test_annotate_across_transforms  s   

r  zsecondary_xy.pngc                  C   s   t jddddd\} }dd }t|D ]A\}}|tddtdd |d	kr-|j}n|j}|d
||fd |ddd dd fd |ddd dd fd |d qd S )Nr   r    rg   r   T)r  constrained_layoutc                 S   8   t jdd d|  W  d    S 1 sw   Y  d S Nr  r  r   rK   r  rT  r   r   r   invert$     $z!test_secondary_xy.<locals>.invertr  r   r   	functionsr^  c                 S   s   d|  S Nr    r   rT  r   r   r   r  0      z#test_secondary_xy.<locals>.<lambda>c                 S   s   | d S r  r   rT  r   r   r   r  0  r  r  c                 S      | d S r  r   rT  r   r   r   r  1  r  c                 S   r  )Nr   r   rT  r   r   r   r  1  r  r  )r   r   r@  rs   rK   rS   secondary_xaxissecondary_yaxis)r   rB  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    d S 1 sbw   Y  d S )	Nr    r  r   c                 S   s   d|  S r<  r   rT  r   r   r   r  9  r  z%test_secondary_fail.<locals>.<lambda>r  r(   r9   )
r   r   rs   rK   rS   r   r   rF  r  r  r   r   r   r   test_secondary_fail5  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 )Nr  r\  r    r  c                 S   r  r  r  rT  r   r   r   r  C  r  z%test_secondary_resize.<locals>.invertr$   r  )r  r   rc  )r   r   rs   rK   rS   r  r  r   set_size_inchesr   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 )Nr  r\  r    r  c                 S   r  r  r  rT  r   r   r   r  P  r  z'test_secondary_minorloc.<locals>.invertr$   r  r   rf  )r   r   rs   rK   rS   r  r   _axisget_minor_locatorr   NullLocatorr;  AutoMinorLocatorrg  r   
LogLocator)r   r   r  r  r   r   r   test_secondary_minorlocM  s*   





r  c                  C   sT   t  \} }|d |d}|jt  | j	  t
|j tjs(J d S )Nr   r$   )r   r   rg  r  rq   r   r   ScalarFormatterr  r   r   r   )r   r   r  r   r   r   test_secondary_formatterd  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  r+   r   Nr   )rz  r  r  r  r  r  r  )r9   r$   r:   r(   r   r   r`  r    r  r   )r  r   r  r@  rq   r   r[  r   r  r/  r0  rz  r  r
  r  r  )r   rB  r	  bbaxisr  axxr]  axisrbbspinesry   spinerrO  bbaxr^  bbtbr   r   r   color_boxesn  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_modeFr  rc  rc  r  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r    )decimal     b@-]@     @F8&@r  g     @r  r^  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r   r   r   r  r   r7  r  r@  r+  Bboxfrom_boundsr   rb  r  transformedtransFigurer  )r   r   r  r  r  r  r;  r  r  targetbb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  d d g}t|D ]
\}}|d u sFJ q<g dg dg d	g d
g}t|D ]\}}tj	j
||  }	t|j|	jdd qYg d}tj	j
| }	t|j|	jdd g d}tj	j
| }	t|j|	jdd d S )Nr  Fr  r  r  xticklabelsyticklabelsr  r  r  r  r`  atolr  )r        ^@r  r  )r   r   r   r  r   ru   r  r@  r+  r  r  r   rb  
r   r   r  r  r  r  r;  r  r  r  r   r   r   test_nodecorator  s2   
r  c            
      C   s  t ddi. tjddd\} }|jg g d |jd d | j  t| |\}}}}W d    n1 s7w   Y  g d	g d
g dg dg}t	|D ]\}}t
jj||  }	qNg d}t
jj| }	t|j|	jdd g d}t
jj| }	t|j|	jdd d S )Nr  Fr  r  r  r  r9   )r  rn  )r        8@r  gs~8&@r  r  r  r  r`  r  )r  r  r  g     @)r   r   r   ru   r  r  r  r   r  r@  r+  r  r  r   rb  r  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  inoutr  Fr  r  r  r  r   r    r`  r  N)r@  r   r   r   r  r  r   r  r+  r  r  r   rb  )targets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  Fr  r  r  rk   r  )r  r  )r  g88[@r  r  )gCiq\a@r  r  r  r    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   rb  r;  )	r   r   r  r  r  r  r  r
  r  r   r   r   test_minor_accountedfor  s>   


"r  c                 C   sR   |  dd | dd |  d}|d |d | dd d S )Nr,  FrZ  r-  Ton)r   rH  r  r   r   r   test_axis_bool_arguments4  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   rg   r   r  )r   r   rH  r6  rv   rw   )r   r   rI   rJ   r  r  r  r   r   r   test_axis_extent_arg@  s   r  c                  C   s~   t dd tddD } t g d}t j|d}t \}}|| | t	t 
d}| d| d	| fks=J d S )
Nc                 S   s   g | ]	}t  d d|qS )r  r   r  rS  r   r   r   r   S  r  z(test_datetime_masked.<locals>.<listcomp>r   rc  r?  r   r  g    H&Ag    d&A)rK   r  r   r	   rW  r   r   rs   r  r  r  rv   )r.   r+   rT  r   r   r  r   r   r   test_datetime_maskedP  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   rc  r  r  r   r   re   rc  )r   rw  r  r  r   r   r   test_hist_auto_bins]  s    r  c            
      C   s   t d\} \}}g d}|tjg }||\}}}tjdd ||\}}	}W d    n1 s4w   Y  tj|| tj||	 d S )Nr    r  r  r  )r   r   rK   r  rw  r  r   r   )
r   r   r   rh  nan_datar  edgesr  nanbinsnanedgesr   r   r   test_hist_nan_datac  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 )	Nrg   r  ru  T)r   r  r   re   r   )r   rw  rK   rL   r   r  r   r   r   test_hist_range_and_densityq  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  rR  re  r  )r   r   r  rE  r3  r  r  )
r   r   r.   barcont	data_linecaplinesbarlinecolsr  capline
barlinecolr   r   r   test_bar_errbar_zorderx  s   
r  c                  C   s6   t  \} }|  |ddg | dksJ d S )Nr   r  rY  )r   r   r  r   rv   r   r   r   r   test_set_ticks_inverted  s   r  c                  C   sv   t jdd} |  }|ddgddg |jddddd	d
d |d | j| }|j	|j
 tdks9J d S )Nr}  r\  r^  r  r   rH  logit)F]tE?g'^P?r   r  r  ri   r  rj   rh   r  r   r    )r   r   r   rs   ru   r  r  transform_bboxr  r  rz  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   )r   r   r  )gbeF?r  r   r  r  r   gS[:XL	@g'In?@)r   r   r  rs   ru   r  rd  rv   r   r  rw   r   r   r   r   (test_aspect_nonlinear_adjustable_datalim  s   
r  c                  C   s   t  \} }| }|ddg |d t  \}}|d |ddgddg |jdd	d
 | j  |j  |	 }|	 }|	 }t
|j|j t
|j|j d S )Nry  iX  r   r   r    rc  r  r  r  r  )r   r   r   rs   set_box_aspectr  r  r  r   r  r   r  )rB  r   axtwinrC  r   bb1bbtr^  r   r   r   test_box_aspect  s   



r  c                  C   s   t  \} }|g d | j  |d t  \}}|d |j  |g d | j  |j  | }| }t|j|j d S )N)r   r   r  r   r   )	r   r   r  r  r   r  r  r   r  )rB  r   rC  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 )Nr    r   r   )r  T)r  r  r   )r   r   r  r  r   r  rA  r  r  rz  r  r   )r   rB  r	  r  r   r]  r   r   r   test_bbox_aspect_axes_init  s   




r  c                  C   s4   t dd\} }|g d | j  |  d S )Nr   r  )r   r   rs   r  r   redraw_in_framer   r   r   r   test_redraw_in_frame  s   
r 	  c                  C   sB   t  \} }| jdd usJ |d | jdd u sJ d S )N)r  r  F)r   r   r  inaxesr  r   r   r   r   test_invisible_axes  s   
r	  c                  C   <   dt jd< t  } | j }|D ]}|j dksJ qd S NrR  zlines.markeredgecolor)r   r   r  rq   get_major_ticksr  get_markeredgecolorr   ticksr  r   r   r   "test_xtickcolor_is_not_markercolor     

r		  c                  C   r	  r	  )r   r   r  r   r	  r  r	  r	  r   r   r   "test_ytickcolor_is_not_markercolor  r
	  r	  r  )TFNc                 C   s~   t  \}}td}tddd}||| | d u r | n| }|jd| d || ks1J |j	  t
| d d S Nr   rn  r   )rU  r   )r  )r   r   rK   rS   r   r0   r&  r  r  r   r   rw   r  r   r   r.   r+   	post_autor   r   r   test_unautoscaley	     

r	  c                 C   s~   t  \}}td}tddd}||| | d u r | n| }|jd| d || ks1J |j	  t
| d d S r	  )r   r   rK   rS   r   r0   r$  r  r  r   r   rv   r	  r   r   r   test_unautoscalex  r	  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   r    r   r   e   )r   rs   rK   r   get_path_interpolation_stepsr   )r4   r5   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   rw   r   r   r   r   test_autoscale_tiny_sticky/  s   
r	  ra  c                 C   s   g | ]}|d ur|qS r   r   )r   ra  r   r   r   r   7  s    r   )r  rg   ry  c                 C   st   | t jd< | t jd< t \}}|j  tddg|j|jgD ]\}}|	 D ]}|j
 ||ks6J q(q d S )Nzxtick.labelsizezytick.labelsizer.   r+   )r   r   r   r   r  r   r  rq   r   r	  r  r  _get_tick_label_size)ra  r   r   namerH  r  r   r   r   test_relative_ticklabel_sizes7  s   


r	  r  (  r(  r   r  r  r   r8  	itertoolsr   platformr  r   
contextlibr   ImportErrorr   dateutil.tzr  numpyrK   r	   r
   r   r?   r   matplotlib.testing.decoratorsr   r   r   matplotlib.colorsr  r5  matplotlib.datesrk  r  matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesr  r  matplotlib.pyplotpyplotr   matplotlib.tickertickerr   matplotlib.transforms
transformsr+  numpy.testingr   r   r   r   matplotlib.cbookr   r   r8   r>   r@   r[   r|   r   r   r   r   r   r   r   r  r  r  r"  r+  r:  r<  rD  r   rK  rT  rY  r\  rr  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r.  r7  r@  r  rS   rG  rN  rY  rb  rh  ro  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r%  r'  r1  r5  r;  r>  rI  rK  rL  rU  r`  rn  rq  rt  ry  r~  r  r  r  r  r  r  r  r  r  r  Patchr  r3  Line2Dr  r  r  r  r  r  r  r  r  r   r  r%  r  r*  r+  r?  rD  rG  rJ  rK  rQ  r\  rn  rp  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r   r!  r#  r)  r-  r3  r;  rK  rR  rX  r[  rh  rl  rp  rt  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r
  r  machiner  r  r  r-  r4  r=  r>  r  r$  rC  rL  rX  r]  rv  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r&  r+  r,  r-  r1  r5  r7  r9  r;  r=  r?  r@  rA  rB  rD  rK  rL  rP  r^  r_  rd  re  image	AxesImager   PcolorImagerL   QuadMeshrn   r   rh  rl  rm  rn  rx  r{  r  r  r  r  r  r  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  r   r(  r+  r/  r3  r@  rI  rK  rM  rP  rQ  rR  rU  rV  rW  rX  rY  r_  rl  rs  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r 	  r	  r		  r	  r	  r	  r	  r	  font_scalingsr	  r   r   r   r   <module>   s   











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

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

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




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

	 g*	3
			
	
>


	

	
	
	


	
	
	
	
	
	


				

	
	2
/




	


	
	

	+*

		
&
&
 !"
 -
	


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



!
	
.'"



