
    P/Ph4                    F^   d dl Z d dlmZmZ d dlZd dlmZ d dlmZ d dl	Z	d dl
Z
d dlZd dlmZ d dlZd dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZmZ d dlmZ d dl m!Z" d d
l#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z- d dl.m/Z0 d dl1m2Z3 d dl4m5Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z= d dl>m?Z@ d dlAmBZC d dlDmEZF d dlGmHZI d dlJmKZKmLZLmMZM d dlNmOZOmPZPmQZQ d dlRmSZS  ePdg          d             ZTd ZUd ZV eP            d             ZW eP            d             ZX eP            d             ZYd ZZ ePdg          d             Z[ ePdg          d             Z\ ePdg          d             Z]d Z^ ePdg          d              Z_ eOg d! ej`                    d"k    rd#nd $          d%             Zad& Zbd' Zc eOd(g          d)             Zdd* Zeejf        g                    d+d,          d-             Zhejf        g                    d+d,           ePdgd./          d0                         Zi eOd1g ej`                    d"k    rd2nd $          d3             Zjd4 Zkd5 Zld6 Zmd7 Zn ePdg          d8             Zo eOd9gd:;          d<             Zpejq        r                    d=          d>             Zsejq        r                    d=          d?             Ztejq        r                    d=          d@             Zu ePdg          dA             Zv eOdBgd:dCD          dE             Zw eOdFgd:dCD          dG             ZxdH ZydI ZzdJ Z{ eOdKgd:;          dL             Z| eOdMgd:;          dN             Z}dO Z~dP ZdQ ZdR Z eOdSgdTdUiV          dW             ZdX Z ePdg          dY             ZdZ Z eOd[d[g          d\             Z eOd]gdC^          d_             Z ePdg          d`             Zda Z eOdbgdgd:dCc          dd             Z eOdeg          df             Z eOdggdh$          di             Z eOdjdjgd:;          dk             Zdl Zdm Z eOdngd:;          do             Zdp Z eOdqgdC^          dr             Zds Z eOdtgdCd:u          dv             Zdw Z ePdg          dx             Zdy Z eOdzg          d{             Zejq        r                    d=          ejf        g                    d|g d}           ePdg          d~                                     Z eOddgd:dCD          d             Z eOdgdC ej`                    dv rdnd           d             Zd Z eOdgd:;          d             Zejf        g                    d ej        d          ddf ej        dddh           ej        d          df ej        dddh          d ej        d          fgg d          d             Zejf        g                    d ej        d          ddf ej        dddh           ej        d          df ej        dddh          d ej        d          fgg d          d             Z eOdgd: ej`                    d"k    rdnd           d             Z eOdgdCd:u          d             Z eOdgd:;          d             Z eOdg          d             Z eOdgd:;          d             Zd Z eOdgd:;          d             Z eOdgdg          d             Z eOdgddgd:          d             Zejf        g                    dddg           ePdg          d                         Z ePdg          d             Z eOdgdC^          d             Z eOdgdC^          d             Zd Zd Zd Z ePdg          d             Z ePdg          d             Zd Zd Zejf        g                    ddd:g           ePdg          d                         Z eOdg ej`                    d"k    rdhnd $          d             Z eOdgd:d=D          d             Z eOdgd:;          d             ZdÄ Z eOdgd:;          dń             Z eOdgd:dǬ          dȄ             Z eOdgd:dʬ          d˄             Z eOdgd:;          d̈́             Z eOdgd:;          dτ             Z eOdgd=d:u          dф             Z eOdgd:;          dӄ             Z eOdgd:;          dՄ             Z eOddg          dׄ             Zd؄ Zdل Z eOdg          dۄ             Z eOdg          d݄             Z ePdg          dބ             Z ePdg          d߄             Z ePdg          d             Z ePdg          d             Zd Zd Z eOdg          d             Zd Zd Zd Zd Zd Zd Zd Zejq        r                    d=           eP            d                         Zejf        g                    dddddgdfg dg dg dg ddfg dg dg dg ddfg dg ddg ddfg          d             Zd Zd Z eOdgd:;          d             Z ePdg          d             Zd Z eOdgd:;          d              Zݐd Z eOdgd:;          d             Z eOdgd:;          d             Z eOdg          d             Zd Zd	 Zejf        g                    d
ej!        j        d d gg d          d             Zejf        g                    dg dfg gdfg g gdfg          d             Zejf        g                    ddej2        j        j        fdej        j(        j        fdej2        j        j        fg          d             Zd Z ePdg          d             Z ePdg          d             Z ePdg          d             Z ePdg          d             Zd Zd Zd Zd Zd Z eOd gd:;          d!             Z eOd"g          d#             Z ePdg          d$             Zd% Z eOd&gd:dCD          d'             Z eOd(gdC ej`                    dv rd)nd           d*             Z eOd+d+gd:dCD          d,             Z eOd-gd:dCD          d.             Zd/ Z G d0 d1          Zddd2d3Z ed4d5          Z ejf        g                    d6 e             e d7 ej        g d8g          9          f ed:;           e d: ej        g d<g          9          f ed:d79           e d: ej        g d<g          9          f ed7=           e d7 ej        g d8g          9          f ed7d>g=           e d7d>g ej        g d8g d?g          9          fg          d@             Z[[ ejf        g                    dA e            df ed7;          df ed:2          d:f ed:d>g2          d:d>gf ed:B          d:f edC2          dCf edD2          dDf ed:d>E          d:f ed7d:d>F          d:f ed:=          d:f ed:d>G          d>fg          dH             ZdI ZdJ ZdK ZdL ZdM Z	dN Z
 eOdOdOg ej`                    d"k    rd#nd $          dP             Z eOdQgd:;          dR             Z eP            dS             Zi dT i fdUZ eOdVgdTdWid=X          dY             Z eOdZgdTdWid=X          d[             Z eOd\gdTdWid=X          d]             Z eOd^gdTdWid=X          d_             Z eOd`gd:dTdWid=dab          dc             Z eOddgdTdWid=dae          df             Z eOdggd:dTdWid=h          di             Z eOdjgd:dTdkid=h          dl             Z eOdmgd:dTdWid=h          dn             Z eOdogd:dTdWid=h          dp             Z eOdqgd:dTdWid=h          dr             Z eOdsgd:dTdWid=h          dt             Z eOdugd:dTdWid=h          dv             Z eOdwgd:dTdWid=h          dx             Z eP            dy             Z eOdzgd:dTdWid=h          d{             Z eOd|gd:dTdWid=h          d}             Z eOd~gd:dTdWid=h          d             Z  eOdgd:dTdWid=h          d             Z! eOdgd:dTdWid=h          d             Z" eOdgd:dTdWid=h          d             Z# eOdgd:dTdWid=h          d             Z$ eOdgd:dTdWid=h          d             Z% eOdgd:dTdWid=h          d             Z&d Z'd Z( eOdgdTdWid=X          d             Z) eOdgdTdWid=X          d             Z*d Z+ eOddgdd=          d             Z, ePdg          d             Z- eOdgdTdWid=X          d             Z. eOdgd:d=D          d             Z/ eOdgd:dTdWid=h          d             Z0 eOddgd=^          d             Z1d Z2 eOdgdTdkid:dd=          d             Z3 eOdgd:dTdWid=h          d             Z4 eOdgd:dTdWid=h          d             Z5d Z6d Z7d Z8d Z9 eOdgd:dTdWid=h          d             Z: eOddg          d             Z; eOdg          d             Z< eOdg          d             Z= eOdg          d             Z> eOdg          d             Z? eOdg          d             Z@ eOdg          d             ZA eOdg          d             ZB eOdg          d             ZC eOdg          d             ZD eOdg          dĄ             ZE eOdg          dƄ             ZF eOdg          dȄ             ZG eOdg          dʄ             ZH eOdgd:dCD          d̄             ZId̈́ ZJd΄ ZKdτ ZLdЄ ZM ePdg          dф             ZN ePdg          d҄             ZOdӄ ZPdԄ ZQdՄ ZR eOg d֢          dׄ             ZS eOdgdgd:          dل             ZTdڄ ZU eP            dۄ             ZVd܄ ZW eOdg          dބ             ZXd߄ ZYd ZZ ePdg          d             Z[d Z\d Z]d Z^ eP            d             Z_ejf        g                    dg d ej        g d          dg          d             Z` ePdg          d             Za eOddg          d             Zb eOdg          d             Zc eOdgd:;          d             Zd eOdg          d             Ze eOdg          d             Zf eOdgdCd:u          d             Zgd Zhd Zid Zj eOdgdCd:u          d             Zk eOdg          d             Zl eOdg          d             Zm eOdg          d              Zn eOdgd:;          d             Zod Zpd Zqd Zrd Zs eOdg          d             Ztejf        g                    d	d
g didg didg didg didg didg dif           ePdg          d                         Zuejf        g                    ddd:dd>ddd>fdd:dd>ddd>fdd:d>dd:d>fdd:d>ddd>fdd:ddddfdd:dddd:fddd>ddd>fddd>ddd>fdd:dd:dfdd:ddd:fdddddfddddd fdd>d!d d>fdd>d!d"d>fd#did dfd#did"d fg          d$             Zvd% Zwd& Zxd' Zyd( Zz eOd)gd:;          d*             Z{ eOd+gd:;          d,             Z| eOd-gd:;          d.             Z}d/ Z~d0 Z eOd1gd:;          d2             Z eOd3d3gd:;          d4             Z eOd5gd:;          d6             Zejf        g                    d7g d8          d9             Zd: Z eOd;gd:;          d<             Zd= Zejf        g                    d>g gg d dggd dgg gg          ejf        g                    d?g d@          dA                         Z ePdg          dB             Z eOdCgd:;          dD             Z eOdEg ej`                    d"k    rdFnd $          dG             Z eOdHgd:;          dI             Z eOdJdKg ej`                    dLk    rd ndM$          dN             Z eP            dO             Z eP            dP             Z eP            dQ             Z eP            dR             ZdS Z eOg dTdg          dU             ZdV Z eOg dWdg          dX             ZdY Zejf        g                    d>dddej        dZgej                            g d[d\          g           ePdg          d]                         Z eOd^gdgdC_          d`             Z eOdadagd:db          dc             Z eOddgd:;          de             Zdf Z eOg dgd:dhd=i          dj             Z eOg dkd:dhd=i          dl             Z eOg dmd:dhd=i          dn             Zdo Z ePdg          dp             Zdq Z eOg drd:ds          dt             Z eOg dud:;          dv             Zdw Z ePdg          dx             Z eOdygd: ej`                    d"k    rdznd           d{             Z eOd|d|gd:;          d}             Zejf        g                    d~g d          d             Zd Zd Z ePdg          d             Zejq        r                    dC          d             Zd Zejf        g                    de=j        e=j        dge=j        e=j        dgg          d             Zd Zd Zd Zd Zd Zejf        g                    dedi dfedi dfeddgfi dfe e            ddidff          d             Zd Zejf        g                    d+d,          d             Zd Zd Z eOdgd$          d             Z eOg ddgdCd          d             Z eOdgdCd          d             Z eOdgdCd          d             Z eOdgdCd          d             Z eOdgdCds          d             Z eOdgdCd2          d             Z eOdgd$          d             Z eOdgdCds          d             Zɐd Zʐd Zːd Z̐d Z͐d Zΐd Z eP            d             Z eP            d             Z eOdg ej`                    d"k    rdnd $          d             ZҐd Z ePdg          d             ZԐd ZՐd Z֐d Zאd Z eOdg          d             ZِdÄ ZڐdĄ Z eOdgdTdiV          dǄ             ZܐdȄ ZݐdɄ Zސdʄ Zejf        g                    dedi dfedi dfe e            ddidfe e            ddidfedddd,dfedddidfedi dff          d҄             Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Z eOdgdTdWiV          d܄             Z eOdgdTdWiV          dބ             Zd߄ Zd Zd Zd Zejf        g                    ddej        j        fdej        j        f edZ           ed\          fej        j        fg dg dfej        j        fej                            d          ej                            d          fej        j        fg          ejf        g                    d> ej        d                              d          ej                            dd\d          g          d                         Zd Zd Zd Zd Zd Zd Zejf        g                    d	 e                      d             Z eOdgd:;          d             Zd Z d Zejf        g                    dd:dg          d             Z eOdgd:dh          d             Z eOdgd:dC ej`                    d"k    rdnd           d             Zejq        r                    d=          d             Z ej        ddg           d             Z ej        g d           d             Zd Z	d Z
d Zd Zejq        r                    d=          d             Zejq        r                    d=          d	             Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z eOdgd$          d             Z eOdg          d             Z eOdgd$          d             Z  eOd gd:;          d!             Z!d" Z"d# Z#d$ Z$d% Z%ejf        g                    d&g d'g d(          d)             Z&d* Z'd+ Z(d, Z)d- Z*d. Z+d/ Z,d0 Z-d1 Z.d2 Z/ejq        r                    d=          d3             Z0d4 Z1d5 Z2d6 Z3ejf        g                    dedggd7g id8fedggd9g id:fedggd;g id<fedggd=g id>fedggd?g id@fedgi dAfedggd7ddgidBfedggd9ddgidCfedggd;ddgidDfedggd=ddgidEfedggd?ddgidFfedggd7ddgidGff          dH             Z4dI Z5dJ Z6ejf        g                    dKdLdMg          ejf        g                    dNdLdMg          dO                         Z7dP Z8dQ Z9dR Z: ePdg          dS             Z; ePdg          dT             Z<dU Z=dV Z>dW Z? eOdXgd:dCD          dY             Z@dZ ZAd[ ZBejf        g                    d\dd:g          ejf        g                    d]dd:g          d^                         ZCd_ ZDd` ZEda ZFdb ZGdc ZHdd ZI eOdegdCd: ej`                    d"k    rdnd f          dg             ZJ G dh dieFjK                  ZL eOdjgdC ej`                    d"k    rdknd           dl             ZMdm ZNdn ZOdo ZPdp ZQdq ZR eOdrgd:dCD          ds             ZSdt ZTdu ZUdv ZVdw ZWdx ZXdy ZY ePdg          dz             ZZd{ Z[d| Z\d} Z]d~ Z^d Z_d Z`d Zad Zbd Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zkejf        g                    dd,          ejf        g                    dd          d                         Zl ePdg          d             Zmejq        r                    d=          d             Znd Zod Zpd Zqd Zrejf        g                    dd e-js        D             g dz             ejq        r                    d=          d                         Ztd Zud Zv ePdg          d             Zw ePdg          d             Zxd Zyejf        g                    dg d          d             Zzd Z{d Z|d Z}d Z~d Zd Zd Z eOdg          d             Zd Zd Zejf        g                    ddddj        g          d             Zd Zd Zd Zd Zd Zd Zejq        r                    d=          d             Zd Zd Zejf        g                    dd          ejf        g                    d>dd ed          ig          d                         Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń Z ePdg          dƄ             Z eOdgdC^          dȄ             ZdɄ Zdʄ Zd˄ Zd̄ Z eOdgd:dC ej`                    d"k    rdknd           d΄             Zejq        r                    d=          dτ             Z ePdg          dЄ             Zdф Zd҄ Zdӄ ZdԄ ZdՄ Z eOdgd=^          dׄ             Z ePdg          ejf        g                    dd,          dل                         Zejf                            ej        dd         dk    oej        j        dk    dܐݦ          dބ             Zd߄ ZeS eP            d                         Z ePdg          d             Z ePdg          d             Z eOdg ej`                    d"k    rdnd $          d             Zd Zd ZdS (      N)
namedtupledequeDecimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)Figure)Axes)Line2D)PathCollection)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titles)needs_usetexpng
extensionsc                 X    |                                  }|                    d           d S NF)subplotsset_visiblefig_testfig_refaxs      Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr'   5   s+    					BNN5    c                      t          j                    \  } }|                    d           |                    d           |                                dk    sJ |                                dk    sJ d S )Nzx labelzy label)pltr    
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr%   s     r&   test_get_labelsr1   ;   sm    lnnGCMM)MM)==??i''''==??i''''''r(   c                     t          j                    \  } }|                    d           |                    d           |                    d           |                    d           t          |          dk    sJ d S )NlabeltitlexyzH<Axes: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r*   r    	set_label	set_titler+   r,   reprr/   s     r&   	test_reprr:   C   s    lnnGCLLLLMM#MM#88	LM M M M M Mr(   c                    |                                  }|                    ddgddgddgd          }|                                 |                    dd           |                    dd	           |                     |          }|                    d
d           |                                 }|                    ddgddgddgd          }|                                 |                    ddd	           |                    ddd	           |                    |          }|                    d
dd	           d S )N      scattercr3   Y LabeltoplocX LabelrightZ Labelr6   har5   rI   r    r>   legendr,   r+   colorbarr7   r#   r$   r%   sccbars        r&   test_label_loc_verticalrQ   N   s>   					B	QFQFq!fI	>	>BIIKKKMM)M'''MM)M)))R  DNN9%N(((					B	QFQFq!fI	>	>BIIKKKMM)qWM---MM)qWM---BDNN9gN.....r(   c                    |                                  }|                    ddgddgddgd          }|                                 |                    dd           |                    dd	           |                     |d
          }|                    dd	           |                                 }|                    ddgddgddgd          }|                                 |                    ddd	           |                    ddd	           |                    |d
          }|                    ddd	           d S )Nr<   r=   r>   r?   rA   bottomrC   rE   left
horizontalorientationrG   r   rH   rJ   rK   rN   s        r&   test_label_loc_horizontalrX   a   sH   					B	QFQFq!fI	>	>BIIKKKMM)M***MM)M(((R\::DNN9&N)))					B	QFQFq!fI	>	>BIIKKKMM)qVM,,,MM)qVM,,,BL99DNN9fN-----r(   c                    t          j        ddd          5  |                                 }|                    ddgddgddgd          }|                                 |                    d           |                    d	           |                     |d
          }|                    d           d d d            n# 1 swxY w Y   |                                }|                    ddgddgddgd          }|                                 |                    ddd           |                    d	dd           |                    |d
          }|                    ddd           d S )NrF   rB   )zxaxis.labellocationzyaxis.labellocationr<   r=   r>   r?   rA   rE   rU   rV   rG   rH   rJ   )	
matplotlibr   r    r>   rL   r,   r+   rM   r7   rN   s        r&   test_label_loc_rcr[   t   s   		w7< >  > 
? 
? " "  ZZAA1a&	ZBB
		
i   
i      >>y!!!" " " " " " " " " " " " " " " 
				B	QFQFq!fI	>	>BIIKKKMM)qWM---MM)qWM---BL99DNN9gN.....s   BCC	Cc                  R   t          j                    \  } }|                    dd           |                    dd           |j        j                                        dk    sJ |                    dd           |j        j                                        dk    sJ |                    dd           |j        j                                        dk    sJ |                    dd           |                    dd           |j        j                                        dk    sJ |                    dd           |j        j                                        dk    sJ |                    dd           |j        j                                        dk    sJ d S )Nz
Test labelrT   rC   centerrF   rB   rS   )r*   r    r+   xaxisr3   get_horizontalalignmentr,   yaxisr/   s     r&   test_label_shiftra      s   lnnGC MM,FM+++MM,HM---8>1133x????MM,GM,,,8>1133w>>>>MM,HM---8>1133x???? MM,EM***MM,HM---8>1133x????MM,HM---8>1133v====MM,HM---8>1133x??????r(   c                 H   t           j                            d           d}t           j                            dd|                                          }|dz
  }|                                 }|                    ||           |                                }t          j        ||d          t          j        ||          z  }t          j	        | |dz             }||dz
  |z
  ||z            }|
                    |dg|           |                    ddd           d S )	N!N,   r   r<   maxlagsfullmoder6   xminxmax)nprandomseednormalcumsumr    acorr	correlatedotarangevlinesaxhline	r#   r$   Nxr5   rf   ax_testax_refnorm_auto_corrlagss	            r&   
test_acorrr~      s   INN8	B
	Ar""))++AdG!!GMM!WM%%%F\!QV444RVAq\\AN9gXwqy))D#BqDLG$;<N
MM$^,,,
NNQQQN'''''r(   c                    t           j                            d           d}t           j                            |          dz                                  }t          j        |                              t           j                  }|dz
  }|                                 }|	                    ||           |                                }t          j
        ||d          t          j        ||          z  }t          j        | |dz             }||dz
  |z
  ||z            }|                    |dg|           |                    ddd	           d S )
Nrc   3   
   r<   re   rg   rh   r   rj   )rm   rn   ro   randrq   ceilastypeint64r    rr   rs   rt   ru   rv   rw   rx   s	            r&   test_acorr_integersr      s,   INN8	B			b	 ((**A	BH%%AdG!!GMM!WM%%%F \!QV444RVAq\\AN9gXwqy))D#BqDLG$;<N
MM$^,,,
NNQQQN'''''r(   c                 t   t           j                            d           t          j        d          }d|d d<   t           j                            |           |                    d          }|                     d          }|d                             |           |d                             |dd	
           |                    d          }|d                             |dd           |d         j	        
                                  |d         j        g t          j        |          d d d         dR ddi |d                             d|d                                         |d                                         d d d                    |D ]}|j	                            d           d S )Nrc   i   r   rd   )    r   r=   r<   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer   )aspectxlimylimboth)rm   rn   ro   onesshufflereshaper    spyimshowr^   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r#   r$   aaxs_testaxs_refr%   s         r&   test_spyr      s   INN8
AAhwhKIa			(A  ##HQKOOAQKOOAc'O222q!!GAJahi@@@AJGAJO=RZ]]44R4(=#==="===AJNNwqz**,,71:3F3F3H3H23N  P P P , ,
##F++++, ,r(   c                      t          j                    \  } }ddidddfD ]T}t          j        t                    5   |j        t          j        dd          fi | d d d            n# 1 swxY w Y   Ud S )Nr   r   osolid)r   	linestyle   )r*   r    pytestraises	TypeErrorr   rm   eye)r0   r%   unsupported_kws      r&   test_spy_invalid_kwargsr      s    lnnGC+Y7&)@@B 3 3]9%% 	3 	3BF26!Q<<22>222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	33 3s   "A))A-	0A-	c                    t           j                            d           t          j                            dd          }|                                                     |           |                                }|                    |           |j	        
                                 |j	                            d           d S )Nmpl20r   r   )mplstyleuserm   rn   r   add_subplotmatshowr   r^   r   r   )r#   r$   r   r{   s       r&   test_matshowr      s    IMM'
	r2A""1%%%  ""F
MM!
L
L##F+++++r(   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005arm64gX9v?)tolc                     dd l mc m                                  dt          j        d<   fdt          d          D             } fdt          d          D             }fdt          d          D             }t          j                    	                                }|
                    d           t          j                    	                                }|
                    d           |                    | |d	d
           t          j                    	                                }|
                    d           |                    | |d	d
           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           |                                 d S )Nr      zlines.markeredgewidthc                 $    g | ]}|j         z  S  )sec).0r5   unitss     r&   
<listcomp>z)test_formatter_ticker.<locals>.<listcomp>   s    ,,,QQuy[,,,r(   r   c                 0    g | ]}d |z  dz
  j         z  S )      ?      ?kmr   r6   r   s     r&   r   z)test_formatter_ticker.<locals>.<listcomp>  s(    888s1us{EH$888r(   c                 0    g | ]}d |z  dz
  j         z  S )      ?      ?r   r   s     r&   r   z)test_formatter_ticker.<locals>.<listcomp>  s(    999!tAv|UX%999r(   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registerrZ   rcParamsranger*   figurer    r+   r   autoscale_view)xdataydata1ydata2r%   r   s       @r&   test_formatter_tickerr      s4    100000000	NN 46J/0 -,,,%)),,,E8888eBii888F9999uRyy999F				 	 BMM-   				 	 BMM-   GGE6G666				 	 BMM-   GGE6G666MM-   				 	 BGGE6G666GGE6G888MM-    
			 	 BGGE6G666GGE6G888MM-   r(   c                  J   d } t          j                                                    }|j        j        sJ |j        j        sJ |j        j        sJ |j        j        sJ |j                            |            |j        j        rJ |j        j        sJ |j        j        sJ |j        j        sJ t          j	        |           }t          |j                                        t          j	                  sJ |j                                        j        |j        k    sJ d S )Nc                     dS )N r   r5   poss     r&   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    rr(   )r*   r   r    r^   isDefault_majfmtisDefault_minfmtr`   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r%   targ_funcformatters      r&   !test_funcformatter_auto_formatterr     s9      
			 	 B8$$$$8$$$$8$$$$8$$$$H  +++x((((8$$$$8$$$$8$$$$ .y99bh2244+- - - - - 8'')).2D2IIIIIIIr(   c                  H   d} t          j                                                    }|j        j        sJ |j        j        sJ |j        j        sJ |j        j        sJ |j                            |            |j        j        sJ |j        j        sJ |j        j        sJ |j        j        rJ t          j	        |           }t          |j                                        t          j	                  sJ |j                                        j        |j        k    sJ d S )Nz	{x}_{pos})r*   r   r    r^   r   r   r`   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr%   targ_strformatters      r&   &test_strmethodformatter_auto_formatterr   8  s-   G				 	 B8$$$$8$$$$8$$$$8$$$$H  )))8$$$$8$$$$8$$$$x((((27;;bh224402 2 2 2 2 8''))-1B1FFFFFFFr(   twin_axis_locators_formattersc                  ,   t          j        dddd          } t          j        t           j        | z  dz            }t	          j        |          }t	          j        g d          }t	          j                    }|                    ddd          }|                    dd	gddg           |j	        
                    |           |j	                            |           |j	                            t	          j        d
                     |j	                            t	          j        g d                     |j        
                    t	          j                               |j                            t	          j        g d                     |j                            t	          j        d                     |j                            t	          j        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   )rm   linspacesinpir*   FixedLocatorr   r   r   r`   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterr^   LinearLocatortwinytwinx)valslocsmajlminlr0   ax1s         r&   "test_twin_axis_locators_formattersr  Q  s   ;q!T222D6"%$,$%%DD!!DOOO,,D
*,,C
//!Q
"
"CHHc3Z!Q   I%%%I%%%I!!#"8"C"CDDDI!!#"4 6> 6> 6> #? #? @ @ @ I 1 3 3444I 01A1A1A B BCCCI!!#"8"C"CDDDI!!#"45I5I5I"J"JKKKIIKKKIIKKKKKr(   c                  J   t          j                    \  } }|                                }|                                }t          j                     |j                                        rJ |j                                        rJ |                                 |                                 |j                                        rJ |j                                        rJ |j	                                        sJ |j                                        sJ |j                                        rJ |j	                                        rJ |j                                        sJ |j                                        sJ |j	                                        sJ d S N)
r*   r    r  r  drawr^   get_visiblepatchclar`   )r0   r%   ax2ax3s       r&   test_twinx_clar(  j  st   lnnGC
((**C
))++CHJJJy$$&&&&&y$$&&&&&GGIIIGGIIIy$$&&&&&y$$&&&&&9  """""9  """""y$$&&&&&y$$&&&&&8!!!!!8!!!!!8!!!!!!!r(   twinr5   r6   c                 ~   |  d}d|  }ddg}ddg}t                      }|                                }|                    ||           t          ||          j        J  t          ||                      }t          ||          j        J t          ||          j        t          ||          j        u sJ d S )Naxisr)  01r   b)r   r    r   getattrr   )r)  	axis_name	twin_funcr   r/  r0   r  r&  s           r&   test_twin_unitsr3    s    ItI	c
A	c
A
((C
,,..CHHQNNN3	""(444
!'#y
!
!
#
#C3	""(4443	""(GC,C,C,IIIIIIIr(   RQ?)r   r   c                    d| }d| d}t          j        dd          }|                     ddd          } t          ||                      } t          ||          d           |                    ||           |                     ddd          } t          ||          d            t          ||                      }|                    ||           dD ]}|                    dd|          }	 t          |	|          d           |	                    ||           t
          j        j        }
|                    t
          j	        
                     |
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
z            |	j        dt          j        d         t          j        d         d                     t!          |            t!          |           d S )Nr)  set_scaler<   r  r=   logr<   r=   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rm   ru   r   r0  r   rZ   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r#   r$   r)  r2  	set_scaler5   rz   ax_twinir{   rD  s              r&   test_twin_logscalerN    s&    tI"t"""I
	!SA ""1a++G)ggy))++GGGY&&&LLA ""1a++GGGY&&&)ggy))++GLLA ( ($$Q1--"	""5)))Aq #((q!fq!f!fq!f!fq!f!fq!f& k4;/!3	5 5
 !* ,'78,'78% ) 
' 
'	( 	( 	( 	( H%%%G$$$$$r(   ztwin_autoscale.pngg;On?c                     t          j        g d          } d| z  }t          j        g d          }d|z  }t          j                    }|                    ddd          }|                    | |dd	
           t          j        |          }|                    ||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   r   r   lwr--r   rV  r   )rm   arrayr*   r   add_axesr   r  margins)r5   r6   x2y2r0   r%   r&  s          r&   test_twinx_axis_scalesr^    s     	AaA	)))		B	
RB
*,,C	l%u	M	MBGGAq2G&&&
)B--CHHRUqH!!!JJq!KK1r(   c                     t          j                    \  } }|                                }|                    d           |                                }|                                sJ |                                rJ |                                }|                    d           |                                }|                                sJ |                                rJ d S r   )r*   r    r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r0   r%   ax_x_onax_x_offax_y_onax_y_offs         r&   #test_twin_inherit_autoscale_settingrh    s    lnnGChhjjGxxzzH$$&&&&&))+++++hhjjGxxzzH$$&&&&&))+++++++r(   c                     t          j        d          } |                                 }|                                rJ |                                rJ t
          j                            d          }|                    |           |                                rJ |                                sJ |                                 t          j	        ddt
          j
        z  d          }|                    |t          j        |                     |                                rJ |                                rJ |                                 |                    |           t          j                     |                                rJ |                                sJ | j        D ]}|                                 t          j        d          }t          j        d|          }|j                            d           |                                sJ |                    |t          j        |                     |                                 |                                rJ |                                 |                    |           |                    |t          j        |                     |                                 |                                sJ t          j        |            d S )	Nr   )r  r  r=   r        shareyT)r*   r   gcaxaxis_invertedyaxis_invertedrm   rn   r   r%  r  r  r   cos	autoscaleaxesremovesubplotr`   set_invertedclose)r0   r%   imgr5   ax0r  s         r&   test_inverted_clarz    s    *Q--C	B  """""  """""
)

:
&
&CIIcNNN  """"" FFHHH
Aqw$$AGGArvayy  """""  """"" FFHHHIIcNNNMOOO  """""h  
		 +c

C
+c#
&
&
&CI4   HHQq		GGIII!!#####GGIIIJJsOOOHHQq		GGIII IcNNNNNr(   c                  B  	 t          j        t          d          5   G 	fddt                    } d d d            n# 1 swxY w Y   t          j        t          d          5   G 	fddt                    }d d d            n# 1 swxY w Y    G d d|           } G 	fd	d
t                    } G 	fddt                    } G d d|          }t	                      }| |||||fD ]0}d	 ||g d          }	sJ d	|                                 	sJ 1d S )NzOverriding `Axes.cla`matchc                       e Zd Z fdZdS )(test_subclass_clear_cla.<locals>.ClaAxesc                     dd S NTr   selfcalleds    r&   r%  z,test_subclass_clear_cla.<locals>.ClaAxes.cla  s    r(   N)__name__
__module____qualname__r%  r  s   r&   ClaAxesr    s.              r(   r  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 L    dt                                                       d S r  )superr%  r  	__class__r  s    r&   r%  z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla%  s    r(   )r  r  r  r%  __classcell__r  r  s   @r&   ClaSuperAxesr  $  s>                 r(   r  c                       e Zd ZdS )+test_subclass_clear_cla.<locals>.SubClaAxesNr  r  r  r   r(   r&   
SubClaAxesr  *          r(   r  c                       e Zd Z fdZdS )*test_subclass_clear_cla.<locals>.ClearAxesc                     dd S r  r   r  s    r&   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clear.  s    FFFr(   N)r  r  r  r  r  s   r&   	ClearAxesr  -  s.        	 	 	 	 	 	 	r(   r  c                   "     e Zd Z fdZ xZS )/test_subclass_clear_cla.<locals>.ClearSuperAxesc                 L    dt                                                       d S r  )r  r  r  s    r&   r  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear3  s    FGGMMOOOOOr(   )r  r  r  r  r  r  s   @r&   ClearSuperAxesr  2  s>        	 	 	 	 	 	 	 	 	 	r(   r  c                       e Zd ZdS )-test_subclass_clear_cla.<locals>.SubClearAxesNr  r   r(   r&   SubClearAxesr  8  r  r(   r  FrR  )r   warnsPendingDeprecationWarningr   r   r%  )
r  r  r  r  r  r  r0   
axes_classr%   r  s
            @r&   test_subclass_clear_clar    s   
 
/3
5 
5 
5  	 	 	 	 	 	 	d 	 	 	               
/3
5 
5 
5  	 	 	 	 	 	 	4 	 	 	                  W         D   
             y    ((Cj .,@ 
 

Z\\\** 

 
s!   ?AA%BBBc                  Z    t          j                    D ]} d| j        vrd| j        vsJ d S )Nr  r%  )r   __subclasses__r  __dict__)klasss    r&   !test_cla_not_redefined_internallyr  I  sH    $&& / / %E,>>>....	/ /r(   c                 D   t          j        ddd          5  |                                 }|                    ddgddg           d d d            n# 1 swxY w Y   |                                }|                    ddgddg           |                                 d S )NT)zxtick.minor.visiblezytick.minor.visibler   r<   )rZ   r   r    r   minorticks_onr#   r$   rz   r{   s       r&    test_minorticks_on_rcParams_bothr  Q  s    		t7; =  = 
> 
> % %##%%aVaV$$$% % % % % % % % % % % % % % % F
KKAA
s   /AAAautoscale_tiny_rangeTremove_textc                      t          j        dd          \  } }t          |j                  D ]*\  }}dd|z
  z  }|                    ddgdd|z   g           +d S )Nr=   r   ir   r<   )r*   r    	enumerateflatr   )r0   axsrM  r%   y1s        r&   test_autoscale_tiny_ranger  \  sp     |Aq!!HC38$$ % %2#']
AAF$$$$% %r(   defaultc                     t          j        dd          \  } }|                    g d           |                    ddd           |                    ddd           t	          |                                d           t	          |                                d	           |                                sJ |                                sJ |	                                sJ |                    d 
           t	          |                                d           t	          |                                d	           |                                sJ |                                sJ |	                                sJ d S )Nr<   r<   r=   r   r:  Tr5   F)enabler,  tightr6   )g333333ÿg333333	@)r         @)r  )
r*   r    r   rr  r   r   r   ra  rc  get_autoscale_onr/   s     r&   test_autoscale_tightr  e  si   l1a  GCGGLLLLL3eL444LL3dL333BKKMM=111BKKMM:... !!!!!!!!!!     LLLBKKMM=111BKKMM:...!!!!!!!!!!       r(   c                     t          j        dt                    } t          j        ddd          \  }\  }}|                    | |            |                    | |            |                    d           |                    d           t          j                     | d         | d         f}t          |
                                |           t          |                                |           t          |
                                |           t          |                                | d	         | d         f           d S )
Nr  dtyper=   r<   Tsharex)r  r   r   )rm   ru   floatr*   r    loglogsemilogxrr  r"  r   r   r   )r5   r0   r  r&  limss        r&   test_autoscale_log_sharedr  }  s    		#U###Al1a555OC#sJJq!LLAMMMMMMHJJJaD!B%=DCLLNND)))CLLNND)))CLLNND)))CLLNNQqT1R5M22222r(   c                     t          j                    \  } }|                    ddgddggd           t          |                                d           t          |                                d           d|_        |                                 d	d|j        z  z
  d
d|j        z  z   f}d	d|j	        z  z
  d
d|j	        z  z   f}t          |                                |           t          |                                |           d|_        |                                 t          |                                d           t          |                                d           d S )Nr   r<   r=   r   r   r   )      r   Fr  r   T)
r*   r    r   r   r   r   use_sticky_edgesrr  _xmargin_ymargin)r0   r%   r   r   s       r&   test_use_sticky_edgesr    s4   lnnGCII1v1vwI///BKKMM;///BKKMM;///BLLNNN1r{?"C!bk/$9:D1r{?"C!bk/$9:DBKKMM4(((BKKMM4(((BLLNNNBKKMM;///BKKMM;/////r(   c                 Z   t          j        d                              dd          }|                     d          }|                     d|          }|                    |           |                    d          }|                    d|          }|                    |           d S )Nr	  r   r   rj  rk  r  )rm   ru   r   r   
pcolormesh)r#   r$   Zry  r  s        r&   test_sticky_shared_axesr    s     		"a##A


s
#
#C


s3

/
/CNN1


c
"
"C


c#

.
.CNN1r(   zsticky_tolerance.pngr   )r  r   c                  r   t          j        dd          \  } }d}|j        d                             d|d           |j        d                             d|d           |j        d                             d| d           |j        d                             d| d           |j        d                             d| d	           |j        d                             d| d
	           |j        d                             d|d	           |j        d                             d|d
	           d S )Nr=   r  r   gffff&@)r5   heightrS   r<   gffff@gffff&)r6   widthrT   gffffr   )r*   r    r  barbarh)r0   r  r  s      r&   test_sticky_tolerancer    s&   |Aq!!HCEHQKOOagO666HQKOOagO666HQKOOawO777HQKOOawO777HQKqX666HQKqX666HQKqH555HQKqH55555r(   zsticky_tolerance_cf.pngc                  |    t          j                    \  } }ddgx}}ddgddgg}|                    |||           d S )NgGZP@g    `P@r   r<   r=   r   )r*   r    contourf)r0   r%   r5   r6   datas        r&   test_sticky_tolerance_contourfr    sN    lnnGCx  AFQFDKK1dr(   c                      t          j        t          d          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nz0 were givenr|  )r   r   r   r*   stemr   r(   r&   test_nargs_stemr    s    	y	7	7	7  


                    =AAc                      t          j        t          d          5  t          j                    } |                     dgdgd           d d d            d S # 1 swxY w Y   d S )Nz3 were givenr|  FirstSecondr   )r   r   r   r*   ru  rL   r%   s    r&   test_nargs_legendr    s    	y	7	7	7 , ,[]]
		7)hZ+++, , , , , , , , , , , , , , , , , ,s   -AAAc                      t          j        t          d          5  t          j                    } |                     ddgg dg dg           d d d            d S # 1 swxY w Y   d S )Nz2 were givenr|  r   r<   r   r=   r<   r=   r   )r   r   r   r*   ru  
pcolorfastr  s    r&   test_nargs_pcolorfastr    s    	y	7	7	7 @ @[]] 	vv&III(>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   2AA"Aoffset_pointsc                  :   t          j        ddd          } t          j        dt           j        z  | z            }t	          j                    }|                    ddd          }|                    | |d	d
          \  }|                    ddddd           d S )N              @{Gz?r   F)r   r   r   )autoscale_onr   r   r   purplerV  r   z	local maxr   r<   r  r   r   zoffset points)xyxycoordsxytext
textcoords)	rm   ru   rq  r  r*   r   r   r   annotate)tsr0   r%   lines        r&   test_basic_annotater    s     		#sD!!A
s25y1}A *,,C	e'	H	HBGGAqQhG//EDKK/  ; ; ; ; ;r(   zarrow_simple.pngc                     d} d}d}t          | ||          }t          j        dd          \  }}t          t	          |j        |                    D ]\  }\  }}|                    dd           |                    dd           |\  } }}dt          j	        z  |z  dz  }	|
                    ddt          j        |	          t          j        |	          |	d	z  | |||	d
z  |	d
z  
  
         d S )N)TF)rg   rT   rF   r   r:  r=      r   r  r   )r  length_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r*   r    r  zipr  set_xlimset_ylimrm   r  arrowr  rq  )
r  r	  r
  kwargsr0   r  rM  r%   kwargthetas
             r&   test_arrow_simpler    s    )%E')52EFFF|Aq!!HC#C&$9$9:: ) );B
B
B=B:	u&9BE	A"
Arve}}bfUmmSy&:%8!BJ"RZ 	 	) 	) 	) 	)) )r(   c                  f    t          j                    \  } }|                    ddddd           d S )Nr   )r  )r*   r    r  _r%   s     r&   test_arrow_emptyr    s3    LNNEArHHQ1aQH'''''r(   c                      t          j                    \  } }|                    dddd           |                                dk    sJ |                                dk    sJ d S )Nr<   )皙?皙@)r*   r    r  r   r   r  s     r&   test_arrow_in_viewr    sa    LNNEArHHQ1a;;==J&&&&;;==J&&&&&&r(   c                      t          j                    \  } }|                    ddd          }|j        J |                    dddi           }|j        J d S )Nfoor  r=   r   )r  )r  
arrowprops)r*   r    r   arrow_patch)r0   r%   anns      r&   test_annotate_default_arrowr#    sc    lnnGC
++eVF+
3
3C?"""
++eVFr+
B
BC?&&&&&r(   c                     t          j                    \  } }t          j        |j                  j        }t          j        t          j                  j        }t          |	                                          t          |	                                          k    sJ t          |                                |                                          D ]\  }}||k    sJ dS )z?Check that the signature of Axes.annotate() matches Annotation.N)r*   r    inspect	signaturer   
parametersmtext
Annotationlistkeysr  values)r0   r%   annotate_paramsannotation_paramsp1p2s         r&   test_annotate_signaturer1  %  s    lnnGC'44?O)%*:;;F$$&&''40A0F0F0H0H+I+IIIIIo,,..0A0H0H0J0JKK  BRxxxxx r(   zfill_units.pngdpi<   )savefig_kwargc                     dd l mc m}  |                                  |                     dt          j        ddd                    }d| j        z  }|                     dd          }t          j	        d	d
d          }t          j        |          }t          j        dd          \  }\  \  }}\  }	}
|                    |g|gdd           g d}|                    ||         g dd           |                    |g|gdd           |                    ||||z   ||z   gg dd           |	                    |g|gdd           |	                    ||         d| j        z  d| j        z  d| j        z  d| j        z  gd           |
                    |g|gdd           |
                    ||||z   ||z   gd| j        z  d| j        z  d| j        z  d| j        z  gd           |                                 d S )Nr   ET  r:     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r=   degred)yunitsr   rR  )r  r  g     V@r  r/  Z   r   r?  )r   r   r   r   Epochdatetimer=  Durationrm   ru   mdatesdate2numr*   r    r   fillautofmt_xdate)r   r  valuedayr:  dtnr0   r  r&  r'  ax4inds               r&   test_fill_unitsrN  /  sG   000000000	NN 	DX.tQ;;<<A59E
..1
2
2C	<_	E	E	EB
/"

C$'LA$6$6!C	!*3jsCHHaS5'%uH555
,,CHHSX,,,c222HHaS5'%uH555HHaAGQW%"""C) ) ) HHaS5'%uH555HHSX%)mQ]BNA	MJ   HHaS5'%uH555HHaAGQW%%)mQ]BNA	MJ     r(   c                     t          j        t          d          5  t          j        dgdgdd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        dgdgdd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        dgdgdd           d d d            n# 1 swxY w Y   t          j        dgdgdd           d S )Nzmarker .* redundantly definedr|  r   r   r5   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r;  )r   r   )r   r  UserWarningr*   r   errorbarr   r(   r&    test_plot_format_kwarg_redundantrX  Q  s   	k)H	I	I	I , ,!qc3s++++, , , , , , , , , , , , , , ,	k)K	L	L	L 0 0!qc3$////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	k)G	H	H	H . .!qc3f----. . . . . . . . . . . . . . . L!qcvV444444s5   AA
A)BBB6CC!$C!c                    g d}t          j        |          }|                                }|                                 }|                    ||t          j        |          t          j        |                    ^}}|                    ddg           |                    ||t          j        |          t          j        |          ddg           d S )Nr  xerryerrr=   )r[  r\  dashes)rm   r  rn  rW  abs
set_dashes)r#   r$   r5   r6   r{   rz   r  r  s           r&   test_errorbar_dashesr`  \  s    A
q		A[[]]FllnnGq!"&))"&))DDHD1OOQFQq		q		1a&IIIIIr(   c                      d t          d          D             } t          j                    \  }}|                    |                                 |                                 |                                            d S )Nc                     i | ]}||S r   r   )r   iis     r&   
<dictcomp>z/test_errorbar_mapview_kwarg.<locals>.<dictcomp>k  s    $$$BR$$$r(   r   r5   r6   r[  )r   r*   r    rW  r+  r,  )Dr0   r%   s      r&   test_errorbar_mapview_kwargrg  j  s`    $$%))$$$AlnnGCKK!&&((ahhjjqxxzzK:::::r(   single_pointc                     dt           j        d<   dt           j        d<   t          j        d          \  } \  }}|                    dgdgd           |                    dgdgd           dgdgd}t          j        d          \  } \  }}|                    d	d	d|
           |                    ddd|
           d S )Nr   lines.markerT	axes.gridr=   r   r<   r   r/  r   r  r/  )rZ   r   r*   r    r   )r0   r  r&  r  s       r&   test_single_pointrn  p  s     +.J''+J$l1ooOC#sHHaS1#sHHaS1#s A3Dl1ooOC#sHHS#sH&&&HHS#sH&&&&&r(   zsingle_date.png)r   c                     dt           j        d<   t          j        t	          j        d                    } dg}dg}t          j        dd          \  }}t          j        t          j
                  5  |d                             || z   |d	d
           d d d            n# 1 swxY w Y   |d                             ||d	d
           d S )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr=   r<   r   r   rT  rU  )r*   r   rE  rF  rm   
datetime64r    r   r  r   MatplotlibDeprecationWarning	plot_dater   )r:  time1data1r0   r%   s        r&   test_single_daterw    s     -2CL()	|44	5	5BJEHEl1a  GC	c6	7	7 ; ;
1
E3c:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;qEJJueSJ,,,,,s   2#B!!B%(B%c                    t          j        d                              d          }t          j        ddd                              d          }|                     d          }|d                             |           |d                             |           |                    d          }|d                             dd	
           |d                             |                                           d S )Nr   r<   r   r   r  r   r<   r=   r<   gQQ?)r   	   r   r   )rm   ru   r   r    r   r   ravel)r#   r$   rowcolr  s        r&   test_shaped_datar    s    
)B--


(
(C
)AsB


'
'
0
0C


A

CFKKFKK


1

CFJJKfJ---FKK		r(   c                     t          j        ddgdt          fdt          fg          } t          j                                        d          }|d                             dd|            |d	                             ddd
|            d S )Nr<   r<   r=   r=   r   twosr  r=   r   rm  r<   rT  )rm   rY  r  r*   r   r    r   )ptsr  s     r&   test_structured_datar    s    
(FF#VUOfe_+M
N
N
NC *,,


"
"CFKKSK)))FKK#K.....r(   aitoff_proj)r   r  r   c                     t          j        t           j         t           j        d          } t          j        t           j         dz  t           j        dz  d          }t          j        | |          \  }}t	          j        dt          d                    \  }}|                                 |                    |j	        |j	        dd	           d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r=   )   @aitoff
projection)figsize
subplot_kwr   r:  )r   N)
rm   r  r  meshgridr*   r    dictgridr   r  )r5   r6   XYr0   r%   s         r&   test_aitoff_projr    s     	RUFBE2&&A
RUFQJ	2..A;q!DAql8&*h&?&?&?A A AGCGGIIIGGAFAFCAG.....r(   axvspan_epochc                     dd l mc m}  |                                  |                     dt          j        ddd                    }|                     dt          j        ddd                    }|                     d| j                            d                    }t          j
                    }|                    ||d	d
           |                    |d|z  z
  |d|z  z              d S Nr   r6  r7  r<      r9     r   r         ?)r?  alphar  )r   r   r   r   rB  rC  rD  rJ  convertr*   rn  axvspanr  r   t0tfr:  r%   s        r&   test_axvspan_epochr        000000000	NN 
Th/a<<	=	=B	Th/a<<	=	=B	ei//66	7	7B	BJJr2tJ444KKSVR#b&[)))))r(   axhspan_epoch{Gz?c                     dd l mc m}  |                                  |                     dt          j        ddd                    }|                     dt          j        ddd                    }|                     d| j                            d                    }t          j
                    }|                    ||d	d
           |                    |d|z  z
  |d|z  z              d S r  )r   r   r   r   rB  rC  rD  rJ  r  r*   rn  axhspanr  r  s        r&   test_axhspan_epochr    r  r(   zhexbin_extent.pngc                  0   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g d           ||d}t          j                    \  } }|                    ddg d|           d S )	N  )r=     r  r  333333?ffffff?extentr*  r5   r6   )r  r  )r*   r    rm   ru   r   hexbinr0   r%   r  r5   r6   s        r&   test_hexbin_extentr    s     lnnGCIdOOd"++I66DDAqIIa+++I,,, DlnnGCIIc3///dI;;;;;r(   c                     t          j                    \  } }t          j        d          dz                      d          }|\  }}t          j        t          d          5  |                    ||d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ||d           d d d            d S # 1 swxY w Y   d S )	Nr  )r=   r   z)In extent, xmax must be greater than xminr|  r<   r   r   r<   r  z)In extent, ymax must be greater than ymin)r   r<   r<   r   )	r*   r    rm   ru   r   r   r   
ValueErrorr  r  s        r&   test_hexbin_bad_extentsr    sQ   lnnGCIbMMB''00DDAq	z)T	U	U	U - -
		!Q|	,,,- - - - - - - - - - - - - - - 
z)T	U	U	U - -
		!Q|	,,,- - - - - - - - - - - - - - - - - -s$   !BB
B
,CCCc                     t          j                    \  } }|                    t          j                            d          t          j                            d          ddd          }t          |t          j        j	                  sJ t          |j
        t          j        j                  sJ |j
        j        dk    sJ |j
        j        dk    sJ d S )Nr   r8  r=   r   normvminvmax)r*   r    r  rm   rn   r   r   rZ   collectionsPolyCollectionr  colorsLogNormr  r  )r0   r%   hexs      r&   test_hexbin_string_normr    s    lnnGC
))BINN2&&	r(:(:QUV)
W
WCc:1@AAAAAch
 1 9:::::8=A8=Ar(   zhexbin_empty.pngc                  (   t          j                    \  } }|                    g g            |                    g g d           |                    g g g t          j                   |                    g g t          j        d                     d S )Nr8  bins)Creduce_C_functionr   )r*   r    r  rm   maxru   r/   s     r&   test_hexbin_emptyr    s     lnnGCIIb" IIb"5I!!!IIb"bfI555IIb"29R==I)))))r(   c                  "   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g dd          }t          dd          }|                    |          d	         sJ d S )
N   r=   r  r  r   )r  picker  ,  r*  r   )r*   r    rm   ru   r   r  r	   contains)r0   r%   r  r5   r6   hbmouse_events          r&   test_hexbin_pickabler    s    lnnGCIcNNS ))(33DDAq	1a 0 0 0	<	<B!C3///K;;{##A&&&&&&r(   zhexbin_log.pngc                     dt           j        d<   t          j                            d           d} t          j                            |           }dd|z  z   dt          j                            |           z  z   }t          j        d|d	z            }t          j                    \  }}|                    ||d
d
dt          j	                  }t          j
        |           |                                j        dk    sJ d S )NFpcolormesh.snaprc   順 r         @r  r=   r   r8  T)yscaler  	marginalsr  )i&-  r=   )r*   r   rm   rn   ro   standard_normalpowerr    r  sumrM   get_offsetsr	  )nr5   r6   r0   r%   hs         r&   test_hexbin_logr    s    
 ',CL"#INN8A
	!!!$$AcAgbi77::::A
AGAlnnGC
		!Qu5 BF 	 	< 	<ALOOO ==?? J......r(   c                  J   t          j        ddd          } t          j                    \  }}|                    | | ddd          }t           j                            |                                t          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                     d S )
Nr<   r    r8  r=   )xscaler  gridsizer   r   r   )	rm   	geomspacer*   r    r  r   assert_almost_equalr  rY  )r5   r0   r%   r  s       r&   test_hexbin_log_offsetsr  -  s    
QS!!AlnnGC
		!QuUQ	??AJ""	
VVVVVV1X1X	 	
 
 
 
 
r(   zhexbin_linear.pngr   r  c                  P   t           j                            d           d} t           j                            |           }dd|z  z   dt           j                            |           z  z   }t	          j                    \  }}|                    ||ddt           j                   d S )	Nrc   r  r   r  r  r   r   T)r  r  r  )rm   rn   ro   r  r*   r    r  r  )r  r5   r6   r0   r%   s        r&   test_hexbin_linearr  ?  s     INN8A
	!!!$$AcAgbi77::::AlnnGCIIaW "  ( ( ( ( (r(   c                      t          j        d                              d          \  } }t          j                    \  }}|                    | |ddd          }|                                dk    sJ d S )Nr  r  r8  r=   r  )r  r  r  )rm   ru   r   r*   r    r  get_clim)r5   r6   r0   r%   r  s        r&   test_hexbin_log_climr  L  sj    9S>>!!(++DAqlnnGC
		!QU	55A::<<8######r(   c           	         g d}t          | \  }}dgt          |          z  }g d}d}|                                 }|                                }	|	                    ||||d           |	                    d           |                    ||dgt          |          z  d d||           |                    d           d S )	N)r   r   r  )   r   )r   r  r<   )      $r   r  r   )rq  rq  )r  r  mincntr   c                      t          |           S r!  )r  )vs    r&   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>r  s    CFF r(   )r  r  r  r  r  )r  lenr    r  set_facecolor)
r#   r$   
datapointsr  r  r  r  r  rz   r{   s
             r&   ,test_hexbin_mincnt_behavior_upon_C_parameterr  S  s     J 
DAq	
c!ffA!!!FH!!GF MM	1	     !!! NN	1#A,**     '"""""r(   c                     t          j                    \  } }|                                 |                    g dg d           |                                dk    sJ |                                dk    sJ t          j                     t          j                    \  } }|                                 |                    g dg d           |                                dk    sJ |                                dk    sJ t          j                    \  } }|                    d           |	                    dd	           |                                d
k    sJ d S )N)r  r=   r:  )r<   r=   r  r   )r:  r  r  )r  r:  )r   r  r8  r   r<   )r   r<   )
r*   r    invert_xaxisr   r   r   rw  invert_yaxis
set_yscaler  r/   s     r&   test_inverted_limitsr  z  s?    lnnGCOOGGNNNMMM***;;==G####;;==G####IKKKlnnGCOOGGNNNMMM***;;==G####;;==G#### lnnGCMM%KKA;;==G######r(   nonfinite_limitsc                  ^   t          j        dt           j        d          } t          j        d          5  t          j        |           }d d d            n# 1 swxY w Y   t           j        | t          |           dz  <   t          j                    \  }}|	                    | |           d S )Nr  r  ignoredivider=   )
rm   ru   eerrstater8  nanr  r*   r    r   r5   r6   r0   r%   s       r&   test_nonfinite_limitsr    s    
	"bdD!!A	H	%	%	%  F1II              6Ac!ffaiLlnnGCGGAqMMMMMs   AAAplot_fun)r>   r   fill_betweenc           	      2   t          j        ddd          }|                                }|                                } t          ||           g g            ||fD ]8} t          ||           |t	          t          |                    d           9d S )Nz
2010-01-01z
2011-01-01r<  r  C0rU  )rm   ru   r    r0  r   r  )r  r#   r$   r5   rz   r{   r%   s          r&   test_limits_empty_datar    s     		,ODDDA!!GFGGXr2&&& < <Has1vvd;;;;;< <r(   r   c                  x   dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    |           d|i}t          j                    \  }}|                    d|           d S )Nr   image.interpolationr  r=   rT  rm  )rZ   r   rm   indicessqrtr*   r    r   )Nr5   r6   rT  r0   r%   r  s          r&   test_imshowr    s     2;J-.AZAFQAIAAIA
1QT	!A#A lnnGCIIaLLL 8DlnnGCIIcIr(   imshow_clip)aarch64r   ppc64les390xgףp=
?)r   r   c                     dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    || dz  g          }t          j	        |
                                d         |                                          }|                    ||           d S )Nr   r  r  r=   r:  r   )	clip_path)rZ   r   rm   r  r  r*   r    contourmtransformsTransformedPath	get_pathsget_transformr   )r  r5   r6   rT  r0   r%   r@   r  s           r&   test_imshow_clipr$    s     2;J-. 	AZAFQAIAAIA
1QT	!A#A lnnGC


1qseA+AKKMM!,<aoo>O>OPPI IIa9I%%%%%r(   c                      ddgddgg} t          j                    }t          j        t          d          5  |                    | t          j        dd          d	d
           ddd           dS # 1 swxY w Y   dS )4Parameters vmin, vmax should error if norm is given.r<   r=   r   r:  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r|  r   r   r   r  N)r*   rs  r   r   r  r   mcolors	Normalize)r   r%   s     r&   test_imshow_norm_vminvmaxr+    s    
Q!QA	B	z@
A 
A 
A F F 			!'+C4411	EEEF F F F F F F F F F F F F F F F F Fs   -A11A58A5polycollection_joinstylec                  8   t          j                    \  } }t          j        ddgddgddgddgg          }t          j                            |gd          }|                    |           |                    dd           |	                    dd           d S )Nr<   r=   (   )
linewidthsr   r   )
r*   r    rm   rY  r   r  r  add_collection
set_xbound
set_ybound)r0   r%   vertsr@   s       r&   test_polycollection_joinstyler4    s     lnnGCHq!fq!fq!fq!f566E&&w2&>>AaMM!QMM!Qr(   z	x, y1, y2r  r   r  r=   )
2d_x_input2d_y1_input2d_y2_input)idsc                     t          j                    \  }}t          j        t                    5  |                    | ||           d d d            d S # 1 swxY w Y   d S r!  )r*   r    r   r   r  r  r5   r  r]  r0   r%   s        r&   test_fill_between_inputr;    s     lnnGC	z	"	" # #
2r"""# # # # # # # # # # # # # # # # # #   AAAz	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                     t          j                    \  }}t          j        t                    5  |                    | ||           d d d            d S # 1 swxY w Y   d S r!  )r*   r    r   r   r  fill_betweenx)r6   x1r\  r0   r%   s        r&   test_fill_betweenx_inputrC    s     lnnGC	z	"	" $ $
B###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $r<  fill_between_interpolateg~jt?)r  r   c            	         t          j        ddd          } t          j        dt           j        z  | z            }dt          j        dt           j        z  | z            z  }t	          j        ddd          \  }\  }}|                    | || |d	
           |                    | ||||k    ddd           |                    | ||||k    dd           t           j        	                    |d          }t           j        j
        |d<   |                    | || |d	
           |                    | ||||k    dd           |                    | ||||k    dd           d S )Nr  r=   r  333333?r:  r<   Tr  blackrU  white/)wherer?  hatchinterpolater>  )rJ  r?  rL  r   r   r   )rm   ru   r  r  r*   r    r   r  r
   masked_greatermasked)r5   r  r]  r0   r  r&  s         r&   test_fill_between_interpolaterO    s    		#q$A	"%			B	RVAbeGAI	Bl1a555OC#sHHQArH)))QBbBh'!%  ' ' 'QBbBh%!%  ' ' ' 
		b#	&	&BELBqEHHQArH)))QBbBh'!%  ' ' 'QBbBh%!%  ' ' ' ' 'r(   #fill_between_interpolate_decreasingc            	         t          j        g d          } t          j        g d          }t          j        g d          }t          j        d          \  }}|                    || d           |                    || d           |                    | ||||k     dd	d
           |                    | ||||k    dd	d
           |                    dd           |                    dd           d S )N)gfffff@i  i  )g"@rq  r  )g@gffffff@gffffff@)r}  r}  r  ztab:redkr   T皙?rJ  r?  rL  r  r>  r   r      X  )rm   rY  r*   r    r   rA  r  r  )r  r  profr0   r%   s        r&   (test_fill_between_interpolate_decreasingrY  .  s    	"""##A
A8OOO$$Dl6***GCGGAq)GGD!SQ4tax%4s  D D DQ4tax$$c  C C C KK2KKSr(   fill_between_interpolate_nanc                     t          j        d          } t          j        ddt           j        dddddddg
          }t          j        ddddddddt           j        t           j        g
          }t	          j                    \  }}|                    | |d	
           |                    | |d
           |                    | ||||k    ddd           |                    | ||||k    ddd           d S )Nr   r              r   r   rS  r@   r/  r   Tr   rU  r>  )rm   ru   asarrayr  r*   r    r   r  r:  s        r&   !test_fill_between_interpolate_nanrb  C  s    		"A	QBFB2r2q"=	>	>B	RQBBBFBFC	D	DBlnnGCGGArSGGGArSGOOAr2R2X $C  1 1 1OOAr2R2X $C  1 1 1 1 1r(   z
symlog.pdfc                  6   t          j        g d          } t          j        g d          }t          j                    \  }}|                    | |           |                    d           |                    d           |                    dd           d S )N)r   r<   r=   r:  r  r}  r  r]  )i@B i  r  r  r   r   r   r   symloglinearr   i )rm   rY  r*   r    r   r  
set_xscaler  r  s       r&   test_symlogrg  W  s    
+++,,A
;;;<<AlnnGCGGAqMMMMM(MM(KKHr(   zsymlog2.pdfc                  N   t          j        ddd          } t          j        dd          \  }}t	          |g d          D ]G\  }}|                    | |            |                    d|           |                    d	           H|d
                             dd           d S )N2   MbP?r   r<   )      4@r   r   r  r  rd  )	linthreshTr   皙r  )	rm   ru   r*   r    r  r   rf  r  r  )r5   r0   r  r%   rm  s        r&   test_symlog2ro  c  s     		#r5!!A|Aq!!HCS":":":;;  I
1
h)444
GT3r(   c            
      |   g d} g d}t          j        | |          \  }}t          j        ||          }t          j        |           t          j        t          |                     t          j        | ||d dd df                    t          j        ||t          |d dd df                              d S )N)            r  r  r   r   r   )rq  g      rr        r        пr   r  r         ?r         ?r   r   )rm   r  hypotr*   pcolorr*  )r5   r6   r  r  r  s        r&   test_pcolorargs_5205ry  p  s    ...A	* 	* 	*A;q!DAq
AAJqMMMJtAwwJq!QssCRCx[!!!Jq!T!CRC"H+&&'''''r(   r  c                  r   dt           j        d<   d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }|dz   }t          j        ||          dz  }||                                z
  t          j	        |          z  }t          j        t          j        |          d	t          j        |          z  k     |          }t          j        d
d          \  }	\  }
}}|
                    |||d dd df         d	d           |                    |||d dd df         dddg           |                    |||d           d S )NFr  r  rq  r   r=   皙?r   r   r<   r   r   rS  rV  
edgecolorsr/  wgouraudshading)r*   r   rm   r  r  rq  r  rw  minptpr
   masked_wherer^  r  r    r  )r  r5   r6   r  r  QxQzr  Zmr  r  r&  r'  s                r&   test_pcolormeshr  ~  s    ',CL"#
A
D#q!!A
D#qs##A;q!DAq	RVAYY	B	RVAYY	B
s(B
AA	
QUUWWq		!A 
cBF2JJ&66	:	:Ba++AS#NN2r2crc3B3h<CCN@@@NN2r2crc3B3h<A3*NEEENN2r2yN11111r(   pcolormesh_smallepsc                  (   d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }|dz   }t          j        ||          dz  }||                                z
  t          j        |          z  }t          j	        t          j
        |          dt          j        |          z  k     |          }t          j	        |dt          j        |          z  k     |          }	t          j        dd          \  }
\  \  }}\  }}|                    |||d d	d d	f         dd
           |                    |||d d	d d	f         dddg           |                    |||d           |                    |||	d           |
j        D ]}|                                 d S )Nr   rq  r   r=   r{  r   r   r  r   rS  r|  r/  r~  r  r  )rm   r  r  rq  r  rw  r  r  r
   r  r^  r  r*   r    r  rs  set_axis_off)r  r5   r6   r  r  r  r  r  r  Zm2r0   r  r&  r'  rL  r%   s                   r&   test_pcolormesh_smallr    s   	A
D#q!!A
D#qs##A;q!DAq	RVAYY	B	RVAYY	B
s(B
AA	
QUUWWq		!A	cBF2JJ&66	:	:B
/"tbfRjj00!
4
4C$'LA$6$6!C	!*3jsCNN2r2crc3B3h<CCN@@@NN2r2crc3B3h<A3*NEEENN2r2yN111NN2r3	N222h  
 r(   pcolormesh_alphapdf)r   r  c            
      6   dt           j        d<   d} t          j        t          j        dd|           t          j        dd| dz                      \  }}|}|t          j        |          z   }t          j        ||          dz  }||                                z
  t          j        |          z  }t          j
        d                             d	          } |t          j        d	                    }d
d
t          j        t          j        d	                    z  z   |d d df<   t          j        |          }t          j        dd          \  }	\  \  }
}\  }}|
|||fD ]0}|                    t#          j        dddg dd                     1|
                    |||d dd df         |ddd           |                    ||||ddd           |                    |||d dd df         |dd           |                    ||||dd           d S )NFr  r  rq  r   r=   r   viridis   r   r   )r   rq  )r  r  r  r   r   )r?  zorderr   rT  r  r<   )r   r  r  r  r  )r   r  r  )r*   r   rm   r  r  r  rw  r  r  r   	colormaps	resampledru   r)  ListedColormapr    	add_patchmpatches	Rectangler  )r  r  r  r  Qyr  virr  r   r0   r  r&  r'  rL  r%   s                  r&   test_pcolormesh_alphar    s3    ',CL"#
A;
D#q!!
D#qs## DAq 
B	
RVAYYB
AA	
QUUWWq		!A
-	
"
,
,R
0
0CS2FRVBIbMM2222F111a4L!&))D$'LA$6$6!C	!*3jsC3S   
X'sA)9)9)9!
 
 
 	 	 	 	 NN2r1SbS#2#X;S!!  - - -NN2r13c9QNOOONN2r1SbS#2#X;T6!NLLLNN2r141NEEEEEr(   z
dims,alphar  )r:  r   c                    |                                  }t          j        dd|ft                    dz  }|                    |           |                                 }|                    |d         ddd|	           d S )
Nr   r  r  r=   ).r   grayr   r<   )r   r  r  r  )r    rm   r   r  r  )r#   r$   dimsr  r%   r@   s         r&   test_pcolormesh_rgbar    s}     
				B
AtE***Q.AMM!					BMM!F)&qqMFFFFFr(   c                 @   t          j        d          }t          j        d          }t          j        ||          \  }}||z   }|                                 }|                    |d           |                                }|                    |||d           d S )Nr:  rq  r   r  )rm   ru   r  r    r  )r#   r$   r5   r6   r  r  r  r%   s           r&   test_pcolormesh_nearest_noargsr    s    
	!A
	!A;q!DAq	AA					BMM!YM'''					BMM!Q9M-----r(   zpcolormesh_datetime_axis.pngc                     dt           j        d<   t          j                    } |                     ddd           t	          j        ddd          t          j        fd	t          d
          D                       }t          j        d
          }t          j	        t          j        d          t          j        d                    \  }}||z  }t          j
        d           t          j        |d d         |d d         |d dd df                    t          j
        d           t          j        |||           t          j        |t
          j                 d
d          }t          j        |d d t
          j        f         d
d          }t          j
        d           t          j        |d dd df         |d dd df         |d dd df                    t          j
        d           t          j        |||           |                                 D ]C}|                                D ],}|                    d           |                    d           -Dd S )NFr  rT  \(\?333333?hspacerB   rS     r<   c                 @    g | ]}t          j        |           z   S daysrC  	timedeltar   dbases     r&   r   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>  ,    GGG$+3333GGGr(   r  r     r      r   r,        rF   r   )r*   r   r   subplots_adjustrC  rm   rY  r   ru   r  ru  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation	r0   r5   r6   z1z2zr%   r3   r  s	           @r&   test_pcolormesh_datetime_axisr    s<    ',CL"#
*,,CsS999T1a((D
GGGGU2YYGGGHHA
	"A[2	"66FB
RAKN1SbS61SbS61SbS#2#X;///KN1a
	!BJ-!,,,A
	!AAArzM"BQ///AKN1SbS#2#X;#2#ss(QssCRCx[999KN1allnn # #'')) 	# 	#ELL!!!r""""	## #r(   zpcolor_datetime_axis.pngc                     t          j                    } |                     ddd           t          j        ddd          t	          j        fdt          d          D                       }t	          j        d          }t	          j        t	          j        d	          t	          j        d	                    \  }}||z  }t          j	        d
           t          j
        |d d         |d d         |d dd df                    t          j	        d           t          j
        |||           t	          j        |t          j                 dd          }t	          j        |d d t          j        f         dd          }t          j	        d           t          j
        |d dd df         |d dd df         |d dd df                    t          j	        d           t          j
        |||           |                                 D ]C}|                                D ],}|                    d           |                    d           -Dd S )NrT  r  r  r  r  r<   c                 @    g | ]}t          j        |           z   S r  r  r  s     r&   r   z-test_pcolor_datetime_axis.<locals>.<listcomp>  r  r(   r  r  r  r   r  r   r  r  r  rF   r   )r*   r   r  rC  rm   rY  r   ru   r  ru  rx  r  r  r  r  r  r  r  s	           @r&   test_pcolor_datetime_axisr    s-   
*,,CsS999T1a((D
GGGGU2YYGGGHHA
	"A[2	"66FB
RAKJq"vq"vq"crc{+++KJq!Q
	!BJ-!,,,A
	!AAArzM"BQ///AKJq"crc{Acrc3B3hK3B38555KJq!Qllnn # #'')) 	# 	#ELL!!!r""""	## #r(   c            	      `	   d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        ||          dz  }t	          j                    \  }}t          j        t                    5  |	                    |||           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||j
                   d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df         d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df         d           d d d            n# 1 swxY w Y   t           j        |d	<   t          j        t                    5  |	                    |||d dd df                    d d d            n# 1 swxY w Y   t          j        d
          5  t           j                            ||d	k               }d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df                    d d d            n# 1 swxY w Y   g d}ddg}t          j        ||          \  }}t          j        |j                  }t          j        t&          d          5  |	                    |||d           d d d            n# 1 swxY w Y   t          j        ddd          }t          j        ddd          }t          j        ||          \  }}t          j        |j                  }t           j                            d           t           j                            |j                  }t           j                            |j                  }	t          j        t&          d          5 }
|	                    ||z   ||	z   |d           t-          |
          d	k    sJ |	                    |d|z  z   |d|	z  z   |d           t-          |
          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  rq  r   r=   r   r   r  r  r   r  invalidmask)ig  r   r<   r(  r   z.are not monotonically increasing or decreasingr|  autor<   r   rc   )rm   r  r  rw  r*   r    r   r   r   r  Tr  r  r
  r
   rY  zerosr	  r  rV  rn   ro   r  )r  r5   r6   r  r  r  r  r%   noise_Xnoise_Yrecords              r&   test_pcolorargsr  !  s|   
A
D#q!!A
D#qs##A;q!DAq
AALNNEAr	y	!	!  
aA              	y	!	! ! !
aAC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	y	!	! < <
aAcrc3B3hK;;;< < < < < < < < < < < < < < <	y	!	! < <
aAcrc3B3hK;;;< < < < < < < < < < < < < < <6AaD	z	"	" ) )
aAcrc3B3hK((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	X	&	&	& ) )EKKQK(() ) ) ) ) ) ) ) ) ) ) ) ) ) )	z	"	" ) )
aAcrc3B3hK((() ) ) ) ) ) ) ) ) ) ) ) ) ) )
 	A	b	A;q!DAq
A	kL
N 
N 
N / /
aAv.../ / / / / / / / / / / / / / / 	B1A
B1A;q!DAq
AINN8iqw''Giqw''G	k)
* 
* 
*  -3 	ai7Av>>>6{{a 	a7
lAbjL!VDDD6{{a                                   s   B55B9<B9DD	D&&EEE<&F..F25F2!$HHH1&I##I'*I'$J77J;>J;L<<M M &A/R##R'*R'c                     t          j        d          5  t          j        ddd          } t          j        ddd          }t           j                            t          |          t          |                     }t          j                    \  }}|                    | ||           ddd           dS # 1 swxY w Y   dS )z
    Test that underflow errors don't crop up in pcolormesh.  Probably
    a numpy bug (https://github.com/numpy/numpy/issues/25810).
    raise)underr   r   r  r  N)	rm   r
  ru   rn   randnr  r*   r    r  r5   r6   r  r0   r%   s        r&   test_pcolormesh_underflow_errorr  Y  s    
 
7	#	#	#  IaC  IaC  IOOCFFCFF++,..R
aA                 s   BB77B;>B;c                     t          j        d                              dd          } t          j        g d| j                  }|j        j        du sJ t           j                            | |          }t          j
        |           t          j        ddd	          } t          j        ddd	          }t          j        | |          \  }}t          j        dt           j        z  |z            t          j        dt           j        z  |z            z  }t          j        d	t"          
          }d|d<   t          j        ||j                  }|j        j        du sJ t           j                            ||          }t          j
        |||           t           j                            ||          }	t           j                            ||          }
t          j        |	|
|           d S )Nr  r=   r   FTFFr  r   r<   r   r  Tr   )rm   ru   r   broadcast_tor	  flags	writeabler
   rY  r*   r  r  r  r  r  rq  r  boolrx  )r5   xmaskmasked_xr6   r  r  r  r  masked_Zmasked_Xmasked_Ys              r&   test_pcolorargs_with_read_onlyr  f  s   
	!Q""AO000!'::E; E))))u{{15{))HN8
Aq"A
Aq"A;q!DAq
q25y1}q25y1} 5 55A8Bd###DDH?4))D:5((((u{{14{((HN1a"""u{{14{((Hu{{14{((HJx8,,,,,r(   c                    |                                  }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }|                    |||d           |                                 }|d d	         t          j        |          dz  z   }|d d	         t          j        |          dz  z   }|                    |||d
           d S )Nr   r   r   rc   r=   r}  r  r  r   r   r    rm   ru   rn   ro   r  r  diffr#   r$   r%   r5   r6   r  r\  r]  s           r&   test_pcolornearestr  }  s    					B
	!RA
	!QAINN8
	1AMM!Q6M***					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!YM/////r(   c                 
   |                                  }d t          d          D             }t          j        dd          }t          j                            d           t          j                            dd          }|                    |||d	           |                                 }d
 t          d          D             }|d d         t          j        |          dz  z   }|                    |||d	           d S )Nc                 R    g | ]$}t           j                             |d z            %S )  rC  fromtimestampr   r5   s     r&   r   z+test_pcolornearestunits.<locals>.<listcomp>  s-    FFFq		(	(T	2	2FFFr(   r   r   r   rc   r=   r}  r  r  c                 X    g | ]'}t           j                             |d z   dz            (S )r   r  r  r  s     r&   r   z+test_pcolornearestunits.<locals>.<listcomp>  s2    	N	N	N(

)
)1s7d*:
;
;	N	N	Nr(   r   r   )	r    r   rm   ru   rn   ro   r  r  r  r  s           r&   test_pcolornearestunitsr    s    					BFFE"IIFFFA
	!QAINN8
	1AMM!Q6M***					B	N	NU1XX	N	N	NB	
3B3"'!**q.	 BMM"b!YM/////r(   c                     t          j                    \  } }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }t          j        t          d          5  |
                    |||d           d d d            d S # 1 swxY w Y   d S )	Nr   r}  r   rc   zDimensions of Cr|  r  r  )r*   r    rm   ru   rn   ro   r  r   r   r   r  r0   r%   r5   r6   r  s        r&   test_pcolorflaterrorr    s    lnnGC
	!QA
	!QAINN8
	1A	y(9	:	:	: / /
aAv.../ / / / / / / / / / / / / / / / / /s   CC	Cc                  N   t          j                    \  } }t          j        t          j        d          t          j        d                    \  }}||z   }t          j        t          d          5  |                    |||d           d d d            d S # 1 swxY w Y   d S )Nr   r   z.*one smaller than Xr|  r  r  )	r*   r    rm   r  ru   r   r   r   r  r  s        r&   test_samesizepcolorflaterrorr    s    lnnGC;ry||RYq\\22DAq	AA	y(?	@	@	@ / /
aAv.../ / / / / / / / / / / / / / / / / /s   3BB!BsnapFc                    |                                  }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }|                    ||||           |                                 }|d d         t          j        |          d	z  z   }|d d         t          j        |          d	z  z   }|                    ||||           d S )
Nr   r   r:  rc   r   r}  )r  r   r=   r  )	r#   r$   r  r%   r5   r6   r  r\  r]  s	            r&   test_pcolorautor    s     
				B
	!RA
	!QAINN8
	1AMM!QM%%%					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!$M'''''r(   	canonicalc                  `    t          j                    \  } }|                    g d           d S )Nr  r*   r    r   r/   s     r&   test_canonicalr    s-    lnnGCGGIIIr(   zarc_angles.pngc                     d} d}d}d}t          j        dd          \  }}t          |j                  D ]\  }}|dz  dz  }|dz
  }	|                    t          j        || |d	                     |                    t          j        || ||	|
                     |                    |t          j
        t          j        |	                    z  |d         z   |d         |t          j
        t          j        |                    z  |d         z   g|t          j        t          j        |	                    z  |d         z   |d         |t          j        t          j        |                    z  |d         z   g           |                    | |           |                    | |           | dz  } |dz  }|d         dz  |d         dz  f}|dz  }d S )Nr=   r<   )r  r   r   h  r}  -   r  r  )theta1theta2r   r   )r*   r    r  r  r  r  EllipseArcr   rm   rq  deg2radr  r  r  )
r~  r  centrer7  r0   r  rM  r%   r  r  s
             r&   test_arc_anglesr	    s    	
A	AFE|Aq!!HC38$$  2S1"
X%fa#>>>???
X\&!QvfMMMNNN

6 2 2333fQi?
6 2 2333fQi?A 
6 2 2333fQi?
6 2 2333fQi?A	B 	B 	B 	UFE"""
UFE""" 	
R	R)b.&)b.1- r(   arc_ellipsec            	         d\  } }d\  }}d}t          j        t          j        d                    }|dz  t          j        |          z  }|dz  t          j        |          z  }t          j        |          }t          j        t          j        |          t          j        |           gt          j        |          t          j        |          gg          }	t          j        |	||g          \  }}|| z  }||z  }t          j                    }
|
	                    dd          }|
                    ||d	d
d
dd           t          j        | |f|||ddd          }|                    |           |
	                    dd          }|
                    ||d	ddd           t          j        | |f|||ddd          }|                    |           d S )N)gRQ?gp=
ף?)r  r  r   r   rj  r  )r   r  yellowr<   )r  r?  r@  rA  r  r=   F)anglerA  rG  r  rk  equalr   )r  r?  r@  r  )rm   r  ru   rq  r  rY  rt   r*   r   r   rG  r  r  r  )xcenterycenterr  r  r  r  r5   r6   rthetaRr0   r%   e1e2s                 r&   test_arc_ellipser    s   !GWME6EJry~~&&E
RVE]]"AbfUmm#AZF
	"&..)	(* 	+ 	+A 6!aVDAqLALA
*,,C	V	,	,BGGAqx8  # # # 
w(%!QU1
F 
F 
FB LL	W	-	-BGGAqw'!GLLL	w(%!QU1
F 
F 
FB LLr(   c                     t          j                    \  } }t          j        d          }|                    g dg d|           |                    g dg d|           |                    g dg d|           d S )Nr   r  r   r=   r<   rP  )r:  r   r=   )r   r:  r   )r*   r    mmarkersMarkerStyler   r>   rW  )fixr%   ms      r&   test_marker_as_markerstyler    s    lnnGCS!!AGGIIIyyyG+++JJyyy)))AJ...KK			999QK/////r(   	markeveryc                     t          j        ddd          } t          j        |           t          j        | dz  dz             z  }t	          j                    \  }}|                    | |dd           |                    | |dd d	
           |                    | |ddd
           |                    | |ddd
           |                                 d S )Nr   r   r  r   r   r  r3   r  mark allr  r3   r  mark every 10+r   r  mark every 5 starting at 10rm   r  r  r  r*   r    r   rL   r  s       r&   test_markeveryr(    s    
Ar3A
q		BGAbD3J'''A lnnGCGGAq#YG'''GGAq#ZG888GGAq#?G;;;GGAq#0MGNNNIIKKKKKr(   markevery_lineg{Gzt?c                     t          j        ddd          } t          j        |           t          j        | dz  dz             z  }t	          j                    \  }}|                    | |dd           |                    | |dd d	
           |                    | |ddd
           |                    | |ddd
           |                                 d S )Nr   r   r  r   z-or  r   z-dr!  r"  z-sr#  z-+r%  r&  r'  r  s       r&   test_markevery_liner+  %  s     	Ar3A
q		BGAbD3J'''A lnnGCGGAq$iG(((GGAq$$jG999GGAq$"OG<<<GGAq$'1NGOOOIIKKKKKr(   markevery_linear_scalesrk  c                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]i\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nr  r   r  r  r]  r   r   r   r  r  r   r  r  r   r  r  ?r  r<   )\(?r   r=   r   markevery=%sr   rQ  r:  lsmsr  )slicerZ   gridspecGridSpecr  rm   r  r  r  r*   ru  r4   strr   
casescolsgsdeltar5   r6   rM  caser  r  s
             r&   test_markevery_linear_scalesrB  7  s.   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU## ; ;4Dy$hBsCxL!!!	.3t99,---AssqT:::::; ;r(   markevery_linear_scales_zoomedc                  h   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        ||ddd|           t          j        d           t          j        d           d S )Nr  r.  r/  r   r   r  r  r   r  r  r   r0  r1  r<   r3  r   r=   r   r4  r   rQ  r:  r5  )r  g@)r{  g333333?)r8  rZ   r9  r:  r  rm   r  r  r  r*   ru  r4   r;  r   r   r   r<  s
             r&   #test_markevery_linear_scales_zoomedrE  P  sN   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU##  4Dy$hBsCxL!!!	.3t99,---AssqT:::: r(   markevery_log_scalesc                  h   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        d           t          j        d           t          j        ||ddd|           d S )Nr  r.  r/  r   r   r  r  r   r  r  r   r0  r1  r<   r3  r   r=   r   r4  r8  r   rQ  r:  r5  )r8  rZ   r9  r:  r  rm   r  r  r  r*   ru  r4   r;  r  r  r   r<  s
             r&   test_markevery_log_scalesrH  k  sN   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU## ; ;4Dy$hBsCxL!!!	.3t99,---
5
5AssqT:::::; ;r(   markevery_polarc                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }t          j        ddd          }dt
          j        z  |z  }t          |           D ]k\  }}||z  }||z  }t          j
        |||f         d           t          j        dt          |          z             t          j        ||ddd|           ld S )Nr  r.  r/  r   r   r  r  r   r  r  r   r0  r1  r<   r  r=   Tpolarr4  r   rQ  r:  r5  )r8  rZ   r9  r:  r  rm   r  r  r  r*   ru  r4   r;  r   )	r=  r>  r?  rT  r  rM  rA  r  r  s	            r&   test_markevery_polarrM    s   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CB
AsC  AIMEU## ? ?4Dy$hBsCxL----	.3t99,---331>>>>>? ?r(   markevery_linear_scales_nansc                  V   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t
          j        x|d d<   x|dd <   |dd<   t          |           D ]i\  }}||z  }||z  }	t          j        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nr  r.  r/  r   r   r  r  r   r  r  r   r0  r1  r<   r3  r   r=   r   rj  F   r4  r   rQ  r:  r5  )r8  rZ   r9  r:  r  rm   r  r  r  r  r*   ru  r4   r;  r   r<  s
             r&   !test_markevery_linear_scales_nansrR    sW   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%A"$&(AcrcF(QsttWqBxU## ; ;4Dy$hBsCxL!!!	.3t99,---AssqT:::::; ;r(   marker_edgesc                  x   t          j        ddd          } t          j                    \  }}|                    | t          j        |           dddd           |                    | dz   t          j        |           dddd           |                    | d	z   t          j        |           ddd
d           d S )Nr   r<   r   zy.      >@rT  )r7  mewmecr  r  r=   r/  )rm   r  r*   r    r   r  r5   r0   r%   s      r&   test_marker_edgesrY    s    
Aq"AlnnGCGGArvayy$4QCG888GGAcE26!99dtG<<<GGAcE26!99dtG<<<<<r(   zbar_tick_label_single.pngc                      t          j                    } |                     dddd           ddd}t          j                    \  }} t          j                    } |                     dddd|	           d S )
Nr   r<   edger-  )align
tick_labelrl  r   r/  )r\  r]  r  )r*   rn  r  r    )r%   r  r0   s      r&   test_bar_tick_label_singler^    st     
BFF1av#F... DlnnGC	BFF36cF=====r(   c                  z    t          j                    \  } }|                    ddgt          j        dg           d S )Nr   r<   r:  )r*   r    r  rm   r  r/   s     r&   test_nan_bar_valuesr`    s5    lnnGCFFAq6BFA;r(   c                  ^    t          j                    \  } }|                    g g            d S r!  )r*   r    r  r/   s     r&   test_bar_ticklabel_failrb    s&    lnnGCFF2rNNNNNr(   zbar_tick_label_multiple.pngc                  p    t          j                    } |                     ddgddgddgddgd	           d S )
Nr<         @r=   r  r   r   r/  r]   r  r]  r\  )r*   rn  r  r  s    r&   test_bar_tick_label_multiplerf    sO     
BFFAs8aVC:3*      r(   z/bar_tick_label_multiple_old_label_alignment.pngc                      dt           j        d<   t          j                    } |                     ddgddgddgdd	gd
           d S )Nr]   zytick.alignmentr<   rd  r=   r  r   r   r/  re  )rZ   r   r*   rn  r  r  s    r&   *test_bar_tick_label_multiple_old_alignmentrh    s]     .6J)*	BFFAs8aVC:3*      r(   c                     |                                  }g d}g d}d |D             }d |D             }|                    ||d           |                                 }|                    ||d           d S )Nr   g @g333333@r  r{  r  gffffff
@g@c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z+test_bar_decimal_center.<locals>.<listcomp>            r(   c                 ,    g | ]}t          |          S r   r   r   r6   s     r&   r   z+test_bar_decimal_center.<locals>.<listcomp>  rm  r(   r]   r\  r    r  r#   r$   r%   x0y0r5   r6   s          r&   test_bar_decimal_centerru    s    					B			B			B  R   A  R   AFF1axF   					BFF2rF"""""r(   c                    |                                  }g d}g d}d |D             }d |D             }|                    ||g dd           |                                 }|                    ||g dd           d S )Nrj  rk  c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z,test_barh_decimal_center.<locals>.<listcomp>  rm  r(   c                 ,    g | ]}t          |          S r   r   ro  s     r&   r   z,test_barh_decimal_center.<locals>.<listcomp>  rm  r(   )r   r   r<   r<   r]   r  r\  r    r  rr  s          r&   test_barh_decimal_centerr{    s    					B			B			B  R   A  R   AGGAq)))G:::					BGGB+++8G<<<<<r(   c                     g d}g d}g d}d |D             }|                                  }|                    |||d           |                                 }|                    |||d           d S )Nrj  rk  r  g333333?r<   r=   c                 ,    g | ]}t          |          S r   r   r   rM  s     r&   r   z*test_bar_decimal_width.<locals>.<listcomp>
  rm  r(   r]   r  r\  rq  )r#   r$   r5   r6   w0r~  r%   s          r&   test_bar_decimal_widthr    s    AA			B  R   A					BFF1aqF)))					BFF1arF*****r(   c                     g d}g d}g d}d |D             }|                                  }|                    |||d           |                                 }|                    |||d           d S )Nrj  rk  r}  c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z,test_barh_decimal_height.<locals>.<listcomp>  rm  r(   r]   ry  rz  )r#   r$   r5   r6   h0r  r%   s          r&   test_barh_decimal_heightr    s    AA			B  R   A					BGGAq(G+++					BGGAq8G,,,,,r(   c                      t          j                    } |                     ddgddgddd          }|D ]6}|                                dk    sJ |                                d	k    sJ 7d S )
Nr<   r=   r:  r  r;  rT  r  r   r@  r   r   r   r   r<   r   r   r  r*   rn  r  get_facecolorget_edgecolorr%   rectsrects      r&   test_bar_color_none_alphar  !  s    	BFFAq6Aq6FcFJJE 6 6!!##|3333!!##~555556 6r(   c                      t          j                    } |                     ddgddgddd          }|D ]6}|                                dk    sJ |                                d	k    sJ 7d S )
Nr<   r=   r:  r  rT  r;  r  r  r  r  r  s      r&   test_bar_edgecolor_none_alphar  )  s    	BFFAq6Aq6C6FJJE 4 4!!##~5555!!##|333334 4r(   zbarh_tick_label.pngc                  p    t          j                    } |                     ddgddgddgddgd	           d S )
Nr<   rd  r=   r  r   r   r/  r]   )r  r]  r\  )r*   rn  r  r  s    r&   test_barh_tick_labelr  1  sO     
BGGQHq!fc3ZS#J      r(   c                     t          j                    \  } }|                    t          j        ddd          dt          j        d                     |                    t          j        ddd          dt          j        d          t          j        d                     t          j                    \  } }|                    t          j        ddd          dt          j        d          	           |                    t          j        ddd          dt          j        d          t          j        d          
           t          j                    \  } }|                    t          j        ddd          t          j        ddd          gt          j        ddg          t          j        d          	           |                    t          j        ddd          t          j        ddd          gt          j        ddg          d dD             	           |                    t          j        ddd          t          j        d          fgd           dS )z>Smoketest that bar can handle width and height in delta units.  r<   r   r   hoursr  r=   )r[  r  )r  )r  r\  r   c                 8    g | ]}t          j        |           S )r  r  r   r  s     r&   r   z&test_bar_timedelta.<locals>.<listcomp>M  s&    @@@AH&Q///@@@r(   r9  r   r  N)	r*   r    r  rC  r  r  rm   rY  broken_barhr/   s     r&   test_bar_timedeltar  9  sk   lnnGCFF8T1a(("#!,,,  . . .FF8T1a((""+++#!,,,  . . . lnnGCGGHdAq))1%A...  0 0 0GGHdAq))1%A...#!,,,  . . . lnnGCGGXtQ**H,=dAq,I,IJHaX%A...  0 0 0 GGXtQ**H,=dAq,I,IJHaX@@@@@  B B B NNX&tQ22'a0002 3    r(   c                     t          j        t          j        d          t          j        d          t          j        d          g          } t          j        t          j        d          t          j        d          t          j        d          g          }t          j                    \  }}|                    g d|| z
  |            t          |j                                        t          j
                  sJ t          j                    \  }}|                    g d|| z
  | 	           t          |j                                        t          j
                  sJ d
S )z+test that tickers are correct for datetimesz
2012-01-01z
2012-02-01z
2012-01-15z
2012-02-07z
2012-02-13z
2012-02-12)r   r<   r   )r  rS   )r  rT   N)rm   rY  rr  r*   r    r  r   r`   r   rE  AutoDateFormatterr  r^   )startstopr0   r%   s       r&   test_bar_datetime_startr  S  s,   HbmL112=3N3NmL113 4 4E8R]<00"-2M2M]<002 3 3D lnnGCFF999T%ZF666bh2244f6NOOOOOlnnGCGGIIIT%ZeG444bh2244f6NOOOOOOOr(   c                     t           j                            dd          }|                     dd|                     d                    j        }t          j                     t          j        ||           d S )Nr   r=   z1/1/2000r<   )years)periodsfreq	positions)	rm   rn   r   
date_range
DateOffsetyearr*   r   boxplot)pdr  r  s      r&   test_boxplot_dates_pandasr  c  sr    9>>!QDMM*"#"--a-*@*@  B BBF 
JLLLK&&&&&&r(   c                     t           j                            dd          } t          j        d          \  }}|d                             | g dg d           |d                             | g dd	           |d
                             | g d           |d                             | dg d           |d                             | dd	           |d                             | d           |d                             | g d           |d                             | d	           |d                             |            d S )Nr   r   r}  r   )r  r  r  r  )	capwidthswidthsr<   r  r=   r  r   r:  r  r  rq  r  )rm   rn   r   r*   r    r  r  r0   r  s      r&   test_boxplot_capwidthsr  l  s4   9>>!QD|AHCFNN4??????NKKKFNN4???3N???FNN4???N333FNN43N???FNN43sN333FNN43N'''FNN4N000FNN4N$$$FNN4r(   c                    ddl m}m} t          j                    }|                    d          }t          j        ddd          g}t          |          dk     rD|                    |d         t          j	        d	          z              t          |          dk     Dt          j        d
          }t          j        ||          \  }}t          |          dz
  t          |          dz
  f}	t          j        |	d         |	d         z            }
|	|
_        	  |             |                    |||
          }|j                                          |             d S #  |             w xY w)Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r<   rq  r   x   )secondsr   )pandas.plottingr  r  r*   r   r   rC  r  appendr  rm   ru   r  r	  r  canvasr"  )r  r  r  r0   r%   timesy_vals	time_axisy_axisr	  z_dataims               r&   test_pcolor_regressionr  }  st          
 *,,C			BtQ**+E
e**q..U2Y!3C!@!@!@@AAA e**q.. Yq\\FE622Iv[[1_c%jj1n-EYuQx%(*++FFL+&&(((]]9ff55
((*****((****s   :E   E,c                    |                      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d           d S )N)r  r  r  r<   r<   r<   r  )r  monthrJ  rI  )r  r  rJ  daterI  r   r]   r  oranger:  rU  )		DataFrameto_datetimegroupbyr  indexr*   r    r  r   )r  dfmonthlydatesforecastbaseliner0   r%   s           r&   test_bar_pandasr    s    	###))		))	 	
 
B
 #;#;#; <==BvJ&'"#++VH5599;;GMEwHwHlnnGCFF5("HF555GGE88G22222r(   c                     |                      g dg ddg d          }t          j                    \  }}|                    |j        d|j                   d S )N)r   r   r  r  rT  r  )r5   r  r  r  r   r  )r  r*   r    r  r5   r  r  r  r0   r%   s       r&   test_bar_pandas_indexedr    sd    	LLL<<<@@%II 
 
' 
'BlnnGCFF2428F$$$$$r(   c                    |                                  }|                                 }ddg}ddg}ddg}t          d          D ]-}|                    ||         ||         d||                    .|                    |||           d S )	Nr<   r=   r   r5   r   r  )r   rK  rK  )r    r   r  )r#   r$   rz   r{   r5   r6   hatchesrM  s           r&   test_bar_hatchesr    s     !!GF	
AA	
AACjG1XX = =

1Q41T
<<<<KK1GK$$$$$r(   )r5   r  r3   expected_labelscontainer_labelr5   r<   
_nolegend_r   r/  r@   )r   r  r	  ABr  )r  r  r  bars)r  r  r  c                     t          j                    \  }}|                    | ||          }d |D             }||k    sJ |                                |k    sJ d S )Nr   c                 6    g | ]}|                                 S r   )	get_label)r   r  s     r&   r   z#test_bar_labels.<locals>.<listcomp>  s     ;;;c#--//;;;r(   )r*   r    r  r  )	r5   r  r3   r  r  r  r%   bar_container
bar_labelss	            r&   test_bar_labelsr    sq     LNNEArFF1e5F11M;;];;;Jj((((""$$777777r(   c                     t          j                    \  } }t          j        t                    5  |                    ddgddgg d           d d d            n# 1 swxY w Y   t          j                    \  } }t          j        t                    5  |                    ddgddgdg           d d d            d S # 1 swxY w Y   d S )Nr5   r6   r<   r=   )r  r  r  r   r  )r*   r    r   r   r  r  r  s     r&   test_bar_labels_lengthr    s?   LNNEAr	z	"	" : :
SzAq6999: : : : : : : : : : : : : : :LNNEAr	z	"	" 0 0
SzAq6#///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s#   AA"AC  CCc                    |                      ddgd          |                      ddgd          fD ]^}t          j        ||           t          j        |j        |           t          j        |           t          j        |j                   _|                     dg di          }t          j        |           t          j        ||           d S )Nr<   r=   float64r  Float64r  r  )Seriesr*   r   r  r  )r  r5   r  s      r&   test_pandas_minimal_plotr    s    iiAii00iiAii002  A!	uiii(	)	)BHRLLLHRr(   hist_logc                      t          j        ddd          dz  } t          j        d| z
  d| z   g          }t          j                    \  }}|                    |dd           d S )Nr   r<   r  r   FT)rG  r8  )rm   r  concatenater*   r    hist)data0r  r0   r%   s       r&   test_hist_logr    sc    K1c""A%E>1u9a%i011DlnnGCGGDu$G'''''r(   c                    |                      dd          }|                     dd          }t          g d          D ]\  }}|d|f                             d           |d|f                             dd|           |d|f                             dd|           |d|f                             d           |d d |f         D ]}|                    ddd|	           d S )
Nr=   r   )r  step
stepfilledr   r8  r<   histtypeT)r8  r   )r    r  r  r  )r#   r$   r   r   rM  r   r%   s          r&   test_hist_log_2r    s     A&&Hq!$$G !>!>!>?? 	7 	78A!!%(((AAq8444AAq8444A!!%(((!!!Q$- 	7 	7BGGAqdXG6666	7	7 	7r(   c                     t          j        d          \  } }|d                             dgddggdd           |d                             d           |d                             g ddd           |d                             d           | j                                         |d                                         |d                                         k    sJ d S )Nr=   r   r<   
barstackedr  r8  r   r   r<   )r*   r    r  r  r  r"  r   r0   r  s     r&   test_hist_log_barstackedr  	  s    |AHCFKK!q!fq<K888FeFKK			1|K444FeJOOq6??A 1 1111111r(   zhist_bar_empty.pngc                  Z    t          j                    } |                     g d           d S )Nr  r  r*   rn  r  r  s    r&   test_hist_bar_emptyr	  	  s+     
BGGBGr(   c                     t           j                            d           t          j        t           j                            ddd          dd                              t           j                  } t          j        | dd	          }|d
         }t          dt          |                    D ]Y}||dz
                                           }||                                         }|d         d         |d         d         k    sJ Zd S )Nrc   r   r  r  sizer   r<   r   )r  r  r=   )rm   rn   ro   cliprp   r   float16r*   r  r   r  get_corners)r,  r  bcrT  rleftrrights         r&   test_hist_float16r  	  s    INN8W
	c--q!5 55;VBJ5G5G as+++A	
1B1c"gg + +1Q3##%%A""$$ Qx{fQil*****+ +r(   zhist_step_empty.pngc                  Z    t          j                    } |                     g d           d S )Nr  r  r  r  s    r&   test_hist_step_emptyr  '	  s+     
BGGBG     r(   zhist_step_filled.pngc                      t           j                            d           t           j                            dd          } d}ddiddidd ii gdz  }d	gd
z  dgd
z  z   }t	          j        dd
          \  }}t          |||j                  D ]H\  }}} |j        | |f|dd| |	                    | d|            |
                    d           I|d         j        }	t          d |	D                       sJ d S )Nr   r  r   r   rG  TFr=   r  r:  r  nrowsncolsr   stackedrI  ri  rS   r  c              3   j   K   | ].}|                                 |                                k    V  /d S r!  )r  r  )r   r  s     r&   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>>	  s;      GG!q  AOO$5$55GGGGGGr(   )rm   rn   ro   r  r*   r    r  r  r  r8   r  rF  all)
r5   n_binsr  typesr0   r  kg_typer%   rF  s
             r&   test_hist_step_filledr$  .	  s,   INN1
	a  AFtnvuo~rB1DFHQJ~a''E|!1---HCVUCH55    E26>E4>>2>>>
__U__%%%
3$iGGGwGGGGGGGGGGr(   zhist_density.pngc                      t           j                            d           t           j                            d          } t	          j                    \  }}|                    | d           d S )Nrc   r  Tdensity)rm   rn   ro   r  r*   r    r  r  r0   r%   s      r&   test_hist_densityr)  A	  sV    INN89$$T**DlnnGCGGD$Gr(   c                      t           j                            d          } |                     d          }g d}t	          j        ||d          \  }}}t          j        ||d          \  }}t          ||           d S )Ni  r  )r  r   r  r   r<   r   T)r  r'  )rm   rn   RandomStater  r*   r  	histogramr   )rngr  r  mpl_heightsr  
np_heightss         r&   test_hist_unequal_bins_densityr0  I	  s     )


&
&C		#A"""Dt<<<KALt<<<MJK,,,,,r(   c                  >   t          j         ddd          t          j         ddd          gt          j         ddd          t          j         ddd          gg} t          j                    \  }}|                    | d           |                    | d           d S )N  r<   r=   T)r  F)rC  r*   r    r  r(  s      r&   test_hist_datetime_datasetsr3  T	  s    tQ**H,=dAq,I,IJtQ**H,=dAq,I,IJLDlnnGCGGD$GGGD%G     r(   bins_preprocessc                     | S r!  r   r  s    r&   r  r  ^	  s    t r(   c                 ,    t          j        | d          S )Nrr  )rm   ra  r  s    r&   r  r  _	  s    rz$'E'E r(   )rF  zdatetime.datetimeznp.datetime64c           	         t          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gt          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gg}t          j         ddd          t          j         ddd          t          j         ddd          g}t          j                    \  }}|                    | | |          d	          \  }}}t          j                            |t          j        	                    |                     |                    | | |          d
	          \  }}}t          j                            |t          j        	                    |                     d S )Ni  r<   r   r^  r=   r   r\  T)r  r  F)
rC  r*   r    r  rm   r   r   r   r  rF  )r4  r  
date_edgesr0   r%   r  r  s          r&    test_hist_datetime_datasets_binsr9  \	  s    tQ**H,=dAr,J,JtQ**H,=dAq,I,IKtQ++X->tQ-J-JtQ++X->tQ-J-JLMD
 #D!Q//1B4A1N1N#D!Q//1J lnnGCOOJ$?$?NNJAtQJtSY%7%7
%C%CDDDOOJ$?$?OOJAtQJtSY%7%7
%C%CDDDDDr(   zdata, expected_number_of_histsc                     t          j        |           \  }}}t          j        |          }|j        dk    r
d|k    sJ d S |j        d         |k    sJ d S )Nr<   r   )r*   r  rm   ra  ndimr	  )r  expected_number_of_histshistsr  s       r&   test_hist_with_empty_inputr>  s	  sg    
 (4..KE1aJuEzQ,,,,,,,{1~!9999999r(   zhisttype, zorderr  r  r  c                     t          j                                                    }|                    ddg|            |j        sJ |j        D ]}|                                |k    sJ d S )Nr<   r=   r  )r*   r   r   r  rF  
get_zorder)r   r  r%   r$  s       r&   test_hist_zorderrA  	  s~    
 
	!	!	#	#BGGQFXG&&&: , ,!!V+++++, ,r(   c                      t          j                    \  } }t          j        t          d          5  |                    g dg ddd d           d d d            d S # 1 swxY w Y   d S )Nzbaseline=None and fill=Truer|  )r:  r   r<   r   r=   )r<   r=   r   r:  r   r  r   T)r?  r  rG  )r*   r    r   r  rV  stairsr/   s     r&   "test_stairs_no_baseline_fill_warnsrD  	  s    lnnGC	k)F	G	G	G 
 

		OO 	 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   AA"%A"c                 	   dd l m} t          j        g d          }t          j        g d          }|                     dd                                          }|d                             ||d            |d                             ||d d	           |d                             ||           |d                             ||d
           |d                             ||           |d                                          |d                             ||d
           |d                                          ddd}|                    dd                                          } |d         j	        |t          j
        ||d                   fddi|  |d         j	        t          j
        |d         |          |fddi|  |d         j	        |t          j
        ||d                   fddi| |d                              |j        |d         |d         gd|d         gfi |           |d                              |j        |d         |d         gd|d         gfi |           |d                             dd             |d         j	        t          j
        |d         |          |fddi| |d                              |j        d|d         g|d         |d         gfi |           |d                              |j        d|d         g|d         |d         gfi |           |d                             dd             |d         j	        |t          j
        ||d                   fddi| |d                              |j        |d         |d         gd|d         gfi |           |d                              |j        |d         |d         gd|d         gfi |           |d                                           |d         j	        t          j
        |d         |          |fddi| |d                              |j        d|d         g|d         |d         gfi |           |d                              |j        d|d         g|d         |d         gfi |           |d                                          d S )Nr   )r     r   %   0   r   r  r:  )	r   r   r  r  r        @      @       @      "@r   r=   r  r<   rU   )r  rW   rV   r:  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrm   rY  r    flattenrC  semilogyr  r   r  add_liner   r  r  )r#   r$   mlinesr6   r5   	test_axesr   ref_axess           r&   test_stairsr]  	  s)   %%%%%%
00011A
55566A!!!Q''//11IaL1t,,,aL1tFFFaL1aL1,777aL1aLaL1,777aL !(6BBE1%%--//HHQKQ	!QrU++MM|MuMMMHQKRYqtQ''LLlLeLLLHQKQ	!QrU++MM|MuMMMQK!ad|a1YHH%HHIIIQK"qu~1R5zKKUKKLLLQKD!!!HQKRYqtQ''LLlLeLLLQK1Q4y1Q41,HH%HHIIIQK1R5zAbE1R5>KKUKKLLLQKD!!!HQKQ	!QrU++MM|MuMMMQK!ad|a1YHH%HHIIIQK"qu~1R5zKKUKKLLLQKHQKRYqtQ''LLlLeLLLQK1Q4y1Q41,HH%HHIIIQK1R5zAbE1R5>KKUKKLLLQKr(   c           	         g dg d}}d}|                      dd                                          }|d                             ||d           |d                             ||d	d
           |d                             |||d           |d                             |||d	d           |                     dd                                          }|d                             |t	          j        ||d                   dd           |d                             dd            |d                             |t	          j        ||d                   dd           |d                             dd            |d                             |t	          j        ||d                   t	          j	        t          |          dz             |z  dd           |d                             |d            |d                             |t	          j        ||d                   t	          j	        t          |          dz             |z  dd           |d                             |d            d S )N)r<   r=   r   r:  r=   r   r<   r=   r   r:  r   r  r=   r   TrG  r<   rU   )rW   rG  )r  rG  r   )r  rW   rG  r   post)r  rV  )r    rW  rC  r  rm   r  r  rA  r  r   r  )r#   r$   r  r  bsr[  r\  s          r&   test_stairs_fillrc  	  sl   oo111tA	B!!!Q''//11IaL4d+++aL4\EEEaL4"4888aL4",!  # # # 1%%--//HQKT29Q"#6#6VJJJQKD!!!QKdBIa2$7$7fKKKQKD!!!QKT29Q"#6#6WSVVAX..r11  F F FQKT"""QKdBIa2$7$7 gc!ffQh//2A  G G GQKT"""""r(   c                    d}|                                  }|                    g d          }|                    |           |                    g d           |                    t	          j        d          dz              |                    g dt	          j        d          dz             |                    g d           |                    d t	          j        d                     t	          j        |                                d         t	          j        d	d                    sJ t	          j        |                                d	         t	          j        d                    sJ |                    d
           |                                j        d
k    sJ |                                 }|                    g dd
          }|                    |           d S )N)r  r:  r  r  r:  r=   edges)r<   r=   r<   r   r<   r  rM  )	r   rC  r  set_datarm   ru   allcloseget_datar  )r#   r$   r   test_axr  ref_axs         r&   test_stairs_updaterl  	  s    D""$$Gyyy!!ATJJyyyJJRYq\\!^J$$$JJyyy")A,,q.)))JJyyyJJtRYq\\""";qzz||A	!Q88888;qzz||A	!55555JJJ::<< B&&&&   ""Fiii"--A
OODr(   c                 <   t          j        g d          }t          j        g d          }|                                 }|                    ||d            ddd}|                                } |j        |t          j        ||d                   fdd	i| d S )
N)r   r=   r   r   r   )g|?5^?gV-?g+?rv  rM  rN  rO  rP  r   rS  rT  )rm   rY  r   rC  r   r  )r#   r$   r5   r6   r[  r   r\  s          r&   test_stairs_baseline_Nonern  	  s    
!!!""A
,,,--A$$&&IQD))) '6BBE""$$HHM!RYq!B%((JJLJEJJJJJr(   c                      t          j                                                    } |                     g dg           |                                 dk    sJ |                                 dk    sJ d S )N*   )'   r  r{  )r*   r   r   rC  r   r   r  s    r&   test_stairs_emptyrr  
  sg    		!	!	#	#BIIb2$;;==H$$$$;;==M))))))r(   c                      t          j        t          d          5  t          j        ddgdt
          j        dg           d d d            d S # 1 swxY w Y   d S )NNan values in "edges"r|  r<   r=   r   )r   r   r  r*   rC  rm   r  r   r(   r&   test_stairs_invalid_nanru  
  s    	z)@	A	A	A + +
Aq6Arvq>***+ + + + + + + + + + + + + + + + + +s   %AAAc                      t          j        t          d          5  t          j        ddgddg           d d d            d S # 1 swxY w Y   d S )NSize mismatchr|  r<   r=   r   )r   r   r  r*   rC  r   r(   r&   test_stairs_invalid_mismatchrx  
  s    	z	9	9	9 # #
Aq6Aq6"""# # # # # # # # # # # # # # # # # #s   AA
Ac                      t          j        ddgg d          } t          j        t          d          5  |                     dt          j        dg           d d d            d S # 1 swxY w Y   d S )Nr<   r=   rQ  rt  r|  re  )r*   rC  r   r   r  rg  rm   r  r  s    r&   test_stairs_invalid_updater{  
  s    
Aq6999%%A	z)@	A	A	A ) )	

!RVQ
((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   $A&&A*-A*c                      t          j        ddgg d          } t          j        t          d          5  |                     t          j        d                     d d d            d S # 1 swxY w Y   d S )Nr<   r=   rQ  rw  r|  r   re  )r*   rC  r   r   r  rg  rm   ru   rz  s    r&   test_stairs_invalid_update2r}  
  s    
Aq6999%%A	z	9	9	9 ' '	

1
&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   )A++A/2A/ztest_stairs_options.pngc                     t          j        g d          t          j        g d                              t                    }} |                                }t           j        |d<   t          j                    \  }}|                    |dz  | ddd           |                    || dz  dz
  d	dd
d           |                    || dddd           |                    |dz  | dz  dz
  dddd
d           |                    |d d d         dz  dz   | dz
  d	ddd d           |                    |d d d         dz  dz   | ddddd           |                    |d d d         dz  dz   | dz   t          j	        dd t          |                    d!dd"d#           |                    |d d         d d d         dz  d$z   | d d         dz   d%ddd&d'd()           |                    d*+           d S ),Nr<   r=   r   r:  r   r  r<   r   r   Tr  )r   rG  r3   r>  rU   r  )r   rG  rW   r3   r  rR  r=   r  )r   r6  rV  r3   r   rf  )r6  rV  r  rW   r3   r      E)r   r6  rV  r  r3   rF  r_  r  F)r  r   r6  rV  r3   r	  r8     r   G)r  r   r6  r3   rG  r^  rG  r  //H)r   r6  rV  r  rK  r3   r   rC   )rm   rY  r   r  copyr  r*   r    rC  r  r  rL   )r5   r6   ynr0   r%   s        r&   test_stairs_optionsr  "
  s=   8OOO$$bh|||&<&<&C&CE&J&JqA	
BFBqElnnGCIIac1G$cI:::IIa1Qe$&c  3 3 3IIb!8#I>>>IIbdAaCEdq3&c  3 3 3IIa"gailAaCu!d    IIa"gailA!3  8 8 8IIb2hqjmQqS2;r2s1vv+F+Ft3T  ; ; ;IIafTTrTl1nR3B37tS  2 2 2II!Ir(   ztest_stairs_datetime.pngc            	         t          j        d          \  } }|                    t          j        d          t          j        t          j        d          t          j        d                               t          j        d           d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r*   r    rC  rm   ru   rr  xticks)fr%   s     r&   test_stairs_datetimer  :
  s{    LD111EArIIbimmil33l335 56 6 6 Jr(   c                     |                                  }|                    g ddd           |                                 }|                    g dd          }|                    d           d S )Nr  r>  T)r   rG  r`  )r   rC  	set_color)r#   r$   rj  rk  sts        r&   test_stairs_edge_handlingr  C
  su     ""$$GNN999EN555   ""F	yyyt	,	,BLLr(   c                      t          j        ddd          } t          j        ddd          }t          j        |           t          j        |d d t           j        f                   z   }| ||fS )Nr  r      r  )rm   r  rq  r  r  )r5   r6   r  s      r&   contour_datr  O
  s^    
B3A
B3A
q		BF1QQQ
]+,,,Aa7Nr(   contour_hatchingc            
          t                      \  } }}t          j                    \  }}|                    | ||dg dt          j        d         dd           d S )Nrq  )rI  \r  rQ  r  r   r   )r  r   extendr  )r  r*   r    r  r   r  r  s        r&   test_contour_hatchingr  V
  se    mmGAq!lnnGCKK1a$:$:$:]6*S  * * * * *r(   contour_colorbargHzG?c            
          t                      \  } }}t          j                    \  }}|                    | ||t	          j        ddd          t          j        d         ddd          }|                    | ||t	          j        d	d
d          dgdd          }|                    | ||t	          j        ddd          dgd          }|	                    ||          }|
                    |           |
                    |d           d S )Ngg7A`?r  RdBug333333r  r   )levelsr   r  r  r  gg^I+r6   r   r=   )r  r  
linestylesr/  r  r@   )r  r  r/  r  F)erase)r  r*   r    r  rm   ru   r   r  r  rM   	add_lines)	r5   r6   r  r0   r%   cscs1cs2rP   s	            r&   test_contour_colorbarr  _
  s    mmGAq!lnnGC	Q1RYtUC%@%@-/"	 
 
$ 
$B
 **Q1RYtVS%A%A E ' !  # #C **Q1RYsC%=%= E !  # #C <<r<""DNN3NN3eN$$$$$r(   hist2dc                     dt           j        d<   t          j                            d           t          j                            d          dz  dz   } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           | |d
}t          j                    \  }}|                    ddd|d           d S )NFr  r   r  r=   r   r   Tr  
rasterizedr*  r5   r6   )r  r  r  )r*   r   rm   rn   ro   r  r    r  )r5   r6   r0   r%   r  s        r&   test_hist2dr  w
  s     ',CL"#INN1
	Qq A
	QAlnnGCIIaI--- DlnnGCIIc3RdtI<<<<<r(   hist2d_transposec                  4   dt           j        d<   t          j                            d           t          j        dgdz            } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           d S )
NFr  r   r   r  r=   r   Tr  )	r*   r   rm   rn   ro   rY  r  r    r  r  s       r&   test_hist2d_transposer  
  s     ',CL"#INN1 	!SA
	QAlnnGCIIaI-----r(   c                      t           j                            d          \  } }t          j                                                    }|t          fD ]}|                    | |d           d S )Nr  Tr&  )rm   rn   r*   r   r    r  )r5   r6   r%   objs       r&   test_hist2d_densityr  
  sj    9H%%DAq				 	 BCy ' '

1a
&&&&' 'r(   c            "          e Zd Z edgdd          d             Z edgd          d             Z ed	gdd
g          d             Z ed
g          d             Zd Z	e
j                            dddid ej                    iddiddig          d             Zd Zej                            d          d             Zd Zd Z ed
g          d             Z ed
g          d             Zd Z ed
g          d              Z ed
g          d!             Zd"d#gd$fd%d&d'g d(d)fd*d+gd$fd+gd,z  d$fd-gd.z  d)fd-gd,z  d)fd-gd/z  d0fg d1d)fg d2d)fg d3d$fg d4gd)fg d4gd.z  d0fg d4gd,z  d)fg d4gd/z  d0fg d5gd)fg d5gd.z  d0fg d5gd,z  d)fg d5gd/z  d0fg d5gd.z  g d4gz   d)fg d5d6d7gd0fg d5d6d7d8gd)fg d5d6d7d8g d9gd0fg d5d6d+gd$fg d5d6d7d+gd$fg d5d6d7d8d+gd$fgZe
j                            d:e          d;             Zej                            d           ed
g          d<                         Zd= Zd> Z d)S )?TestScatterr>   r   Tr  c                    t          j        g d          t          j        g d          g dg dg dd}t          j                    \  }}|                    |d         dz
  |d	         dz
  |d
         |d                    |                    |d         dz   |d	         dz   |d         |d                    |                    dd	d
d|           d S )Nr   r:  r=   r  r=   r   r=   r   rT  r6   r/  limer]  r	        )0.50.60.7z0.8)r5   r6   r@   r  c2r5   r   r6   r@   r  r@   r  r  )r@   r  r  )rm   rY  r*   r    r>   )r  r  r0   r%   s       r&   test_scatter_plotzTestScatter.test_scatter_plot
  s    Xlll++"(<<<2H2H,,,3C3C3C2224 4 ,..R


49r>49r>T#Y$s)
LLL


49r>49r>T$Z49
MMM


3sc
55555r(   zscatter_marker.pngr  c                 D   t          j        d          \  }\  }}}|                    g dg dg dg dg dd	           |                    g dg dg dg dg dt          j        d
d          	           d\  }}||z  t
          j        z  }t          j        ddt
          j        z  d          }t          j        t          j	        |          |z  |z  t          j
        |          |z  |z  g          }	|                    g dg dg dg dg d|		           d S )Nr   r  r  r  )r<   r   r   r6   r/  r  )r3  rj  r.  r   )rS  rT  gr/  r  )r@   r  r}  r   r   rB   	fillstyler  r   r=   r  )r*   r    r>   r  r  rm   r  r  column_stackrq  r  )
r  r0   ry  r  r&  rxryarear  r3  s
             r&   test_scatter_markerzTestScatter.test_scatter_marker
  s   "|!444_c3LLL,,,333&&&333	 	 	  	  	 
 	LLL,,,333&&&333#/uEEE	 	 	G 	G 	G BBwAq25y"--!3d!:!#!3d!:!< = =LLL,,,333&&&333 	 	 	" 	" 	" 	" 	"r(   
scatter_2Dr   )r  r   c                     t          j        d          }t          j        d          }t          j        ||          \  }}||z   }t          j                    \  }}|                    |||dd           d S )Nr   r=   r  face)r@   r  r}  )rm   ru   r  r*   r    r>   )r  r5   r6   r  r0   r%   s         r&   test_scatter_2DzTestScatter.test_scatter_2D
  sk    IaLLIaLL{1a  1E,..R


1a1
77777r(   r   c                    t          j        g d          }t          j        g d          }t          j        d |D                       }t          j        d |D                       }g d}g d}|                                }	|	                    ||||           |                                }	|	                    ||||           d S )Nrj  rk  c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>
      ---Qgajj---r(   c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>
  r  r(   r  r  r  )rm   rY  r    r>   )
r  r#   r$   rs  rt  r5   r6   r@   r  r%   s
             r&   test_scatter_decimalz TestScatter.test_scatter_decimal
  s    X***++X***++H--"---..H--"---..###  


1a1
"""


2rQ!
$$$$$r(   c                 @   t          j        t                    5  t          j        ddgddgddg           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        g dg dg d           d d d            d S # 1 swxY w Y   d S )Nr<   r=   r  r  rU  r  )r   r   r  r*   r>   r  s    r&   test_scatter_colorzTestScatter.test_scatter_color
  s!   ]:&& 	: 	:KAAsCj9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:]:&& 	? 	?K			999III>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s#   AAA(BBBr  r   r  r  r  r   r  c                    d}t          j        t          |          5  t          j        g g fi | d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddgddgfdg i| d d d            n# 1 swxY w Y   t          j        g g fdg i| t          j        ddgddgfdddgi| d S )	Nz"No data for colormapping provided r|  r<   r=   r   r:  r@   r   )r   r  Warningr*   r>   )r  r  
warn_matchs      r&   test_scatter_color_warningz&TestScatter.test_scatter_color_warning
  sr    :
 \'444 	* 	*KB))&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*\'444 	8 	8KAA77"7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	B++b+F+++QFQF77q!f777777s!   >AA$B

BBc           	      L   t          j        g dg dg dt          j        dd          g d          }|                                j        d	k    sJ t          |                                g d
g dg dg           t          |                                g d           d S )NrQ  r<   r   r=   0.1z0.3r  r   r;  r  r{  rF  ?r@   r   r/  )r   r:  r  r  r  r<   r  r  r  r<   r   r   r   r<   )	r*   r>   r  r  get_facecolorsr	  r   get_edgecolorsget_linewidthsr  colls     r&   test_scatter_unfilledz!TestScatter.test_scatter_unfilled
  s    {999iii3H3H3H"*"6sf"M"M"M&5oo7 7 7 ""$$*f44444..003E3E3E3E3E3E3E3E3E3G 	H 	H 	H 	4..00///BBBBBr(   r  c                 N   t          j        g dg dg ddg d          }t          |                                |                                           t          |                                g dg dg d	g           t          |                                g d           d S )
NrQ  r  r  r5   r  r  r  r  r  )r*   r>   r   r  r  r  r  s     r&   test_scatter_unfillablez#TestScatter.test_scatter_unfillable
  s    {999iii3H3H3H"%&5oo7 7 7 	4..00$2E2E2G2GHHH4..003E3E3E3E3E3E3E3E3E3G 	H 	H 	H 	4..00///BBBBBr(   c                    t          j        d          }t          j        t          d          5  t          j        |||dd                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |dd          |dd          |           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr:  zsame size as x and yr|  r<   zfloat array-liker  )rm   ru   r   r   r  r*   r>   )r  r5   s     r&   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size
  s   IaLL]:-CDDD 	% 	%K1ae$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:-CDDD 	) 	)K!""qua(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)]:-?@@@ 	% 	%K1e$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s5   AA"A'B44B8;B8C>>DDc                 l   t          j        g ddt          j        t          j        gd          }t	          j        |                                d          sJ t          j        g ddt          j        t          j        dgd          }t	          j        |                                d          sJ d S )Nr  r<   r  r@  r  r  )r*   r>   rm   r  r)  
same_colorr  r  s     r&   test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB  s    {999q"&"&&9&/1 1 1!$"4"4"6"6	BBBBB{<<<!RVRVQ)?&24 4 4!$"4"4"6"6EEEEEEEr(   c                 6   |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|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 S )Nr  r  rS  r<   r:  r=   r  Tr@   r  r   plotnonfiniter   r   r@   r  r   )r  r   	r    r   r  r  set_badr>   r   rm   r  r  r#   r$   r%   r   s        r&   test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color  s     }Y'11"55S! 	

588U1XXBF+|||D 	 	2 	2 	2 }Y'11"55


Aq6Aq6aV1vD
AAA


Aq6Aq6aV3
77777r(   c                    |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|d	           |                                 }|                    d
dgd
dgddgddg|           d S )Nr  r  rS  r<   r:  r=   r  Fr  r   r   r  r  r  s        r&   test_scatter_no_invalid_colorz)TestScatter.test_scatter_no_invalid_color,  s       }Y'11"55S!


588U1XXBF+|||E 	 	3 	3 	3 


Aq6Aq6aV1vD
AAAAAr(   c           
          g d}t          j                    }t          j        t          d          5  |                    |||t          j        dd          dd           d	d	d	           d	S # 1 swxY w Y   d	S )
r&  r  r'  r|  r(  r   r   r   )r@   r  r  r  N)r*   rs  r   r   r  r>   r)  r*  )r  r5   r%   s      r&   test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax8  s    IIXZZ]:"DE E E 	' 	' JJq!qw'8b'A'AA  ' ' '	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   /A//A36A3c                     |                                 }|                    ddd           |                                 }|                    dgdgdg           d S )Nr<   r`  )r    r>   )r  r#   r$   r%   s       r&   test_scatter_single_pointz%TestScatter.test_scatter_single_pointB  s`      


1a1



A3s
#####r(   c                 ~   t          j        d          }|                                }|                    ||                    dd          |                    dd                     |                                }|                    |                    dd          ||                    dd                     d S )Nr   r=   r   r`  )rm   ru   r    r>   r   )r  r#   r$   r5   r%   s        r&   test_scatter_different_shapesz)TestScatter.test_scatter_different_shapesI  s    IbMM  


1aii1oo1a
999


199Q??A1a
99999r(   )r  Nrgby
conversion)r>  N)r;  N)NN)rT  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                    d }d}ddd}|!t          j        t          ||                   nOt          |t                    r(t          |          dk    rt          j        d          nt          j                    }|5  t          j
        j                            |d	i ||
           d d d            d S # 1 swxY w Y   d S )Nc                      dS Nr   r   r   r(   r&   get_next_colorz2TestScatter.test_scatter_c.<locals>.get_next_color  s    6r(   r:  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r	  r  r|  r   (argument looks like a single numeric RGBrG  )r@   r}  r  xsizeget_next_color_func)r   r   r  r   r*  r  r  
contextlibnullcontextr   rs  r   _parse_scatter_color_args)r  c_casere_keyr  r  REGEXPassert_contexts          r&   test_scatter_czTestScatter.test_scatter_c  s4   	 	 	  99  ! M*F6N;;;; &$''*,/KK1,<,< $NOOOO')) 	  	4 	4HM33WRu$2 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s    *B77B;>B;c                 .   g dg}g dg}|                                 }|                    t          j        d          t	          d          |           |                    t          j        d          dz  t	          d          |           |                                 }|                    t          j        d          t	          d          |           |                    t          j        d          dz  t	          d          |           d S )N)r<   r   皙?)r<   r   r  r   r   rU  r:  r=   r`  )r    r>   rm   r   r   )r  r#   r$   rgbrgbar{   rz   s          r&   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_c  s     ~~"""# !!##rwqzz5883777rwqzz!|U1XXT::: ##%%

E!HH444

1eAhh$77777r(   c                 (   t          j        d          }t          j                    \  }}t	          d          D ]S}|                    |t          j        d|          d| dd|dz             }|                                |dz   k    sJ T|                    |t          j        dd          dddg t	          dd          d           }t          |                                g t	          dd          t          j
        d	                    d S )
Nr   r   r  r5   r  r<   )r@   r   r  r/  C3lines.linewidth)rm   ru   r*   r    r   r>   rg   r  r   r   r   )r  r5   r0   r%   rM  pcs         r&   test_scatter_linewidthsz#TestScatter.test_scatter_linewidths  s   IaLL,..Rq 	0 	0AArwq!}}As'(1u  . .B$$&&!a%/////ZZ271a==D#7U1a[[#7$#7  9 92,,..JU1a[[J#,7H*IJ	L 	L 	L 	L 	Lr(   c                    t          j        t          d          5  t          j        g dg dg dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        g dg dg dd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        g dg dg dd	           d d d            d S # 1 swxY w Y   d S )NzGGot both 'linewidth' and 'linewidths', which are aliases of one anotherr|  r  )r   rT  r  r  )r/  rA  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r&  )r}  r@  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr?  )r   r   r   r*   r>   r  s    r&   &test_scatter_singular_plural_argumentsz2TestScatter.test_scatter_singular_plural_arguments  s   ]9"#$ $ $ 	Y 	Y K			999TWXXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y
 ]9"#$ $ $ 	/ 	/ K			999#D#D#D$-/ / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ ]9"#$ $ $ 	1 	1 K			999#D#D#D&/1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s5   AAA-BBB>C**C.1C.)!r  r  r  r   r  r  r  r   r  r  r   markparametrizer)  r*  r  r  r   r   contextr  r  r  r  r  r  r  r  params_test_scatter_cr  r  r$  r(  r   r(   r&   r  r  
  s       ykdCCC6 6 DC6 +,$???" " @?"0 |n$E7KKK8 8 LK8 UG,,,% % -,%? ? ? [X%+V$4%+->W->-@-@$A%+QK%+QK	!"# #
8 
8# #
8C C C 	Yy!!C C "!C% % %F F F UG,,,8 8 -,8 UG,,,	B 	B -,	B' ' ' UG,,,$ $ -,$ UG,,,: : -,: 	
< 	 	 	 $'
L!
1l#
q$
q$
q'	%	%	%t,	$	$	$d+	"	"	"L1
))d
))Q 
))Q
))Q 
..	4 
..	!	W%
..	!	T"
..	!	W%
..	!	yyyk	)40
..%	'1
..%	-t4
..%iii	8'B
..%	)<8
..%	0,?
..%g	6EQ)V [-/DEE4 4 FE4. 	Yy!!UG,,,8 8 -, "!8L L L1 1 1 1 1r(   r  )r}  c                    | |||fS r!  r   )r@   r  r}  r  s       r&   _paramsr.    s    z65))r(   _resultz	c, colorszparams, expected_resultr/  rR  )r@   r  rT  r`  r  rU  r  )r   r   r   r<   c                     d }t          j        j        j        | d|i\  }}}||j        k    sJ t          ||j                   d S )Nc                      dS r  r   r   r(   r&   r  z5test_parse_scatter_color_args.<locals>.get_next_color      vr(   r  )r   rs  r   r  r@   r   r  )paramsexpected_resultr  r@   r  _edgecolorss         r&   test_parse_scatter_color_argsr6    sh       !X]D	5%35 5Av{!!!!!FO233333r(   zkwargs, expected_edgecolorsr  r  r;  )r@  r}  )r@   r@  r}  )r   r@  c                     d }|                      dd           }|                      dd           }t          j        j                            ||| d|          \  }}}||k    sJ d S )Nc                      dS r  r   r   r(   r&   r  z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color  r2  r(   r@   r}  r=   )r  r  )popr   rs  r   r  )r  expected_edgecolorsr  r@   r}  r  result_edgecolorss          r&   (test_parse_scatter_color_args_edgecolorsr<    s       	

3AL$//J//z6 	0 	P 	P Aq
  3333333r(   c                      d } t          j        t          d          5  t          j        g dg dg          }t
          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r(   r&   r  z;test_parse_scatter_color_args_error.<locals>.get_next_color  r2  r(   z&RGBA values should be within 0-1 ranger|  )r  r  r  )r  rT  gffffff?r=   r  r  r  )	r   r   r  rm   rY  r   rs  r   r  )r  r@   s     r&   #test_parse_scatter_color_args_errorr@    s       
zE
G 
G 
G M MHooo788//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   AA00A47A4c                  n    G d d          }  |             } |             }t           j        |_        t          j        d|          }t          |          t          u sJ t          j                     t          j        d|          }t          |          t          u sJ t          j                     d S )Nc                       e Zd Zd Zd ZdS )#test_as_mpl_axes_api.<locals>.Polarc                     d| _         d S Nr   )theta_offsetr  s    r&   __init__z,test_as_mpl_axes_api.<locals>.Polar.__init__  s     !Dr(   c                 "    t           d| j        ifS )NrF  )r   rF  r  s    r&   _as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes  s    ~t/@AAAr(   N)r  r  r  rG  rI  r   r(   r&   PolarrC    s7        	" 	" 	"	B 	B 	B 	B 	Br(   rJ  rR  r  y   )	rm   r  rF  r*   rs  typer   rw  ru  )rJ  prjprj2r%   s       r&   test_as_mpl_axes_apirO    s    B B B B B B B B %''C577DD 
,3	/	/	/B88y    IKKK 
SS	)	)	)B88y    IKKKKKr(   c                  2   t          j                    \  } }t          j                    \  }}t          j        |           |t          j                    u sJ | t          j                    u sJ t          j        |            t          j        |           d S r!  )r*   r    scarn  gcfrw  )fig1r  fig2r&  s       r&   test_pyplot_axesrU  )  sy    ID#ID#GCLLL#'))3799IdOOOIdOOOOOr(   c                     t          j                    \  } }|                    t          j        t          j        dd                               |                    dd           |                                 |                    dd           d |j	        |j
        fD             \  }}|g dk    sJ |g d	k    sJ d S )
Nr  r  r8        @)r  rL  c              3   R   K   | ]"}d  |                                 D             V  #dS )c                 h    g | ]/}|                                 |j                                        f0S r   )get_loclabel1get_textr  s     r&   r   z-test_log_scales.<locals>.<genexpr>.<listcomp>;  s3    JJJ!))++qx((**	+JJJr(   N)_update_ticks)r   r,  s     r&   r  z"test_log_scales.<locals>.<genexpr>:  sQ         	KJT5G5G5I5IJJJ     r(   ))r   z$\mathdefault{9^{0}}$)rL  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   r  r   r  r   r  r   )rI  r   )rJ  r   )rK  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)rW  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   r^  r_  r`  ra  )r*   r    r   rm   r8  r  r  r  rf  r^   r`   )r0   r%   r  ytickss       r&   test_log_scalesrd  4  s    lnnGCGGBF2;sC(())***MM%cM"""OOMM%cM""" Xrx(  NFF        &          r(   c                  "   t          j                    \  } }|                    dd           |j                            t          j        d                     |                                |                                cxk    rdk    sn J d S )Nr8  )r  r  r<   r<   r   )	r*   r    r   r^   r  r   MultipleLocatorr   r   r  s     r&   test_log_scales_no_datarh  `  s    LNNEArFF%F&&&Hw6q99:::;;==BKKMM4444W44444444r(   c                     t          j                    \  } }|                    d           t          j        t
          d          5  |                    dd           d d d            n# 1 swxY w Y   |                    d           t          j        t
          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr8  zAttempt to set non-positiver|  r   r   )	r*   r    rf  r   r  rV  r  r  r  r/   s     r&   test_log_scales_invalidrj  g  sB   lnnGCMM%	k)F	G	G	G  
B              MM%	k)F	G	G	G  
B                 s$   A**A.1A.%C		CCstackplot_test_imagec            	         t          j                    } t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                     ddd          }|                    ||||           |                    d           |                    d	           ||||d
}t          j                    \  } }|                    dddd|g d           |                    d           |                    d	           d S )Nr   r   r   r   r<   r  r=   r   r   r   rQ  )r5   r  r]  y3r5   r  r]  ro  )r  C1C2)r  r  )	r*   r   rm   r  r   	stackplotr  r  r    )r0   r5   r  r]  ro  r%   r  s          r&   test_stackplotrs  q  s    *,,C
Ar2A	qB	q1B	q1B	Aq	!	!BLLBBKKKK "Bb11DlnnGCLLdD$T:L:L:LLMMMKKKKr(   stackplot_test_baselinec                  $   t           j                            d           d }  | dd          }d|dd d f<   t          j        dd          \  }}|d                             t          d          |j        d	           |d
                             t          d          |j        d	           |d                             t          d          |j        d	           |d                             t          d          |j        d	           d S )Nr   c                    t          j        || f          }t          |           D ]}t          d          D ]}ddt           j                                        z   z  }dt           j                                        z  dz
  }ddt           j                                        z   z  }|d d |fxx         |t          j        t          j        |          |z  |z
  |z  dz             z  z  cc<   |S )Nr   r<   r  r=   r   r   )rm   r  r   rn   expru   )r  r  r   rM  jr5   r6   r  s           r&   layersz'test_stackplot_baseline.<locals>.layers  s    HaVq 	J 	JA1XX J Jbi..0001	((***R/"ry//1112!!!Q$1rv1)9A)=(Bq'H&HIIII	J
 r(   r   r  rj  r=   r  zerorM  r  symr<   r   wiggler  weighted_wiggle)rm   rn   ro   r*   r    rr  r   r  )ry  r  r0   r  s       r&   test_stackplot_baseliner    s    INN1   	q#AAb!!!eH|Aq!!HCIc

AC&999Ic

AC%888Ic

AC(;;;Ic

AC2CDDDDDr(   c                    t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                                }|                    ||||g dd	g
           |                    d           |                    d           t          j        t          |                    }|                                 }|                    |||dd	           |                    ||||z   dd	           |                    |||z   ||z   |z   dd	           |                    d           |                    d           d S )Nr   r   r   r   r<   r  r=   )r5   r  \\rH  )rK  r  rm  rn  r5   )rK  r?  r  r  )	rm   r  r    rr  r  r  r  r  r  )	r$   r#   r5   r  r]  ro  rz   stack_baseliner{   s	            r&   test_stackplot_hatchingr    sX   
Ar2A	qB	q1B	q1B!!GaR+>+>+>yQQQWWXc!ff%%NF
>2SGLLL
2r"uDGDDD
2b5"R%(&GLLL
OOG
OOGr(   c                     | S r!  r   )r  s    r&   r  r    s    1 r(   c                     t           j                            d           t          j        j        t           j                            ddd          fi | }t          j                    \  }}|	                    dd          dk    r|
                    d           n|                    d           |	                    d	d
          st          j        d         t          j        d<    |j         ||          fi | d S )N  rv  r   )rG  r:  )meansigmar  rW   verticalr8  patch_artistFr"  boxplot.boxprops.linewidth)rm   rn   ro   r   cbookboxplot_stats	lognormalr*   r    getr  rf  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr0   r%   s         r&   _bxp_test_helperr    s    INN3y&
	Rg>>P PBNP PHlnnGC~~mZ00J>>
e
e >>.%00 ,L*+ 	12
BF??8$$33
33333r(   zbxp_baseline.pngr.  )r4  r   c                  "    t                       d S r!  r  r   r(   r&   test_bxp_baseliner    s     r(   zbxp_rangewhis.pngc                  F    t          t          ddg                     d S )Nr   r  whisr  r  r  r   r(   r&   test_bxp_rangewhisr    s*     $QH"5"5"5666666r(   zbxp_percentilewhis.pngc                  F    t          t          ddg                     d S )Nr   _   r  r  r  r   r(   r&   test_bxp_percentilewhisr    s*     $QG"4"4"4555555r(   zbxp_with_xlabels.pngc                  ,    d } t          |            d S )Nc                 V    t          | t          d                    D ]
\  }}||d<   | S NABCDr3   r  r*  statsr  r3   s      r&   r>  z(test_bxp_with_xlabels.<locals>.transform  5    E4<<00 	 	HAuAgJJr(   )r  r  r>  s    r&   test_bxp_with_xlabelsr    s*      
 Y//////r(   zbxp_horizontal.pngr  )r  r4  r   r   c                  B    t          t          d                     d S )NrU   rV   r  r  r   r(   r&   test_bxp_horizontalr    s&      > > >??????r(   zbxp_with_ylabels.png)r4  r   r   c                  J    d } t          | t          d                     d S )Nc                 V    t          | t          d                    D ]
\  }}||d<   | S r  r  r  s      r&   r>  z(test_bxp_with_ylabels.<locals>.transform  r  r(   rU   rV   r  r  r  r  s    r&   test_bxp_with_ylabelsr    sJ    
  
 Y $ > > >@ @ @ @ @ @r(   zbxp_patchartist.png)r  r4  r   c                  B    t          t          d                     d S )NT)r  r  r  r   r(   r&   test_bxp_patchartistr    s&    
 $ 7 7 7888888r(   zbxp_custompatchartist.pngr  c            
      d    t          t          dt          ddd                               d S )NTr  r   :)r?  r@  r6  )r  boxpropsr  r  r   r(   r&   test_bxp_custompatchartistr    sT    
 GDDD!F !F !F G G G G G Gr(   zbxp_customoutlier.pngc            	      b    t          t          t          ddd                               d S )Nr;  r  r  r   r   mfc)
flierpropsr  r  r   r(   r&   test_bxp_customoutlierr    sQ    
 &#>>>!@ !@ !@ A A A A A Ar(   zbxp_withmean_custompoint.pngc            
      d    t          t          dt          ddd                               d S )NTr;  r  r   r  )	showmeans	meanpropsr  r  r   r(   r&   test_bxp_showcustommeanr    sK    
 AAA! ! !      r(   zbxp_custombox.pngc            	      b    t          t          t          ddd                               d S )NrR  r/  r   r   r   rV  )r  r  r  r   r(   r&   test_bxp_customboxr  %  H    
 CA666!8 !8 !8 9 9 9 9 9 9r(   zbxp_custommedian.pngc            	      b    t          t          t          ddd                               d S )NrR  r/  r   r  medianpropsr  r  r   r(   r&   test_bxp_custommedianr  .  sH    
 4sq999!; !; !; < < < < < <r(   zbxp_customcap.pngc            	      b    t          t          t          ddd                               d S )NrR  r  r   r  )cappropsr  r  r   r(   r&   test_bxp_customcapr  7  r  r(   zbxp_customwhisker.pngc            	      b    t          t          t          ddd                               d S )NrQ  r  r   r  )whiskerpropsr  r  r   r(   r&   test_bxp_customwhiskerr  @  sH    
 Csq999!; !; !; < < < < < <r(   c                     t          j        d          }ddi}i |ddi}|                                                     ||           |                                                    ||           d S )Nr   rA  r  rR  rO  r  )rm   ru   r    r  )r#   r$   r  medianprops_testmedianprops_refs        r&    test_boxplot_median_bound_by_boxr  I  s    9Q<<D#R(D)D+;VDDO3CDDDtAAAAAr(   zbxp_withnotch.pngc                  B    t          t          d                     d S )NT)shownotchesr  r  r   r(   r&   test_bxp_shownotchesr  R  s&    
  6 6 6777777r(   zbxp_nocaps.pngc                  B    t          t          d                     d S )NF)showcapsr  r  r   r(   r&   test_bxp_nocapsr  Z  s&    
 e 4 4 4555555r(   zbxp_nobox.pngc                  B    t          t          d                     d S )NF)showboxr  r  r   r(   r&   test_bxp_noboxr  b  s&    
 U 3 3 3444444r(   zbxp_no_flier_stats.pngc                  J    d } t          | t          d                     d S )Nc                 <    | D ]}|                     dd            | S )Nfliers)r9  )r  r  s     r&   r>  z*test_bxp_no_flier_stats.<locals>.transformo  s-     	" 	"AEE(D!!!!r(   F)
showfliersr  r  r  s    r&   test_bxp_no_flier_statsr  j  sD    
  
 Y $ 6 6 68 8 8 8 8 8r(   zbxp_withmean_point.pngc                  D    t          t          dd                     d S )NTFr  meanliner  r  r   r(   r&   test_bxp_showmeanr  x  s(    
 te D D DEEEEEEr(   zbxp_withmean_line.pngc                  D    t          t          dd                     d S )NTr  r  r  r   r(   r&   test_bxp_showmeanasliner    s(    
 td C C CDDDDDDr(   zbxp_scalarwidth.pngc                  B    t          t          d                     d S )Nr  r  r  r  r   r(   r&   test_bxp_scalarwidthr    s&    
 C 0 0 0111111r(   zbxp_customwidths.pngc                  F    t          t          g d                     d S )N)r  r  g?g333333?r  r  r  r   r(   r&   test_bxp_customwidthsr    s-    
 ,D,D,D E E EFFFFFFr(   zbxp_custompositions.pngc                  F    t          t          g d                     d S )N)r<   r   r  rq  r  r  r  r   r(   r&   test_bxp_custompositionsr    s*    
 ||| < < <======r(   c                      t          j        t                    5  t          t	          dg                     d d d            d S # 1 swxY w Y   d S )Nr<   r  r  r   r   r  r  r  r   r(   r&   test_bxp_bad_widthsr    s    	z	"	" 6 6D$4$4$455556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6    AAAc                      t          j        t                    5  t          t	          ddg                     d d d            d S # 1 swxY w Y   d S )Nr=   r   r  r  r  r   r(   r&   test_bxp_bad_positionsr    s    	z	"	" < <DAq6$:$:$:;;;;< < < < < < < < < < < < < < < < < <s   !AAAzbxp_custom_capwidths.pngc                  F    t          t          g d                     d S )N)r  r  r   r   r  r  r  r   r(   r&   test_bxp_custom_capwidthsr    s-     /C/C/C D D DEEEEEEr(   zbxp_custom_capwidth.pngc                  B    t          t          d                     d S )Nr  r  r  r  r   r(   r&   test_bxp_custom_capwidthr    s&     s 3 3 3444444r(   c                      t          j        t                    5  t          t	          dg                     d d d            d S # 1 swxY w Y   d S )Nr<   r  r  r  r   r(   r&   test_bxp_bad_capwidthsr    s    	z	"	" 9 9DA3$7$7$788889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9r  r  g{Gz?)r   r   c                     t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdd	           |                    d
           d| | gi}t          j                    \  }}|                    ddd|           |                    d
           d S )Nr  rp  rq     r  '  r<   	bootstrapnotchr  r   r5   )r  r   r  	rm   rn   ro   r  hstackr*   r    r  r  )r5   r0   r%   r  s       r&   test_boxplotr    s     INN3
B3A
	32,AlnnGCJJ1vaJ000KK	 !Q=DlnnGCJJse14J888KK	r(   c                 .   t          j        ddd          }|                                 }||dk             }|                    |           t           j                            |d          }|                                }|                    |           d S )Nr   r<   r  r   )rm   r  r    r  r
   masked_less)r#   r$   x_origr%   r5   s        r&   test_boxplot_maskedr    s     [Q$$F					Bv{AJJqMMM
&!$$A					BJJqMMMMMr(   zboxplot_custom_capwidths.pngc                      t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdddg	           d S )
Nrp  rq  r  r  r  r<   r  r  )r   r  )rm   r  r  r*   r    r  rX  s      r&   test_boxplot_custom_capwidthsr
    sa     	B3A
	32,AlnnGCJJ1vQ4+J66666r(   zboxplot_sym2.pngc                     t           j                            d           t          j        ddd          } t          j        d| dg          } t          j        dd          \  }\  }}|                    | | gd	d
           |                    d           |                    | | gd	d           |                    d           d S )Nr  rp  rq  r  r  r  r<   r=   r  ^)r  r{  r  r  r  )r5   r0   r  r&  s       r&   test_boxplot_sym2r    s     INN3
B3A
	32,Al1a((OC#sKKA%SK111LLKKA%SK111LLr(   zboxplot_sym.pngc                      t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gd           |                    d           d S )	Nrp  rq  r  r  r  r?  r{  r  )rm   r  r  r*   r    r  r  rX  s      r&   test_boxplot_symr    sm    
 	B3A
	32,AlnnGCJJ1v4J   KK	r(   z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                     t           j                            d           t          j        d          } t          j        d| dg          } t          j                    \  }}|                    | | gdd           |                    d           t          j                    \  }}|                    | | gddd	
           |                    d           d S )Nr  r  r   r=   r  r<   r  )r  r   T)r  r   	autorange)	rm   rn   ro   r   r  r*   r    r  r  )r5   rS  r  rT  r&  s        r&   test_boxplot_autorange_whiskersr    s    
 INN3
A
	1a)AID#KKA%qK111LLID#KKA%qDKAAALLr(   c                     t          j        ddd          }t          j        d|dg          }t          j        |          5  |                     ||g           d d d            n# 1 swxY w Y   | S )Nrp  rq  r  r  r  )rm   r  r  rZ   r   r  )r%   rc_dictr5   s      r&   _rc_test_bxp_helperr    s    
B3A
	32,A		w	'	'  


Aq6              Is   A&&A*-A*boxplot_rc_parameters)r4  r  r   r   c                     t           j                            d           t          j        d          \  } }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"gdd#}dd$d$d$dddddddd%d&}|||g}t          ||          D ]\  }}t          ||           t          j        j	        d' |d(         
                                D             v sJ d S ))Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstrapr  zboxplot.flierprops.colorr/  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylerR  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrT  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr@   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrS  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyler   r  )r  zboxplot.patchartistF-.)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                 ,    g | ]}t          |          S r   )rL  r  s     r&   r   z.test_boxplot_rc_parameters.<locals>.<listcomp>^  s    333T!WW333r(   r<   )rm   rn   ro   r*   r    r  r  rZ   rF  rG  get_children)r0   r%   rc_axis0rc_axis1rc_axis2	dict_listr,  rc_axiss           r&   test_boxplot_rc_parametersr#  !  s   
 INN3l1ooGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/  H6 H# H  ! #! #&'*'+&)*-*. H  8X.IR++ + +gD'****(33be00223334 4 4 4 4 4r(   zboxplot_with_CIarray.pngc                  d   t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        ddgd	d
gg          }|                    | | gdd dg|d           |	                    d           d S )Nr  rp  rq  r  r  r  rq  r  rr        @r  r   r<   )r  usermediansconf_intervalsr   r  )
rm   rn   ro   r  r  r*   r    rY  r  r  )r5   r0   r%   CIss       r&   test_boxplot_with_CIarrayr)  a  s     INN3
B3A
	32,AlnnGC
(T2Jc
+
,
,C JJ1vT3K!  , , ,KK	r(   zboxplot_no_inverted_whisker.pngc                  0   t          j        g dt           j                  } t          j                    }|                    |            |                    d           |j                            dd           |j	                            d           d S )N)r   i(#  r  X   i^  i@ ix  i  r  r8  Fminorwhich)
rm   rY  r  r*   rs  r  r  r`   r  r^   )r5   r  s     r&   test_boxplot_no_weird_whiskerr/  s  s     	;;;z	# 	# 	#A
(**CKKNNNNN5INN5N(((INN5r(   c                     t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        t                    5  |                    | ddg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    | | gddgddgg           d d d            d S # 1 swxY w Y   d S )	Nrp  rq  r  r  r  r<   r=   )r&  	rm   r  r  r*   r    r   r   r  r  rX  s      r&   test_boxplot_bad_mediansr2    sS   
B3A
	32,AlnnGC	z	"	" * *


11a&
)))* * * * * * * * * * * * * * *	z	"	" 9 9


Aq6AA'7
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   BB
B' CCCc                     t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        t                    5  |                    | | gddgg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    | | gddgdgg           d d d            d S # 1 swxY w Y   d S )	Nrp  rq  r  r  r  r<   r=   )r'  r1  rX  s      r&   test_boxplot_bad_cir4    sV   
B3A
	32,AlnnGC	z	"	" 4 4


Aq6Aq6(
3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z	"	" 9 9


Aq6Aq6A3-
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   BB
B
*CCCc                  B   t          j        d          } t          j                    \  }}|                    |           d         d                                         dk    sJ |                    | d          d         d                                         dk    sJ d S )Nr   boxesr   r=   r  )rm   ru   r*   r    r  r@  )r5   r  r%   s      r&   test_boxplot_zorderr8    s    
	"AlnnGC::a==!!$//11Q6666::a:##G,Q/::<<BBBBBBr(   c                     dt           j        d<   dt           j        d<   dt           j        d<   t          j                    \  } }t          j        d          }d|d	<   |                    |d
          }dD ]'}||         D ]}|                                dk    sJ (|d         d                                         dk    sJ |d         d                                         dk    sJ d S )Nr  rj  r   r  r  zboxplot.meanprops.markerr  r  r   T)r  )whiskerscapsr6  mediansr   r  r   means)r*   r   r    rm   ru   r  
get_marker)r0   r%   	test_data
bxp_handle	bxp_lines	each_lines         r&   test_boxplot_marker_behaviorrC    s    #&CL 03CL,-/2CL+,lnnGC	#IIbMI66J= 0 0	#I. 	0 	0I''))R/////	0
 h"--//36666gq!,,..#555555r(   z&boxplot_mod_artists_after_plotting.pngc                      g d} t          j                    \  }}|                    | d          }|D ]"}||         D ]}|                    d           #d S )N)r  r3  r|  r|  Q?gQ?gQr   r  r   )r*   r    r  r  )r5   r0   r%   bpkeyr  s         r&   &test_boxplot_mod_artist_after_plottingrH    sy     	433AlnnGC	A3		B # #c7 	# 	#CMM'""""	## #r(   zviolinplot_vert_baseline.pngc                  n   t           j                            d           d t          d          D             } t	          j                    }|                    | t          d          ddd           d| i} t	          j                    \  }}|                    dt          d          ddd|            d S )Niec                 N    g | ]"}t           j                            d           #S r  r  rm   rn   rp   r   r  s     r&   r   z1test_vert_violinplot_baseline.<locals>.<listcomp>  +    9991BI#&&999r(   r:  Fr  r  showextremashowmediansr  )r  r  rP  rQ  r  )rm   rn   ro   r   r*   rs  
violinplotr    )r  r%   r0   s      r&   test_vert_violinplot_baselinerS    s     INN999a999D	BMM$%((e#  % % % ;DlnnGCMM#qU#$  0 0 0 0 0r(   zviolinplot_vert_showmeans.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Niw5+c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>  rN  r(   r:  TFrO  r*   rs  rm   rn   ro   r   rR  r%   r  s     r&   test_vert_violinplot_showmeansrX    sp    	BINN999a999DMM$%((d#  % % % % %r(   zviolinplot_vert_showextrema.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Nic                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>  rN  r(   r:  FTrO  rV  rW  s     r&    test_vert_violinplot_showextremar[    sp    	BINN999a999DMM$%((e#  % % % % %r(   zviolinplot_vert_showmedians.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Nib}&c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>  rN  r(   r:  FTrO  rV  rW  s     r&    test_vert_violinplot_showmediansr^    sp    	BINN999a999DMM$%((e"  $ $ $ $ $r(   zviolinplot_vert_showall.pngc                     t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddddgddgd	d
gddgg           d S )NiOc                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z0test_vert_violinplot_showall.<locals>.<listcomp>  rN  r(   r:  Tr  ?r  r  r  r  rT  r  )r  r  rP  rQ  	quantilesrV  rW  s     r&   test_vert_violinplot_showallrc    s    	BINN999a999DMM$%((d"!3Z#sc3Z#sL  N N N N Nr(   z#violinplot_vert_custompoints_10.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni$c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>  rN  r(   r:  Fr   r  r  rP  rQ  pointsrV  rW  s     r&   $test_vert_violinplot_custompoints_10rh    sr    	BINN999a999DMM$%((e#B  0 0 0 0 0r(   z$violinplot_vert_custompoints_200.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )NiYqVc                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>   rN  r(   r:  Fr  rf  rV  rW  s     r&   %test_vert_violinplot_custompoints_200rk    sr    	BINN999a999DMM$%((e#C  1 1 1 1 1r(   zviolinplot_horiz_baseline.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni\dc                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>
  rN  r(   r:  rU   Fr  rW   r  rP  rQ  rV  rW  s     r&   test_horiz_violinplot_baselinero    ss    	BINN999a999DMM$%((PU#  8 8 8 8 8r(   z violinplot_horiz_showmedians.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Nilo/c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>  rN  r(   r:  rU   FTrn  rV  rW  s     r&   !test_horiz_violinplot_showmediansrr    ss    	BINN999a999DMM$%((PU#  7 7 7 7 7r(   zviolinplot_horiz_showmeans.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni&c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>  rN  r(   r:  rU   TFrn  rV  rW  s     r&   test_horiz_violinplot_showmeansru    ss    	BINN999a999DMM$%((PT#  8 8 8 8 8r(   z violinplot_horiz_showextrema.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Nie!c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>(  rN  r(   r:  rU   FTrn  rV  rW  s     r&   !test_horiz_violinplot_showextremarx  #  ss    	BINN999a999DMM$%((PU"  7 7 7 7 7r(   zviolinplot_horiz_showall.pngc                     t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddddgdd	gd
dgddgg           d S )Ni"c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z1test_horiz_violinplot_showall.<locals>.<listcomp>2  rN  r(   r:  rU   Tr  ra  r  r  r  r  rT  r  )r  rW   r  rP  rQ  rb  rV  rW  s     r&   test_horiz_violinplot_showallr{  -  s    	BINN899a999DMM$%((PT"!3Z#sc3Z#sL  N N N N Nr(   z$violinplot_horiz_custompoints_10.pngc            	          t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddd           d S )Ni0c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>=  rN  r(   r:  rU   Fr   r  rW   r  rP  rQ  rg  rV  rW  s     r&   %test_horiz_violinplot_custompoints_10r  8  sz    	BINN999a999DMM$%((PU#r  C C C C Cr(   z%violinplot_horiz_custompoints_200.pngc            	          t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddd           d S )Ni<9!c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>G  rN  r(   r:  rU   Fr  r~  rV  rW  s     r&   &test_horiz_violinplot_custompoints_200r  B  sz    	BINN999a999DMM$%((PU#s  D D D D Dr(   zviolinplot_sides.pngc            
         t          j                    } t          j                            d           t          j                            d          g}t          g dg d          D ]"\  }}|                     ||gdddd|	           #t          g d
g d          D ]"\  }}|                     ||gdddd|	           #d S )Nrc   r  r  )r   r  r   )r   lowhighrU   FT)r  rW   r  rP  rQ  side)r:  r%        @r  )r*   rs  rm   rn   ro   rp   r  rR  )r%   r  r   r  s       r&   test_violinplot_sidesr  L  s	   	BINN8I#&&'D)@)@)@AA E E	T
dseQV"&Dt 	 	E 	E 	E 	E (?(?(?@@ E E	T
dseu"&Dt 	 	E 	E 	E 	EE Er(   c                  H   t          j                    } t          j                            d           d t          d          D             }t          j        t                    5  | 	                    |t          d                     d d d            d S # 1 swxY w Y   d S )Ni@ 3c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z1test_violinplot_bad_positions.<locals>.<listcomp>_  rN  r(   r:  r   r  
r*   rs  rm   rn   ro   r   r   r   r  rR  rW  s     r&   test_violinplot_bad_positionsr  [  s    	BINN999a999D	z	"	" 0 0
deAhh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   %%BBBc                  N   t          j                    } t          j                            d           d t          d          D             }t          j        t                    5  | 	                    |t          d          g d           d d d            d S # 1 swxY w Y   d S )NiA#c                 N    g | ]"}t           j                            d           #S rK  rL  rM  s     r&   r   z.test_violinplot_bad_widths.<locals>.<listcomp>h  rN  r(   r:  r  )r  r  r  rW  s     r&   test_violinplot_bad_widthsr  d  s    	BINN999a999D	z	"	" B B
deAhhyyyAAAB B B B B B B B B B B B B B B B B Bs   %(BB!Bc                  J   t          j                    } t          j                            d           t          j                            d          g}t          j        t                    5  | 	                    |ddgddgg           d d d            d S # 1 swxY w Y   d S )	Nil r  r  r  r  r   r  rb  
r*   rs  rm   rn   ro   rp   r   r   r  rR  rW  s     r&   test_violinplot_bad_quantilesr  m  s    	BINN9I#&&'D 
z	"	" @ @
dSzC:&>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   -BBBc                     t          j                    } t          j                            d           t          j                            d          g}t          j        t                    5  | 	                    |g dg           d d d            n# 1 swxY w Y   t          j        t                    5  | 	                    |g dg           d d d            d S # 1 swxY w Y   d S )Niq4r  r  )r  r  r  ?r  )皙r  r  ru  r  rW  s     r&   $test_violinplot_outofrange_quantilesr  x  sm   	BINN9I#&&'D 
z	"	" ? ?
d'<'<'<&=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
z	"	" A A
d'>'>'>&?@@@A A A A A A A A A A A A A A A A A As$   -BBB8C  C$'C$c                 <   t           j                            d           t           j                            d          g}|                                 }|                    |g d           |                                }|                    |g dg           d S )N+r  r  )r  r  ra  r  )rm   rn   ro   rp   r    rR  )r#   r$   r  r%   s       r&   %test_violinplot_single_list_quantilesr    s     INN9I#&&'D 
				BMM$///M222 
				BMM$???"3M44444r(   c                 b   t           j                            d           |                    t           j                            d          g d          }|                    t           j                            d          t          d                    }|                    t           j                            d                    }|                                                     |||g           |                                                    |j        |j        |j        g           d S )	Nr  rq  r  )r}  r  rq  r  r   r:  r   r  r}  	ABCDEFGHIr^  )	rm   rn   ro   r  rp   r*  r    rR  r,  )r#   r$   r  s1s2s3s         r&   test_violinplot_pandas_seriesr    s    INN9	29###++3H3H3H	I	IB	29###++43D3D	E	EB	29###,,	-	-B""BB<000!!29bi"CDDDDDr(   c                     t          j                    \  } }|                    dd           |                                }t          j                            d           t          j                            ddd          }t          j                            ddd          }|                    ||gddgd	           |                                }t          ||           d S )
Nr   r:  r   r   r  r<   r=   F)r  manage_ticks)
r*   r    r  r   rm   rn   ro   rp   r  r   )r  r%   old_xlimr  r]  new_xlims         r&   test_manage_xticksr    s    LNNEArKK1{{}}HINN1			"a	$	$B			!Q	#	#BJJBxAq6J>>>{{}}Hx*****r(   c                  
   t          j                    \  } }|                    t          j                            d          dg           |                    t          j                            d          dg           | j                                         |                                dk    sJ t          |
                                          ddgk    sJ d |                                D             ddgk    sJ d S )	Nr  r   r  r   )rd  rW  c                 6    g | ]}|                                 S r   r\  r  s     r&   r   z+test_boxplot_not_single.<locals>.<listcomp>  s     777QAJJLL777r(   r  5)r*   r    r  rm   rn   r   r  r"  r   r*  
get_xticksr  r/   s     r&   test_boxplot_not_singler    s    lnnGCJJry~~c""qcJ222JJry~~c""qcJ222JOO;;==J&&&&  QF****77""4"4"6"6777C:EEEEEEr(   c                      t          j        ddgddg           t          j                            ddi           t          j                    } t          j        | dd           d S )Nr   r<   z	font.sizeP   raw)r2  format)r*   r   rZ   r   updateioBytesIOsavefigr/  s    r&   test_tick_space_size_0r    sb     HaVaVQ/000

AKr%((((((r(   )errorbar_basicerrorbar_mixedr  c            	         t          j        dddt           j                  } t          j        |            }ddt          j        |           z  z   }d|z   }t          j                    }|                                }|                    | |dd           |	                    d           t          j
        d	d	d
          \  }}|d         }|                    | ||d           |	                    d           |                    d           |d         }|                    | ||dd           |	                    d           |d         }|                    | ||d	|z  g|d	|z  gd           |	                    d           |d         }|                    d           t          j        d||z
            }||z
  }|                    | ||d	|z  g|ddd	           |	                    d           |                    dd           |                    d           | |d }	t          j                    }|                                }|                    d!d"dd|	#           |	                    d           d S )$Nr  r:  r   r  r  rT  rZ  z&Simplest errorbars, 0.2 in x, 0.4 in yr=   T)r  r  r  r  r   r\  r   zVert. symmetricnbinsr  )r[  r   r  zHor. symmetric w/ alphar|  z--or\  r[  r   zH, V asymmetricr  r8  r  r  )r\  r[  r   ecolorcapthickzMixed sym., log yr;  zVariable errorbarsr*  r5   r6   r[  r\  r  )rm   ru   
longdoublerw  r  r*   r   rn  rW  r8   r    locator_paramsr  maximumr  suptitle)
r5   r6   r\  r[  r0   r%   r  ylower
yerr_lowerr  s
             r&   test_errorbarr    s    		#q#R]333A
r

ARWQZZD:D *,,C	BKK13SK)))LL9::: |!1T:::HC	TBKK14SK)))LL"### A	TBKK14SK444LL*+++	TBKK1D!D&>qvEKJJJLL"###	TBMM%Za$h''FVJKK1J$/da  1 1 1LL$%%%KKcLL%&&& D
*,,C	BKKSs4K888LL9:::::r(   mixed_errorbar_polar_capsc                  N   t          j                    } t          j        dd          }g d}dgdz  }|                    ||ddd	
           t          j        dz  dz   t          j        dz   g}ddg}|                    ||dt          j        z  dd	
           dt          j        z  dz  dz   dt          j        z  dz  dz   dt          j        z  dz
  g}dgdz  }g dg dg}g dg dg}	|                    ||||	d	
           dg}
dg}|                    |
|ddd	
           dS )z
    Mix several polar errorbar use cases in a single test figure.

    It is advisable to position individual points off the grid. If there are
    problems with reproducibility of this test, consider removing grid.
    r  rL  r  r  ra  r   ffffff?r  r   r[  r\  r   r=   r  g?r  r  r  r:  r   r{  )r  r  r  )r  r  r  )r  r   r   )r   r  r    @@r   N)r*   r   ru  rW  rm   r  )r0   r%   th_symr_symth_longr_longth_asymr_asymr[  r\  th_overr_overs               r&   test_mixed_errorbar_polar_capsr    sM    *,,C	SW	-	-	-B YYFE!GEKKDsK<<< uQw|RURZ(G3ZFKKcBEk#KFFF wqy2~qwqy2~qws{;GU1WFLL,,,'DMM===)DKKd3K??? eGUFKKbrsK;;;;;r(   c                     t          j                    \  } }t          j        d          }d|z  }|                    ||d           \  }}}|                    |d|z  d           \  }}}|                    |d|z            \  }t          j        |                                          t          j        d          k    sJ t          j        |                                          t          j        d          k    sJ t          j        |                                          t          j        d          k    sJ d S )Nr   r=   r`  r:  r  rp  rq  )	r*   r    rm   ru   rW  r   r)  to_rgba	get_color)r  r%   r5   r6   r  r  r  ln1s           r&   test_errorbar_colorcycler    s	   LNNEAr
	"A	!A{{1a4{((HB1{{1acT{**HB1771ac??DC?2<<>>**god.C.CCCCC?2<<>>**god.C.CCCCC?3==??++wt/D/DDDDDDDr(   c           
      d   t          j        ddd          fdt          d          D             }|                                 }|                                }t	          |g d          D ]B\  }}|                    ||dz  ddd	
           |                    ||dz  dd|d	           Cd S )Nr  r:  r   c                 @    g | ]}t          j         |z             S r   )rm   rw  )r   r  r5   s     r&   r   z.test_errorbar_cycle_ecolor.<locals>.<listcomp>,  s'    (((!1(((r(   )r  rp  rq  r!  r  rQ  r   rG  )r\  r   r   r  )r\  r   r   r   r  )rm   ru   r   r    r  rW  )r#   r$   r6   axtaxryir   r5   s          @r&   test_errorbar_cycle_ecolorr  )  s    
	#q#A((((uQxx(((A




C




C44455 > >	EQ"t) 	 	1 	1 	1Q"t)uW 	 	> 	> 	> 	>> >r(   c                     t          j                    } |                                 }t          j        ddd          }t          j        |           }ddt          j        |          z  z   }t          j        |d|z  f          j        }d|z   }t          j
        t                    5  |                    |||d           d d d            n# 1 swxY w Y   t          j
        t                    5  |                    |||d           d d d            n# 1 swxY w Y   t          j
        t                    5  |                    ||||d	           d d d            d S # 1 swxY w Y   d S )
Nr  r:  r   r  r=   r   r  )r[  r   r  )r*   r   rn  rm   ru   rw  r  vstackr  r   r   r  rW  )r0   r%   r5   r6   yerr1r\  r[  s          r&   test_errorbar_shaper  8  s   
*,,C	B
	#q#A
r

A#bgajj. E9eQuW%&&(D:D	z	"	" . .
Aqt---. . . . . . . . . . . . . . .	z	"	" . .
Aqt---. . . . . . . . . . . . . . .	z	"	" 9 9
Aqt$C8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s6   )CCC3DD D=E%%E),E)errorbar_limitsc                  B   t          j        ddd          } t          j        |            }d}d}d}t          j                    \  }}|                    | ||||d           t          j        |           }d|g d	<   |                    | |dz   ||||d
           t          j        |           }d|g d<   |                    | |dz   ||||d           |                    | |dz   dd|||||d
  
         d}t          j        | d          }d|ddg<   |}	|}
t          j        |           }t          j        |           }d|dg<   d|dg<   |                    | |dz   dd|||	|
||dddd           |                    d           |	                    d           d S )Nr   rW  r  r  dottedr   )r[  r\  r6  r   T)r<   r   r}  r   )r[  r\  uplimsr6  r   )r=   r:  r  r   r>  )r[  r\  lolimsr6  r   r   r   r  magenta)r   r7  r[  r\  r  r  r6  r   r  r   r  r  r;  r   cyan)r   r7  r[  r\  xlolimsxuplimsr  r  r6  rW  capsizer   )r   rW  zErrorbar upper and lower limits)
rm   ru   rw  r*   r    rW  
zeros_like	full_liker  r8   )r5   r6   r[  r\  r6  r0   r%   r  r  r  r  s              r&   test_errorbar_limitsr  J  s   
	#sC  A
r

ADD	BlnnGC KK14drK@@@ ]1FF999KK1S5t$v"     ]1FF999KK1S5t$v"     KK1S5Df9  F F F D<3DD!QLGG]1F]1FFA3KFA3KKK1S5D&fa     KKLL233333r(   c                     t          j        d          } t          j        d          }t          j        | |ddd          \  }}}|J |D ]@}t          j        |                                t          j        d          k              sJ Ad S )Nr   r<   r;  r  r  )rm   ru   r*   rW  r  r  r)  r  )r5   r6   plotliner  barlineserrbars         r&   test_errorbar_nonefmtr  y  s    
	!A
	!ALAAA6JJJHa C Cvf&&((GOD,A,AABBBBBBC Cr(   c                     t          j        d          } t          j        d          }t          j        | |ddddddddd	d
          \  }}}|                                dk    sJ |                                dk    sJ d S )Nr   r<   Noner  rg   z	steps-midroundrN  rO  bevel)
r[  r\  r6  r   r  rS  dash_capstyledash_joinstylerR  rQ  )rm   ru   r*   rW  get_fillstyleget_drawstyle)r5   r6   r  r  s       r&   "test_errorbar_line_specific_kwargsr    s     		!A
	!A\!QQQ6),,707181729; ; ;NHa !!##v----!!##{222222r(   c           	      z   |                                 }|                    g dg ddddd           |                    g dg ddd	d
dd           |                    g dg dddddd           |                    dd           t          g dg dg dg d          }t	          j        d|           |                                  }|                    g dg dd           |                    g dg ddd	           |                    g dg ddd           |                    dd           d S )N)r=   r:  r   rQ  r   rR  r  rS  )r5   r6   r\  r6  r   r  r=   r   r:  z	tab:greenr  r6   )r5   r6   r\  r   r6  r   r  r:  r   r  ztab:bluer  r   r@   )r5   r6   r\  r   r6  r   r  r<   r^  )rR  r  r  )r  r  r   )rS  r6   r@   r/  r  rT  )r6  r   r  r   rs  )
prop_cycler5   r6   r\  )r5   r6   r\  r   )r5   r6   r\  r   )r    rW  r  r   r*   rc)r#   r$   r%   _cycles       r&   test_errorbar_with_prop_cycler    s   					BKK***			  . . .KK***			;s  - - -KK***			  . . .KK2((('@ @ @FF6f%%%%					BKK***			K444KK***			;KGGGKK***			KDDDKK2r(   c                     t          j        ddd          } | d| z
  z  }|dz  }t          j                                                    }t          j        t          d          5  |                    | ||d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    | ||d	           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    | ||ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    | ||d           d d d            d S # 1 swxY w Y   d S )Nr   r<   r	  r  znot a tuple of two integersr|  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rm   r  r*   r   r    r   r   r  rW  )r5   r6   r\  r%   s       r&   test_errorbar_every_invalidr    si   
Aq"A	QqS	AQ3D				 	 B	z)F	G	G	G 6 6
Aq$95556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	z)F	G	G	G 5 5
Aq$84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	z)H	I	I	I : :
Aq$E4=999: : : : : : : : : : : : : : :	z)A	B	B	B 5 5
Aq$84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5sH   $B

BB0CCC<D$$D(+D(
E11E58E5c                  >   t          j                                                    } t          j        t
          d          5  |                     dgdgdgdggdgdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgdgdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgdgdgg	           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        d
          }d |D             }|                     ||t          j
        d          	           d d d            d S # 1 swxY w Y   d S )Nz''xerr' must not contain negative valuesr|  r   r  r<   r5   r6   r[  r\  re  z''yerr' must not contain negative valuesr  r   c                 F    g | ]}t          j         d d|dz  dz             S )r  r}  r=   r<   rC  r  s     r&   r   z/test_xerr_yerr_not_negative.<locals>.<listcomp>  s/    >>>qXtQA	22>>>r(   r(  r  )r*   r   r    r   r   r  rW  rm   ru   rC  r  )r%   r5   r6   s      r&   test_xerr_yerr_not_negativer    s   				 	 B	zF
H 
H 
H J J
qcaS}TFQC=IIIJ J J J J J J J J J J J J J J 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 7 7IaLL>>A>>>
a!+555 	 	7 	7 	7	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sI   $A11A58A5CC	C(DDD9AFFFc                  B   t          j                                                    } t          j        t
          d          5  |                     dgdgd gdggd gdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgd gdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgd gdgg           d d d            d S # 1 swxY w Y   d S )	Nz'xerr' must not contain Noner|  r   r<   r  re  z'yerr' must not contain Noner  )r*   r   r    r   r   r  rW  r  s    r&   test_xerr_yerr_not_noner    s   				 	 B	z;
= 
= 
= J J
qcaS}TFQC=IIIJ J J J J J J J J J J J J J J 
z;
= 
= 
= 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
z;
= 
= 
= 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s6   $A11A58A5CC	C(DDDc                    t          j        ddd          }|d|z
  z  }|dz  }|                                }|                                 }t          dg d          D ]v\  }}|dz  }|                    ||||dfd|	           |                    |||d
           |                    ||d d         ||d d         ||d d         d|d           w|                    ||dz   |ddd           |                    |dd d         |dd d         dz   dd
           |                    ||dz   |dd           |                    ||dz   |t          dd d          t          dd d          ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           |                    ||dz   |g ddz  g ddz  ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           d S )Nr   r<   r	  r  rgbk)r   r   r=   rq  r  r:  )r
  r  r@   r  )r@   r  r;  )r  r@   r   r  )r<   r:  r   )r  r  r   r7  )r  r   r  r=   r   r  )r
  r  r  r@   r   r  r   rp  )rm   r  r    r  rW  r   r8  )	r#   r$   r5   r6   r\  r{   rz   r   shifts	            r&   test_errorbar_everyr    s*   
Aq"A	QqS	AQ3DF!!GFLLL11 8 8u	S 	At
!"e 	 	- 	- 	-
 	AqE#...%((Quxax[$uxax. !U 	 	8 	8 	8 	8 QCLLL
KK!$Q$14a43CK888
OOAq3waVO<<< QC%42C2C$Qa00$C  1 1 1 KK!$Q$14a43tCK@@@
OOAaddGQqt!tWs]DAJ6  3 3 3 QC2F2F2F2J333a7$C  1 1 1 KK!$Q$14a43tCK@@@
OOAaddGQqt!tWs]DAJ6  3 3 3 3 3r(   
elinewidthr  c                 B    t          j        g dg dg d|            d S )Nr  )r\  r  )r*   rW  )r  s    r&   test_errorbar_linewidth_typer  
  s/     LIIIIII*MMMMMMr(   c                    |                                  }t          d          }t          j        ddt          j        t          j        dg          }t          j        ddt          j        t          j        dg          }|                    |||           |                                 }|                    ddgddgddg           |                    dgdgdgd	           d S )
Nr   r<   r=   r   r:  r  r   r  r   )r   r   rm   rY  r  rW  )r#   r$   r%   xsysess         r&   test_errorbar_nanr     s    					B	qB	1a+	,	,B	1a+	,	,BKKB					BKKAAA'''KKaS1#4K(((((r(   hist_stacked_stepfilledc                  (   t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d
| |fi}t          j                    \  }}|                    d
dd|           d S )Nr<   r   r  r   r   rj  r  Tr  r5   )r   r  r  rm   r  r*   r    r  )d1d2r0   r%   r  s        r&   test_hist_stacked_stepfilledr&    s     
Q2		B	QB		BlnnGCGGRH|TG::: "b?DlnnGCGGC,4G@@@@@r(   hist_offsetc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | d           |                    |d	           d S )
Nr   r   rj  r<   r   r  r   r  r	  r#  r$  r%  r0   r%   s       r&   test_hist_offsetr*  +  sk     
QB		B	Q2		BlnnGCGGBqGGGBrGr(   zhist_step.pngc                      t          j        ddd          } t          j                    \  }}|                    | d           |                    dd           |                    dd	           d S )
Nr<   r   r  r  r  r   r   r   r   )rm   r  r*   r    r  r  r  r$  r0   r%   s      r&   test_hist_stepr-  5  sj     
Q2		BlnnGCGGBG   KK2KKAr(   zhist_step_horiz.pngc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d S )
Nr   r   rj  r<   r   r  r  rU   )r   rW   r#  r)  s       r&   test_hist_step_horizr/  ?  s[     
QB		B	Q2		BlnnGCGGRHv<G@@@@@r(   hist_stacked_weightsc                     t          j        ddd          } t          j        ddd          }t          j        ddd          }t          j        d	d
d          }t          j                    \  }}|                    | |f||fdd           d S )Nr   r   rj  r<   r   r  r  r%  r  r   r  T)weightsr   r  r#  )r$  r%  w1w2r0   r%   s         r&   test_hist_stacked_weightedr5  H  s     
QB		B	Q2		B	T3	#	#B	T2r	"	"BlnnGCGGRHr2htGLLLLLr(   zstem.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           |                                 d S )	Nr  r=   r  C2-.zk+C1-. )linefmt	markerfmtbasefmtr3   )rm   r  r  r*   r    r  rq  rL   rX  s      r&   	test_stemr=  S  sp    
CRUC((AlnnGC GGArvayydF#  G G GIIKKKKKr(   c                  J   d } t          j                    \  }}g d}g d} | |                    |          g d|f            | |                    ||          ||f            | |                    ||d          ||f            | |                    ||d          ||f            | |                    ||dd	          ||f            | |                    |d          g d|f            | |                    |d          g d|f           d
S )z5Test that stem() correctly identifies x and y values.c                     t          t          | j                                                  \  }}||d         k    sJ ||d         k    sJ d S Nr   r<   )mapr*  
markerlineri  )stem_containerexpectedr5   r6   s       r&   _assert_equalz%test_stem_args.<locals>._assert_equala  sT    42;;==>>1HQKHQKr(   r<   r   r   r}  r  rq  rQ  )rD  rW  r:  zb--)r:  r<  Nr*   r    r  rE  r0   r%   r5   r6   s        r&   test_stem_argsrK  _  sa        
 lnnGC		A		A M"''!**			1~6666M"''!Q--1a&1111M"''!Q'..!Q@@@@M"''!Q&&!Q8888M"''!Qu'==AOOOOM"''!U'++yyy!nEEEEM"''!U##yyy!n======r(   c                     	 	 dd} t          j                    \  }}g 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d            | |                    ||dd	          ddd            | |                    ||d          ddd            | |                    ||dd          ddd            | |                    ||dd          ddd           dS )zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 F   |.t          j        | j                                        |          sJ |.t          j        | j                                        |          sJ || j                                        |k    sJ | j                                        dk    sJ dS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr  )r)  r  	stemlinesr  rB  r>  get_linestyle)rC  	linecolormarkercolorr   s       r&   rE  z*test_stem_markerfmt.<locals>._assert_equalw  s      %(2244     "%)3355     !,7799VCCCC(6688FBBBBBBr(   rF  rG  r  r   )rQ  r   r5   )r;  r  rT  )rP  rQ  r   r  gxr9  r  r   rH  )r:  r;  )NNNrI  rJ  s        r&   test_stem_markerfmtrS  u  s   BF!C C C C$ lnnGC		A		A M"''!Q--T#>>>>M"''!Q#'..DMMMMM"''!Q$'//SMMMM M
1c3s4 4 4 4 M
1d3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cT**3s4 4 4 4 M
1cS))3v7 7 7 7 M
1cR((3v7 7 7 7
 M
1c""3s4 4 4 4 M
1cS113s4 4 4 4 M
1cT223s4 4 4 4 4 4r(   c                      t          j        dd          \  } }t          j                            d          t          j                            d          g}ddg}|                    ||           d S )Nr<   z2013-9-28 11:00:00z2013-9-28 12:00:00r  r  )r*   r    dateutilparserparser  )r0   r%   r  r  s       r&   test_stem_datesrX    sd    l1a  GC
/

 4
5
5
/

 4
5
5
7B
sBGGBOOOOOr(   zstem_orientation.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           d S )	Nr  r=   rj  r7  kxr8  rU   )r:  r;  r<  rW   )rm   r  r  r*   r    r  rq  rX  s      r&   test_stem_orientationr[    se    
C25"%%AlnnGCGGArvayydF$  & & & & &r(   hist_stacked_stepfilled_alphac                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fddd	
           d S )Nr<   r   r  r   r   rj  r  Tr   )r   r  r  r#  r)  s       r&   "test_hist_stacked_stepfilled_alphar^    s]     
Q2		B	QB		BlnnGCGGRH|TGEEEEEr(   hist_stacked_stepc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d S )
Nr<   r   r  r   r   rj  r  Tr  r#  r)  s       r&   test_hist_stacked_stepra    s[     
Q2		B	QB		BlnnGCGGRHvtG44444r(   hist_stacked_normedc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd           d S )	Nr<   r   r  r   r   rj  T)r  r'  r#  r)  s       r&   test_hist_stacked_densityrd    s[     
Q2		B	QB		BlnnGCGGRHdDG11111r(   zhist_step_bottom.pngc                      t          j        ddd          } t          j                    \  }}|                    | t          j        d          d           d S )Nr<   r   r  r   r  )rS   r   )rm   r  r*   r    r  ru   r,  s      r&   test_hist_step_bottomrf    sL     
Q2		BlnnGCGGBry}}|G<<<<<r(   c            	         g d} g d}ddgddgddgddgddgddgddgddgg}ddgddgddgddgddgg}d|fd||z   ffD ]D\  }}t          j        || |	          \  }}\  }t          |                                |           Ed S )
Nr   r<   r=   r   r   r   r<   r<   r<   r=   r   r=   r<   r   r  r  r  r   r*   r  r   get_xyr  r  rB   rS   r   r  r  polygons           r&   test_hist_step_geometryro    s    <<DDq6Aq6Aq6Aq6Aq6Aq6Aq6Aq6
JC!fq!fq!fq!fq!f5F #sV|(DE 1 1"HTxHHH1kw7>>++R00001 1r(   c            	         g d} g d}ddgddgddgddgddgddgddgdd	gg}dd	gddgddgddgddgg}d
|fd||z   ffD ]G\  }}t          j        || g d|          \  }}\  }t          |                                |           Hd S )Nrh  ri  r   r<   r   r   r=   rd  r   r  r  r<   r=   r   )r  rS   r   rk  rm  s           r&   test_hist_step_bottom_geometryrr    s    <<DDq6Aq6Aq6Aq6Aq6As8aX3x
PC#hAAAA7F #sV|(DE 1 1"HT[[[.68 8 81kw7>>++R00001 1r(   c            
      H   g d} g d}g d}ddgddgddgddgddgddgddgddggddgddgddgddgddgddgddgddggg}ddgddgddgddgddggddgddgddgddgddggg}d	 t          ||          D             }d
|fd|ffD ]\  }}t          j        ||g| d|          \  }}}	t          |	          dk    sJ |	d         \  }
t	          |
                                |d                    |	d         \  }
t	          |
                                |d                    d S )Nrh  ri  rQ  r   r=   r<   r   r:  c                     g | ]
\  }}||z   S r   r   r   r  r/  s      r&   r   z3test_hist_stacked_step_geometry.<locals>.<listcomp>       555$!QA555r(   r  r  T)r  r  r   r  r*   r  r  r   rl  r  data_1data_2topsbottomscombinedr   r  r  rF  rn  s              r&   test_hist_stacked_step_geometryr~    s   <<DFYYF
Q!Q!Q!Q!Q!Q!Q!QH
Q!Q!Q!Q!Q!Q!Q!QHD
 Q!Q!Q!Q!Q0
Q!Q!Q!Q!Q0G 65#dG"4"4555H $,)AB 4 4"&&!1d*24 4 41g7||q    1:7>>++RU3331:7>>++RU33334 4r(   c            
      N   g d} g d}g d}ddgddgddgddgddgdd	gdd	gdd
ggddgddgddgddgddgddgddgdd	ggg}dd
gddgddgddgddggdd	gddgddgddgddggg}d t          ||          D             }d|fd|ffD ]\  }}t          j        ||g| dg d|          \  }}}	t          |	          dk    sJ |	d         \  }
t	          |
                                |d                    |	d         \  }
t	          |
                                |d                    d S )Nrh  ri  rQ  r   r<   r   r   r=   rd  r   r:  r  r%  c                     g | ]
\  }}||z   S r   r   ru  s      r&   r   z:test_hist_stacked_step_bottom_geometry.<locals>.<listcomp>&  rv  r(   r  r  Trq  )r  r  rS   r   rw  rx  s              r&   &test_hist_stacked_step_bottom_geometryr    s   <<DFYYF
Q!Q!Q!Q!Q!SAs8aXN
Q!Q!Q!Q!Q!SAs8aXND
 SAq6Aq6Aq6Aq62
SAq6Aq6Aq6Aq62G 65#dG"4"4555H $,)AB 4 4"&&!1d(3hH H H1g7||q    1:7>>++RU3331:7>>++RU33334 4r(   hist_stacked_barc                      g dg dg dg dg dg dg} g d}g d}t          j                    \  }}|                    | d	d
d||           |                    ddd           d S )N)r  r  r  r  r  @  i  r  r  rW  6  rV  )r     rj  r^  r  i  )r  r  r  r  r  r     )r3  r3  r3  r3  r  r  r   r   r   r   r   r  )+  r  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   r  z yellowr  rG  r   r  mid)r  r   r\  r   r3   zupper right)r   r   r<   )rD   bbox_to_anchorr  )r*   r    r  rL   )r  r  labelsr0   r%   s        r&   test_hist_stacked_barr  2  s     
D	C	C	#	#	#%H%H%H	8	8	8	H	H	H	A	A	A		CA
O O OF @??FlnnGCGGABU&    II-
!IDDDDDr(   r  r?  r  r@  rK  )rI  r  r   r   )rQ  rR  r  rA  )r<   r   r=   r   c           
      
   t           j                            d           d dD             }|                     d          \  }}|                    d          \  }}d||fd||ffD ]\  }}	}
 |	j        |fd|d|\  }}}t          t          |                                                    \  }}t          t          ||                    D ]2\  }\  }} |
j        |f||d||id	t          |          |z
  dz  i 3d S )
Nrc   c                 L    g | ]!}t           j                            |          "S r   )rm   rn   r  )r   r  s     r&   r   z/test_hist_vectorized_params.<locals>.<listcomp>M  s&    	4	4	4")//!

	4	4	4r(   )r  rj  r  r=   r  r  r   rj  r  )rm   rn   ro   r    r  nextiteritemsr  r  r  )r#   r$   r  r  axt1axt2axr1axr2r   r  r  r  r  kwr,  rM  r5   rI  s                     r&   test_hist_vectorized_paramsr  D  sU    INN8	4	4m	4	4	4B$$Q''LT4##A&&LT4 ,dD9FD$;OP + +#sSXbGrHGGGG
4$v||~~..//
F&s2v77 	+ 	+MAz5CHQ +TH + +U + + WWQYM+ + + + +	+	+ +r(   zkwargs, patch_face, patch_edger6   )r   r   r?  r@  )r6   r   )r   r   r@  )rT  r   )r   r   r?  rS  )r   r?  r@  )r   r   )r   r?  r  )r   r@  )r  r   r   c                      t          j                                                    j        g dfi | \  }}}t	          fd|D                       sJ d S )Nr  c              3      K   | ]A}t          j        |                                |                                gg          V  Bd S r!  )r)  r  r  r  )r   r  
patch_edge
patch_faces     r&   r  z,test_hist_color_semantics.<locals>.<genexpr>z  so       N N@A !1??#4#4aoo6G6G"H#-z":< < N N N N N Nr(   )r*   r   r    r  r  )r  r  r  r  rF  s    ``  r&   test_hist_color_semanticsr  [  s    < 1CJLL))++0EEfEEMAq' N N N N NELN N N N N N N N N Nr(   c                      t          j        ddg          } t          j        ddgddggdd|            |                                 ddgk    sJ d S )Nr   r  r   r<   r=   r  )r   rS   )rm   rY  r*   r  tolistr  s    r&   %test_hist_barstacked_bottom_unchangedr  ~  s^    
"bAHq!fq!fq<BBBB88::"b!!!!!!r(   c                      t          j                    \  } }|                    g t          d          t          d          gd           d S )Nr   r  r  )r*   r    r  r   r/   s     r&   test_hist_emptydatar    s@    lnnGCGGRrE"II&G88888r(   c                      t          j                    \  } }|                    g dgg d           |                                \  }}|dgk    sJ d S )Nr  )r,  unusedzalso unusedr   r,  )r*   r    r  get_legend_handles_labels)r0   r%   r  r  s       r&   test_hist_unused_labelsr    sd     lnnGCGGYYYKBBBGCCC,,..IAvhZr(   c                     t          j                    \  } }|                    ddgd          \  }}}|d                                         dk    sJ |                    ddgdg          \  }}}|d                                         dk    sJ |                    ddgd           \  }}}|d                                         dk    sJ |                    ddgd          \  }}}|d                                         dk    sJ |                    ddgd          \  }}}|d                                         dk    sJ d S )Nr   r<   r   r-  r  00)r*   r    r  r  )r0   r%   r  r  s       r&   test_hist_labelsr    sY   lnnGC!Qq))JAq$7#%%%%!Qs++JAq$7#%%%%!Qt,,JAq$7,....!Qs++JAq$7#%%%%!Qt,,JAq$7$&&&&&&r(   transparent_markersc                      t           j                            d           t           j                            d          } t          j                    \  }}|                    | ddd           d S )Nr   rj  rf  r;  r  )r  r   rm   rn   ro   r*   r    r   r(  s      r&   test_transparent_markersr    sZ    INN19BDlnnGCGGD#6cG22222r(   rgba_markersc            
         t          j        d          \  } }ddg}ddg}d dg}t          dd	
          }t          |          D ]n\  }}t          |          D ]Y\  }}	t          |          D ]D\  }
} ||         j        |dz   |
dz   df||	|d|  ||         j        |dz   |
dz   df|	|d| EZo|D ]}|                    g d           d S )Nr=   r  r  r
  rR  )r   r   r<   r   r  r  r  )r7  rV  r<   r   )r  rW  r  r   r5   )rW  r  )r   r:  r   r   )r*   r    r  r  r   r,  )r0   r  rcolorsbcolorsalphasr  rM  r  rx  rcolorrS  bcolorr%   s                r&   test_rgba_markersr    sS   |!$$$HC^,G^,GC[F	"			Bf%% J J5"7++ 	J 	JIAv&w// J J	6AAaC1c /v6"'/ /+-/ / /AAaC1cIvUIIbIIIIJ	J
   
 r(   mollweide_gridc                      t          j                    } |                     d          }|                                 d S )N	mollweider  )r*   r   r   r  r/   s     r&   test_mollweide_gridr    s3     *,,C	K	0	0BGGIIIIIr(   c                     t          j                    } |                     d          }t          j        t          j         t          j        d          }t          j        t          j         dz  t          j        dz  d          dd         }t          j        ||          \  }}t          j        |                                |                                f          j	        }|j
                            |          }|j
                                                            |          }t          j                            ||d           d S )	Nr  r  r   r   r  r<   r   r   )r*   r   r   rm   r  r  r  r  rW  r  transProjectionr>  invertedr   r   )r0   r%   lonlatllr  ll2s          r&   &test_mollweide_forward_inverse_closurer    s    *,,C	K	0	0B +rufbeS
)
)C
+rufslBECK
5
5ad
;C{3$$HC	CKKMM3;;==1	2	2	4B 
		%	%b	)	)B 

%
%
'
'
1
1"
5
5C J((S!44444r(   c                      t          j                    } |                     d          }t          j        ddd          }t          j        ||          \  }}t          j        |                                |                                f          j        }|j	        
                                                    |          }|j	                            |          }t          j                            ||d           d S )Nr  r  r   r<   r  r   )r*   r   r   rm   r  r  r  rW  r  r  r  r>  r   r   )r0   r%   r5   r6   r  r  xy2s          r&   &test_mollweide_inverse_forward_closurer    s     *,,C	K	0	0B 	Aq#A;q!DAq	AIIKK-	.	.	0B 
		$	$	&	&	0	0	4	4B 

&
&r
*
*C J((S!44444r(   
test_alphac            	          t           j                            d           t           j                            d          } t          j                    \  }}|                    | dg dg ddd           |                    | d	z   dg dg dddd
           |                    | dz   dg dg dddd           |                    | dz   dg dg ddd           |                    | dz   dg dg ddd           d S )Nr   rj  z-Dr  r
  r  r   )r   r  r   rV  r=   r<   )r   r  r   rV  r  r:  r   r  r  r  r(  s      r&   r  r    sT   INN19BDlnnGC GGD$iii]]]b  " " " GGD1Hd---]]]b    
 GGD1Hd)))b    
 GGD1Hd---]]]b  " " " GGD1Hd---YYYb  " " " " "r(   	eventplotc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          |          }g dgt	          |           z  }g dg dg dg d	g d
g dg}||z   }dt          j        dt	          |                     dz  z   }g d}|                                |z   }	dgt	          |           z  }
g d}|
|z   }t          j                    }|                                }|	                    |||	|          }t	          |          }||k    sJ |||	|d}t          j                    }|                                }|	                    dddd|          }t	          |          }||k    sJ d S )Nr   r   r  r  )r   r<   r  r  r  r  )r<   ru  r   )r<   r   r<   )r   r<   r<   r  Q?)ir  r<   r   r  r   )r   r=   r<   r<   r   r   )r  lineoffsetslinelengths)r   r@   lor  r   r@   r  r  )r  r  r  r  )
rm   rn   ro   r  r  ru   r*   r   r   r  )rv  data2r  num_datasetscolors1colors2r  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r0   axobjcollsnum_collectionss                    r&   test_eventplotr    s   INN1Ib"X&&--//EIaW%%,,..E5=Dt99LzzlSZZ'Gyyyyyy{{yyyyG wF	!SZZ00366L+++L%%'',6K53u::%L'''L-K
*,,COOEOOD[(3  5 5E %jjOl**** fK{KKD
*,,COOEOOE#4(,4  9 9E%jjOl******r(   ztest_eventplot_defaults.pngc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          j                    }|                                }|                    |           dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r   r  r  N)rm   rn   ro   r  r*   r   r   r  )rv  r  r  r0   r  s        r&   test_eventplot_defaultsr  :  s     INN1Ib"X&&--//EIaW%%,,..E5=D
*,,COOE	OODr(   r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r>  r  N)r<   r   r<   r   c                    dgdgdgdgg}d | D             }t          |          dk    r|d         }t          j        t          j        |          t          |          df          }t          j                    \  }}t          |           dk    r| d         } |                    ||           }t          ||          D ]'\  }}t          |
                                |           (dS )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r<   r=   r   c                     g | ]}||nd	S )Nr  r   r   r@   s     r&   r   z)test_eventplot_colors.<locals>.<listcomp>U  s     ===Q]===r(   r:  r  N)r  rm   r  r)  to_rgba_arrayr*   r    r  r  r   r  )r  r  rD  r0   r%   r  r  r   s           r&   test_eventplot_colorsr  K  s     C!qcA3D >=f===H 8}}A;w4X>>TAOOHlnnGC
6{{a,,tF,33K;11 1 1e((%00001 1r(   c                     t          j                    \  } }|                    g dg dgd          }|d                                         dk    sJ |d                                         dk    sJ |                    g dg dgddg          }|d                                         dk    sJ |d                                         dk    sJ t	          j        t          d	          5  |                    g dg dgg d
           d d d            n# 1 swxY w Y   t	          j        t          d	          5  |                    g dddg           d d d            d S # 1 swxY w Y   d S )N)r   r=   r:  )r<   r   r   rq  r  r  r   r<   r   zalpha and positions are unequalr|  )r   r  ra  )r*   r    r  	get_alphar   r   r  )r0   r%   r  s      r&   test_eventplot_alphar  e  s   lnnGC ,,			<<<8,DDKq>##%%,,,,q>##%%,,,, ,,			<<<8c
,KKKq>##%%,,,,q>##%%,,,,	z)J	K	K	K G G
iii.oooFFFG G G G G G G G G G G G G G G 
z)J	K	K	K 2 2
YYYsCj1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s$   . DD!D E))E-0E-z!test_eventplot_problem_kwargs.pngc           
         t           j                            d           t           j                            dg                                          }t           j                            dg                                          }||g}t	          j                    }|                                }|                    |ddgddgdd	gd	dgd
dgddg           t          |           dk    sJ t          d | D                       sJ dS )z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   r  r   rT  r/  r@   r  r=   r<   r   dasheddashdotr  )r  r   r/  rA  r  r   r   c              3   T   K   | ]#}t          |j        t          j                  V  $d S r!  )
issubclasscategoryr   rs  )r   wis     r&   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  sE       " " "+s'GHH " " " " " "r(   N)
rm   rn   ro   r  r*   r   r   r  r  r  )recwarnrv  r  r  r0   r  s         r&   test_eventplot_problem_kwargsr  y  s%    INN1IbT""))++EIbT""))++E5>D
*,,COOE	OOD:* !1v !f '2((3  5 5 5 w<<1 " " " " " " " " " " " "r(   c                      t          j        dd          \  } }|                    g gdg           t          j                     d S )Nr<   )r  r  r  r  r  r*   r    r  r"  r/   s     r&   test_empty_eventplotr    sB    l1a  GCLL"34L555HJJJJJr(   r  rW   )Nr  rU   c                     |i nd|i}t          j        dd          \  }} |j        | fi | t          j                     dS )z#Introduced when fixing issue #6412.NrW   r<   r  )r  rW   optsr0   r%   s        r&   test_eventplot_orientationr    sU     $22=+*FDl1a  GCBLHJJJJJr(   c                    t          j         ddd          t          j         ddd          t          j         ddd          g}t          j         ddd          t          j         ddd          g}|                                }|                    |d           |                    |d           |                                 }|                    ||g           d S )	Nr  r<   r=   r   r	  r  r   )r  )rC  r    r  )r#   r$   ts_1ts_2r%   s        r&   test_eventplot_units_listr    s     dAq))8+<T1a+H+HdAq))+DdAr**H,=dAr,J,JKD					BLL1L%%%LL1L%%%					BLL$r(   zmarker_styles.pngc            
         t          j                    \  } }t          t          j        j        j        d           }|                    d           dg|}t          |          D ]\\  }}|                    |dz  dz  t          j
        d          dz  z   t          j        d          dz  |z  d|d|dz  z   |           ]d S )	Nc                 Z    t          t          |                     t          |           z   S r!  )r;  rL  r5   s    r&   r  z$test_marker_styles.<locals>.<lambda>  s    3tAww<<A#6 r(   )rG  r;  r=   r   r   r   )r   r   r   r3   )r*   r    sortedrZ   markersr  rt  r  r   rm   ru   r   )r0   r%   r  r6   r   s        r&   test_marker_stylesr    s    lnnGC
 Z'3;668 8 8GNN6  Gw'' @ @	6
Q	BIbMM",,bgbkk"nQ.>""QqS& 	 	@ 	@ 	@ 	@@ @r(   zrc_markerfill.pnggl?c                      t          j                    \  } }t          j        d          }t	          g d          D ]1\  }\  }}|t
          j        d<   |                    ||z   |           2d S )Nrq  ))rB   r  )rS   r   )r;  r  zmarkers.fillstylerP  )r*   r    rm   ru   r  rZ   r   r   )r0   r%   r5   idxr   r   s         r&   test_markers_fillstyle_rcparamsr    s     lnnGC
	!A ):::!< !< & &_eV38
/0
#f%%%%& &r(   zvertex_markers.pngc                  H   t          t          d                    } d}g d}t          j                    \  }}|                    | d|d           |                    | d d d         d|d           |                    ddg           |                    ddg           d S )Nr   ))r   r   ry  r  rz  r   rS  r  r   r/  )r*  r   r*   r    r   r  r  )r  marker_as_tuplemarker_as_listr0   r%   s        r&   test_vertex_markersr	    s    b		??D:O999NlnnGCGGDBCG@@@GGD2J"^GEEEKKRKKRr(   vline_hline_zordererrorbar_zorderx86_64g9v?c                  ~   t          t          d                    } t          j                    }|                                }|                    | dd           |                    dddd           |                    dddd           |                    dd	dd           |                    d
ddd           |                    d           t          j                    }|                                }t          t          d                    } t          j
        d          }t          t          d                    }|                    | ||ddd           t          d          D ]5}|                    |dd|           |                    | dd|           6|                    d           d S )Nr   r   )rV  r  r<   r>  )r   rV  r  r   rq  r  r=   rS  r   zaxvline and axhline zorder testrT  )r\  r  rV  r   )rV  r   r  zerrorbar zorder test)r*  r   r*   r   rn  r   rw   axvliner8   rm   r  rW  )r5   r0   r%   r6   r\  rx  s         r&   test_eb_line_zorderr		    s    	U2YYA *,,C	BGGA"QGJJq"QJ///JJqBrJ222JJq1J---JJq1J---LL2333 *,,C	BU2YYA
Ab		??DKK14asK;;;2YY 2 2


1#a
000


A2!3q
1111LL'(((((r(   c                    |                                  }|                    dd           |                    ddgddgd           |                    ddd	
           |                                 }|                    dd           |                    ddgddgd           |                    ddgddgd	
           d S )N)r  r   )rk  r<   r~  r  r  z.-)r<   rk  )r   r  rS  r`  r<   r   rk  r  )r    r   r  axliner"   s      r&   test_axline_loglogr	    s    					BFF		F***IIr2hR$'''IIisI+++					BFF		F***IIr2hR$'''IIq"gd|sI+++++r(   c                    |                                  }|                    dd           |                    dd           |                    ddd           |                    dd	d
           |                    ddd           |                    ddd           |                    dt          d          d           |                                 }|                    dd           |                    ddgddg           |                    dd           |                    dd
           |                    dd           |                    ddgddgd           |                    dd           d S )Nrz  r~  r  r  r|  rp  rU  )r   r   r<   r   rq  )gffffffr  r   r!  )sloper   )r<   r  r  C4)r  r<   infr	  r   r<   r   )r    r   r	  r  r   rw   r	  r"   s      r&   test_axliner	    s|   					BFFgF&&&IIffIIffDI)))IIhI---IIl!4I000IIit4I000IIiuU||4I888					BFFgF&&&GGRGb!WJJqJJJs$JJJt4J   GGRGc4[G---JJt4J     r(   c                 |   |                                  }|                    dd           |                    dd|j                   |                    ddd|j                   |                    d	d
d|j                   |                    ddd|j                   |                                 }|                    dd           |                    ddgddg           |                    d
dgdd
gd           |                    ddgd
d
gd           |                    d
d
gddgd           d S )Nrz  r~  r  r<   r	  r>  r	  rp  r	  r   r>  r   r   r   rq  )r   r   )r   r<   r!  )r   r>  r   rU  )r    r   r	  rJ  r   r"   s      r&   test_axline_transaxesr	    s@   					BFFgF&&&IIfAI666IIhatr|IDDDIIjIFFFIIhIEEE					BFFgF&&&GGRGb!WGGQFRG4G(((GGRGaV4G(((GGQFRG4G(((((r(   c                    |                                  }|                    dd           |                    dd|j                   |                    ddd|j        	           |                    dd
d|j        	           |                    dd           |                     dd           |                                 }|                    dd           |                    dd           |                    d
dgd
dg           |                    d
dgd
dgd           |                    d
dgddgd           d S )Nrz  r~  r  r<   r	  r	  r=   rp  r	  r   rq  )r   r   rm  r   r   r   rU  )r    r   r	  rJ  set_size_inchesr   r"   s      r&   test_axline_transaxes_panzoomr	  /  sH    
				BFFgF&&&IIfAI666IIjIFFFIIjIFFFFFWF%%%Q"""					BFFWF%%%Aq!!!GGQFQFGGQFQG4G(((GGQFQF$G'''''r(   c                     t          j                    \  } }t          j        t                    5  |                    d           ddd           n# 1 swxY w Y   t          j        t                    5  |                    ddd           ddd           n# 1 swxY w Y   |                    d           t          j        t                    5  |                    dd           ddd           n# 1 swxY w Y   |                    d           |                    d           t          j        t                    5  |                    dd           ddd           n# 1 swxY w Y   |                    d           t          j        t                    5  |                    dd           t          j	                     ddd           dS # 1 swxY w Y   dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr  r<   )r	  r8  re  )
r*   r    r   r   r   r	  rf  r  r  r"  r/   s     r&   test_axline_argsr	  C  s   lnnGC	y	!	!  
		&              	y	!	! + +
		&&	***+ + + + + + + + + + + + + + +MM%	y	!	! # #
		&	"""# # # # # # # # # # # # # # #MM(MM%	y	!	! # #
		&	"""# # # # # # # # # # # # # # #MM(	z	"	"  
		&&!!!


                 sY   AAA6BB"BC88C<?C<E**E.1E.#*GG!G)vlines_basicvlines_with_nanvlines_maskedc                     g d} g d}t          j                    \  }}|                    | d|dd           g d}dd	d
dt          j        dg}t          j        d
d          \  }\  }}}	|                    |d|dd           g d}
t          j        dd	d
ddg}|                    |
d|dd
d           g d}t          j        dd	d
dt          j        g}|	                    |d|dd           ||||	fD ]}|                    dd           |                                |                                k    sJ |                                |                                k    sJ |                                |	                                k    sJ t          j                    \  }}t          j                            g dd          }t          j                            g dd          }t          j                            g dd          }|                    |||dd           |                    dd           d S N)r=   r   r:  r   rq  )r=   r   r  r=   r   r  r   r  rA  )r=   r   r:  r   r  rq  r=   r"	  r   r  )r:  r  )r  r  rT  rR  )r  rA  r   rS  r   )r=   r:  r  r  r   r  )r   r<   r   r   r=   r<   )r  rF  r	  r     r\  r\  r	  )	r*   r    rv   rm   r  r  r   r
   masked_equal)rB  r  rS  r  r\  r]  rT  r&  r'  rL  x3ro  x4y4r%   fig3ax5x5ymin5ymax5s                       r&   test_vlinesr.	  W  N    
B			BID#JJr1bJ222 
		B
RArvq	!BLq&AAAD/3SJJr1bJ222			B
&!RAq	!BJJr1bTJBBB			B
&!RArv	&BJJr1bJ222 Cc"  
Ar <<>>S\\^^++++<<>>S\\^^++++<<>>S\\^^++++ID#			000!	4	4BE222A66EE777<<EJJr5%qJ999LLBr(   c                  (   t          j                    \  } }t          j        ddi          5  |                    ddd          }t          j                            |                                d          sJ 	 d d d            d S # 1 swxY w Y   d S Nzlines.colorr>  r   r   r<   )r*   r    r   r   rv   r  r  r  r0   r%   rV  s      r&   test_vlines_defaultr3	        lnnGC	.	/	/ ? ?		#q!$$z$$U__%6%6>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?   ABBB)hlines_basichlines_with_nanhlines_maskedc                     g d} g d}t          j                    \  }}|                    | d|dd           g d}dd	d
dt          j        dg}t          j        d
d          \  }\  }}}	|                    |d|dd           g d}
t          j        dd	d
ddg}|                    |
d|dd
d           g d}t          j        dd	d
dt          j        g}|	                    |d|dd           ||||	fD ]}|                    dd           |                                |                                k    sJ |                                |                                k    sJ |                                |	                                k    sJ t          j                    \  }}t          j                            g dd          }t          j                            g dd          }t          j                            g dd          }|                    |||dd           |                    dd           d S r!	  )	r*   r    hlinesrm   r  r  r   r
   r%	  )r  rB  rS  r  r]  r\  rT  r&  r'  rL  ro  r&	  r(	  r'	  r%   r)	  r*	  y5xmin5xmax5s                       r&   test_hlinesr>	    r/	  r(   c                  (   t          j                    \  } }t          j        ddi          5  |                    ddd          }t          j                            |                                d          sJ 	 d d d            d S # 1 swxY w Y   d S r1	  )r*   r    r   r   r:	  r  r  r  r2	  s      r&   test_hlines_defaultr@	    r4	  r5	  r   r  r:  c                    g d}|                      ddd                              |dd|d           |                      ddd                              |dd|d           g d}g d}|                     ddd                              |dd|d           |                     d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  )r   rv   r:	  )r#   r$   r  test_colors	expect_xyexpect_colors         r&   test_lines_with_colorsrE	    s%    ?>>KAq!!((q!0;q ) J J JAq!!((q!0;q ) J J J I555L1a  ''	1a/;q ( J J J1a  ''	1a/;q ( J J J J Jr(   vlines_hlines_blended_transform)r   r   c                     t          j        ddd          } t          j        |            t          j        dt           j        z  | z            z   dz   }t          j        ddd          \  }\  }}|                    | |d	           |                    dd
gdd|	                                d           |                    | |d	           |
                    ddgdd|                                d           d S )Nr  r;  r  r=   r   r<   r  r  rR  r  r}  r   r   rT  )rk   rl   r>  r  r  rq  r  )yminymaxr>  r  )rm   ru   rw  r  r  r*   r    r   r:	  get_yaxis_transformrv   get_xaxis_transform)r  r  r0   haxvaxs        r&   $test_vlines_hlines_blended_transformrO	    s    		#tS!!A
r

RVAIM***R/Al1a888OC#sHHQ3JJAwQS00223  @ @ @HHQ3JJ1vADC4K4K4M4M      r(   step_linestyler  c            	      f   t          j        d          x} }t          j        dd          \  }}|                                }g d}t          ||          D ]\  }}|                    | |d|d           |                    | |dz   d|d           |                    | |dz   d|d	           |                    d
dg           |                    d
dg           | ||dz   |dz   d}t          j        dd          \  }}|                                }g d}t          ||          D ]\  }}|                    ddd|d|           |                    ddd|d|           |                    ddd|d	|           |                    d
dg           |                    d
dg           d S )Nr   r=   )rQ  rR  r  r  r   pre)rV  r   rJ  r<   r  ra  r   rq  )r  Y0Y1Y2r  rS	  )rV  r   rJ  r  rT	  rU	  )	rm   ru   r*   r    rW  r  r  r  r  )r5   r6   r0   ax_lst	ln_stylesr%   r6  r  s           r&   test_step_linestylerX	    s   
 IbMMA ,q!$$KC^^F&&&Ifi((  B
1b666
1q5Q"E:::
1q5Q"F;;;
RG
RG !1Q3ac22D,q!$$KC^^F&&&Ifi((  B
Ta2UFFF
Ta2UFFF
Ta2V$GGG
RG
RG r(   mixed_collectionc                     t          j                    \  } }t          j        dddd          }t          j                            |gd          }|                    ddgd	d	gg           |                    d
dg           t          j                            |gd          }|                    ddgddgg           |                    d
dg           |	                    g dg dg           |j
                            d           |                    |           |                    |           |                    dd           |                    dd           d S )Nr  r  r:  r;  r   radiusr?  r@  T)match_originalr   r]  r<   r   rH  ii)r   r   r  r   )r   r   r  r   r  r  )r*   r    r  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr$  r  r0  r  r  )r0   r%   r@   r/  r0  s        r&   test_mixed_collectionrd	    sh    lnnGCqFgNNNA 
	(	(!T	(	B	BBNNQFRH%&&&q!f 
	(	(!T	(	B	BBNNRGc3Z()))q!f''')9)9)9:;;;HubbKK2KK2r(   c                      t          j        t          j        d          t          j        d          d          } |                                  |                                                                 dk    sJ d S )Nr   r<   )r   r<   r   r   )r*   ru  rm   int32r   r  get_subplotspecget_geometryr  s    r&   test_subplot_key_hashri	    sa    	RXa[["(1++q	1	1BHHJJJ,,..,>>>>>>r(   )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r   r   c                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        t          j        dt          j        z  t          j	        
                    ||          z                                d                    }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}||f||ffD ]	\  }	}
|
dz  }t          dt          j        t          j        |
                    z            }t%          t'          j                                        d          |          D ] \  }}|                    |	|
||||           !t%          t'          j                                        d          |          D ]>\  }}|                    |	|
||||dt           j                                                   ?dS )z)Test axes.specgram in default (psd) mode.r   r  r  r;  r:  r   r^  @ffffff@'@r   r   r<   r=   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesre  )rr	  rs	  rt	  ru	  rv	  r7  r  N)rZ   r   intrm   r  ru   r  r  r  multiplyouterr  rn   ro   r  r   r   log2r  r*   r   r    specgramr  r  )r  rs	  fstims
NFFT_freqsr5   y_freqs
NFFT_noisey_noise	all_sidesr6   rr	  rt	  ru	  r%   rv	  s                  r&   test_specgramr	    sp    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvf~~-..J
	!Q"An
q25y2;,,VQ77788<<!<DDF FG R"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 	J 	J419Q"'"'$--00011SZ\\22155yAA 	4 	4IBKKh%U  4 4 4 4SZ\\22155yAA 	J 	JIBKKh%U&Z->-F-F-H-H  J J J J	J	J 	Jr(   )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        dt          j        z  t          j        	                    ||          z            
                    d          }d|dddf<   t          j        |          }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}	||f||ffD ]\  }}
|
dz  }t          dt          j        t          j        |
                    z            }t'          t)          j                                        d          |	          D ]!\  }}|                    ||
||||d           "t'          t)          j                                        d          |	          D ]?\  }}|                    ||
||||ddt           j                                        	  	         @dS )z%Test axes.specgram in magnitude mode.r   r  r  r;  r:  r   r^  rl	  rm	  rn	  r  r   r<   r=   r  Nr   r   ro	  r   	magnituderr	  rs	  rt	  ru	  rv	  ri   re  )rr	  rs	  rt	  ru	  rv	  ri   r7  r  )rZ   r   rw	  rm   r  ru   r  r  rx	  ry	  r  r  rn   ro   r  r  r   r   rz	  r  r*   r   r    r{	  r  r  )r  rs	  r|	  r}	  r5   r6   r~	  r	  r	  r	  rr	  rt	  ru	  r%   rv	  s                  r&   test_specgram_magnituder	  :  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FS2Xv.//J
	!Q"A
q25y2;,,VQ77788<<!<DDAAaaaeHillGR"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 	J 	J419Q"'"'$--00011SZ\\22155yAA 	F 	FIBKKh%U  F F F FSZ\\22155yAA 	J 	JIBKKh%U&Z->-F-F-H-H  J J J J	J	J 	Jr(   )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        dt          j        z  t          j        	                    ||          z            
                    d          }d|dddf<   t          j        |          }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}	||f||ffD ]\  }}
|
dz  }t          dt          j        t          j        |
                    z            }dD ]}t'          t)          j                                        d          |	          D ]o\  }}|                    ||
|||||           t1          j        t4                    5  |                    ||
|||||d           ddd           n# 1 swxY w Y   pdS )z,Test axes.specgram in angle and phase modes.r   r  r  r;  r:  r   r^  rl	  rm	  rn	  r   r   r<   r=   r  Nr   ro	  )r  phaser   r	  dB)rr	  rs	  rt	  ru	  rv	  ri   r7  )rZ   r   rw	  rm   r  ru   r  r  rx	  ry	  r  r  rn   ro   r  r  r   r   rz	  r  r*   r   r    r{	  r   r   r  )r  rs	  r|	  r}	  r5   r6   r~	  r	  r	  r	  rr	  rt	  ru	  ri   r%   rv	  s                   r&   test_specgram_angler	  _  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvf~~-..J
	!Q"A
q25y2;,,VQ77788<<!<DDAAaaaeHillGR"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 
, 
,419Q"'"'$--00011& 	, 	,D !6!6q!9!99EE , ,	EADR(#)T  C C C]:.. , ,KKh'-U&*   , , ,, , , , , , , , , , , , , , ,,	,
, 
,s   %I	IIc                      t          j        t          j        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  Nre  )rs	  r7  r   `   )r*   r{	  rm   r   
get_extent)specfreqsr  r  rk   rl   freq0freq1s           r&   test_specgram_fs_noner	    sX    bgcllt8LLLD%B!}}D$u2::$"******r(   c                 .   t          j        d          }t          j        |          }dt          j        d<   |                                                    |           dt          j        d<   |                                                     |           dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r  upperzimage.originr   N)rm   ru   r  r*   r   r    r{	  )r#   r$   r  signals       r&   test_specgram_origin_rcparamr	    s     		#AVAYYF#*CL  ''' $+CL    (((((r(   c                      t          j        d          } t          j        |           }t          j        t
                    5  t          j        |d           ddd           dS # 1 swxY w Y   dS )z4Ensure passing origin as a kwarg raises a TypeError.r  r   r  N)rm   ru   r  r   r   r   r*   r{	  )r  r	  s     r&   test_specgram_origin_kwargr	    s    
	#AVAYYF	y	!	! - -VG,,,,- - - - - - - - - - - - - - - - - -s   A&&A*-A*)zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c            
      h   d} d}|dz  |dz  |dz  g|dz  |dz  |dz  gg}t          d	|z  t          j        |          z            }t          j        d
| d|z            }t          j        dt          j        z  t          j                            ||          z                                d          }t          d	|z  dz            }t          j	        
                    d
           t          j	                            |           t          j	                            |           g}ddiddddddg}||f||ffD ]r\  }	}
|
dz  }t          dt          j        t          j        |
                    z            }t          t!          j                                        d          |          D ]m\  }} |j        t          j        |	          f|
|||d|}t+          |          d|                    dd          z   k    sJ |                    dd           nt          t!          j                                        d          |          D ]Z\  }} |j        |	|
|||d|}t+          |          d|                    dd          z   k    sJ |                    dd           [td S )Nr        Y@r:  r   r^  rl	  rm	  rn	  r  r   r<   r=   r  rv	  r  rp	  F)rv	  return_linerq	  Tr   )rr	  rs	  rt	  ru	  r	  r   xlabelylabel)rw	  rm   r  ru   r  r  rx	  ry	  r  rn   ro   r  r   r   rz	  r  r*   r   r    psdr  r  r  r   csd)r  rs	  r|	  r}	  r5   ys_freqsr	  ys_noise
all_kwargsr  rr	  rt	  ru	  r%   r  rets                   r&   test_psd_csdr	    s    	A	B!tRT2b5!BsFBsFBtG#<=FTBY/00J
	!Q"Ava"%i"+"3"3FA">">>??CCCKKHTBY^$$JINN1	))!,,binnQ.?.?@HI&&u==&t<<>J 
+h
-CD ) )D19Q"'"'$--00011cjll33A66
CC 	) 	)JB"&++ E$2"*6E E=CE ECs88q6::mU#C#CCCCCCFF"RF((((cjll33A66
CC 	) 	)JB"&"4B"*6E E=CE ECs88q6::mU#C#CCCCCCFF"RF((((		)) )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                  
   d} d}|dz  |dz  |dz  g}t          d|z  t          |          z            }t          dt          j        t          j        |                    z            }t          j        d| d	|z            }t          j        dt          j        z  t          j        ||          z            d
t          j        d          z  z  	                    d	          }t          j
                            d           t          j        t          j
                            |           t          j
                            |           g          dz
  }g d}||d}	||fD ]}
t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1t          t!          j                                        d          |          D ]4\  }} |j        |
fd|i|	ddi\  }}}|                    dd           5t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1d S )Nr  r	  r:  r   r^  r  r=   r   r<   r   r   r  r   ro	  )rs	  ru	  rv	  r   r	  r7  r	  )rw	  r  rm   r   rz	  ru   r  r  ry	  r  rn   ro   r  r  r   r  r*   r   r    magnitude_spectrumr   angle_spectrumphase_spectrum)r  rs	  fstims1rr	  ru	  r5   r~	  r	  r	  r  r6   r%   rv	  r	  r	  r  s                   r&   test_spectrumr	    s/    	A	B!tRT2b5!Gtby3w<<'((Dbgbgdmm,,,--F
	!Q"Aq25y28Aw#7#77882ry||;KK INN1i22155ry~~a7H7HIJJROG333I&))Fw ) )SZ\\22155yAA 	) 	)IB 5 5a O Ou O O OD%FF"RF((((SZ\\22155yAA 	) 	)IB 5 5a !B !Bu !B !B !B<@!B !B !BD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((	)) )r(   c                     t          j                                        d          } | D ]}|j                            d           t          j        d          5  | d                             t          j        d                     | d         	                    t          j        d          t          j        d                     d d d            d S # 1 swxY w Y   d S )	Nr=   T)r  r  r  r   r   r<   )
r*   r   r    r`   r   rm   r
  r	  r  r	  r  r%   s     r&   test_psd_csd_edge_casesr	    s    
*,,


"
"C $ $
d####	H	%	%	% - -A

28A;;A

28A;;,,,- - - - - - - - - - - - - - - - - -s   A.CCCc                 Z   |                                  }|                                }|                                }|                                 |                                 |                                 }|j                                         |j                                         d S r!  )r   r  r  rt  r^   tick_bottomr`   	tick_left)r#   r$   rz   ax_twinxax_twinyr{   s         r&   test_twin_remover	    s    ""$$G}}H}}HOOOO  ""F L
Lr(   ztwin_spines.pnggI+?c                     d } t          j        d          }|                    d           |                                }|                                }|                                }|j        j                            d            | |           |j        j                            d           |	                    g dg dd	          \  }|	                    g dg d
d          \  }|	                    g dg dd          \  }|
                    dd           |                    dd           |                    dd           |                    dd           |j        j                            |                                           |j        j                            |                                           |j        j                            |                                           t!          dd          } |j        dd|                                d|  |j        dd|                                d|  |j        dd|                                d|  |j        dddi| d S )Nc                     |                      d           | j                            d           | j        d d                              d           d S )NTF)set_frame_onr$  r!   spinesr  s    r&   make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisible  sN    

U###
	!!!  '''''r(   )r:  r   rR  ru  )rF   )rs  rF  TrQ  zb-)r   r   r=   zr-)rj  r   r	  zg-r   r=   r:  r<   A   r   )r  r  r6   )r,  r  r,  r5   r   )r*   r   r  r   r  r	  rF   set_positionr!   r   r  r  r`   r3   r  r  r  tick_params)	r	  r0   hostpar1par2r/  r0  p3tkws	            r&   test_twin_spinesr	    sj   ( ( (
 *V
$
$
$Cd###??D::<<D::<<D 	K""=111  %%%K!!$'''
))IIIyyy$
/
/CB
))IIIyyy$
/
/CB
))III|||T
2
2CBMM!QMM!QMM!QMM!RJr||~~...Jr||~~...Jr||~~...
AS
!
!
!CD<#bllnn<<<<<D<#bllnn<<<<<D<#bllnn<<<<<D%%#%%%%%%r(   ztwin_spines_on_top.pngc                     dt           j        d<   dt           j        d<   t          j                    } |                     ddd          }t          j        g dg dg          }|                                }|                    |d         |d         dz  d	
           |	                    |d         |d         dz  d	d           |                    |d         |d         dz  d
           |	                    |d         |d         dz  dd           |d         |d         dz  d}t          j                    } |                     ddd          }|                                }|                    ddd	|           |	                    ddd	d|           |                    ddd|           |	                    dddd|           d S )Ng      H@r<  r"  r<   )r  iL  i  i  )r  i-  r   r  r   g     @@z#BEAED4rU  r  )r   r  z#7FC97Fr   )rM  rx  rM  rx  )r   r  )r   r  r  )
rZ   r   r*   r   r   rm   rY  r  r   r  )r0   r  r  r&  s       r&   test_twin_spines_on_topr	  :  s    -1J()-1J)*
*,,C
//!Q
"
"C8---)))+ , ,D ))++CHHT!Wd1gckH333T!Wd1gck"EEEHHT!Wd1gckH333T!Wd1gck"EEE atAws{++D
*,,C
//!Q
"
"C
))++CHHS#YTH222S#YbtDDDHHS#YTH222S#YbtDDDDDr(   z(grid_which, major_visible, minor_visible))r   TT)majorTF)r,  FTc                 H   t           j                            d| d           t          j                    \  }}|j                                         t          fd|j        j	        D                       sJ t          fd|j        j
        D                       sJ d S )NT)rk  zaxes.grid.whichc              3   R   K   | ]!}|j                                         k    V  "d S r!  gridliner#  )r   tickmajor_visibles     r&   r  z*test_rcparam_grid_minor.<locals>.<genexpr>b  J       0 0 }((**m; 0 0 0 0 0 0r(   c              3   R   K   | ]!}|j                                         k    V  "d S r!  r	  )r   r	  minor_visibles     r&   r  z*test_rcparam_grid_minor.<locals>.<genexpr>d  r	  r(   )r   r   r  r*   r    r  r"  r  r^   
majorTicks
minorTicks)
grid_whichr	  r	  r0   r%   s    ``  r&   test_rcparam_grid_minorr	  Y  s     LdzJJKKKlnnGCJOO 0 0 0 08.0 0 0 0 0 0 0 0 0 0 0 08.0 0 0 0 0 0 0 0 0 0r(   c                     t          j                    \  } }|                                 | j                                         |j        j        d         j                                        sJ |                    d           | j                                         |j        j        d         j                                        rJ |                    d           | j                                         |j        j        d         j                                        sJ |                                 | j                                         |j        j        d         j                                        rJ d S )Nr   FvisibleT)	r*   r    r  r  r"  r^   r	  r	  r#  r/   s     r&   	test_gridr	  h  s5   lnnGCGGIIIJOO8q!*6688888GGEGJOOx"1%.::<<<<<GGDGJOO8q!*6688888GGIIIJOOx"1%.::<<<<<<<r(   c                  H   t          j                    \  } }|                    ddd           |j        j        d         j                                        rJ |                    d           |j        j        d         j                                        sJ t          j        ddi          5  |	                                 |                    ddd           |j        j        d         j                                        sJ 	 d d d            d S # 1 swxY w Y   d S )	NTr	  r   )resetr.  	labelsizer   r>  rU  rk  )
r*   r    r	  r^   r	  r	  r#  r  r   r  r/   s     r&   test_reset_gridr	  x  sM   lnnGCNNWN;;;x"1%.::<<<<<GG%G8q!*6688888	d+	,	, = =




TB???x"1%.::<<<<<<= = = = = = = = = = = = = = = = = =s   1ADDDc                 H   || fD ]`}|                                 }|                    d           |                    dddddddd	d
ddd           |                                 a| j        D ]4}|j                                         |j                                         5d S )NTinr   r   r  r  rF  rp  r  rq  r  r   rR  )	directionlengthr  r   padr	  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r	  draw_without_renderingrs  r^   reset_ticksr`   )r#   r$   r0   r%   s       r&   test_reset_ticksr	    s    " % %__

2QdTA	 	 	! 	! 	!
 	""$$$$
 m  

 r(   c                     t          j        dddddddddd		          5  t          j                    \  } }d d d            n# 1 swxY w Y   |                                  |j        j        d
         }|j        j        dd          D ]n}|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j	        |j	        k    sJ |j
        |j
        k    sJ |j        |j        k    sJ od S )Nr	  r   r   r  r  TrF  rp  )	xtick.directionzxtick.major.sizezxtick.major.widthxtick.colorzxtick.major.padxtick.bottom	xtick.topxtick.labelsizextick.labelcolorr   r<   )r*   r   r    r	  r^   r	  _size_width	_base_pad_labelrotation_zorder_tickdir)r0   r%   
first_tickr	  s       r&   test_context_ticksr	    sm   	#RSB t!t	= = 
> 
> ! !
 ,..R! ! ! ! ! ! ! ! ! ! ! ! ! ! !    $Q'J#ABB' 4 4zZ-----{j/////~!55555"j&?????|z11111}
 3333334 4s   AA	Ac                      t          j                    } |                                 }|                    d           |                    g d           t          |                                d           d S )Nr   )rn  r   r  r  )rn  r  )r*   r   rn  r	  r   r   r   r/   s     r&   test_vline_limitr	    s`    
*,,C	BJJsOOOGG   BKKMM9-----r(   zfv, fh, args)r<   r  c                 &   t           j                            d          }t          j        t
          d          5   | ||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   | |d|d d d d            n# 1 swxY w Y   t          j        t
          d          5   |||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   ||d|d d d d            d S # 1 swxY w Y   d S )	Nr<   z"ymin must be a single scalar valuer|  rI	  rJ	  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rk   rl   z"xmax must be a single scalar value)rZ   r  num2dater   r   r  )fvfhargsbad_lims       r&   test_axline_minmaxr
    s3    ''**G	z)M	N	N	N ( (
DwQ''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z)M	N	N	N ( (
Dqw''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
z)M	N	N	N ( (
DwQ''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z)M	N	N	N ( (
Dqw''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sG   
AAA7
BBB3
C		CC/
DD
D
c                  0   t          j        dddd          \  } }|d                             g dg d           |d                                         \  }}|d                                         \  }}|dk    sJ |dk    sJ |dk    sJ |d	k    sJ d S )
Nr<   r=   T)r  r  r  rm  r   r  )r=   r:  r  r   r  )r*   r    r   r   r   )r0   r  rs  rB  rt  r  s         r&   test_empty_shared_subplotsr
    s    |!1T$GGGHCFKK			999%%%V__FBV__FB777777777777777777r(   c                     dD ]} t          j        dd          \  }}|d                             d| d           |d                                         dk    sJ |d                                         | k    sJ t          j        dd          \  }}|d                             d|            |d                                         d	k    sJ d S )
Nboxdatalimr=   T)r  r  r   )
adjustablesharer<   r
  r  )r*   r    
set_aspect
get_aspectget_adjustable)r
  r0   r  s      r&   test_shared_with_aspect_1r
    s    ( - -
<a555SA!
$???1v  ""a''''1v$$&&*4444<a555SA!
3331v  ""f,,,,,- -r(   c                     t          j        ddd          \  } }|d                             dd           |d                             ddgddg           |d                             ddgddg           t          j                     |d                                         |d                                         k    sJ |d                                         |d                                         k    sJ d S )	Nr=   T)r  r  rm  r   )r	
  r<   r   r:  )r*   r    r
  r   r"  r   r   r  s     r&   test_shared_with_aspect_2r
    s    |!D>>>HCFat$$$FKKAAFKKAAHJJJq6??A 1 11111q6??A 1 1111111r(   c                  p   dD ]} t          j        dd          \  }}|d                             d|            |d                             d|            |d                             ddgd	d
g           |d                             d	d
gddg           t          j                     |d                                         |d                                         k    sJ |d                                         |d                                         k    sJ |j        j        |j        j	        z  }|D ]|}|
                                }|j        |j	        z  }|j        j        |j        j	        z  }||z  |z  }t          |d
          t          |                                d
          k    sJ }d S )Nr
  r=   T)r  rm  r   r

  r<   r   r   r:  )r*   r    r
  r   r"  r   r   bbox_inchesr  r  get_positionviewLimr  r
  )	r
  r0   r  
fig_aspectr%   r  
box_aspect
lim_aspectrD  s	            r&   test_shared_with_aspect_3r
    s   ( C C
<a555SA!
333A#*555AQFQF###AQFQF###


1v  CFOO$5$555551v  CFOO$5$55555_+co.CC
 	C 	CB!!AAG+J*RZ-==J!J.;H1%%r}})B)BBBBBB	CC Cr(   c                     t          j        dddd          \  } }|d                             d           t          j        t
          d          5  |                                  d d d            d S # 1 swxY w Y   d S )	Nr<   r=   Tr  rm  r   r  zset_aspect\(..., adjustable=r|  )r*   r    r,  r   r   RuntimeErrorr	  )r0   rs  s     r&   test_shared_aspect_errorr
    s    Q$t<<<ICGLL	|+J	K	K	K % %""$$$% % % % % % % % % % % % % % % % % %s   A44A8;A8zerr, args, kwargs, matchr9  z@axis\(\) takes from 0 to 1 positional arguments but 2 were given)r  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zThe first argument to axis*r  z1axis\(\) got an unexpected keyword argument 'foo'c                     t          j        | |          5  t          j        |i | d d d            d S # 1 swxY w Y   d S Nr|  )r   r   r*   r,  errr	  r  r}  s       r&   test_axis_errorsr!
    s     
s%	(	(	( " "$!&!!!" " " " " " " " " " " " " " " " " "   6::c                     t          j                    } t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd           d d d            n# 1 swxY w Y   t          j        t          d          5  | 	                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    d	
           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     ddd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     ddd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            d S # 1 swxY w Y   d S )Nzunknown value for which: 'foo'r|  r  z!Cannot supply both positional andr  r   zargument must be amongzscilimits must be a sequencer<   )	scilimitszSpecifying 'loc' is disallowedrT   )rD   r5   rB   )rD   r6   zCannot pass both 'left'r   )rT   rk   zCannot pass both 'right')rF   rl   zCannot pass both 'bottom')rS   rI	  zCannot pass both 'top')rB   rJ	  )r*   rn  r   r   r  rL	  rK	  r   set_prop_cycle
set_anchorticklabel_formatr+   r,   r  r  r  s    r&   test_axis_method_errorsr(
    s   	B	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	y(K	L	L	L . .
%u---. . . . . . . . . . . . . . .	z)A	B	B	B  
e              	z)G	H	H	H ) )
a((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	y(H	I	I	I . .
e1---. . . . . . . . . . . . . . .	y(H	I	I	I - -
e!,,,- - - - - - - - - - - - - - -	y(A	B	B	B $ $
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	y(B	C	C	C % %
!!$$$% % % % % % % % % % % % % % %	y(C	D	D	D & &
11%%%& & & & & & & & & & & & & & &	y(@	A	A	A # #
"""# # # # # # # # # # # # # # # # # #s   AAA7BB B?C##C'*C'	D++D/2D/E44E8;E8F??GG%H

HH0III:JJ"%J"K((K,/K,L33L7:L7c                    t          j                    \  }} t          |d|                        }|                    d           |                    d           t	          |j        j        |j        j                   d S )Nr)  r   r=   )r*   r    r0  r
  r   bboxextents)r)  r0   r%   rL  s       r&   test_twin_with_aspectr,
  2  s~    lnnGC(gb---((**GMM!qrw|+- - - - -r(   c                     d} d}d}d}t           j                                        }|                                }|                    | |           |                                | k    sJ |                                |k    sJ |                    ||          \  }|                                |k    sJ |                                |k    sJ |                    d           |                                |k    sJ |                                |k    sJ |                    d           |	                                 |                                | k    sJ |                                |k    sJ d S )N)r  r;  )r  rl  )r  rU  FT)visible_only)
rZ   r   r   r   r   r   r   r!   relimr   )rB  r  r\  r]  r0   r%   r  s          r&   test_relim_visible_onlyr0
  =  se   	B	B	B	B


"
"
$
$C			BGGBOOO;;==B;;==BGGBOOED;;==B;;==BU;;==B;;==BHH$H;;==B;;==Br(   c                      t          j                    } |                                 }|                    d           |                    d           dS )z
    tests for issue #1172
    large)r	  outr	  N)r*   r   rn  r	  r/   s     r&   test_text_labelsizer5
  V  sJ     *,,C	BNNWN%%%NNUN#####r(   zpie_default.pngr  c            	          d} g d}g d}d}t          j        d          \  }}|                    ||| |ddd	
           d S )NFrogsHogsDogsLogsr	  r   r  r   yellowgreengoldlightskyblue
lightcoralr   r  r   r   )r  r  rR  %1.1f%%Tr@  )exploder  r  autopctshadow
startangler*   r    pie)r  sizesr  rD
  rS  r  s         r&   test_pie_defaultrK
  e  sn     -FEBBBFGV,,,ID#GGE76&dr  ; ; ; ; ;r(   )pie_linewidth_0rL
  rL
  )r   r   r   c                     d} g d}g d}d}t          j        ||| |ddddd	i
           t          j        d           | |||d}t          j                    }|                                }|                    ddddddddd	i|	  	         |                    d           t          j                     t          j        ddddddddd	i|	  	         t          j        d           d S )Nr7
  r<
  r=
  rB
  rC
  Tr@  rA  r   rD
  r  r  rE
  rF
  rG
  
wedgepropsr  )lr  r@   exr  rQ
  rP
  r@   )rD
  r  r  rE
  rF
  rG
  rO
  r  )r*   rI
  r,  r   rn  )r  rJ
  r  rD
  r  r0   r%   s          r&   test_pie_linewidth_0rR
  q  s0    -FEBBBFGGE76&dr#Q') ) ) ) HW e&@@D
*,,C	BFF3STb"A&T  3 3 3 GGG JLLLGCc#dr#Q'd4 4 4 4 HWr(   zpie_center_radius.pngc                      d} g d}g d}d}t          j        ||| |ddddd	id
d
  
         t          j        dd
dt          dd          t          dd                     t          j        d           d S )Nr7
  r<
  r=
  rB
  rC
  Tr@  rA  r   r9  r   )	rD
  r  r  rE
  rF
  rG
  rO
  r]   r]	  zCenter point)r<   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler?  )r  r  r   r*
  r  )r*   rI
  r   r  r,  r  rJ
  r  rD
  s       r&   test_pie_center_radiusr\
    s     -FEBBBFGGE76&dr#Q'sD D D D LF8 D179 9 9HDDDF F F F
 HWr(   zpie_linewidth_2.pngc                      d} g d}g d}d}t          j        ||| |ddddd	i
           t          j        d           d S )Nr7
  r<
  r=
  rB
  rC
  Tr@  rA  r=   rN
  r  r*   rI
  r,  r[
  s       r&   test_pie_linewidth_2r_
    sl     -FEBBBFGGE76&dr#Q') ) ) ) HWr(   zpie_ccw_true.pngc            
      ~    d} g d}g d}d}t          j        ||| |dddd           t          j        d	           d S )
Nr7
  r<
  r=
  rB
  rC
  Tr@  )rD
  r  r  rE
  rF
  rG
  counterclockr  r^
  r[
  s       r&   test_pie_ccw_truerb
    sg     -FEBBBFGGE76&dr    HWr(   zpie_frame_grid.pngc                  *   d} g d}g d}d}t          j        ||| |ddddd	idd

  
         t          j        |d d d         || |ddddd	idd
  
         t          j        ||d d d         | |ddddd	idd
  
         t          j        d           d S )Nr7
  r<
  r=
  rB
  rC
  Tr@  rA  r   r  )	rD
  r  r  rE
  rF
  rG
  rO
  framer]   r   )r   r=   )r   r   r  r^
  r[
  s       r&   test_pie_frame_gridre
    s     -FEBBBFGGE76&dr#Q'v' ' ' '
 GE$$B$Kdr#Q'v' ' ' '
 GE744R4=dr#Q'v' ' ' '
 HWr(   zpie_rotatelabels_true.pngc            
      ~    d} g d}g d}d}t          j        ||| |dddd           t          j        d	           d S )
N)Hogwartsr8
  r:
  r;
  r<
  r=
  rB
  rC
  Tr@  )rD
  r  r  rE
  rF
  rG
  rotatelabelsr  r^
  r[
  s       r&   test_pie_rotatelabels_trueri
    sg     1FEBBBFGGE76&dr    HWr(   zpie_no_label.pngc                      d} g d}g d}d}t          j        ||| |dddd d	  	         t          j        d	           t          j        d
d           t          j                     d S )Nr7
  r<
  r=
  rB
  rC
  Tr@  )rD
  r  r  rE
  rF
  rG
  labeldistancerh
  r  g333333rF  )r*   rI
  r,  r   rL   r[
  s       r&   test_pie_nolabel_but_legendrl
    s    ,FEBBBFGGE76&dr    HWHT3JLLLLLr(   zpie_shadow.pngc            
         g d} g d}d}t          j        dd          \  }}|d         d                             | ||ddddi	           |d         d
                             | ||ddddi	           |d
         d                             | ||ddddddddi	           |d
         d
                             | ||dddddddi	           d S )Nr<
  r=
  rB
  r=   r   Tr@  rA  )rD
  r  rF
  rG
  rO
  r<   Fr  ra  r;  )oxoyshader@  r  r  )rn
  rA  rp
  rH
  )rJ
  r  rD
  r  rs  s        r&   test_pie_shadowrq
    s3    EBBBFGl1a  GAtGAJNN5'&2*A.  0 0 0 	GAJNN5'&B*A.  0 0 0 	GAJNN5'&!&ecPVWW k1-=  ? ? ? 	GAJNN5'&!%ADD k1-=  ? ? ? ? ?r(   c                  4   g d} g d}t          dddddd	          }t          j                                        | |d
|          \  }}}||fD ]}|D ]}|                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |	                                |d         k    sJ Ìd S )N)r  "   r  )zLong name 1zLong name 2zLong name 3r]   rB   r@  anchorr  r>  )horizontalalignmentverticalalignmentr  rotation_moder  r   %.2f)r  rE
  	textpropsru
  rv
  r  rw
  r  r   )
r  r*   rn  rI
  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  r  ry
  r  textsrE
  txs          r&   test_pie_textpropsr
    s[   <<D:::F', #+E	+ + +I 		d6609 & ; ;Aug'" 8 8 	8 	8B99;;),A"BBBBB99;;),?"@@@@@??$$	*(=====''))Y-GGGGG;;==If$55555<<>>Yw%777777	88 8r(   c                      t          j                    \  } }t          j        t                    5  |                    g dg d           d d d            d S # 1 swxY w Y   d S )N)r   r   r  )r   r  r  rD
  r*   r    r   r   r  rI
  r/   s     r&   test_pie_get_negative_valuesr
  *  s    lnnGC	z	"	" 0 0
zzz;;;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   AA Ac                      t          j                    \  } }t          j        t                    5  |                    g dddg           d d d            d S # 1 swxY w Y   d S )Nr  r  r
  r
  r/   s     r&   test_pie_invalid_exploder
  1  s    lnnGC	z	"	" . .
yyy3*---. . . . . . . . . . . . . . . . . .r
  c                      t          j                    \  } }t          j        t                    5  |                    g dddg           d d d            d S # 1 swxY w Y   d S )Nr  OneTwor  r
  r/   s     r&   test_pie_invalid_labelsr
  8  s    lnnGC	z	"	" 1 1
yyy%0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1r
  c                      t          j                    \  } }t          j        t                    5  |                    g dd           d d d            d S # 1 swxY w Y   d S )Nr  r  )r]	  r
  r/   s     r&   test_pie_invalid_radiusr
  ?  s    lnnGC	z	"	" % %
yyy$$$% % % % % % % % % % % % % % % % % %s   AAAc                  :   t          j                    \  } }g d}|                    |d          }t          |d         d         j        dz
            dk     sJ |                    |d          }t          |d         d         j        dz
            dk    sJ d S )	Nr  r  r  T)r5   	normalizer   r   g     v@rk  F)r*   r    rI
  r^  r  )r0   r%   r5   t1t2s        r&   test_normalize_kwarg_pier
  F  s    lnnGCA	!t	$	$Br!uRy$&''$....	!u	%	%Br!uRy$&''$......r(   c                     g d}d|                                                      |           |                                                     |          \  }}fd|D              d S )Nr
  r$  r  c                 :    g | ]}|                               S r   	set_hatch)r   r~  rK  s     r&   r   z)test_pie_hatch_single.<locals>.<listcomp>U  s%    (((AQ[[(((r(   r    rI
  )r#   r$   r5   wedgesr  rK  s        @r&   test_pie_hatch_singler
  O  sy    AEAU+++  ""&&q))IFA((((((((((r(   c                     g d}g d}|                                                      ||           |                                                     |          \  }}d t          ||          D              d S )Nr
  )rI  r$  r   r  c                 >    g | ]\  }}|                     |          S r   r
  )r   r~  hps      r&   r   z(test_pie_hatch_multi.<locals>.<listcomp>^  s&    555BQ[[__555r(   )r    rI
  r  )r#   r$   r5   rK  r
  r  s         r&   test_pie_hatch_multir
  X  s    AOOEAU+++  ""&&q))IFA55#fe"4"4555555r(   zset_get_ticklabels.pngg?c                  <   t          j        d          \  } }ddg}|d                             t          j        d                     |d                             |d                    |d                             t          j        d                     |d                             |d                    |d                             t          d                     |d                             t          d                     |d         	                    g ddd	gz  z              |d         
                    g d
dd	gz  z              |d                             |d                                                    |d                             |d                                                    |d         	                    |d                                                    |d         
                    |d                                                    d S )Nr=   rp   zset_x/yticklabelsr   r   r<   r   r/  r@   r  r  r   )11121314)r*   r    r   rm   ru   r8   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r0   r%   rI   s      r&   test_set_get_ticklabelsr
  a  s    l1ooGC
'	(BqEJJry}}qEOOBqEqEJJry}}qEOOBqE qEU2YYqEU2YYqE...bT9:::qE222Q"X=>>> qERU%%''(((qERU%%''(((qE"Q%//11222qE"Q%//1122222r(   c                      t          j                    \  } }g d}t          j        t          d          5  |j                            |d           ddd           dS # 1 swxY w Y   dS )z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  z)Incorrect use of keyword argument 'alpha'r|  r   r  N)r*   r    r   r   r  r^   	set_ticks)r0   r%   tickss      r&   0test_set_ticks_kwargs_raise_error_without_labelsr
  |  s    
 lnnGCIIE	z)T	U	U	U - -
5,,,- - - - - - - - - - - - - - - - - -s   A  A$'A$c                    |                                 }|                    g d           |                    g dd           |                    g d           |                    ddgd	           |                    d
dgd	           |                                  }|                    g dg dd           |                    g d           |                    ddgd
dgd	           dS )z
    Test that these two are identical::

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

    )r<   r=   r:  r  r
  bold)
fontweightrF  r=   r:  T)r,  r  r  N)r    r
  r
  r
  r
  r"   s      r&   test_set_ticks_with_labelsr
    s    
				BMM,,,+++???MM)))MM1a&M%%%Sz...					BMM,,, 4 4 4MHHHMM)))MM1a&3*DM11111r(   c                     t          j                                                    } t          j        t
          d          5  |                     ddgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d	                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d          t          d          
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d	          t          d          
           d d d            d S # 1 swxY w Y   d S )Nzmust be a sequencer|  r=   r}  r  z
must be 1Dr:  rz  ry  r
  )r*   r   r   r   r   r   r
  r  r  rm   ru   r   r   r  s    r&   test_xticks_bad_argsr
    s&   		!	!	#	#B	y(<	=	=	= # #
q!fc"""# # # # # # # # # # # # # # #	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C C C Cs\   A&&A*-A*:CCC8:D>>EE$A	F99F= F=A	H55H9<H9c                     t          j                    \  } }|                    t          j        d                     |j                            t          j        d          dz              |                    d           |j                            d dD                        t          j	                     d |j        
                                D             }|g dk    sJ d S )	Nr   r  r   r  c                     g | ]}|S r   r   r  s     r&   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s    5551Q555r(   
bcdefghijkc                 6    g | ]}|                                 S r   r  r  s     r&   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s     >>>qajjll>>>r(   )r/  r  r  r  rx  )r*   r    r   rm   ru   r^   r
  r  set_ticklabelsr"  get_ticklabels)r0   r%   r  s      r&   test_subsampled_ticklabelsr
    s    lnnGCGGBIbMMHry}}s*+++AH55555666HJJJ>>BH$;$;$=$=>>>F.........r(   c                  T   t          j                    \  } }|                    t          j        d                     |j                            ddg           t          j        t                    5  |j        
                    g d           d d d            d S # 1 swxY w Y   d S )Nr   r   rd  r  )r*   r    r   rm   ru   r^   r
  r   r   r  r
  r/   s     r&   test_mismatched_ticklabelsr
    s    lnnGCGGBIbMMHSz"""	z	"	" 1 1
0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   3BB!$B!c                      t          j                    \  } }|                    ddgddg           |                    ddg           |                    g            d S )Nr<   r=   )r*   r    r  r
  r
  r/   s     r&   test_empty_ticks_fixed_locr
    s]    lnnGCFFAq6Aq6MM1a&rr(   zretain_tick_visibility.pngc                      t          j                    \  } }t          j        g dg d           t          j        |                                d           |                    ddd           d S )	NrQ  )r   r   r:  Fr	  r6   r   r   r,  r.  r	  )r*   r    r   setpr
  r	  r/   s     r&   test_retain_tick_visibilityr
    sj    lnnGCHYYY


###HR!!51111NN6!N44444r(   c                     t          j                    \  } }t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j                    \  } }|                    g d           t          j        t          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nz:set_ticklabels\(\) should only be used with a fixed numberr|  r-  r  rP  z$The number of FixedLocator locations)	r*   r    r   r  rV  r
  r
  r   r  r/   s     r&   test_warn_too_few_labelsr
    sb   lnnGC	N
P 
P 
P ) ) 	C<((() ) ) ) ) ) ) ) ) ) ) ) ) ) )
 lnnGCMM+++	zC
E 
E 
E ) )
C<((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s#   AAA)CCCc                  v   t          j                    \  } }d }|j                            t          j        |                     |                    g d           |                    dd           | j                                         d |j        	                                D             }|g dk    sJ d S )Nc                     | dk    rdndS )Nr<   
unit valuer   r   r   s     r&   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Avv||2-r(   )r   r   r<   r=   r   r  rd  c                 6    g | ]}|                                 S r   r  )r   r	  s     r&   r   z*test_tick_label_update.<locals>.<listcomp>  s     HHHd$--//HHHr(   )r   r   r
  r   r   )
r*   r    r^   r   r   r
  r  r  r"  r
  )r0   r%   r
  
tick_textss       r&   test_tick_label_updater
    s     lnnGC. . .H  !2>!B!BCCC MM"""###KKcJOOHHbh.E.E.G.GHHHJ777777777r(   zo_marker_path_snap.pngH   c                  t   t          j                    \  } }|                    d           t          dd          D ]2}|                    ddgt          j        d          |z   d|           3t          j        ddd          D ]2}|                    d	d
gt          j        d          |z   d|           3d S )Nr  r<   r	  r=   r   )r7  r   r  r   r:  )r*   r    r[  r   r   rm   r   r  )r0   r%   r7  s      r&   test_o_marker_path_snapr
    s    lnnGCJJrNNNArll 7 7
A"'!**r/326666k!R$$ 7 7
A"'!**r/3266667 7r(   c                     ddg} d}t          |           dz
  }t          |           }t          |           }t          j        dd          \  }}|                    |            |                    d           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }}|                    |            |                    dd           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }	}
|
                    |            |
                    d	d
           |
                                dk    sJ |
                                |||z
  d	z  z
  |||z
  d	z  z   fk    sJ |
                                |||z
  dz  z
  |||z
  dz  z   fk    sJ d S )Nr<   r   r  r   r  r   r=   )r   r=   皙ɿr*  )r
  r   )	r  r  r  r*   r    r   r[  r   r   )r  rk   rl   rI	  rJ	  rS  r  rT  r&  r)	  r'  s              r&   test_marginsr
    s   r7DDt99s?Dt99Dt99DQ""ID#HHTNNNKKNNN;;==F""""<<>>ddTkQ%66"dTkQ%668 8 8 8 8<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKKQ;;==H$$$$<<>>ddTkS%88"dTkS%88: : : : :<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKK$#K;;==K''''<<>>ddTkT%99"dTkT%99; ; ; ; ;<<>>ddTkS%88"dTkS%88: : : : : : :r(   c                      t          j                    } |                                 }|                    dd           |                                dk    sJ |                                dk    sJ d S )Nr  r  )r*   r   r   r[  get_xmarginget_ymarginr/   s     r&   test_margin_gettersr
     sl    
*,,C			BJJsC>>s"""">>s""""""r(   c                     t           j                            d           t          j                    \  } }|                    ddgddg           |                    dd           |                                dk    sJ d S )Nr  r<   r=   r8  r   )r  xmarginr9  )r   r   r   r*   r    r   r   r   r/   s     r&   test_set_margin_updates_limitsr
  (  sv    IMM)lnnGCGGQFQFFF%F###;;==F""""""r(   )r   z!margin must be greater than -0\.5ry  r   z@Cannot pass both positional and keyword arguments for x and/or yr  z&Must pass a single positional argumentc                     t          j        | |          5  t          j                    }|                                } |j        |i | d d d            d S # 1 swxY w Y   d S r
  )r   r   r*   r   r   r[  )r 
  r	  r  r}  r0   r%   s         r&   test_margins_errorsr
  0  s     
s%	(	(	( $ $jll__
D#F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   5AA Ac                      t          j                    \  } }|                    d           |                    dg           d S Nr<   )r*   r    r  r/   s     r&   test_length_one_histr
  B  s5    lnnGCGGAJJJGGQCLLLLLr(   c                     t          j                    } |                                 }|                    dd           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    dd           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ d S )	Nr   r  )r   r  r  )r	  )r   r  )r   )r  r  )	r*   r   r   r1  
get_xboundr   r2  
get_yboundr   r/   s     r&   test_set_xy_boundr
  H  s   
*,,C			BMM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&&&r(   c                      dgdz  } t          j        dd          \  }}|                    | |            |                    t	          j                               d S )Nr   r  r<   )r*   r    r  r  r  r  )mylistr0   r%   s      r&   test_pathological_hexbinr
  `  sT    TCZFl1a  GCIIffKK
r(   c                  j    t          j                    \  } }|                    ddgddgd            d S )Nr<   r=   rU  r  r/   s     r&   test_color_Noner
  h  s7    lnnGCGGQFQF$G'''''r(   c                      t          j                    \  } }|                    ddgd          d         }d|                                k    sJ d S )Nr   r<   r  r`  )r*   r    r   r  r0   r%   r  s      r&   test_color_aliasr
  n  sP    lnnGC77Aq6V7$$Q'DT^^%%%%%%%%r(   c                      t          j                    \  } }|                    t          d          gdz  t          d                     |                                 d S )Nr	  r   r   )r*   r    r  r   rL   r/   s     r&   test_numerical_hist_labelr
  u  sJ    lnnGCGGU2YYK!O588G,,,IIKKKKKr(   c                     t          j                    \  } }d}d}|                    d          d|                    d          g}|                    t	          d          gdz  |           |                                 d S )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr	  r   r   )r*   r    decoder  r   rL   )r0   r%   r   r/  r  s        r&   test_unicode_hist_labelr
  {  s{    lnnGC
@A+AhhwhhwF
 GGU2YYK!O6G***IIKKKKKr(   c                     t           j                            d          dz  } t          j                    \  }}|                    |            |j                                         |j        j        	                                }|j        j        
                                dk    sJ |j                                         |j                                         |j        j        	                                }|d         |d         k    r|d         |d         k    sJ |j        j        
                                dk    sJ t          j                    \  }}|                    |            |j                                         |j        j        	                                }|j        j                                        dk    sJ |j                                         |j                                         |j        j        	                                }|d         |d         k    r|d         |d         k    sJ |j        j                                        dk    sJ d S )	Nr   g^ 9^;rT   r   r<   rF   rB   rS   )rm   rn   r*   r    r   r  r"  r`   
offsetTextr
  r_   
tick_rightr^   get_verticalalignmentr   )r  r0   r%   beforeafters        r&   test_move_offsetlabelr
    s   9B%'DlnnGCGGDMMMJOOX --//F86688FBBBBHJOOH,,..E8fQiE!Hq	$9$9$9$986688GCCCClnnGCGGDMMMJOOX --//F84466%????HJOOH,,..E8vay  U1Xq	%9%9%9%984466(BBBBBBr(   zrc_spines.pngc                      ddddd} t          j        |           5  t          j                     d d d            d S # 1 swxY w Y   d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rZ   r   r*   r    )r  s    r&   test_rc_spinesr
    s     "" #	% %G
 
	w	'	'                   r  zrc_grid.pngc                     t          j                    } ddd}ddd}ddd}|||g}t          |d          D ]H\  }}t          j        |          5  |                     dd|           d d d            n# 1 swxY w Y   Id S )NTr   )rk  zaxes.grid.axisr5   r6   r<   r   )r*   r   r  rZ   r   r   )r0   rc_dict0rc_dict1rc_dict2r!  rM  r  s          r&   test_rc_gridr     s    
*,,C  H
  H
  H 8X.I	1-- % %
7"7++ 	% 	%OOAq!$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%% %s   A55A9	<A9	c                     ddddd} t          j        |           5  t          j                    }|                    ddd          }|j        }|j        }|j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ 	 d d d            d S # 1 swxY w Y   d S )NFT)r	  r	  
ytick.leftytick.rightr  r<   tick1Ontick2Onr*   r   r   r   r^   r`   _major_tick_kw_minor_tick_kwr  r0   r  xaxyaxs        r&   test_rc_tickr    s`   TE	3 	3A	1			 1 1jllooaA&&ii%i0000!),,,,%i0000!),,,,!),,,,%i0000!),,,,%i000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   B1CC #C c            	         ddddddddd} t          j        |           5  t          j                    }|                    ddd          }|j        }|j        }|j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ 	 d d d            d S # 1 swxY w Y   d S )NTF)r	  r  r	  r  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr  r<   r  r  r  r
  s        r&   test_rc_major_minor_tickr    sl   4T$E"		? 	?A
 
1			 - -jllooaA&&ii%i0000!),,,,%i0000!),,,,%i0000!),,,,%i0000!),,,,,- - - - - - - - - - - - - - - - - -s   B1C  C$'C$c                  ^   t          j        d          } t          j        g d          }t          j                    \  }}|                    | |d           |                    d           |                                |                                }}t          j	        |          t          j	        |          k    sJ |
                                dk    sJ t          |                    d          j        d           t          |                    d	          j        d
           d S )Nr:  )r   r  r  rJ  morX
  r<   T)originalg      ?r  ra  ra  F)g333333?r  g      ?ra  )rm   ru   rY  r*   r    r   r,  r   r   r  r
  r   r
  r+
  )r5   r6   r0   r%   r   r   s         r&   test_square_plotr    s   
	!A
!!!""AlnnGCGGAq$GGH$D74==BGDMM))))==??a
&&.0FH H H
''/1KM M M M Mr(   c                     t          j        t                    5  t          j        d            d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d d            d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        d          t          j        d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        d                              d          t          j        d                              dd          f           d d d            d S # 1 swxY w Y   d S )Nr  r  r   ry  r   r<   )	r   r   r  r*   r   rm   r  ru   r   r   r(   r&   test_bad_plot_argsr    sA   	z	"	"                	z	"	"  t              	z	"	" 5 5&!!28F#3#34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	z	"	" O O")A,,&&w//11E1Eb!1L1LMNNNO O O O O O O O O O O O O O O O O OsD   ;??BBB%:C++C/2C/A"E>>FFzxy, clsr   ))r   rq  )r=   r  )r<   r=   r:  r  r  rh  )r:  r   r  )r   r:  c                 v    t          j                    \  }}t           |j        g | |R            |k    sJ d S r!  )r*   r    rL  r  )r  r  clsr0   r%   s        r&   test_pcolorfastr  	  sI     lnnGC(r(4((())S000000r(   c                  4   t          j                    \  } }t          j        t          d          5  |                    t          j        d          t          j        d          t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz)the given X was 1D and the given Y was 2Dr|  r  )r:  rq  r[	  )r*   r    r   r   r   r  rm   emptyr/   s     r&   test_pcolorfast_bad_dimsr    s    lnnGC	I
L 
L 
L G G
bhqkk28F#3#3RXf5E5EFFFG G G G G G G G G G G G G G G G G Gs   ABBBc            	      d   t          j                    \  } }t          j        t          d          5  |                    t          j        d          t          j        d          t          j        	                    dd                     ddd           n# 1 swxY w Y   t          j        t          d          5  |                    t          j        d	          t          j        d          t          j        	                    dd                     ddd           dS # 1 swxY w Y   dS )
am  
    Test that the sizes of X, Y, C are compatible for regularly spaced X, Y.

    Note that after the regualar-spacing check, pcolorfast may go into the
    fast "image" mode, where the individual X, Y positions are not used anymore.
    Therefore, the algorithm had worked with any regularly number of regularly
    spaced values, but discarded their values.
    zKLength of X \(5\) must be one larger than the number of columns in C \(20\)r|  r   r^  r   r  NzHLength of Y \(5\) must be one larger than the number of rows in C \(10\)r  )
r*   r    r   r   r  r  rm   ru   rn   r   r/   s     r&   ,test_pcolorfast_regular_xy_incompatible_sizer  #  s    lnnGC	 ?
@ 
@ 
@ K K 	billBIbMM29>>"b3I3IJJJK K K K K K K K K K K K K K K
 
 <
= 
= 
= K K 	bimmRYq\\29>>"b3I3IJJJK K K K K K K K K K K K K K K K K Ks%   ABBB>AD%%D),D)c                     t          j        dddd          \  } }|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7d S )Nr=   Tr
  r  r8  r  re  )r*   r    rf  r  r  
get_yscale
get_xscaler0   r  r%   s      r&   test_shared_scaler#  8  s   |Aqd;;;HCIIh ( (}}%''''}}%'''''I"""I"""h + +}}(****}}(*****+ +r(   c                      t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )NTr  rl  )r   r   r   r*   ru  r   r(   r&   test_shared_boolr%  J  s   	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s!   <A A  BB
Bc                  V    t          j        t          j        ddg                     dS )z4Violin plot should handle point mass pdf gracefully.r   N)r*   rR  rm   rY  r   r(   r&   test_violin_point_massr'  Q  s&    N28QF##$$$$$r(   c            
         t          dt          j        d          g          t          dt          j        d          g          z   } t          ddg dg dg dgt          j        d          t          j        d          d g          }t          d|          }t          d	|          }t          dg g          t          dg g          z   t          dg d g          z  t          d	g d g          z  }| |z  }| |z  }| |z  |z  }g ||||S )
Nr5   r   r6   r 
  r<   )r<   r<   r<   r<   r<   )r=   r   r[  r\  )r   rm   ru   r   )base_xy
err_cyclerxerr_cyyerr_cyr  	xerr_only	yerr_onlyboth_errs           r&   generate_errorbar_inputsr0  V  s+   S29Q<<.))F3,E,EEG /!0!0!2 "

 " $ " # #J VZ((GVZ((GS2$&rd"3"33FRJ''(*0"d*D*DEE'!I'!I 7*H6Y66X666r(   c                 n    t          j                    } |j        di | }|                                 d S )Nr   )r*   rn  rW  rt  )r  r%   ebs      r&   test_errorbar_inputs_shotgunr3  l  s5    	B			v		BIIKKKKKr(   dash_offsetc                      t          j                    \  } }t          j        dd          }t          j        |          }t          ddd          D ]!}|                    |||z  |dfdd           "d S )	Nr   r   r  r=   r   r   r   rS  )r6  rV  r   )r*   r    rm   r  	ones_liker   r   )r0   r%   r5   r6   rx  s        r&   test_dash_offsetr8  s  s{    lnnGC
ArA
QA1c1 ; ;
1Q3Ax=Qc::::; ;r(   c                     t          j                    \  } }|                    dd           |j                                        }|d         d| j        z  k    sJ |                    dd           |j                                        }|d         dk    sJ |                    dd            |j                                        }|d         t          j        d         dz  | j        z  k    sJ d S )	NaardvarkrU  r	  ry  g?r  zaxes.titlepadrb  )r*   r    r8   titleOffsetTrans
get_matrixr2  rZ   r   )r0   r%   r  s      r&   test_title_padr>  |  s     lnnGCLLL%%%
&&((AU8	CG+,,,,LLL$$$
&&((AU8r>>>>LLL&&&
&&((AU8
+O<sBSWLMMMMMMr(   c                     t          j                    \  } }dt           j        d<   |                    d           |                    dd           |                    dd           d|                    d          k    sJ d|                    d          k    sJ d|                    d          k    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dd           d d d            d S # 1 swxY w Y   d S )	Nr]   zaxes.titlelocationr:  rT   rC   rF   r  fail)r*   r    r   r8   	get_titler   r   r  r/   s     r&   test_title_location_roundtriprB    s   lnnGC)1CL%&LLLLVL$$$LLgL&&&R\\f\------bllwl//////(333333	z	"	"    
                             	z	"	" ( (
V'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   C99C= C=EE	Er  c                    t          j        dd|           \  }}|d                             dd           |d                             dd           |                                 |d         j                                        \  }}|d         j                                        \  }}||cxk    rd	k    sn J d S )
Nr=   r<   r  r   r  ir;  r  r   )r*   r    r8   r	  r4   r
  )r  r0   r  r5   r  r]  s         r&   test_title_location_sharedrD    s    |Aq000HCFSc"""FSc"""   FL%%''EArFL%%''EAr????s????????r(   z
loglog.pngc                      t          j                    \  } }t          j        dd          }|                    ||dz  d           |                    dd           |                    d	dd
           d S )Nr<   r^  r   r   rX  r  r=   )r	  r  r	  r,  )r	  r  r.  )r*   r    rm   ru   r  r	  )r0   r%   r5   s      r&   test_loglogrF    sr    lnnGC
	!RAIIaA!INN"AN&&&NN"AWN55555r(   ztest_loglog_nonpos.pnggV-?)r  r   r   c                     t          j        dd          \  } }t          j        dd          }|dz  }d|d<   d|d<   t	          t          g dd	
          |j                  D ]\  \  }}}||k    r;|r|                    ||dz  d	|           -|                    ||dz  d	           I|                    ||dz  d	           |r|                    d|           |r|	                    d|           d S )Nr   r<   r^  g      rq  r(  r:  )r  r  r   r=   )r  )rV  nonpositiverX  r8  )rH  )
r*   r    rm   ru   r  r   r  r  rf  r  )r0   r  r5   r6   mcymcxr%   s          r&   test_loglog_nonposrK    s5    |Aq!!HC
	!RA	1AAaDAaDg&:&:&:1EEE!h( ( 6 6
cB#:: )		!QTaS	9999		!QTa	((((IIaA!I$$$ 6e555 6e5556 6r(   c                  @   t          j                    \  } }|                    g d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|
                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|                    t          j        d                     |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ d S )Nrh  r   )r<   r<   r<   r<   r6  rm  r   )r  g      #@)r*   r    r   r
  r  r  r
  rx  rm   r  r  r  ru   r   r/   s     r&   test_axes_marginsrM    s;   lnnGCGGLLL==??1""""lnnGCFF<<<&&&==??1""""lnnGCGGLLL,,,'''==??1""""lnnGCIIbhx  !!!==??g%%%%==??g%%%%lnnGCMM"(8$$%%%==??g%%%%==??g%%%%lnnGCGGBIbMM==??1""""lnnGCIIbhx  !!!==??k))))==??k))))))r(   )r3  c                 .    d }d }||d| j                  S )Nc                     |                                  }|                                 |                     dd            | j                                                    }|d         dk    sJ d S Nr   r	  r   rF  )r  rt  r  r^   get_major_locatorr%   r&  rT  s      r&   	_helper_xz&shared_axis_remover.<locals>._helper_x  `    hhjj


Ar(BH&&((**urzzzzzzr(   c                     |                                  }|                                 |                     dd            | j                                                    }|d         dk    sJ d S rP  )r  rt  r  r`   rQ  rR  s      r&   	_helper_yz&shared_axis_remover.<locals>._helper_y  rT  r(   r*  )param)requestrS  rV  s      r&   shared_axis_removerrY    s7         ++GM::r(   )rn  r    subplots_sharedrZ  c                    | j         dk    r(t          j                    }|                                }n| j         dk    rt          j                    \  }}nj| j         dk    r*t          j        dddd          \  }}|d         d         }n5| j         dk    r*t          j                    }|                    g d	          }||fS )
Nrn  r    rZ  r=   r  r
  r   rZ  r  r  r  r  )rW  r*   r   rn  r    rZ  )rX  r0   r%   rV	  s       r&   shared_axes_generatorr]    s     }jllWWYY	*	$	$,..RR	+	+	+l1aeDDDVAYq\	*	$	$jll\\***++7Nr(   c                 &    | \  }} ||           d S r!  r   )r]  rY  r0   r%   s       r&   test_remove_shared_axesr_    s"    #GCr(   c                  H   t          j        dddd          \  } }|d         d         }|d         d                                         }|                                 |                    dd           t          |d         d                                         |           d S )Nr=   r  r
  r   r<   r   )r*   r    r   rt  r  r   )r0   rV	  r%   	orig_xlims       r&   test_remove_shared_axes_relimrb    s    ,q!E%@@@KC	1Bq	!%%''IIIKKKKK1vay|,,..	:::::r(   c                     t          j        ddd          } t           j                            | j        | j        f          }t          j        dddd          \  }\  }}|                    dd	           |                    dd	           |	                    | | |           |	                    | | |           |
                                s|
                                rJ |                                s|                                rJ |                                |                                cxk    rd
k    sn J |                                |                                cxk    rd
k    sn J d S )Nir@  r.  r=   r<   Tr
  r  )rd  r  )rm   ru   rn   random_sampler  r*   r    r  r  r  ra  rc  r   r   )rP
  r  r0   r  r&  s        r&   test_shared_axes_autoscalerf    si   
	#r2A
	 011Al1aTBBBOC#sLLLLKK1aKK1a$$&&Fs/D/D/F/FFFF$$&&Fs/D/D/F/FFFF<<>>S\\^^<<<<}<<<<<<<<>>S\\^^<<<<}<<<<<<<<r(   c                  B   t          j                    \  } }|j                                                            d           |                    dd           |                    d           | j                                         t           |j                                                              dk    sJ |
                    dd           | j                                         t           |j                                                              dk    sJ d S )Nr  r  r   r  r  r=   )r*   r    r`   rQ  
set_paramsr  r
  r  r"  r  r  r/   s     r&   test_adjust_numtick_aspectri  /  s    lnnGCH  ++&+999KK4MM'JOO+rx))++--..!3333KK4JOO+rx))++--..222222r(   c                      t          j                                        dd          } | j        D ]=}g |                                g |                                cxk    rg dk    sn J >d S )Nr:  rP  )r*   r   r    r  r  r
  r	  s     r&   test_auto_numticksrk  ;  s    
*,,

1
%
%Ch G G!!%7r}}%7FFFF;;;FFFFFFFG Gr(   c                     t          j                    \  } }dt          j        d<   |                    ddgddg           t          j        |                                          t          j        ddd	          k    	                                sJ t          j        |
                                          t          j        d
dd          k    	                                sJ d S )Nround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<r   ir\  r:  rP  r   )r*   r    r   r   r  rm   log10r  ru   r  r
  r/   s     r&   test_auto_numticks_logrq  B  s     lnnGC*9CL&'IIuclUBK(((HR]]__%%3A)>)>>CCEEEEEHR]]__%%3A)>)>>CCEEEEEEEr(   c                  ^    t          j                    \  } }|                    g d           d S )N)r  r   )r*   r    r  r/   s     r&   test_broken_barh_emptyrs  L  s+    lnnGCNN2x     r(   c                     t          j                    \  } }t          j        dddddd          }|                    |t          j        d          fgddg          }|                                d         j        d         t          j        |          k    sJ |                                d         j        d	         t          j        |          d
z   k    sJ dS )z9Check that timedelta works as x, dx pair for this method.r  r^  r}  r   r<   r  r=   r  r=   r   gUUUUUU?N)	r*   r    rC  r  r  r"  verticesrE  rF  )r0   r%   d0pps       r&   test_broken_barh_timedeltary  Q  s    lnnGC		4Q1a	0	0B	"h0q999:;aV	D	DB<<>>!%d+vr/B/BBBBB<<>>!%d+vr/B/BV/KKKKKKKr(   c                     |                      dd          }t          j        d          }t          j                            dd          }t          j                    \  }}|                    |||           d S )Nz
2000-01-01r   )r  r  r  r}  )r  rm   ru   rn   r   r*   r    r  )r  timedepthr  r0   r%   s         r&   test_pandas_pcolormeshr}  Z  sd    ==r=22DIbMME9>>"a  DlnnGCMM$t$$$$$r(   c                    t          j        ddd          }t          j        t          t	          |                              }|                     ||d          }t          j                    }|t          j        |j	                  dz  dk             
                                }|                    dd	|
           d S )Nz2005-02z2005-03r<  r  )r  r,  r=   r<   r  r,  rm  )rm   ru   r  r   r  r  r*   rn  rY  r  r  r   )r  r  r,  r  r%   without_zero_indexs         r&   test_pandas_indexing_datesr  c  s    Ii/BBBEVE#e**%%&&F	88	9	9B	BBHRX..2a78==??GGGX$6G77777r(   c                     |                      t          j                            d          g dg d          }t	          j                    \  }}|                    dddd	|
           d S )N)r   r:  r  )r5   r6   xeyer  )columnsr  r5   r6   r  r  r  )r  rm   rn   uniformr*   r    rW  r  s       r&   test_pandas_errorbar_indexingr  n  sr    	bi''V'44444+OO 
 
- 
-B lnnGCKKSt$RK88888r(   c                     |                      g dg dd          }t          j                    \  }}|                    |j        |d                    d S )Nr  )rq  r<   r=   )XXYYr  )r  r*   r    r   r  r  s       r&   test_pandas_index_shaper  v  sR    	YYYiii88	9	9BlnnGCGGBHbhr(   c                     |                      g d          }|j        dd          }t          j                    \  }}|                    |           d S )N)
r<   r=   r=   r   r   r:  r:  r:  r:  r   rm  r<   )r  ilocr*   r    r  )r  ser_1ser_2r0   r%   s        r&   test_pandas_indexing_histr  |  sM    II999I::EJqrrNElnnGCGGENNNNNr(   c                 V   |                      t          d          t          d          d          }t          j        d          \  }}|                    |j        |d         dk    df         |j        |d         dk    df         d           |j                                         d S )Nr=   rl  r<   r   r/  r]   rp  )r  r   r*   r    r  rD   r  r"  r  s       r&   test_pandas_bar_align_centerr    s    	E!HH58844	5	5Bl1ooGCFF26"S'Q,#$6"S'Q,#$     JOOr(   c                  `   t          j                    j        } i |                     d          }i |                     d          }|                     | j        d          }|                     | j        d          }||k    sJ ||k    sJ |                     dddd	
           i |                     d          }i |                     d          }|                     |          }|                     |          }||k    sJ | j        |k    sJ ||k    sJ | j        |k    sJ d S )Nr	  r-  r,  T)reverser   r>  r3
  r   )r	  r	  r	  r.  )r*   ru  r`   get_tick_params_translate_tick_paramsr  r	  set_tick_params)	r,  initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styles	            r&   test_axis_get_tick_paramsr    s   ;==D%L(<(<7(<(K(K%L"%L(<(<7(<(K(K%L"55T 6   55T 6   "@@@@@"@@@@@2%#(  8 8 8 "ID$8$8w$8$G$G!H!HD$8$8w$8$G$G!H112LMMO112LMMO)-GGGGG/1111)-GGGGG/111111r(   c                     t          j                    } | j                            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    sJ | j        j        d         j                                        dk    sJ d S )	Nr   r>  r3
  )r	  r	  r	  r   r  rS  rU  )
r*   ru  r`   r  r	  r	  	tick1liner  r[  r~
  )axis_1s    r&   .test_axis_set_tick_params_labelsize_labelcolorr    s    []]F
L  2%+0 ! 2 2 2 <"1%+s2222<"1%/99;;sBBBB<"1%,55774????<"1%,6688EAAAAAAr(   c                     t          j                    } |                     dddd           | j        | j        fD ]}|j        d         j                                        dk    sJ |j        d         j                                        dk    sJ |j        d         j        	                                dk    sJ |j        d         j        
                                dk    sJ d S )Nr/  r   r   r  )r	  r	  r	  r	  r   r  )r*   ru  r	  r^   r`   r	  r	  r  get_linewidthr  rO  )r%   r,  s     r&   test_axes_tick_params_gridlinesr    s    	BNNc!"+  - - -"(" C Cq!*4466#====q!*88::a????q!*4466#====q!*88::dBBBBB	C Cr(   c                     t          j                    } |                     dd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 sJ d S )NFTr	  )	labelleft
labelrightr.  r,  r   )	r*   ru  r	  r`   r	  r[  r#  label2r	  r  s    r&    test_axes_tick_params_ylabelsider    s   	BNNUt   " " "NNUt   " " " 8q!(4466%????8q!(4466$>>>>8q!(4466%????8q!(4466$>>>>>>r(   c                     t          j                    } |                     dd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 sJ d S )NTFr	  )labeltoplabelbottomr.  r,  r   )	r*   ru  r	  r^   r	  r[  r#  r  r	  r  s    r&    test_axes_tick_params_xlabelsider    s   	BNNDe   " " "NNDe   " " "
 8q!(4466%????8q!(4466$>>>>8q!(4466%????8q!(4466$>>>>>>r(   c                      t          j                                                    } |                     t	          d          d           \  }|                                dk    sJ d S )Nr   rS  rQ  )r*   r   r    r   r   rO  )r%   lns     r&   test_none_kwargsr    sY    				 	 B
''%))t'
,
,CB$$$$$$r(   c                      g d} t          j        t          j        | t          j                  g dd          }t          |j        |           D ]\  }}|j        d         |k    sJ d S )Nrh  r  )r=   r   r:  r   r[  rp  r   )r*   r  rm   rY  uint8r  rF  r  )r  r/  r$  r5   s       r&   test_bar_uint8r    sy    	B28,,,lll&IIIA!)R((    
x{a   r(   zdate_timezone_x.pngr   c                      d t          d          D             } t          j        d           t          j        ddd           t	          j        t          j                  5  t          j        | dgdz  d           d d d            n# 1 swxY w Y   t          j        ddd           t	          j        t          j                  5  t          j        | dgdz  d	           d d d            d S # 1 swxY w Y   d S )
Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S   r=   r  Canada/Easternr   tzinforC  rU  tzgettzr  s     r&   r   z(test_date_timezone_x.<locals>.<listcomp>  Y     % % % #D!Ra+3;+<+<=M+N+NP P P % % %r(   r   r  r  rR  r=   r<   r  )r  UTC	r   r*   r   ru  r   r  r   rs  rt  
time_indexs    r&   test_date_timezone_xr    s   % % 88% % %J
 Jx    K1a	c6	7	7 @ @j1#'.>????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ K1a	c6	7	7 5 5j1#'e44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   #BBB
C33C7:C7zdate_timezone_y.pngc                     d t          d          D             } t          j        d           t          j        ddd           t	          j        t          j                  5  t          j        dgdz  | ddd	
           d d d            n# 1 swxY w Y   t          j        ddd           t	          j        t          j                  5  t          j        dgdz  | ddd	
           d d d            d S # 1 swxY w Y   d S )Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S r  r  r  s     r&   r   z(test_date_timezone_y.<locals>.<listcomp>  r  r(   r   r  rR  r=   r<   r  FT)r  xdateydater  r  r  s    r&   test_date_timezone_yr    s   % % 88% % %J
 Jx    K1a	c6	7	7 Y YqcAgz.>eSWXXXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y K1a	c6	7	7 N NqcAgze5MMMMN N N N N N N N N N N N N N N N N Ns$   #BBBC77C;>C;zdate_timezone_x_and_y.pngc                     t           j        j        fdt          d          D             } t	          j        d           t	          j        ddd           t          j        t          j
                  5  t	          j        | | dd	           d d d            n# 1 swxY w Y   t	          j        ddd           t          j        t          j
                  5  t	          j        | | d
d	           d d d            d S # 1 swxY w Y   d S )Nc           	      B    g | ]}t          j         d dd|          S )r  r=   r  r  r  )r   r5   r  s     r&   r   z.test_date_timezone_x_and_y.<locals>.<listcomp>  s?     % % % #D!RaDDD % % %r(   r   r  rR  r=   r<   r  T)r  r  z
US/Eastern)rC  timezoneutcr   r*   r   ru  r   r  r   rs  rt  )r  r  s    @r&   test_date_timezone_x_and_yr    s    

C% % % % 88% % %J Jx    K1a	c6	7	7 D Dj*dCCCCD D D D D D D D D D D D D D D K1a	c6	7	7 K Kj*TJJJJK K K K K K K K K K K K K K K K K Ks$   7BB #B DDDzaxisbelow.pngc                     t          j                                        ddd          } d}t          | |          D ]\  }}|                    dddd           t          j        d	d
          }|                    |           |                    ddd           |	                    dddd           |j
        d d                              d           |                    |           |                                |k    sJ d S )Nr   T)r  r  rm  )Fr  Trm  r   r  r  r  rT  rU  r@   rQ  )r   r   rA  F)rB   rS   rT   rF   )r*   r   r    r  r   r  r_	  r  r  r	  r	  r!   set_axisbelowget_axisbelow)r  settingsr%   settingcircs        r&   test_axisbelowr  (  s   
 *,,

aT

B
BC$H3)) 	- 	-G
Rs333vS111
T
cSA666
5! 	 	0 	0 	0
	!!!  '''
!!!!!W,,,,,	- 	-r(   c                     t           j                            d           t          j        d          \  } }|                                }|                    d          }|                    d          }| j                                         | j        	                                }|
                    |          j        }|
                    |          j        }||z
  }t          j        |d          sJ d S )Nr   r
  )r2  Xlabel2Titler   )r*   r   r   r    r  r+   r8   r  r"  get_rendererget_window_extentrt  r  rm   isclose)	r0   r%   r&  xlabel2r4   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r&   test_titletwinyr  <  s    IMM'lr"""GC
((**CnnY''GLL!!EJOOz&&((H++H558M//99<O_,F:fa       r(   c                     t          j                    \  } }|                     d           |                                }|                    d           |                    d           |                    d           d}|j                            |           | j        	                                }|
                    |           |j                                        |k    sJ d S )Nr  )rB   Xlabelr  r  )r   g(\?)r*   r    r  r  r+   r8   r4   r	  r  r  _update_title_positionr
  )r0   r%   r&  r   r  s        r&   test_titlesetposr  K  s    lnnGCC   
((**CMM(NN9LL
CH#z&&((Hh'''8  ""c))))))r(   c                  *   d t           j        d<   t          j                    \  } }|j                            d           |                    d           | j                                         |j	        
                                d         dk    sJ d S )Naxes.titleyrB   
xlabel topr<   p=
ף?)r   r   r*   r    r^   r   r8   r  r"  r4   r
  r/   s     r&   test_title_xticks_topr  Z  s    "&CLlnnGCH&&&LLJOO8  ""1%,,,,,,r(   c                  *   d t           j        d<   t          j                    \  } }|                    ddddd           |                    d           | j                                         |j        	                                d         dk    sJ d S )Nr  r5   Tr,  rS   rB   r  r  r  r<   r  )
r   r   r*   r    r	  r8   r  r"  r4   r
  r/   s     r&   test_title_xticks_top_bothr  d  s    "&CLlnnGCNNDdT  K K KLLJOO8  ""1%,,,,,,r(   zleft, center))rT   r   )r   r]   )rT   r]   )zleft title movedzcenter title keptzboth titles alignedc                 B   d t           j        d<   t          j                    \  }}|                    d           |                    | d           |                    |           |                                 | r)|s'|j                                        d         dk    sJ d S | s)|r'|j	                                        d         dk    sJ d S |j                                        d         }|j	                                        d         }|dk    sJ ||k    sJ d S )Nr  g   vH7BrT   rC   r<   r   )
r   r   r*   r    r  r8   r	  _left_titler
  r4   )rT   r]   r0   r%   yleftr  s         r&   test_title_above_offsetr  o  s1    #'CLlnnGCKKLL6L"""LL     F  ~**,,Q/#555555  f  x$$&&q)S000000++--a0(''))!,s{{{{%r(   c                  H   d t           j        d<   t          j                    } |                     g d          }|                    ddddd           |                    d          }| j                                         |	                                d         dk    sJ d S )	Nr  )r  r  r  r  r5   Tr  Boor<   r   )
r   r   r*   r   rZ  r	  r8   r  r"  r
  )r0   r%   tts      r&   test_title_no_move_off_pager    s     #'CL
*,,C	+++	,	,BNNDdT  K K K	e		BJOO??Q3&&&&&&r(   c                     d t           j        d<   t          j                    \  } }|                    d           |                                  |j                                        d         dk    sJ |                    g d           |                                  |j                                        d         dk    sJ d S )Nr  r  r<   )r   r<   r<   r  r{  )	r   r   r*   r    r8   r	  r4   r
  
inset_axesr/   s     r&   test_title_inset_axr    s    "&CLlnnGCLL   8  ""1%****MM...!!!   8  ""1%,,,,,,r(   c                      t          j                    \  } }|                    g d           |j                            d           |j                                                                        dk    sJ d S )Ng   @Ag   eAg   FAr>  )r	  )r*   r    r   r`   r  get_offset_textr  r/   s     r&   test_offset_label_colorr    st    lnnGCGG$$$%%%H...8##%%//11U::::::r(   c                     t          j                    \  } }|                    g d           |j                            dd           |j                                                                        sJ |j                            d           |j                                                                        rJ d S )Nr  FT)label1Onlabel2On)r  )r*   r    r   r`   r  r  r#  r/   s     r&   test_offset_text_visibler    s    lnnGCGG$$$%%%Hed;;;8##%%1133333He,,,x''))557777777r(   c                      t          j                    \  } }|                    dt          j        ddg          z   dz             | j                                         d S )Nr<   r   g-q=gqىE)r*   r    r   rm   rY  r  r"  r/   s     r&   test_large_offsetr    sS    lnnGCGGQ1f+&&&%/000JOOr(   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r2  rq  r	  r\  r  r  s     r&   r   z#test_barb_units.<locals>.<listcomp>  +    MMMqXtQB22MMMr(   r   r3  r   r   rj  )r*   r    r   rm   r  r  barbsr0   r%   r  r6   ur  s         r&   test_barb_unitsr    s    lnnGCMME!R<L<LMMME
Aq#e**%%AK2s5zz***AHHUAq!r(   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r  r  r  s     r&   r   z%test_quiver_units.<locals>.<listcomp>  r  r(   r   r3  r   r   rj  )r*   r    r   rm   r  r  quiverr
  s         r&   test_quiver_unitsr    s    lnnGCMME!R<L<LMMME
Aq#e**%%AK2s5zz***AIIeQ1r(   c                     t           j        } t          j                    \  }}t	          d          D ]}|                    t	          d                    \  }|                    t	          d          t	          d                    }|D ]@} | |                                           | |                                          k    sJ Ad S )Nr   r   )	r)  to_rgbr*   r    r   r   r  r  r  )r  r0   r%   rx  r  brsbrs          r&   test_bar_color_cycler    s    ^FlnnGC1XX H HggeAhhffU1XXuQxx(( 	H 	HB6",,..))VVB4D4D4F4F-G-GGGGGG	HH Hr(   c                     t          j        dd          \  } \  }}|                    ddgddg           |                    ddgddg           |j                            dd           |j                            dd           |                    d          D ]}|                                dk    sJ |                    d          D ]}|                                dk    sJ |	                    d	d
           |	                    dd           |                    d          D ]}|                                d
k    sJ |                    d          D ]}|                                dk    sJ d S )Nr<   r=   r   r   r  )r.  r  r@  r-  r5   5   )r,  r	  r6   r
  )r,  r  r	  )
r*   r    r   r^   r  r`   r  r|
  r
  r	  )r  r%   r&  texts       r&   test_tick_param_label_rotationr    s   \!Q''NC"cGGQFQFHHaVaVH6B777H6B777"""00 ) )  ""b((((("""00 ) )  ""b(((((OOBO///OOrO***##'#22 ) )  ""b(((((##'#22 ) )  ""b((((() )r(   c                     t          j                    \  } }t          d          D ]}|                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t          dd          D ]}|	                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t	          j        d          }dD ]s} |j        t          d          t          d          fi |di}t          |                                                                          t          |          k    sJ tt	          j        d          }t          ddgd          D ]\  }} |j        t          d          t          d          fi |di}t	          j        d|           }t          |                                                                          t          |          k    sJ t          |                                                                          t          |          k    sJ d S )	Nr   r  r  rS  )r?  r'  r   r@  r}  )r  )r*   r    r   r  r)  r  tupler  squeezerA  r  r  )	r0   r%   rx  cctargetaledge_targetelface_targets	            r&   test_fillbetween_cycler#    s   lnnGC1XX E E__U1XXuQxx00Q))R&&((002233uV}}DDDDD1a[[ E EeAhha11Q))R&&((002233uV}}DDDDD_S!!F2 E ER_U1XXuQxx==B9==R&&((002233uV}}DDDDD/#&&KK6a@@@ J J2R_U1XXuQxx==B9==og!gg..R&&((002233u[7I7IIIIIR&&((002233u[7I7IIIIII	J Jr(   c                     dt           j        d<   t          j                    \  } }d}|                    |           |                    ddgddg           |                                \  }}|j                                        }|                    ||g          \  }}|                    ddg          \  }}	|	|z
  |z  }
t          ||
z   ||
z
  g||	g           d S )Nr  rn  r  r   r  )
r*   r   r    set_xmarginr  r   r^   r#  r>  r   )r0   r%   marginxlim0xlim1r>  xlim0txlim1tx0tx1tr@  s              r&   test_log_marginsr-    s    *0CL&'lnnGCFNN6KKS	B9%%%;;==LE5&&((I((%88NFF""B9--HC3Y& EVe^Ve^4sCjAAAAAr(   c                     d} t          j        |           t          j        |           }}t          j        | dz             }t          j                    \  }}t	          j        t                    5  |                    |||           d d d            n# 1 swxY w Y   t	          j        d          5  |                    ||d           d d d            n# 1 swxY w Y   |                    ||dg| z             d S )Nr   r<   r`  r  r|  )r   r   r   )	rm   ru   r*   r    r   r   r  r>   r  )r  r5   r6   r  r0   r%   s         r&   test_color_length_mismatchr/    sd   	A9Q<<1qAYqs^^FlnnGC	z	"	" # #


1a6
"""# # # # # # # # # # # # # # #	F	G	G	G , ,


1a?
+++, , , , , , , , , , , , , , ,JJq!(1,J-----s$   1BBB6CC"Cc                  Z    t          j        dgd           t          j                     d S )Nr   Labelr   )r*   r  rL   r   r(   r&   test_eventplot_legendr2     s(    M3%w''''JLLLLLr(   r  zlineoffsets cannot be emptyr  zlinelengths cannot be emptyr/  zlinewidths cannot be emptyr  zlinestyles cannot be emptyr  zalpha cannot be emptyz!positions must be one-dimensionalz5lineoffsets and positions are unequal sized sequencesz5linelengths and positions are unequal sized sequencesz4linewidths and positions are unequal sized sequencesz4linestyles and positions are unequal sized sequencesz/alpha and positions are unequal sized sequencesz0colors and positions are unequal sized sequencesc                     t          j        | |          5  t          j        |i | d d d            d S # 1 swxY w Y   d S r
  )r   r   r*   r  r
  s       r&   test_eventplot_errorsr4  %  s    * 
s%	(	(	( ' 't&v&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r"
  c                  l   t          j                    \  } }|                    t          d          d           |                    ddt          d          d           |                    ddgddgd          \  }}|                                |                                cxk    rdk    sn J d S )Nr:  r<   r   )rT   r  )r  r  r  rT  r  )r*   r    r  r   r  r  )r0   r%   rect1rect2s       r&   test_bar_broadcast_argsr8  >  s    lnnGCFF588QGGAquQxxG***661a&1a&4D6EELE5  E$7$7$9$9MMMM=MMMMMMMMMr(   c                     t          j        ddgddg           t          j        t                    5  t          j        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j	        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j	        t          j                   d d d            d S # 1 swxY w Y   d S r@  )
r*   r   r   r   r  r   rm   r  r	  r   r   r(   r&   test_invalid_axis_limitsr:  I  s   HaVaV	z	"	"                	z	"	"                	z	"	"                	z	"	"                   sG   AA"%A"B--B14B1C<<D D  EEEr  rd  r8  r  c                     t          j                    }|                    g d           |                    |            |                    |           |                                 d S )Nr  )r*   ru  r   rf  r  r  )r  r  r%   s      r&   test_minorticks_onr<  V  sa     
BGGLLLMM&MM&r(   c                     t          j                    \  } }|                    dd           |                                }|                    ddgddg           t          j                    \  }}|                    dd           |                    ddgddg           t          |j        j        |j        j                   d S )Nr<   r=   r   r   )r*   r    r  r  r   r   r
  	intervalx)r0   r%   xtwinrT  r&  s        r&   test_twinx_knows_limitsr@  `  s    lnnGCJJq!HHJJE	JJ3x!Q   ID#KK1HHaX1vu}.0EFFFFFr(   c                  >    t          j        ddgddgdd           d S )Nr   r<   rR  )r6  rV  )r*   r   r   r(   r&   test_zero_linewidthrB  o  s)    HaVaV++++++r(   c                      t          j                    \  } }|                    g g g d           |                    g g g d           |                                 d S )Nzempty y)r[  r3   zempty x)r\  r3   )r*   r    rW  rL   r/   s     r&   test_empty_errorbar_legendrD  t  sV    lnnGCKKBRyK111KKBRyK111IIKKKKKr(   c                    t          j        ddd          }d |D             }d |D             }d |D             }|                                                     ||           |                                                    ||           d S )Nr(  r   r  c                 B    g | ]}d |dz  z  d|dz  z  z
  d|z  z   dz   S )g@r   r  r=   g\(\@r  r   r  s     r&   r   z%test_plot_decimal.<locals>.<listcomp>~  s;    	C	C	C1#Q,qAv
%q
03
6	C	C	Cr(   c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z%test_plot_decimal.<locals>.<listcomp>  rm  r(   c                 ,    g | ]}t          |          S r   r   r  s     r&   r   z%test_plot_decimal.<locals>.<listcomp>  rm  r(   )rm   ru   r    r   )r#   r$   rs  rt  r5   r6   s         r&   test_plot_decimalrI  {  s    	3C	 	 B	C	C	C	C	CB  R   A  R   AQ"""B#####r(   c                     |                                                      dddd           |                                                     dddd           d S )Nr   r   r;  r   )r  r  r~  )r    r   )r#   r$   s     r&   test_markerfacecolor_none_alpharK    sZ    Qr:::As266666r(   c                     dt           j        d<   dt           j        d<   t          j                    \  } }|                    | j                                                  }|                    d           |                    | j                                                  }|j        |j        k     sJ |j        |j        k     sJ dS )z5Test that tick padding gets turned off if axis is offr3
  r	  zytick.directionoffN)	r*   r   r    get_tightbboxr  r  r,  rs  rt  r0   r%   bbbb2s       r&   test_tick_padding_tightbboxrR    s    &+CL"#&+CL"#lnnGC			#*1133	4	4BGGENNN


3:2244
5
5C536>>>>536>>>>>>r(   c                  r   d\  } }t           j        t          dd|z   |          t          dd| z   |           f         \  }}t          j        |          dz  t          j        d||z  z             t          j        |          z  z   }t          j                    \  }}|                    |||ddddf                    |                    d           |	                                 dd	g}d
dg}|d         |d         |d         |d         z
  |d         |d         z
  g}	|
                    |	          }
|
j        J |j                                         t          j        ddgd	dgg          }t          j        |
j                                                                        |k              sJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r<   r   r   Nr   r   r   333333@r=   rd  r   )boundsr   )rm   mgridr8  r  rq  r*   r    r  r
  apply_aspectindicate_inset
connectorsr  r"  rY  r  	rectangleget_bbox
get_points)dxdyr6   r5   r  r0   r%   r   r   r  insetxxs               r&   
test_insetrb    s    FB8E!QVR((!QVR(() *DAq
q		R"&a!e,,rvayy88AlnnGCMM!Q#2#ss($$$MM"OO ;Ds8DGT!Wd1gQ/a471BCDT**E###JOO	C9#;  
! 
!B6%/**,,7799R?@@@@@@@r(   c                  ^   d\  } }t           j        t          dd|z   |          t          dd| z   |           f         \  }}t          j        |          dz  t          j        d||z  z             t          j        |          z  z   }t          j                    \  }}|                    |||d dd df                    |                    d           |	                                 |
                    g d          }|                    |||d dd df                    |                    dd	g           |                    d
dg           |                    |                                           t          j        t           j                  5  |                    |          \  }}	d d d            n# 1 swxY w Y   |j                                         t+          |	          dk    sJ t          j        ddgd	dgg          }
t          j        |                                                                |
k              sJ t          j        ddgddgg          }
t           j                            |                                                                |
d           d S )NrT  r<   r   r   r   r   )r  r  r  r  r   rU  r=   rd  r:  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rm   rW  r8  r  rq  r*   r    r  r
  rX  r  r  r  r
  r   r  r   rs  indicate_inset_zoomr  r"  r  rY  r  r\  r]  r   r   r
  )r^  r_  r6   r5   r  r0   r%   axin1recrZ  ra  s              r&   test_zoom_insetri    s   FB8E!QVR((!QVR(() *DAq
q		2rAaCx((26!9944AlnnGCMM!Q#2#ss($$$MM"OO MM00011E	Q1SbS#2#X;'''	NNC;	NNAs8	R]]__%%%	c6	7	7 8 80077Z8 8 8 8 8 8 8 8 8 8 8 8 8 8 8JOOz??a	C":#;  
! 
!B6#,,..++--344444	FH%H%' 
( 
(BJ''))2D  : : : : :s   F<<G G zinset_polar.pngc                  :   t          j                    \  } }|                    g dd          }t          |t                    sJ t          j        ddd          }dt
          j        z  |z  }|                    ||           |                    ||           d S )N)r   r  r2  r2  TrK  r   r=   r  )	r*   r    r  r   r   rm   ru   r  r   )r  r%   axinsrT  r  s        r&   test_inset_polarrl    s    LNNEArMM000M==EeY'''''
	!QAIMEGGE1	JJuar(   c                      t          j                    \  } }|                    g dd          }t          |t                    sJ d S )Nr  r  r  r  hammerr  )r*   r    r  r   r   r  r%   rk  s      r&   test_inset_projectionrq    sI    LNNEArMM...8MDDEeZ(((((((r(   c                      t          j                    \  } }|                    g dt          j                  }t          |t          j                  sJ d S )Nrn  )r  )r*   r    r  AAr   r   rp  s      r&   test_inset_subclassrt    sM    LNNEArMM...27MCCEeRW%%%%%%%r(   
x_inverted
y_invertedc                 j   t          j        dd          \  }\  }}t          j        d          }|                    ||d           | r|                                 |r|                                 |                    g d|          }|j        \  }}}	}
| rdnd}|rdnd}||	j	        d         |j	        d         z
  z  dk    sJ ||
j	        d         |j	        d         z
  z  dk    sJ ||j	        d         |j	        d         z
  z  dk    sJ ||
j	        d         |	j	        d         z
  z  dk    sJ dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r<   r=   r   r   )r=   r=   r   r:  r   r   N)
r*   r    rm   ru   r   r   r  rY  rZ  r  )ru  rv  r0   r  r&  r5   r`  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                r&   test_indicate_inset_invertedr~    sd    l1a((OC#s
	"AHHQ3  |||S11E7<7G4J
K$RR1F$RR1F[_Q'*.*;;<q@@@@[_Q'*.*;;<q@@@@Z^A&)::;a????[_Q'+/!*<<=AAAAAAr(   c                  Z   t          j                    \  } }|                    d           |                    g dd           t	          j        |                                j        d          sJ |                    d           |                    g dd           t	          j        |                                j        d          sJ |                    d           |                    g dd	           t	          j        |                                j        d          sJ d S )
Nr  )r  r  rT  rT  r   r-  r  r   r  r  active)r*   r    r
  r	  rm   rh  r
  r  r/   s     r&   test_set_positionr    s   lnnGCMM"OO(((O777;r((.44444MM"OO(((
O;;;;r((.55555MM"OO(((O999;r((.4444444r(   c                     t          j                    \  } }|j        j                            | j                                                  }|                    ddd dd           |j        j                            | j                                                  }t          j	        
                    |                                |                                d           d S )N)r  r  r  r  r	  Fgư>rd  )r*   r    r	  rS   r  r  r  _set_view_from_bboxrm   r   r   r]  rO  s       r&   !test_spines_properbbox_after_zoomr    s    lnnGC			+	+CJ,C,C,E,E	F	FB// / /
)

,
,SZ-D-D-F-F
G
GCJr}}0@0@tLLLLLr(   c                  $   t          j                    \  } }d}d}|                    |           |                    |d         |d                    |                    d           t
          j                            ||                                d           t
          j                            ||	                                d           |                    d	           d
}d}|                                }|	                                }t
          j                            |d         |d         z
  d           t
          j                            |d         |d         z
  d           t
          j                            ||d           t
          j                            ||           |                    d           |                                }|	                                }t
          j                            |d         |d         z
  d           t
          j                            |d         |d         z
  d           t
          j                            ||d           t
          j                            ||d           d S )Nr  r   )r   r=   r   r<   r	  )r  r  r   ro  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r*   r    r  r  r  rm   r   r   r   r   )r0   r%   r   r   r  new_ylimres_xlimres_ylims           r&   test_limits_after_scroll_zoomr  #  s   lnnGCDDKKKKT!W47K+++ >***JtR[[]]???JtR[[]]??? >***9H"H{{}}H{{}}HJx{Xa[8#>>>Jx{Xa[8#>>>Jx>>>Jx222 ?+++{{}}H{{}}HJx{Xa[8!<<<Jx{Xa[8!<<<JtXE:::JtXE:::::r(   c                  4   t          j                    \  } }t          |            |                    t          j        dd           | j                                        }t          j        	                    |
                    |          j        d           d S )Nr<   r  i  )r*   r    r   r  rm   r  r  r  r   r   rN  r  )r0   r%   r  s      r&   test_gettightbbox_ignore_nanr  G  sy    lnnGCC   GGBFAuz&&((HJr//99?EEEEEr(   c                 X   t          dd          }|                     t          j                            d          |          }|                     t          j                            d          |          }|                     g d|          }t          j        |||           d S )Nr   r\  r  r  r  )r<   r<   r<   r<   r<   r   r   r   )r   r  rm   rn   r  r*   r>   )r  r8  r5   r6   r@   s        r&   "test_scatter_series_non_zero_indexr  O  s    
B--C
		")###++3	77A
		")###++3	77A
		***#	66AK1ar(   c                  `    t          j        g g            t          j        g g g g            d S )N)r  r@   )r*   r>   r   r(   r&   test_scatter_empty_datar  X  s3    KBKB"######r(   zannotate_across_transforms.png)r   r  r   c            
      $   t          j        ddd          } t          j        |            t          j        |           z  }t	          j        d          \  }}|                    | |           |                    g d          }|                    d           |j	        
                    d           |j        
                    d           |                    d	| d
         |d
         f|j        d|j        t          d                     d S )Nr   r   r  )gQ@r   rR  )rT  r   r  r  r  Fr   r  r|  rT
  )rV
  )r  r  r  r  r   )rm   r  rw  r  r*   r    r   r  r
  r^   r!   r`   r   	transDatarJ  r  )r5   r6   r0   r%   rk  s        r&   test_annotate_across_transformsr  ^  s    	Ar3A
r

RVAYYAl9---GCGGAqMMMMM...//E	S	KE"""	KE"""KK##'",%/4000  2 2 2 2 2r(   c                   (    e Zd ZdZdZd Zd Zd ZdS )_Translationr<   c                     || _         d S r!  r^  )r  r^  s     r&   rG  z_Translation.__init__s  s    r(   c                     || j         z   S r!  r  )r  r,  s     r&   r>  z_Translation.transformv  s    r(   c                 ,    t          | j                   S r!  )r  r^  r  s    r&   r  z_Translation.invertedy  s    TWH%%%r(   N)r  r  r  
input_dimsoutput_dimsrG  r>  r  r   r(   r&   r  r  o  sK        JK       & & & & &r(   r  zsecondary_xy.pnggS㥛?c                     t          j        dddd          \  } }d }t          |          D ]\  }}|                    t	          j        dd          t	          j        dd                     |dk    r|j        }n|j        } |d	||f
            |dd d f
            |dd d f
            |d            ||dk    rdndt          d          
            |d|j	                   d S )Nr<   r=   r  T)r  r  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S Nr  r  r<   rm   r
  r  s    r&   invertz!test_secondary_xy.<locals>.invert      [))) 	 	q5	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   (,,r^  r   r  	functionsrT  c                     d| z  S Nr=   r   r  s    r&   r  z#test_secondary_xy.<locals>.<lambda>  s
    A r(   c                     | dz  S r  r   r  s    r&   r  z#test_secondary_xy.<locals>.<lambda>  s
    Q r(   r  c                     | dz  S r  r   r  s    r&   r  z#test_secondary_xy.<locals>.<lambda>  s
    1 r(   c                     | dz  S )Nr   r   r  s    r&   r  z#test_secondary_xy.<locals>.<lambda>  s
    C r(   r  rB   rF   g      @r  )
r*   r    r  r   rm   ru   secondary_xaxissecondary_yaxisr  r  )r0   r  r  nnr%   secaxs         r&   test_secondary_xyr  }  sA    |Aq'dKKKHC   C.. , ,B
	!R  ")Ar"2"233377&EE&Ecff-....coo?@@@@cnn.@.@ABBBBc


rQwweeG|AGGGGdbl+++++, ,r(   c                     t          j                    \  } }|                    t          j        dd          t          j        dd                     t          j        t                    5  |                    dd            d d d            n# 1 swxY w Y   t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Nr=   r^  r  c                     d| z  S r
  r   r  s    r&   r  z%test_secondary_fail.<locals>.<lambda>  s
    QU r(   r  rF   rS   errorr  )r*   r    r   rm   ru   r   r   r  r  r  r   r/   s     r&   test_secondary_failr    s<   lnnGCGGBIabi2..///	z	"	" = =
3??<<<= = = = = = = = = = = = = = =	z	"	" $ $
7###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	z	"	" % %
8$$$% % % % % % % % % % % % % % %	y	!	! 3 3
3'2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sH   ,BBB5CCC;DD!$D!E&&E*-E*c                     t          j        d          \  } }|                    t          j        dd          t          j        dd                     d }|                    d||f           | j                                         |                     d           t          |
                                j        g d	           d S )
Nr  rR  r=   r^  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S r  r  r  s    r&   r  z%test_secondary_resize.<locals>.invert  r  r  rB   r  )rq  r:  r  )r*   r    r   rm   ru   r  r  r"  r	  r   r
  r+
  )r0   r%   r  s      r&   test_secondary_resizer    s    l7+++GCGGBIabi2..///   u(8999JOOBOO%%-/E/E/EFFFFFr(   c                  F   t          j        d          \  } }|                    t          j        dd          t          j        dd                     d }|                    d||f          }t          |j                                        t          j
                  sJ |                                 t          |j                                        t          j                  sJ |                    d           t          j                     t          |j                                        t          j                  sJ |                    d	           t          j                     t          |j                                        t          j
                  sJ d S )
Nr  rR  r=   r^  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S r  r  r  s    r&   r  z'test_secondary_minorloc.<locals>.invert  r  r  rB   r  r8  re  )r*   r    r   rm   ru   r  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorrf  r"  
LogLocator)r0   r%   r  r  s       r&   test_secondary_minorlocr    s   l7+++GCGGBIabi2..///   u0@AAEek3355)+ + + + +	ek3355.0 0 0 0 0MM%HJJJek3355(* * * * *MM(HJJJek3355)+ + + + + + +r(   c                  t   t          j                    \  } }|                    d           |                    d          }|j                            t          j                               | j        	                                 t          |j                                        t          j                  sJ d S )Nr8  rB   )r*   r    rf  r  r^   r   r   ScalarFormatterr  r"  r   r   r0   r%   r  s      r&   test_secondary_formatterr    s    lnnGCMM%u%%E	K##G$;$=$=>>>JOO''))7+BD D D D D D Dr(   c                      t          j                    \  } }|                    d          }t          |          dk    sJ d S )NrB   z<SecondaryAxis: >)r*   r    r  r9   r  s      r&   test_secondary_reprr    sB    lnnGCu%%E;;-------r(   zaxis_options.pngc            	         t          j        dd          \  } }t          d          D ]\  }}|d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     |d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     d S )Nr=   r   )scaledr  imager   r9  )r<   g	@)r   r   r   r;  rS  r\	  r<   )r<   g      @)r<   r   )r   rv  r  )r*   r    r  r   r,  rE  r  r_	  )r0   rs  rM  options       r&   test_axis_optionsr    s;   Q""IC;<< P P	6 	QT
)))QT
QT
hoj8>#O O O 	P 	P 	P 	QT
	9---QT
QT
hok$8>#O O O 	P 	P 	P 	PP Pr(   c                    | j                                          | j                                         }g }t          |j        |j        g          D ]i\  }}|                    |          }|rGt          j        |j	        |j
        f|j        |j        ddddd          }|                     |           ||gz  }jg }t          g d          D ]r\  }}	|j        |	                             |          }t          j        |j	        |j
        f|j        |j        ddddd          }
|                     |
           ||gz  }s|                                }t          j        |j	        |j
        f|j        |j        d	d
ddd          }|                     |           |}|                    |          }t          j        |j	        |j
        f|j        |j        ddddd          }|                     |           |}||||fS )zS
    Helper for the tests below that test the extents of various Axes elements
    r  r6   r;  Nr   )r  r  rA  r@  r?  r>  r  )rS   rB   rT   rF   r   r   r  r=   r>  r<   )r  r"  r  r  r^   r`   rN  r  r  rs  rt  r  r  rE  r	  r  )r0   r%   r  bbaxisr  axxrP  axisrbbspinesr   spinerr7  bbaxrQ  bbtbs                  r&   color_boxesr    s.    JOOz&&((HFbh122  Cx(( 	"&bhry$  E NN5!!!2$H===>>  AYq\++H55#UBEN"(29W$   	vRD					B	bhryf  E NN5D


8
$
$C		#*u$  E NN5D8T4''r(   c                     t          ddi          5  t          j        dd          \  } }| j                                         t          j        |            t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d
g dg dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d}t          j	        j
        | }	t          |j        |	j        d	           g d}t          j	        j
        | }	t          |j        |	j        d	           |                                                    | j                  j        }
t          |
|                                j        d	           d S )N_internal.classic_modeFr  rH	  r2  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"  rw  r  r  r   Bboxfrom_boundsr   rV  r
  transformedtransFigurer  )r0   r%   r  r  r  r  r  r  r/  targetbbaxbbs              r&   test_normal_axesr    sV   	-u5	6	6 < <,3777R
	#'23';';$$	< < < < < < < < < < < < < < < 	322===F 6"" H HA#/<!!(HOQGGGGG 	(''###(((,,,	F 8$$ H HA#/<!!(HOQGGGGG666F+V4Hdk8?AFFFF222F+V4Hdk8?AFFFF ??((99@DdB$8$8$:$:$A1MMMMMMs   AA::A>A>c                     t          ddi          5  t          j        dd          \  } }| j                                         |                    g g            t          | |          \  }}}}d d d            n# 1 swxY w Y   t          |          D ]	\  }}|J 
g dg dg d	g d
g}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d           ;g d}t          j	        j
        | }	t          |j        |	j        d           g d}t          j	        j
        | }	t          |j        |	j        d           d S )Nr  Fr  rH	  r  xticklabelsyticklabelsr  r  r  r  r  r  r  )r        ^@r  r  )r   r*   r    r  r"  r   r  r  r   r  r  r   rV  )
r0   r%   r  r  r  r  r  r/  r  r  s
             r&   test_nodecoratorr  ?  s   	-u5	6	6 < <,3777R

22...'23';';$$	< < < < < < < < < < < < < < < 6""  Ayyyy 	(''###(((,,,	F 8$$ > >A#/<(/=====666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   AA==BBc                     t          ddi          5  t          j        dd          \  } }|                    g g            |j        j                            d           | j                                         t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg d	g d
g dg}t          ||          D ]4\  }}t          j        j        | }	t          |j        |	j        d           5g d}t          j        j        | }	t          |j        |	j        d           g d}t          j        j        | }	t          |j        |	j        d           d S )Nr  Fr  rH	  r  r  )rs  rn  )r        8@r  gs~8&@r  r  r  r  r  r  )r  r  r  g     @)r   r*   r    r   r	  rS   r	  r  r"  r  r  r   r  r  r   rV  )
r0   r%   r  r  r  r  targetsr  bbspiner  s
             r&   test_displaced_spiner  ]  s   	-u5	6	6 < <,3777R
22...
	%%n555
'23';';$$< < < < < < < < < < < < < < < 	%$$###(((,,,	G w11 D D#/8dCCCCC666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   A>BB #B c                      g dg dgg dg dgg dg dgg} t          g d          D ]\  }}t          dd	i          5  t          j        d
d          \  }}|                    |           |j                                         t          ||          \  }}}}t          ddg          D ]F\  }	}
t          j	        j
        | |         |	          }t          ||
         j        |j        d           G	 ddd           n# 1 swxY w Y   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	  r3
  inoutr  Fr  rH	  r  r4
  r   r=   r  r  N)r  r   r*   r    r	  r  r"  r  r   r  r  r   rV  )r  dnumdirsr0   r%   r  r  r  r  r  r   r  s               r&   test_tickdirsr  x  s    /..---/<<<---/FFF<<<>	?G   6 6 677 	F 	F
d159:: 	F 	FlsF;;;GCNNTN***JOO+6sB+?+?(FHdD$aV,, F FC&+7r9JKSM((/F F F F FF	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F	F 	Fs   B6DD		D	c                     t          ddi          5  t          j        dd          \  } }| j                                         |                    dd           t          | |          \  }}}}t          | |          \  }}}}g d	g d
g}t          d          D ]@}t          j	        j
        ||          }t          ||dz           j        |j        d           At          j        dd          \  } }| j                                         |                    dd           |                                 |                    ddd           | j                                         t          | |          \  }}}}g dg dg}t          d          D ]@}t          j	        j
        ||          }t          ||dz           j        |j        d           A	 d d d            d S # 1 swxY w Y   d S )Nr  Fr  rH	  r  r   r3
  )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   rV  r  )	r0   r%   r  r  r  r  r  r  r  s	            r&   test_minor_accountedforr    s   	-u5	6	6 D D,3777R

Vu555'23';';$$'23';';$$III7779q 	D 	DA"'3WQZ@HQ&dD D D D D ,3777R

Vu555

F'"===
'23';';$$GGG3335 q 	D 	DA"'3WQZ@HQ&dD D D D D	D1D D D D D D D D D D D D D D D D D Ds   GG''G+.G+c                 t   |                      d                              d           |                     d                              d           |                      d          }|                    d           |                    d           |                     d                              d           d S )Nrj  FrM  rk  Ton)r   r,  r"   s      r&   test_axis_bool_argumentsr     s     ""5)))!!%(((			c	"	"BGGENNNGGDMMM!!$'''''r(   c                     t          j                    \  } }d}d}d}d}|                    ||||g          }t          |          ||||fk    sJ ||f|                                k    sJ ||f|                                k    sJ d S )Nr   r   r	  r  r*   r    r,  r  r   r   r0   r%   rk   rl   rI	  rJ	  r  s          r&   test_axis_extent_argr    s    lnnGCDDDDWWdD$-..F ==T4t44444 $<2;;==(((($<2;;==((((((r(   c                     t          j                    \  } }d}d}d}d}|                    ||||          }t          |          ||||fk    sJ ||f|                                k    sJ ||f|                                k    sJ d S )Nr   r   r	  r  )rk   rl   rI	  rJ	  r  r  s          r&   test_axis_extent_arg2r    s    lnnGCDDDDWW$T4W@@F ==T4t44444 $<2;;==(((($<2;;==((((((r(   c                  ~    t          j        g dg dgd          \  } }} |d         dk    sJ |d         dk    sJ d S )	Nr  )r   r:  r   r  r  r  r   r<   r   r  )r*   r  r  r  s     r&   test_hist_auto_binsr	    sO    999lll3&AAAJAtQ7a<<<<8q======r(   c                     t          j        d          \  } \  }}g d}|t          j        gz   }|                    |          \  }}}t          j        d          5  |                    |          \  }}	}d d d            n# 1 swxY w Y   t          j                            ||           t          j                            ||	           d S )Nr=   r  r  r  )r*   r    rm   r  r  r
  r   r   )
r0   r  r&  r  nan_datar  rf  r  nanbinsnanedgess
             r&   test_hist_nan_datar    s    l1ooOC#s99DrvhHXXd^^ND%	X	&	&	& 2 2"xx1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 JtW---Juh/////s   BB
Bc                      t          j        t          j                            d          ddd          \  } }} |d         dk    sJ |d         dk    sJ d S )	Nr   r  r  T)r   r'  r   r   r<   )r*   r  rm   rn   r   r  s     r&   test_hist_range_and_densityr    s[    ")..,,f &6 6 6JAtQ7a<<<<8q======r(   c                      t          j                    \  } }g d}|                    |||dd          }|j        j        \  }}}|j        D ]0}|D ]}|j        |j        k    sJ |D ]}	|	j        |j        k    sJ 1d S )Nr  r   r   )r5   r  r\  r  r  )r*   r    r  rW  rV  rF  r  )
r0   r%   r5   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r&   test_bar_errbar_zorderr    s     lnnGC		AffqAaf@@G'.'7'=$Ix 2 2 	/ 	/G>CJ.....% 	2 	2J$sz11111	22 2r(   c                     t          j                    \  } }|                                 |                    ddg           |                                dk    sJ |                    dg           |                                dk    sJ d S )Nr  r  r|  r   ry  )r*   r    r   r
  r   r/   s     r&   test_set_ticks_invertedr     s    lnnGCOOMM2r(;;==F""""MM2$;;==G######r(   c                     t          j        d          } |                                 }|                    ddgddg           |                    ddddd	d
           |                    d           | j                            |                                          }|j	        |j
        z  t          j        d          k    sJ d S )Nr6  rR  rT  r  r8  rf  logit)F]tE?g'^P?r<   r
  r  r   r  r   r   r
  r   r=   )r*   r   r   r   r   r[  r  transform_bboxr
  r  r  r   approx)r0   r%   r   s      r&   $test_aspect_nonlinear_adjustable_boxr!     s    
*X
&
&
&C			BGGRHr2hFF%g  ' ' ' JJqMMM
/
(
():):
;
;C:	!V]1%5%5555555r(   c                     t          j        d          } |                     g d          }|                    ddgddg           |                    dddd	d
d           |                    d           |                                 |                                t          j	        ddg          k    sJ |
                                d	k    sJ d S )Nr6  rR  r\  rT  r  r8  )r<   r  r  )gbeF?r  r<   r
  r  r   gS[:XL	@g'In?@)r*   r   rZ  r   r   r[  rX  r   r   r   r   r/   s     r&   (test_aspect_nonlinear_adjustable_datalimr#     s    
*X
&
&
&C	&&&	'	'BGGRHr2hFF%h 1	  + + + JJqMMMOO;;==FM;*FGGGGGG;;==-------r(   c                     t          j                    \  } }|                                }|                    ddg           |                    d           |                                dk    sJ t          j                    \  }}|                    d           |                    ddgddg           |                    d	d
           | j        	                                 |j        	                                 |
                                }|
                                }|
                                }t          |j        |j                   t          |j        |j                   d S )Nr  iX  r<   r   r   r=   r  r  r  r
  r

  )r*   r    r  r   set_box_aspectget_box_aspectr[  r
  r  r"  r
  r   r+
  )rS  r  axtwinrT  r&  bb1bbtrQ  s           r&   test_box_aspectr*  )   s@    ID#YY[[F
KKS	q3&&&&ID#KKNNNHHaVaVNN7uN---KK




C




C




Cs{CK000s{CK00000r(   c                  Z   t          j                    \  } }|                    g d           | j                                         |                    d           t          j                    \  }}|                    d           |j                                         |                    g d           | j                                         |j                                         |                                }|                                }t          |j        |j                   d S )N)r  r  ra  r  r   )	r*   r    r	  r  r"  r%  r
  r   r+
  )rS  r  rT  r&  r(  rQ  s         r&   test_box_aspect_custom_positionr,  D   s    ID#)))***KrID#rK)))***KK




C




Cs{CK00000r(   c                  l   t          j        ddt          d          d          \  } }| j                                         | j                                        }g }|j        D ]8}|                    |          }|                    |j	        |j
        g           9t          ||d                    d S )Nr=   r   r<   )r
  T)r  r  r   )r*   r    r  r  r"  r  r  r  r  r  r  r   )r0   r  r  rJ
  r%   rP  s         r&   test_bbox_aspect_axes_initr.  [   s     |AqTQ-?-?-?/35 5 5HCJOOz&&((HEh , ,!!(++bh	*++++E58$$$$$r(   c                     t          j                    \  } }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    t          j                   d d d            n# 1 swxY w Y   t          j        t          d          5  |                    t          j                    d d d            d S # 1 swxY w Y   d S )Nzmust be finite and positiver|  r   r   )r*   r    r   r   r  r
  rm   r	  r/   s     r&   test_set_aspect_negativer0  j   s   lnnGC	z)F	G	G	G  
b              	z)F	G	G	G  
a              	z)F	G	G	G  
bf              	z)F	G	G	G  
rvg                 sG   AAA:BB #B  C..C25C2!EE	Ec                      t          j        dd          \  } }|                    g d           | j                                         |                                 d S )Nr<   r  )r*   r    r   r  r"  redraw_in_framer/   s     r&   test_redraw_in_framer3  v   sW    l1a  GCGGIIIJOOr(   c                      t          j                    \  } }| j                            d          J |                    d           | j                            d          J d S )N)r  r  F)r*   r    r  inaxesr!   r/   s     r&   test_invisible_axes_eventsr6  }   sa    lnnGC:Z((444NN5:Z((00000r(   c                      dt           j        d<   t          j                    } | j                                        }|D ]!}|j                                        dk    sJ "d S NrH  zlines.markeredgecolor)r*   r   rs  r^   get_major_ticksr  get_markeredgecolorr%   r
  r	  s      r&   "test_xtickcolor_is_not_markercolorr<     h    ,3CL()	BH$$&&E ? ?~1133w>>>>>? ?r(   c                      dt           j        d<   t          j                    } | j                                        }|D ]!}|j                                        dk    sJ "d S r8  )r*   r   rs  r`   r9  r  r:  r;  s      r&   "test_ytickcolor_is_not_markercolorr?     r=  r(   r,  r  )TFNc                    t          j                    \  }}t          j        d          }t          j        ddd          }|                    ||           t          |d|  d          }t          |d|  d          }t          |d|  d          }|
 |            n|}	 |d	|
           |	 |            k    sJ |j                                         t           |            d	           d S )Nr  rn  r  get_autoscale_onr6  limget_r  )r  )
r*   r    rm   ru   r  r>   r0  r  r"  r   )
r,  r  r0   r%   r5   r6   r  set_limget_lim	post_autos
             r&   test_unautoscalerH     s    lnnGC
	#A
CS!!AJJq!r#<4#<#<#<==b****++Gb****++G&*l  """IGKd####((******JOOwwyy+.....r(   c                 p   |                      d                              dt          j        dz  gddg          \  }d|                                _        |                     d                              t          j        dt          j        dz  d          t          j        ddd                     d S )NrL  r  r   r=   r<   r  e   )r   r   rm   r  get_path_interpolation_stepsr  )r#   r$   rP
  s      r&   )test_polar_interpolation_steps_variable_rrM     s    					1	1	6	6257|aV	L	LBA(+AJJLL%7++00
AruQw$$bk!Q&<&<> > > > >r(   c                      t          j                    \  } }|                    dd           | j                                         |                                dk    sJ d S )Nr   g&.>)r   g	>)r*   r    r  r  r"  r   r/   s     r&   test_autoscale_tiny_stickyrO     sS    lnnGCFF1dOOOJOO;;==L((((((r(   c                      dt           j        d<   dt           j        d<   t          j                    } | j                                        }|D ]@}|j                                        dk    sJ |j                                        dk    sJ Ad S )Nr  r	  r   r	  )r*   r   rs  r^   r9  r  r  r[  r;  s      r&   &test_xtickcolor_is_not_xticklabelcolorrQ         "*CL'-CL#$	BH$$&&E 1 1~''))X5555{$$&&&000001 1r(   c                      dt           j        d<   dt           j        d<   t          j                    } | j                                        }|D ]@}|j                                        dk    sJ |j                                        dk    sJ Ad S )Nr  ytick.colorr   ytick.labelcolor)r*   r   rs  r`   r9  r  r  r[  r;  s      r&   &test_ytickcolor_is_not_yticklabelcolorrV     rR  r(   c                  <   dt           j        d<   t          j                    } | j        j                                        dk    sJ dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ d S )Nr   r	  r  r	  inherit)r*   r   rs  r^   r
  r  r  s    r&   test_xaxis_offsetText_colorrY     s    '-CL#$	B8((**f4444"*CL'0CL#$	B8((**h666666r(   c                  <   dt           j        d<   t          j                    } | j        j                                        dk    sJ dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ d S )Nr   rU  r>  rT  rX  )r*   r   rs  r`   r
  r  r  s    r&   test_yaxis_offsetText_colorr[     s    '.CL#$	B8((**g5555"'CL'0CL#$	B8((**e333333r(   r  c                     g | ]}||S r!  r   )r   r  s     r&   r   r      s'     "7 "7 "74%)%5 #'%5%5%5r(   )r  r   r  c                 z   | t           j        d<   | t           j        d<   t          j                    \  }}|j                                         t          ddg|j        |j        g          D ]N\  }}|	                                D ]4}|j
                                        |                    |          k    sJ 5Od S )Nr	  zytick.labelsizer5   r6   )r   r   r*   r    r  r"  r  r^   r`   r9  r[  r~
  _get_tick_label_size)r  r0   r%   namer,  r	  s         r&   test_relative_ticklabel_sizesr`     s     '+CL"#&*CL"#lnnGCJOO3*rx&:;; M M
d((** 	M 	MD;''))T-F-Ft-L-LLLLLL	MM Mr(   c                     t          j                    } |                     ddd          \  }}|                    g dg d           |                    dd           |                                }t          j        |d	d
g          sJ d S )Nr=   r<   r  r  )PF  iJG  iDH  i>I  )r=   r   r=   r   r  r   rb  ipI  )r*   r   r    r   r  r   rm   rh  )r0   r  r&  r   s       r&   test_multiplot_autoscalerc     s    
*,,C||Aq|//HCHH)))<<<888KKA<<>>D;teU^,,,,,,,r(   c                  |   t          j                    } |                     d          }|                     g d|          }|                                }|                     d           |                                                                |                                k                                    sJ d S )Nr  )r  r  r  r  r  r   rT   )r*   r   r   rZ  r
  r  r]  r  )r0   ry  r  init_poss       r&   $test_sharing_does_not_link_positionsrg     s    
*,,C
//#

C
,,''',
4
4C!!HQ))++x/B/B/D/DDIIKKKKKKKr(   c                    t          j        g d          }|                     d          }|d                             ddgddg|                    d                     t          j        d	          5  |d                             ddgddg|                    d                     d d d            n# 1 swxY w Y   |d                             ddgddg|                    d                     |d
         	                    t          j
        d          |                    d                     |d                             t          j
        d          t          j
        d          |                    d                     |                    d          }|d                             ddgddg|                    d                     |d                             ddgddg|                    d                     |d                             ddgddg|                    d                     |d
         	                    t          j
        d          |                    d                     |d                             t          j
        d          t          j
        d          |                    d                     d S )Nr  r   r   r<   r=   r   r`  r  r|  r   r   rU  r:  ry  )rm   rY  r    r   r   r   r  r>   r  r  ru   r  )r#   r$   r   r  s       r&   test_2dcolor_plotri  !  s   H___%%E


A

CFKKAA%--"3"3K444	F	G	G	G < <A1v1vr):):;;;< < < < < < < < < < < < < < <FKKAA%--"3"3K444FKK	"U]]2%6%6K777FJJry}}bimm5==3D3DJEEE


1

CFKKAA%--"8"8K999FNNAq6Aq6U]]7%;%;N<<<FKKAA%--"8"8K999FKK	"U]]7%;%;K<<<FJJry}}bimm5==3I3IJJJJJJs   66B88B<?B<c                    t          j        ddt           j        z  d          }t          j        |          }|                    dddd          }|j        D ]}|                    ||           |                     dddd          }|j        D ],}|                                 |                    ||           -d S )Nr  r=   r  Tr
  )rm   ru   r  r  r    r  r   r  )r#   r$   r5   r6   r  r%   s         r&   test_shared_axes_clearrk  !  s    
	#qw%%A
q		A


1aT

:
:Ch  
1


Aqd

;
;Ch  




1 r(   c                     t          j        dddd          \  } }|j        D ]}|                    ddgd           |d                             g d           |j        D ]4}|                                |d                                         k    sJ 5|d                             g d           |j        D ]4}|                                |d                                         k    sJ 5d S )	Nr=   r  r
  r   zo-r  )r  r   r<   r   )r  r   r=   rd  )r*   r    r  r   r
  r   r
  r   r"  s      r&   test_shared_axes_retickrm  &!  s   |Aqu===HCh  
AI***+++h 5 5{{}}D	 2 2 4 444444I***+++h 5 5{{}}D	 2 2 4 4444445 5r(   rI   )rT   r]   rF   c                     t                      }|                                }|                    dd|            |j                            d           |j        j                                        | k    sJ d S )Ntestr<   rH   rF   )r   r    r,   r`   set_label_positionr3   rz
  )rI   r0   r%   s      r&   test_ylabel_ha_with_positionrq  5!  sm    
((C	BMM&A"M%%%H(((8>  ""b((((((r(   c                     t          j                    } ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr<   r=   r   r   r]   rS   rB   r*   rn  r  	bar_labelr  r_   r
  r%   r  heightsr  r  s        r&    test_bar_label_location_verticalrx  >!  s   	Ba&1b'BFF2wE\\%  F!9<BqE71:.....!9,,..(::::!9**,,8888!9<BqE71:.....!9,,..(::::!9**,,555555r(   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr<   r=   r   rs  r   r]   rB   rS   )r*   rn  r  r  ru  r  r_   r
  rv  s        r&   *test_bar_label_location_vertical_yinvertedrz  K!  s$   	BOOa&1b'BFF2wE\\%  F!9<BqE71:.....!9,,..(::::!9**,,5555!9<BqE71:.....!9,,..(::::!9**,,888888r(   c                     t          j                    } ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S 	Nr<   r=   r   rs  r   rT   r]   rF   r*   rn  r  ru  r  r_   r
  r%   r  r  r  r  s        r&   "test_bar_label_location_horizontalr  Y!  s   	BQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..&8888!9**,,8888!9<F1Ir!u-----!9,,..'9999!9**,,888888r(   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S r|  )r*   rn  r  r  ru  r  r_   r
  r~  s        r&   ,test_bar_label_location_horizontal_yinvertedr  f!  s$   	BOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..&8888!9**,,8888!9<F1Ir!u-----!9,,..'9999!9**,,888888r(   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S 	Nr<   r=   r   rs  r   rF   r]   rT   )r*   rn  r   r  ru  r  r_   r
  r~  s        r&   ,test_bar_label_location_horizontal_xinvertedr  t!  s$   	BOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..'9999!9**,,8888!9<F1Ir!u-----!9,,..&8888!9**,,888888r(   c                  f   t          j                    } |                                  |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S r  )	r*   rn  r   r  r  ru  r  r_   r
  r~  s        r&   -test_bar_label_location_horizontal_xyinvertedr  !  s4   	BOOOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..'9999!9**,,8888!9<F1Ir!u-----!9,,..&8888!9**,,888888r(   c                     t          j                    } ddgddg}}|                     ||          }|                     |d          }|d         j        dk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        dk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr<   r=   r   rs  r]   
label_typer   r	  r}  r~  s        r&   test_bar_label_location_centerr  !  s    	BQ!RBGGBE\\%H\55F!9<:%%%%!9,,..(::::!9**,,8888!9<:%%%%!9,,..(::::!9**,,888888r(   z%test_centered_bar_label_nonlinear.svgc                     t          j                    \  } }|                    g dg d          }|                    d           |                    dd            |                    |d           |                                 d S )N)r@   r/  r   )r  i  iX  r8  r<   r]   r  )r*   r    r  rf  r  ru  r  )r  r%   r  s      r&   !test_centered_bar_label_nonlinearr  !  s    LNNEArGGOOO-B-B-BCCMMM%KK4LL8L444OOr(   c                  (   t          j                    \  } }d}t          g dg d          D ]:\  }}|                    d|||          }|                    |d           ||z  };|                    d d           |                                  d S )	Nr   r  )r   r  rj  r  )r3   rT   r]   r  r  )r*   r    r  r  ru  r  r	  )r0   r%   lastr3   rI  r  s         r&   +test_centered_bar_label_label_beyond_limitsr  !  s    lnnGCDOOO\\\::  uuEEE
]x888KKb     r(   c                  &   t          j                    } ddgddg}}|                     ||d          }|                     |          }|d         j        |d         |d         dz   fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         dz
  fk    sJ |d                                         dk    sJ |d                                         d	k    sJ d S )
Nr<   r=   r   rs  r\  r   r]   rS   rB   rt  rv  s        r&   !test_bar_label_location_errorbarsr  !  s    	Ba&1b'BFF2wQF''E\\%  F!9<BqE71:>22222!9,,..(::::!9**,,8888!9<BqE71:>22222!9,,..(::::!9**,,555555r(   r   rx
  z{:.2f}c                    t          j                    }|                    ddgddg          }|                    ||           }|d                                         dk    sJ |d                                         dk    sJ d S )	Nr<   r=   r   rs  r  r   z3.00z-4.00r*   rn  r  ru  r\  )r   r%   r  r  s       r&   test_bar_label_fmtr  !  s     
BFFAq6Ar7##E\\%S\))F!96))))!97******r(   c                      t          j                    } |                     ddgddg          }t          j        t
          d          5  |                     |d          }d d d            d S # 1 swxY w Y   d S )	Nr<   r=   r   rs  zstr or callabler|  r   r  )r*   rn  r  r   r   r   ru  )r%   r  r  s      r&   test_bar_label_fmt_errorr  !  s    	BFFAq6Ar7##E	y(9	:	:	: ( (LLBL''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   	A..A25A2c                     t          j                    } |                     ddgddg          }|                     |ddg          }|d                                         dk    sJ |d                                         dk    sJ d S )	Nr<   r=   r   rs  r  r  r
  r   r  )r%   r  r  s      r&   test_bar_label_labelsr  !  s    	BFFAq6Ar7##E\\%c
\33F!93&&&&!93&&&&&&r(   c                  ,   t          j                    } |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr=   r   r<   c                 6    g | ]}|                                 S r   r  r   rP
  s     r&   r   z,test_bar_label_nan_ydata.<locals>.<listcomp>!       )))QAJJLL)))r(   r   r.  r   ru  rS   )r*   rn  r  rm   r  ru  r  r
  r%   r  r  s      r&   test_bar_label_nan_ydatar  !  s    	B661a&261+&&D\\$F))&)))b#Y6666!9<6!!!!!9**,,888888r(   c                  T   t          j                    } |                                  |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr=   r   r<   c                 6    g | ]}|                                 S r   r  r  s     r&   r   z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>!  r  r(   r   r.  r   ru  rS   )	r*   rn  rp  r  rm   r  ru  r  r
  r  s      r&   !test_bar_label_nan_ydata_invertedr  !  s    	B661a&261+&&D\\$F))&)))b#Y6666!9<6!!!!!9**,,888888r(   c                     t          j                    \  } }|                    g dt          j        ddgg d          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ t          j                    \  } }|                    g dg d	d
t          j        dg          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ t          j                    \  } }|                    g dt          j        ddgt          j        t          j        dg          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ d S )Nr  r<   r=   r  r  c                 6    g | ]}|                                 S r   r  r  s     r&   r   z&test_nan_barlabels.<locals>.<listcomp>!  r  r(   )r   r.  2)r  r  rQ  r  r  c                 6    g | ]}|                                 S r   r  r  s     r&   r   z&test_nan_barlabels.<locals>.<listcomp>!  r  r(   )r-  r.  r  )r  r  c                 6    g | ]}|                                 S r   r  r  s     r&   r   z&test_nan_barlabels.<locals>.<listcomp>!  r  r(   )r*   r    r  rm   r  ru  rh  r   )r0   r%   r  r  s       r&   test_nan_barlabelsr  !  s   lnnGC66)))bfa^///6BBD\\$F))&)))^^^;;;;;r{{}}j11111lnnGC66)))YYYc263-?6@@D\\$F))&)))___<<<<;r{{}}k22222lnnGC66)))bfa^262632G6HHD\\$F))&)))^^^;;;;;r{{}}j1111111r(   c            	      n   t          j                    \  } }|                    t          j        ddddd                     dt          j        dt
          j        z  d	z            d
z  z  }t
          j        	                    t          j
        d|dz    d|dz   f          |j        j        d           d S )N)r   r   r  r3  r  r  r  gffffff?r	  r  r=   gr  r  )r*   r    r  r  Wedgerm   r  r  r   assert_array_almost_equal_nulprY  dataLimrV  )r0   r%   bots      r&   test_patch_boundsr  "  s    lnnGCLLr3cBBBCCC
bfRXc\""A%
%CJ--
&CH+tSW566
8I2O O O O Or(   c            	          t          j        t          d          5  t          j        dgdgdddd           d d d            d S # 1 swxY w Y   d S )	Nz!You passed a edgecolor/edgecolorsr|  r   r$  r  rT  r/  )r   r  r?  r@  )r   r  rV  r*   r>   r   r(   r&    test_warn_ignored_scatter_kwargsr  "  s    	k@
B 
B 
B O OQC!SC3#NNNNO O O O O O O O O O O O O O O O O Os   AA
A
c                     t          j                    \  } fdt          d          D             }                    t	          j        d          t	          j        d                    }                    t	          j        d                    }                    t          j
        ddd                    }                    ddd          }t          j                  |gk    sJ t          j                  |gk    sJ t          j                  |k    sJ t          j                  |gk    sJ j        rJ t          j                  |gk    sJ j        d         |d         u sJ j        d         |d         u sJ t'          j        t*          d	
          5  j        t-          |          dz             d d d            n# 1 swxY w Y   j        g dz   g |dddk    sJ g dj        z   dddg|k    sJ j        dz   g |dddR k    sJ dj        z   dddg|R k    sJ |                                 j        rJ |                                 j        rJ |                                 j        rJ j        rJ |                                 j        rJ j        D ]}|                                 t-          j                  dk    sJ d S )Nc           	      r    g | ]3}                     t          j        ||d z                       d         4S )r   r   )r   rm   ru   )r   rM  r%   s     r&   r   z(test_artist_sublists.<locals>.<listcomp>"  s:    ???RWWRYq!a%(())!,???r(   r  r   r   r   r  r   r  r   zout of ranger|  r<   r  r=   r   )r*   r    r   r>   rm   ru   r   r  r  r  r  r  r*  r  imagesrV  rF  tablesr
  r   r   
IndexErrorr  rt  )r0   rV  r  r  r$  r  r  r%   s          @r&   test_artist_sublistsr  "  se   lnnGC????eAhh???E
**RYq\\29Q<<
0
0C	28F##	$	$BLL+FAq99::E771aD C5((((	??rd"""">>U""""
w&&&&y>>dV#### 8A;%(""""8B<59$$$$	z	8	8	8 ! !
Ua  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 8iii#4U#4A#4q#4!#4444499rxAq!#4e#44444 8i#4U#4A#4q#4!#4#44444rxAq!#4e#4#44444 JJLLL~IIKKKy	LLNNNzyKKMMMxh  
		rx==As   ,GGGc                  Z   t          j        d          } t          j        d          }t          j                    \  }}|                    | |          }t          |          dk    sJ t          j                    \  }}|                    g g           }t          |          dk    sJ d S )Nr   )r   r   r   r<   )rm   r   r*   r    r   r  )r5   r6   r  r%   r  s        r&   test_empty_line_plotsr  @"  s    
A
ALNNEAr771a==Dt99>>>> LNNEAr772r??Dt99>>>>>>r(   z
fmt, match))r  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\))r  zE'C' is not a valid format string \('C' must be followed by a number\))z.CzF'.C' is not a valid format string \('C' must be followed by a number\)stringc                    t          j                    \  }}||                    dd          }t          j        t
          d|z   dz             5  |                    d| |           d d d            d S # 1 swxY w Y   d S )Nnotzneither a data key norz\Az\Zr|  r  rm  )r*   r    replacer   r   r  r   )r   r}  r  r0   r%   s        r&   test_plot_format_errorsr  N"  s     lnnGCe%=>>	z)>	?	?	? * *
#D)))* * * * * * * * * * * * * * * * * *s   A66A:=A:c                     t          j                    \  } }|                    g dd          }|d                                         dk    sJ |d                                         dk    sJ t          j                    \  } }|                    g dd          }|d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    g dd	          }|d                                         d
k    sJ |d                                         dk    sJ t          j                    \  } }|                    g dd          }|d                                         dk    sJ |d                                         t          j
        d          k    sJ |d                                         dk    sJ d S )Nr  z1.0r   )r   r   r   r   r  r.  r<   r=   k3r  rS  z.C12:r   C12r  )r*   r    r   r  r>  r  r"  r
  r\  r)  r  rO  r
  s      r&   test_plot_formatr  `"  s   lnnGC77999e$$D7"6666676))))lnnGC77999c""D73&&&&lnnGC77Aq6Aq65#..DJOO7"66666"++--4444lnnGC77Aq6Aq63..DJOO73&&&&"++--6666lnnGC77999d##D73&&&&7#%%%%lnnGC77999g&&D73&&&&7'/%"8"888887  ""c))))))r(   c                  p   t          j                    \  } }|                    ddddi           |                                }| j                                         |                                d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    dddddi           |                                }| j                                         |                                d                                         dk    sJ |	                                d                                         dk    sJ |                                d                                         dk    sJ d S )Nr   r/  r  r=   rm  r   r@   )
r*   r    r   rL   r  r"  	get_textsr\  r
  r  )r0   r%   legs      r&   test_automatic_legendr  }"  s|   lnnGCGGCC8G$$$
))++CJOO==??1&&((C////"++--4444lnnGCGGCcaG)))
))++CJOO==??1&&((C////"++--4444"++--444444r(   c            	      .   t          j        t          d          5  t          j        g dd           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g dg dg dg ddd	g
           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g ddg           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        t          j        d                     d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        ddddddi           d d d            d S # 1 swxY w Y   d S )Nz"plot\(\) got an unexpected keywordr|  r  r<   r  zplot\(\) with multiple groupsr  r.  r  r   zx and y must have same firstzx and y can be no greater than)r=   r=   r=   zUsing arbitrary long args withr   r/  r@   r  r=   rm  )r   r   r   r*   r   r  rm   r   r   r(   r&   test_plot_errorsr  "  s   	y(M	N	N	N ! !a    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J O OIIIyyy)))C:NNNNO O O O O O O O O O O O O O O	z)G	H	H	H ! !QC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J % %##$$$% % % % % % % % % % % % % % %	z)I	J	J	J 4 4c33(33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4sY   AAA'$BBB=C""C&)C&'D;;D?D?!F

FFc            
         t          j                                                    } t          | j        t          d          t          d          t          d                    t          | j        ddgddgg          t          | j        ddgddgg          t          | j        ddgddgg          t          | j	        ddgddgg          fD ])}d} ||          j
        }|j        |j        f|k    sJ *d S )Nr   r`  r   r<   r=   )rq  r  )clim)r*   r   r   r   r>   r   r   rx  r  r  r  r  r  )r%   plot_methodr  r  s       r&   	test_climr  "  s   		!	!	#	#BBJa%((eAhh???BIAA/00BI!Q!Q 011BMQFQF#344BMQFQF#344 	. 	. {%%%*	49%-----	. 	.r(   c                     ddgddgddgddgg} t           j        j        t           j        j        t           j        j        t           j        j        g}t          j        | |          }t          j                    \  }}|                    t          j	        |                     |
                                 |                                d         dk    sJ d S )Nr   r   r<   r  )mpathrD  rH  CURVE3	CLOSEPOLYr*   r    r  r  rG  rr  r   )r3  codesr  r0   r%   s        r&   test_bezier_autoscaler  "  s     !WWVVE ZZZZ!#E 	
5%  AlnnGCLL#A&&'''LLNNN ;;==t######r(   c                     t          j        g ddgddgddgddgddgddgddgddgddgddgddgddgddgddgd	dgd	dgd
dgd
dgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd gd!d gd!d"gd#d"gd#d$gd%d$gd%d&gd'd&gd'd(gd)d(gd)d*gd+d*gd+d,gd-d,gd-d.gd/d.gd/d0gd1d0gd1d2gd3d2gd3d4gd5d4gd5d2gd6d2gd6d4gd.d4gd.d7gd8d7gd8d0gd9d0gd9d:gd;d:gd;d*gd<d*gd<d(gd=d(gd=d&gd>d&gd>d$gd?d$gd?d@gdAd@gdAd gdBd gdBdgdCdgdCdgdDdgdDdEgdFdEgdFdGgdHdGgdHdgdIdgdIdgdJdgdJdgdKdgdKdgdLdgdLdgdMdgdMdgdNdgdNdgdOdgdOdgdPdgdPdgdQdgdQdgdRdgdRdgdSdgdSdgdTdgdTdgdUdgdUdgdVdgdVdgdWdgdWdgdXdgdXdg          } t          j        | d d dYf                   }t          j        | d d dZf                   }t          j        | d d dYf                   }t          j        | d d dZf                   }t	          j        |           }t          j                    \  }}|                    t          j
        |                     |                                 |                                dY         |k    sJ |                                dZ         |k    sJ |                                dY         |k    sJ |                                dZ         |k    sJ d S )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r  gffffffgQgףp=
r  g(\g{Gz?gHzGg      r|  gQ g{Gz?gzGr  gRQrE  g(\gQ?g333333g(\?gr4  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r  g(\տg{Gz?g
ףp=
ǿr  g{Gzgp=
ף?gףp=
?r2  gQ?gQ?p=
ף?g(\?gq=
ףp?rv  g(\?r  gQ?gGz?g=
ףp=?gffffff @rj	  gGz@r  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r<   )rm   rY  r  r  r  rD  r*   r    r  r  rG  rr  r   r   )r3  minxminymaxxmaxyr  r0   r%   s           r&   test_small_autoscaler  "  s   H 	t}',dm6;T]	t}',dm6;T] 
 t} (-dm 7<T] 
	 t}	 (-dm	 7<T]	
 

 t}
 (-dm
 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T]  
!  t}!  (-dm!  7<T]!" 
#" t}#" (-dm#" 7<T]#$ 
%$ t}%$ (,Tl%$ 6:4L%$ DH,%& 
t'& Tl'& &*4L'& 48,'& BFt'( 
t)( Tl)( &*4L)( 48,)( BFt)* 
t+* Tl+* &*4L+* 48,+* BFt+, 
t-, Tl-, &*4L-, 48,-, BFt-. 
t/. Tl/. &*4L/. 48,/. BFt/0 
t10 Tl10 &*4L10 48,10 BFt12 
t32 Tl32 &*4L32 48,32 BFt34 
t54 Tl54 &*4L54 48,54 BFt56 
t76 Tl76 &*4L76 48,76 BFt78 
t98 Tl98 &*4L98 48,98 BFt9: 
t;: Tl;: &*4L;: 48,;: BFt;< 
t=< Tl=< &*4L=< 48,=  EB 6%1+D6%1+D6%1+D6%1+D
5AlnnGCLL#A&&'''LLNNN;;==t####;;==t####;;==t####;;==t######r(   c                  p   t          j                    \  } }|                    t          j        d                     t          d          D ]h}|                                |                                         | k    sJ |                                |                                         | k    sJ id S )Nr   )	r*   r    r   rm   ru   r   r  r\  r
  )r0   r%   rM  s      r&   test_get_xticklabelr  "  s    lnnGCGGBIbMMRyy @ @!!##C(1133#x????!!##C(1133#x?????@ @r(   c                     t          j        dt                    } t          j        g d          }t          j        dgdz            }t           j        | d<   t          j                    \  }}|                    | ||          }|                    | ||          }||fD ]}|^}}	t          j	        |j
                                                   sJ t          j	        |                                          sJ |	D ]W}
t          j	        |
j
                                                  sJ t          j	        |
                                          sJ Xd S )Nr   r  )r   r   r   r  r   r  re  )rm   ru   r  rY  r  r*   r    r  r  isfiniter  any	get_widthr  )barx
barheights	barstartsr0   r%   r  hbarsbar_setnanfulrestr/  s              r&   test_bar_leading_nanr  "  sN   9Qe$$$D///**J$""IfDGlnnGC66$
9655DGGD*9G55E%= . .VY''',,.....{6++--..... 	. 	.A;qt$$((*****;q{{}}------	.. .r(   c                    t           j                            d           |                                 }|                                }|                    t
          j        gt
          j        g           |                    dgdg           |                    dgdg                                           |                    dgdg           d S )Nr   r<   )r   r   r   r    r  rm   r  rt  r  s       r&   test_bar_all_nanr  #  s    IMM'!!GFKK26(###KKaS
JJsQC!!!
JJsQCr(   zextent_units.pngc                  "   t          j        dd          \  } }t          j        dd          }t          j        dd          }d t	          d          D             }|d                             d           |d                             |d	d
d||gt          j        d                   }|d                             d           |d                             |d	||d
dgt          j        d                   }|d         j	        
                    t          j        d                     |d                             |d	||||gt          j        d                   }|d         j	        
                    t          j        d                     |d                             d           |d                             |d	t          j        d                   }|                    ||||g           |d         j	        
                    t          j        d                     |d                             d           t          j        t"          d          5  |                    dd||gd           d d d            d S # 1 swxY w Y   d S )Nr=   z
2020-01-01rf  z
2020-01-11c                 F    g | ]fd t          d          D             S )c                     g | ]}|z   S r   r   )r   rM  rx  s     r&   r   z0test_extent_units.<locals>.<listcomp>.<listcomp>$#  s    ###AAaC###r(   r   )r   )r   rx  s    @r&   r   z%test_extent_units.<locals>.<listcomp>$#  s4    
7
7
7####r###
7
7
7r(   r   r  zDate extents on y axisr   r<   r^  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%dr|  zDay of Jan 2020)r	  r  )r   r   z set_extent\(\) got an unexpectedr|  r  Fr  )r*   r    rm   rr  r   r8   r   r   r  r^   r   rE  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastarrr  s         r&   test_extent_unitsr  #  s   \!QFAs|S11JlC00I
7
7U2YY
7
7
7CI0111	T		#g"#RY!?"}X6 
 
8 
8B IBCCC	T		#g",iB!?"}X6 
 
8 
8B IO''(<T(B(BCCC	T		#g",i",i"9"}X6 
 
8 
8B IO''(<T(B(BCCCIMM*M+++	T		#g"}X6 
 
8 
8BMM9j)Z@AAAIO''(<T(B(BCCCIMM*M+++	y(K	L	L	L B B
q"j)45AAAB B B B B B B B B B B B B B B B B Bs   JJJc                  `   t          j                    \  } }|                    g g g g           }|                    dgg          }||gz   D ]%}|j        |u sJ |                                | u sJ &|                                 ||gz   D ]!}|j        J |                                J "d S r
  )r*   r    r   r   rs  
get_figurer  )r0   r%   rV  rx  arts        r&   %test_cla_clears_children_axes_and_figr  B#  s    lnnGCGGBB##E
))aSE

Cu} ' 'x2~~~~~~3&&&&&HHJJJu} ( (x~~''''( (r(   c                      t          j                    \  } }|                    g d|          }|                                }|                                 |                    dd           d S )N)r<   r   r  r<   rl  rz  r  r~  )r*   r    r  r  rt  r   )r0   r%   marginalmarginal_twins       r&   test_child_axes_removalr  O#  se    lnnGC}}]]]2}66HNN$$MOOFFhF'''''r(   c                      d } d}t          j        t          |          5  d}t          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r(   r&   r  z5test_scatter_color_repr_error.<locals>.get_next_colorY#  r2  r(   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'r|  zred
r=   r?  )r   r   r  r   rs  r   r  )r  msgr@   s      r&   test_scatter_color_repr_errorr  W#  s      8  
z	-	-	- M M//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   ,AA!Ac                  0   t          j                    \  } }|                    d           |                    t	          d          dd          \  }t          j                    5 }|                     |d           d d d            d S # 1 swxY w Y   d S )Nr   Tr<   )r  r  r  )r  )r*   r    set_rasterization_zorderr   r   r  r  r  )r0   r%   r  r/  s       r&   &test_zorder_and_explicit_rasterizationr  e#  s    lnnGC"""
''%((tA'
6
6CB	 %Ae$$$% % % % % % % % % % % % % % % % % %s   &BBBzpreset_clip_paths.pngc            	         t          j                    \  } }t          j                            ddgddgddgddggdddd          }|                    |           t          j                            d	d
d|          }|                    t          j
                    g           |                    |           t          j                            d	ddd|          }|                    |           t          j                            ddgddgddggddddd|          }|                    |           |                    dddddid|           t          j                            ddgddgddgddggddddd|          }|                     |d           |                    dd           |                    dd           d S )Nr<   r   r   z#ddffddz#00ff00r=   r   )r?  r@  rA  r  rz  r	  T)clip_onr  )r  r  rT  )r   r  r  rt  z#beefc0r  z#faded0)r?  r  r@  rA  r  r  r)  )rs  rs  )r  ru  r   rS  )r  r   r  r  r  r6   )r?  r@  rA  r  r  r  r  )r*   r    r   rF  Polygonr  rV  r   set_path_effectsr   withTickedStrokerE  r   r  r  )r0   r%   polyr  poly2poly3s         r&   test_preset_clip_pathsr  m#  s    lnnGC;
Q!Q"a1b'*iq  5 5D LL9GZNND;799:;;;MM$9G\d&*  , ,DMM$K
a1a&1e*%#q$$   H HE MM% KKn[#S>44  I I I K
Q!SC:Qx0C33   > >E NN5tN$$$KKAKKAr(   c                  ^   dt           j        d<   dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ | j        j                                        dk    sJ | j        j                                        dk    sJ d S )Nr>  zaxes.labelcolorr  zaxes.labelsizer
  zaxes.labelweight)	r   r   r*   rs  r^   r3   r  get_fontsizeget_fontweightr  s    r&   test_rc_axes_label_formattingr  #  s    &+CL"#%'CL!"'-CL#$	B8>##%%....8>&&((B....8>((**f444444r(   c                 (   t          j        dt           j         t           j         t           j        dddg          }t          t	          |                    }|                     dd          }t          |ddg          D ]\  }}|                    ||          }|                    ddt           j                            |          |d	|d
d
d          }t	          |	                                          t          j
        |                                           dz   k    sJ t	          |	                                          t	          h |t          j
        |                              dz   k    sJ |                    dd          }	|	d                             t           j         t           j         t           j         ddddt           j        gt          j        d          dz  d           |	d                             t           j         dddt           j        t           j        gt          j        g d          dz  dd           |	d                             t          j        d          dz  t           j         t           j         t           j         ddddt           j        gd           |	d                             t          j        g d          dz  t           j         dddt           j        t           j        gdd           d S )Nr   r<   r=   r  rU   rV   r  r~  )r  r~  Tr  )r  rW   complementarycompressr6  r  rq  rT  )ds)r  r  r\  rF  r   r   r  z	steps-pre)r  r6  )rm   rY  r	  r   r  r    r  ecdfr
   	get_xdataisnanr  r   ru   )
r#   r$   r  r2  r   r%   rW   l0l1r   s
             r&   	test_ecdfr  #  s   8Q"&"&!Q:;;DCIIG  A&&Hx*l)CDD H HKWWT{W33WWS#"%++d*;*;'$J$J!,#'$3  @ @ 2<<>>""&;&;&=&=&AAAAA2<<>>""c*BD"(4..,A*B&C&Ca&GGGGGGq!$$GAJOObfWrvgw1aBFCIaLL1$  7 7 7AJOObfWaArvrv6H33344r9"s  , , , AJOOBIaLL1$fWrvgw1aBFC"  $ $ $ AJOOBH33344r9fWaArvrv6#  - - - - -r(   c                  z   t          j        t                    5  t          j        dt
          j        g           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t
          j                            ddgddg                     d d d            d S # 1 swxY w Y   d S )Nr<   r=   TFr  )	r   r   r  r*   r  rm   r  r
   rY  r   r(   r&   test_ecdf_invalidr  #  s   	z	"	"  !RV              	z	"	" : :aV4-88999: : : : : : : : : : : : : : : : : :s#   !AAA+8B00B47B4c            
         t          j                    \  } }t          j        ddt          j        z  d          }dt          j        |          z  }d}|                    ||d           |                                |                                f}|	                    |dd	d
           |
                    |dd||k    dd|                                           |                                |                                f|k    sJ d S )Nr   r:  r  r  g333333?rG  rU  r   r=   r  )r   rV  r  r<   r   )rJ  r   r  r>  )r*   r    rm   ru   r  r  r   r   r   rw   r  rL	  )r0   r%   r5   r6   	thresholdoriginal_limss         r&   test_fill_between_axes_limitsr!  #  s    lnnGC
	!QY%%ABF1IIAIGGAqG   [[]]BKKMM2MJJyASJ999OOAq!1y=!8N8N8P8P  R R R KKMM2;;==)]::::::r(   c                     t          j                    \  } }|                    g dg d           |                    dd           |                    dd           |                    dd	           t          j        d
           |                                D ]"}|                                d         dk    sJ #d S )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptrT  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r*   r    r   r+   r,   r	  r4   r  get_fontfamily)r0   r%   r  s      r&   test_tick_param_labelfontr(  #  s    lnnGCGGLLL,,,'''MM*XM>>>MM*]MCCCNNkN:::I#$$$""$$ 7 7""$$Q';666667 7r(   c                  f   t          j                    \  } }|                    dd          }t          j        |j        d                                         d          sJ t          j        |j        d                                         d          sJ t          j        |j                                        d         d          sJ t          j        |j                                        d         d          sJ t          j        |j        j	        
                                d          sJ d S )NrB   r>  rU  rS   r   r	  )r*   r    r  r)  r  r	  r  r^   r  r3   r  )r0   r%   saxs      r&   test_set_secondary_axis_colorr+  #  s   lnnGC


U%

0
0Ccj2@@BBEJJJJJcj/==??GGGGGci7799'BEJJJJJci7799,GOOOOOcio77995AAAAAAAr(   c                  D   t          j        ddd          \  } }g }|d         j                            d|j                   |d         j                            d|j                   |d                             ddgdd	g
           ||d         |d         gk    sJ d S )Nr=   Tr
  r<   xlim_changedylim_changedr   r   r:  r~  )r*   r    	callbacksconnectr  r   )r0   r  eventss      r&   test_xylim_changed_sharedr2  #  s    |Ad4888HCFF^V];;;F^V];;;FJJQF!QJ(((c!fc!f%%%%%%%r(   zaxhvlinespan_interpolation.pngc                     t          j                                        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 S )NrL  r  r  r  r`  r  r  rp  )fcrT  r   rq  r<   )r@   r  r  ra  )r4  r  r  r  )r*   r   r   r  r	  r  rw   r  r  s    r&   test_axhvlinespan_interpolationr5  #  s    		!	!W	!	5	5BOOJJrTJJJr2$JJJr2r2$J'''JJqDJ###JJr2$bJ)))JJr2r2$bJ11111r(   r.  c                    |                                 }|                                  }i dddddddddd	d
dddddddddddddddddddddddddddd } |j        d#d!|i|  |j        d#d!|i| |                                 |                    d           |                    d           d"S )$z<Test that the given tick params are not reset by ax.clear().r	  r	  r	  r   r  r   zxkcd:wine redr	  r   r&  serifr  rq  r	  r  r	  zxkcd:shocking pinkr	  zxkcd:fluorescent greenr	  r   r	  r   r	  r  rS   FrB   TrT   rF   )r  r  r  r  r,  Nr   )r    r	  r  r  )r$   r#   r.  rz   r{   r  s         r&   test_axes_clear_behaviorr8  #  s    !!GFT" 	 		
 	q 	7 	! 	 	* 	. 	c 	! 	#  	%!" 	t#$ 	%& 	'( /  F4 F,,E,V,,,G--U-f---MMOOO
KKLLr(   )r   r  r   finalz/https://github.com/python/cpython/issues/124538)reasonc                     d } t                      }|                                }t          j                            d          }|                    ||           |                    ||           |                                }|                                 d |D             }t          |          dk    sJ |D ]} | |           t          |          dk    sJ |D ]'}	 |
                                 # t          $ r Y $w xY wd S )Nc                    t          | g          }t                      }t          |          dk    r|                                }t	          j        |          D ]Q}t          |          |v r|| usJ |                    t          |                     |                    |           Rt          |          dk    d S d S rE  )	r   r   r  popleftgcget_referentsidaddr  )r  to_visitexploredparentchilds        r&   assert_not_in_reference_cyclezFtest_axes_clear_reference_cycle.<locals>.assert_not_in_reference_cycle*$  s    %>>55(mma%%''F)&11 ' 'e99((E))))RYY'''&&&& (mmar(   r  c                 J    g | ] }t          |t          t          f          |!S r   )r   r   r   )r   r   s     r&   r   z3test_axes_clear_reference_cycle.<locals>.<listcomp>@$  s=       a&.122	  r(   r   )r   r   rm   rn   r   r   r>   r  r  r  rt  NotImplementedError)rF  r0   r%   rg  ax_childrenbig_artists
big_artistrE  s           r&   test_axes_clear_reference_cyclerL  %$  sD   
' ' ' ((C			BY^^D!!FGGFFJJvv//##KIIKKK   K {a! 2 2
%%j1111{a  	LLNNNN" 	 	 	D		 s   $C99
DDc                  R   t           j                            d           t           j                            d          } t          j        ddd          \  }}t          j        t          j        d          5  |d	         	                    | g d
           d d d            n# 1 swxY w Y   d |d	         
                                D             g d
k    sJ |d         	                    | g d
           d |d         
                                D             g d
k    sJ d S )Nrc   )r   r   r<   r=   T)r  r  rm  zhas been renamed 'tick_labels'r|  r   r  r
  c                 6    g | ]}|                                 S r   r  r  s     r&   r   z,test_boxplot_tick_labels.<locals>.<listcomp>[$       ;;;QAJJLL;;;r(   )tick_labelsc                 6    g | ]}|                                 S r   r  r  s     r&   r   z,test_boxplot_tick_labels.<locals>.<listcomp>_$  rO  r(   )rm   rn   ro   r*   r    r   r  r   rs  r  r  r  s      r&   test_boxplot_tick_labelsrR  P$  sj    INN89G$$D|!1T:::HC	c6>
@ 
@ 
@ 5 5AtOOO4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 <;#a&"8"8":":;;;NNNN FNN4___N555;;#a&"8"8":":;;;NNNNNNs   9 B%%B),B)c                     g d}|                                  }|                    |dddi           |                                 }|                    |dddi           d S )N)r  r   rQ  z%1.0f%%usetexT)rE
  ry
  z%1.0f\%%r
  )r#   r$   r  r%   r  s        r&   test_latex_pie_percentrU  b$  so     <<D					BFF4x.>F???




CGGD+(D1AGBBBBBr(   c                 Z   t          j        dd          \  }}t          j                            d           d t          dd          D             }|d                             |           t          |d                                         t          j	        g d	          k              sJ t          |d         
                                t          j	        g d
          k              sJ |d                             |d           t          |d                                         t          j	        g d
          k              sJ t          |d         
                                t          j	        g d	          k              sJ t          j                     |                                }t          j        t          d          5  |                    |d           d d d            n# 1 swxY w Y   |                                 }|                    |d           d S )Nr<   r   r  rc   c                 P    g | ]#}t           j                            d |d          $S r   r  rL  r   stds     r&   r   z/test_violinplot_orientation.<locals>.<listcomp>u$  ,    FFF#	  C--FFFr(   r  r   r   )	r   r   r   r   rd  r  r%  r  r  g      >g      4r  r  r;  rl  rU  rU   rV   z
vert: boolr|  F)vert)r*   r    rm   rn   ro   r   rR  r  r  rY  r
  rw  r   r  r  r#   r$   r0   r  all_datar{   rz   s          r&   test_violinplot_orientationr`  o$  s    |!1---HCINN8FFq"FFFHFhs1v  ""bh111'3 '3 3 4 4 4 4 4s1v  ""bh---'/ '/ / 0 0 0 0 0 FhL999s1v  ""bh---'/ '/ / 0 0 0 0 0s1v  ""bh111'3 '3 3 4 4 4 4 4 IKKK F	/|	D	D	D 0 0(///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !!Gx\:::::s   G55G9<G9c                    t          j        dd          \  }}t          j                            d           d t          dd          D             }|d                             |           t          |d                                         t          j	        g d	          k              sJ t          |d         
                                t          j	        g d
          k              sJ |d                             |d           t          |d                                         t          j	        g d
          k              sJ t          |d         
                                t          j	        g d	          k              sJ t          j                     t          j        t          j        d          5  t          j        ddi          5  |                                }|                    |           d d d            n# 1 swxY w Y   |                                 }|                    |d           d d d            d S # 1 swxY w Y   d S )Nr<   r=   r  rc   c                 P    g | ]#}t           j                            d |d          $S rX  rL  rY  s     r&   r   z,test_boxplot_orientation.<locals>.<listcomp>$  r[  r(   r  r   r   r  r\  rU   rV   z!was deprecated in Matplotlib 3.10r|  zboxplot.verticalF)r*   r    rm   rn   ro   r   r  r  r  rY  r
  rw  r   r  r   rs  r   r^  s          r&   test_boxplot_orientationrc  $  s    |!1---HCINN8FFq"FFFHFNN8s1v  ""bh' '      s1v  ""bh---'/ '/ / 0 0 0 0 0 FNN8N666s1v  ""bh---'/ '/ / 0 0 0 0 0s1v  ""bh' '       IKKK 
c6?
A 
A 
A 	< 	< ^/788 	% 	%%%''FNN8$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ##%%l;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s6   I*HIH	IH	.IIIzuse_colorizer_keyword.pngr  c            	      B   t           j                            d           t           j                            d          } t           j                            d          }t          j        dd                              d          }t          j        dd          \  }}t          j        	                    dd	          }t          j
                            |d
          }|d                             ||||           |d                             | ||d           |d                             ||           |d                             ||           |d                             ||           |d                             ||           |d                             dd||           |d                             |j        ||d dd df         |           |d                             ||           |d                             ||           |d                             |j                                        |                                |                                |           |d                             |j                                        |                                |                                |           |                    t          j        t          j        |dd          dd          |           t5          |           d S ) Nr   r  r  float32r  r  r   r:  r  r  r  r   r  r@   	colorizerr  r  rh  r  r  )rh  r   r   r|  r  r9  r_  r   r<   r=   r   r   r  r<   r   ru  r=   r<   r  r	  r  r<   )rm   rn   ro   ru   r   r*   r    r   r  r*  rh  	Colorizerr>   r  r   rx  r  r  r  r  r  
tricontourr  tricontourffigimager  r   )rand_xrand_yr@   r0   rs  r  cls          r&   test_use_colorizer_keywordru  $  s    INN1Yc""FYc""F
	"I&&&..v66AQ""IC:2&&D		 	 d	 	8	8BJq!qB///JffVDDDJa2&&&Ja2&&&J!r***J!r***J,.@1$&  ( ( (J!#q!BQBF)r:::JqB'''JR(((J!#))++qwwyy!''))rJJJJ1399;;		17799KKKLL29Q333Ra@@@BLOOOC     r(   c            
         t           j                            d           t           j                            d          } t           j                            d          }t          j        dd                              d          }t          j        dd          \  }}t          j        	                    dd	          }t          j
                            |d
          }d}ddiddiddiddig}|D ]M}	t          j        t          |          5   |d         j        ||f||d|	 d d d            n# 1 swxY w Y   N|D ]M}	t          j        t          |          5   |d         j        ||f||d|	 d d d            n# 1 swxY w Y   N|D ]M}	t          j        t          |          5   |d         j        | |f|dd|	 d d d            n# 1 swxY w Y   N|D ]K}	t          j        t          |          5   |d         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]K}	t          j        t          |          5   |d         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]K}	t          j        t          |          5   |d         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]K}	t          j        t          |          5   |d         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]M}	t          j        t          |          5   |d         j        dd |fd|i|	 d d d            n# 1 swxY w Y   N|D ]^}	t          j        t          |          5   |d!         j        |j        ||d dd df         fd|i|	 d d d            n# 1 swxY w Y   _|D ]K}	t          j        t          |          5   |d"         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]K}	t          j        t          |          5   |d#         j        |fd|i|	 d d d            n# 1 swxY w Y   L|D ]}	t          j        t          |          5   |d         j        |j                                        |                                |                                fd|i|	 d d d            n# 1 swxY w Y   |D ]}	t          j        t          |          5   |d$         j        |j                                        |                                |                                fd|i|	 d d d            n# 1 swxY w Y   |D ]E}	t          j        t          |          5   |j        |fd|i|	 d d d            n# 1 swxY w Y   Fd S )%Nr   r  r  re  r  r  r   r:  r  r  rf  z5The `colorizer` keyword cannot be used simultaneouslyr  r  r  r8  r   r  r|  r  rg  r  r  ri  r  rh  rj  r|  r  r9  r_  rk  rl  ru  rm  r  )rm   rn   ro   ru   r   r*   r    r   r  r*  rh  rn  r   r   r  r>   r  r   rx  r  r  r  r  r  ro  r  rp  rq  )
rr  rs  r@   r0   rs  r  rt  	match_strkwrdskwrds
             r&   test_wrong_use_colorizerrz  $  sT
   INN1Yc""FYc""F
	"I&&&..v66AQ""IC:2&&D		 	 d	 	8	8BGIa[61+8KLE @ @]:Y777 	@ 	@DJq!?qB??$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ @ @]:Y777 	@ 	@DJq!?qB??$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ U U]:Y777 	U 	UDJffTVTTtTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 7 7]:Y777 	7 	7DJa6626666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 7 7]:Y777 	7 	7DJa6626666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ; ;]:Y777 	; 	;!DJ!!::r:T:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; ; ;]:Y777 	; 	;!DJ!!::r:T:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 8 8]:Y777 	8 	8!DJ!"46H1 8 8,.8268 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8  K K]:Y777 	K 	K!DJ!!#q!BQBF)JJrJTJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 8 8]:Y777 	8 	8DJq77B7$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 9 9]:Y777 	9 	9DJ88R84888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 * *]:Y777 	* 	*!DJ!!#))++qwwyy!'')) * *r *$(* * *	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*  + +]:Y777 	+ 	+"DJ"1399;;		17799 + +PR +%)+ + +	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+  2 2]:Y777 	2 	2CL11b1D111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	22 2s   D44D8	;D8	FF	F	/GG	G	?H""H&	)H&	I00I4	7I4	J>>K	K	)LL	L	7MM 	#M 	*N==O	O	(PP	P	6QQ	 Q	AS$$S(	+S(	AU//U3	6U3	V77V;	>V;	c                     t          j                    \  } }|                    g dg d          }|D ]+}t          j        |                                d          sJ ,|                    g dg dd          }|D ]+}t          j        |                                d          sJ ,|                    g dg dd	          }|D ]+}t          j        |                                d          sJ ,|                    g d
g ddd          }|D ]+}t          j        |                                d          sJ ,d S )Nr  r  r   )r^  r  r  r>  rU  )r  r  r  r  rA  )   r   !   r   )r   r?  )r*   r    r  r)  r  r  )r0   r%   r  r  s       r&   test_bar_color_precedencer~  %  s   lnnGC 66)))YYY''D ? ?!#"3"3"5"5v>>>>>> 66,,,			677D > >!#"3"3"5"5u====== 66,,,			X6>>D A A!#"3"3"5"5x@@@@@@ 66,,,			'6JJD @ @!#"3"3"5"5w??????@ @r(   r  (  r  r  r   r   rC  r  r   	functoolsr   r>  r%  r  	itertoolsr   platformsysr!  r	   dateutil.tzrU  numpyrm   r
   r   r   rZ   r   r   r   matplotlib.colorsr  r)  matplotlib.datesr  rE  matplotlib.figurer   matplotlib.axesr   rU  r   matplotlib.collectionsr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesrF  r  matplotlib.pathrC  r  matplotlib.projections.geor   matplotlib.projections.polarr   matplotlib.pyplotpyplotr*   matplotlib.textr  r(  matplotlib.tickertickerr   matplotlib.transforms
transformsr   mpl_toolkits.axisartist
axisartistrs  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   matplotlib.testing._markersr   r'   r1   r:   rQ   rX   r[   ra   r~   r   r   r   r   machiner   r   r   r  r(  r)  r*  r3  rN  r^  rh  rz  r  r  r  r  r   r+  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r1  rN  rX  r`  rg  rn  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r+  r4  r  ru   r;  rC  rO  rY  rb  rg  ro  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r(  r+  rB  rE  rH  rM  rR  rY  r^  r`  rb  rf  rh  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r$  r)  r0  r3  rF  r9  r>  Patchr  rV  rA  rD  r]  rc  rl  rn  rr  ru  rx  r{  r}  r  r  r  r  r  r  r  r  r  r  r.  r/  rY  r6  r  r<  r@  rO  rU  rd  rh  rj  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#  r)  r/  r2  r4  r8  rC  rH  rS  rX  r[  r^  rc  rh  rk  ro  rr  ru  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r&  r*  r-  r/  r5  r=  rK  rS  rX  r[  r^  ra  rd  rf  ro  rr  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r		  r	  r	  r	  r	  r	  r.	  r3	  r>	  r@	  r  r%	  rE	  rO	  rX	  rd	  ri	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  rw   r  r  r
  r
  r
  r
  r
  r
  r   r  r  r!
  r(
  r,
  r0
  r5
  rK
  rR
  r\
  r_
  rb
  re
  ri
  rl
  rq
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   r  r  r  r  r  	AxesImager   PcolorImagern   QuadMeshr   r   r  r  r  r#  r%  r'  r0  r3  r8  r>  rB  rD  rF  rK  rM  fixturerY  r]  r_  rb  rf  ri  rk  rq  rs  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/  r2  r4  r8  r:  r<  r@  rB  rD  rI  rK  rR  rb  ri  rl  rq  rt  r~  r  r  r  r  r  r  r  	Transformr  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r  r!  r#  r*  r,  r.  r0  r3  r6  r<  r?  rH  rM  rO  rQ  rV  rY  r[  font_scalingsr`  rc  rg  ri  rk  rm  rq  rx  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r(  r+  r2  r5  r8  skipifversion_inforeleaselevelrL  rR  rU  r`  rc  ru  rz  r~  r   r(   r&   <module>r     s1[       ) ) ) ) ) ) ) )              				  				        



 ! ! ! ! ! !                              . . . . . . . . # # # # # # ! ! ! ! ! ! $ $ $ $ $ $             # # # # # # 1 1 1 1 1 1 / / / / / / % % % % % % % % % % % %       1 1 1 1 1 1 2 2 2 2 2 2             # # # # # # + + + + + + $ $ $ $ $ $D D D D D D D D D DD D D D D D D D D D 4 4 4 4 4 4 (((  )(
( ( (M M M / / /$ . . .$ / / /(@ @ @, (((( ( )(($ (((( ( )((( (((, , )(,*3 3 3 (((, , )(,      0x/11W<<ee!E E E$ $E E$NJ J J4G G G2 2344  540" " ". ,,J J -,J  ,,T222'% '% 32 -,'%T '(/x/11W<<ee!E E E E E", , ,"1 1 1h0 0 0f/ / / (((  )( )*===% % >=% 9! ! !. 93 3 3" 90 0 0$ (((  )( )*GLLL6 6 ML6$ ,-4wOOO  PO  , , ,@ @ @ ?#666; ; 76; %&D999) ) :9)4( ( (' ' '' ' '   #$UBK@@@  A@B5 5 5 (((
J 
J )(
J; ; ; >>233' ' 43'" $%W555- - 65- (((  )(/ / / =/ug"'3 3 3/ /3 3/ ?#$$* * %$* ?#...* * /.* &(;<$OOO< < PO<	- 	- 	-   %&D999
* 
* :9
*' ' ' #$G444/ / 54/*  $ &'wDIII	( 	( JI	($ $ $ (((## ## )(##L$ $ $4 %&''  (' 9<<<> >(((
< 
< )(> > 
< 8X&DHHH  IH( O7  ""&NNNTUW W W& &W W&,F F F -.DAAA  BA 	&		1a 	34	 	 ("(6"2"2A6	34	 	 !XRXf%5%56    
 
# #
 
# 	&		1a 	34	 	 ("(6"2"2A6	34	 	 !XRXf%5%56    
 
$ $
 
$ -.D/x/11W<<ee!E E E' 'E E'. 89T3 3 3 3 3& 12EEE1 1 FE1& <.!!  "! =/t444	  	  54	 ( ( ( <.d3332 2 432. %&E7;;;  <;2 %&E5>"$ $ $F F$ $FB '9::(((G G )( ;:G (((
. 
. )(
. 12'BBB# # CB#6 -.g>>># # ?>#05  5  5 p
 
 
- - -. (((0 0 )(0 (((0 0 )(0/ / // / / %//(((( ( )( 0/(" ;--=X-=-?-?7-J-JTTPQRRR  SR
 #$$iHHH  IHB =/t444! ! 54!H0 0 0 ;-T222
 
 32
 #$$EBBB  CB" ,-4UKKK; ; LK;0 34$GGG  HG4 )*===; ; >=;4 $%YDIII? ? JI?. 12EEE; ; FE;2 >"555= = 65= .0KLMM	> 	> NM	>     
  
 0122  32 DEFF  GF (((
# 
# )(
# (((
= 
= )(
= (((
+ 
+ )(
+ (((
- 
- )(
-6 6 64 4 4 ()**  +*  4P P P ' ' '  "+ + +<3 3 3&% % % 9
% 
%  
% A	a|nc*	,,,	,	(	,,,(@(@(@	!	!	!<	1	,,,	3	3	3V	= 8 8 80 0 0
 
 
 :,D111( ( 21( (((7 7 )(72 2 2 '(d;;;    <; + + + ()t<<<! ! =<! )*===H H >=H$ %&''    (' - - -! ! ! *),++EEG/ / /	  0 0E E0 0E" 9q'4)8Q-)* *: :	* *: + #+"3":;!39#3#:;'):)ABDE E, ,	E E,	
 	
 	
 (((( ( )((V (((# # )(#2 (((  )(. (((
K 
K )(
K* * *+ + +
# # #
) ) )' ' ' ,-4@@@  A@. -.//  0/ (((  )(   %&DHHH* * IH*   ""&NNNTUW W W% %W W%* 8X&DHHH= = IH=" %&DHHH
. 
. IH
.' ' 'j1 j1 j1 j1 j1 j1 j1 j1Z	*4 * * * * *
*Y
,
, giigHBHlll^445557gnnngHBHlll^445557gC   gHBHlll^445557 gCgHBHlll^445557gS#Jgc
828\\\===,I#J#JKKKM 4 4 4  !
dffd^
dSkkk4
dcC 
dsCj!!!C:.
dS3
dfv&
dfv&
dSS)))3/
dSCC000#6
dooos
d$$$c* 	4 	4 	4M M M  2  ) ) )X5 5 5   )+AB/x/11W<<ee!E E E E E( ,-4@@@E E A@E0   * 4 4 4 4$ %&!&!# # # # # &'!&!# # #7 7# #7 +,!&!# # #6 6# #6 )*!&!# # #0 0# #0 '("!&!	  
@ @ 
@ )*!&!  @ @	 @ ()"!&!# # #9 9	# #9 ./"!&!# # #G G	# #G *+"!&!# # #A A	# #A
 12"!&!# # # 	# # &'"!&!# # #9 9	# #9
 )*"!&!# # #< <	# #<
 &'"!&!# # #9 9	# #9
 *+"!&!# # #< <	# #<
 B B B &'"!&!# # #8 8	# #8 #$"!&!# # #6 6	# #6 ?#"!&!# # #5 5	# #5 +,"!&!# # #8 8	# #8 +,"!&!# # #F F	# #F *+"!&!# # #E E	# #E ()"!&!# # #2 2	# #2 )*"!&!# # #G G	# #G ,-"!&!# # #> >	# #>6 6 6
< < <
 -.!&!# # #F F# #F ,-!&!# # #5 5# #59 9 9
 9i(d)DDD  ED$ (((
 
 )(
 12!&9> > >7 7> >7 %&D	JJJ  KJ $%"!&!# # # 	# # 98:!# # # # #    *+!&$y* * *:5 :5* *:5z -."5"+YP P P P P  45"5"+YP P P P P9 9 99 9 9C C C6 6 6$ ;<"5"+YP P P# #P P# 113 4 40 04 40 2344% % 54% 4566% % 76% 4566$ $ 76$ 0122N N 32N 89::0 0 ;:0 9:;;1 1 <;1 23448 8 548 56777 7 877 34558 8 658 56777 7 877 1233N N 43N 9:;;C C <;C :;<<D D =<D )*GLLLE E MLE0 0 0B B B@ @ @A A A (((5 5 )(5 (((E E )(E	+ 	+ 	+F F F) ) ) HHHII3; 3; JI3;l ./UG"$ $ $< <$ $<BE E E > > >9 9 9$ $%&&+4 +4 '&+4\C C C3 3 3" (((  )((5 5 5"7 7 7*6 6 6 (3 (3 (3V 			(0(;(;()(+ , ,N N, ,N ((() ) )() ,.GHII
A 
A JI
A =/""  #" ?#666  76 ()**A A +*A )*++M M ,+M :,g4@@@  A@> > >,>4 >4 >4B   )*'tLLL& & ML& 2344F F 54F &'((5 5 )(5 ()**2 2 +*2 )*==== = >==1 1 1	1 	1 	14 4 404 4 40 %&''E E ('E" [///$B%0///$B%,.>.>.>$?%02B2B2B$C%0+++$>%,ooo$>$@ A A (((+ + )(A A+  9
 )5s),3@ @ADcK(.),3@ @AI3P(4s),. ./2C9(.),. ./7>(4s),. ./2C9(.),. ./7>(4),3@ @ADcK(.S),. ./7>(4sCCS#N(.==xM(43GGcR(.SAA8TR(43GGsS(.SAA9cR&5tSA&/DA/CD D:N N;D D:N" " "9 9 9
     ' ' ' ()t<<<3 3 =<3 >"555  65  #$$777  875 5 5.5 5 5* <.d333" " 43": ;,$???(+ (+ @?(+V 01tDDD  ED  ( & & &  
1 1 
1*2 2 2( 67TJJJ" " KJ"8   2$aV1vrl!CDD(H(H(HII  JI ED (((  )( &'T:::@ @ ;:@ &'/x/11W<<ee!E E E& &E E& '(d;;;  <; '):;+8+--99aauF F F) )F F)8 	, 	, 	, ! ! !, ) ) )  ( ( (&  ( FFF#W& & &# #& &#L? ? ? FFF#W& & &# #& &#L? ? ? 1aBFA"6"$%"4"4___a"H"H"J K K(((J J )(K KJ 45#WG5 5 5	 	5 5	 #%56D    > %&D999  :92? ? ? 8 8 8$i1 1 1J J	1 1J@ L L L$i1 1 1J J	1 1JB = = =$i1 1 1, ,	1 1,D% % % ((() ) )()"- - - HHH%! ! !) )! !)> ! ! ! 	 	 	) )	 	)@- - - (((  )( $%4/x/11W<<ee!E E E)& )&E E)&X +-EF"$ $ $E E$ $E: C F F F  
0 0 
0= = = 
= 
= 
= (((  )(& 74 4 4*. . . 3;T*J+.;V*L*N O O( (O O(	 	 	
- 
- 
-2 2 2C C C(% % % 3$fb./ &y"#$ %1vj"8:$eeggt}#$ " " "
# # #4 ,,- - -,-  2$ $ $ $%4000; ; 10; KKK#WG? ? ? ? ?> *+7EEE  FE& ()dCCC  DC %&g4@@@  A@ '(UCCC  DC4 ./wEJJJ  KJ %&D111
 
 21
 #$G???? ? @??.8 8 8,0 0 0. . .1 1 1% % %/ / / ) ) ) 6 6 6 +,/x/11W<<ee!E E E3 3E E32- - - (((2 2 )(2*C C C	/ 	/ 	/1 1 1   /0115 5 215) ) )8 8 8& +,UBKHHH7 7 IH7!: !: !:H# # ## # # 3	UB DE	Wb"FG	UUWWsBi)MN	UUWWsBi)MN	E++	K	M	EC8	K	M	Ir#KL
6 
 
$ $
 
$  ' ' '0  ( ( (& & &    C C C4 ?#E2;???  @? =/%===% % >=%*1 1 1(- - -.M M MO O O 	SY !	39./
%((EE!HH	sy23


LLL	)			 
)

6
"
"BI$4$4V$<$<	=		!	#
 
 
YRYr]]""6**BINN1a,C,CD 1 1 
 
1
G G GK K K*+ + +$! ! !% % %
7 7 7, #;#;#=#=>>  ?> =/t444; ; 54;N N N ( ( ($ D%=11  21 <.d===6 6 >=6 +,$g/x/11W<<ee!E E E6 6E E6* 9* * *B Sz"""; ; #";$ IIIJJJ  KJ   ; ; ;= = ="	3 	3 	3 9G G G 9F F F! ! !
L L L% % %8 8 89 9 9       
 
 
2 2 26
B 
B 
B	C 	C 	C? ? ?? ? ? % % %      ()s3335 5 435$ ()**N N +*N$ ./S999K K :9K$ ?#666- - 76-&! ! !* * *- - -- - -        
 
   
 
 &
' 
' 
'	- 	- 	-; ; ;8 8 8      H H H) ) )& 9J J J6B B B	. 	. 	.  
 3	qcU]B/1NO	qcU]B/1NO	qcU\2.0LM	qcU\2.0LM	qcUWbM+BC	aS"AB	qcU]QF3	@	B	qcU]QF3	@	B	qcU\Aq62	?	A	qcU\Aq62	?	A	qcUWq!f-	:	<	qcUX1v.	;	=#6  (' ') ('
N N N	 	 	 He#455He#455  65 65G G G, , ,
   ((($ $ )($ (((7 7 )(7
	 	 	A A A:: : :D $%4wGGG	 	 HG	) ) )& & & t}55t}55B B 65 65B0
5 
5 
5M M M!; !; !;HF F F  $ $ $ 34GQU/x/11W<<ee!E E E2 2E E2& & & & &;( & & & %&g/x/11W<<ee!E E E, ,E E,,
3 
3 
3G G G+ + +0D D D. . . %&DHHHP P IHP"+( +( +(\$N $N $NN= = =<= = =6F F F,D D D> (((( ( )(() ) ) ) ) )"  0 0 0  2 2 2$ $ $
6 
6 
6. . .1 1 161 1 1.% % %	 	 	  1 1 1? ? ?? ? ? ,,!455/ / 65 -,/$ (((> > )(> 9) ) )1 1 11 1 17 7 74 4 4  "7 "7=3N "7 "7 "79D"E F F9M M F FM- - -L L L (((K K )(K& (((  )(5 5 5 :::;;) ) <;)
6 
6 
69 9 9
9 
9 
99 9 99 9 99 9 9
9 
9 
9 :;<<  =<
! 
! 
!
6 
6 
6 
Hho!  + + +( ( (' ' '9 9 99 9 92 2 2(O O O 9O O O+ + +\    (   $5588(<!=>>* * ?> ** * *:5 5 5"
4 
4 
4. . .$ $ $*1$ 1$ 1$h@ @ @. . .0 (((	 	 )(	 %&g666B B 76BD
( 
( 
(( ( (M M M% % % *+W/x/11W<<ee!E E E! !E E!H 95 5 5 (((- - )(-2: : :; ; ; 7 7 7B B B& & & 34IFFF2 2 GF2 (((*--& & .- )(&R RaRJ&S3+;+HG+S<   $ $	 $NO O O$ C C  C ((( ;  ; )( ;F (((#< #< )(#<L .//x/11W<<tt!E E E! !E E!:92 92 92x@ @ @ @ @r(   