
    \cg4                    S   d dl Z d dlmZmZ d dlZd dlmZ d dlmZ d dl	Z	d dl
Z
d dlZd dlmZ d dlZd dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZmZ d dlmZ d dl m!Z" d d
l#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z- d dl.m/Z0 d dl1m2Z3 d dl4m5Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z= d dl>m?Z@ d dlAmBZC d dlDmEZF d dlGmHZI d dlJmKZKmLZLmMZM d dlNmOZOmPZPmQZQ d dlRmSZS  ePdg      d        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j                  j                  d+d,      d-        Zhej                  j                  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j                  j                  d=      d>        Zsej                  j                  d=      d?        Ztej                  j                  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j                  j                  d=      ej                  j                  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j                  j                  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j                  j                  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j                  j                  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j                  j                  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j                  j                  d=       eP       d               Zej                  j                  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j                  j                  d
ejB                  j                  d d gg d      d        Zej                  j                  dg dfg gdfg g gdfg      d        Zej                  j                  ddejd                  j                  j                  fdej                  jP                  j                  fdejd                  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j                  j                  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j                  j                  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j                  j                  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j                  j                  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j                  j                  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j                  j                  d7g d8      d9        Zd: Z eOd;gd:;      d<        Zd= Zej                  j                  d>g gg d dggd dgg gg      ej                  j                  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j                  j                  d>dddej,                  dZgej,                  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j                  j                  d~g d      d        Zd Zd Z ePdg      d        Zej                  j                  dC      d        Zd Zej                  j                  de=j^                  e=j`                  dge=jb                  e=jd                  dgg      d        Zd Zd Zd Zd Zd Zej                  j                  dedi dfedi dfeddgfi dfe e       ddidff      d        Zd Zej                  j                  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j                  j                  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j                  j                  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                  j                  d      ej                  j                  d      fej                  j                  fg      ej                  j                  d> ej>                  d      j                  d      ej                  j                  dd\d      g      d               Zd Zd Zd Zd Zd Zd Zej                  j                  d	 e             d        Z eOdgd:;      d        Zd Z d Zej                  j                  dd:dg      d        Z eOdgd:dh      d        Z eOdgd:dC ej                         d"k(  rdnd       d        Zej                  j                  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j                  j                  d=      d        Zej                  j                  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j                  j                  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j                  j                  d=      d3        Z0d4 Z1d5 Z2d6 Z3ej                  j                  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j                  j                  dKdLdMg      ej                  j                  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j                  j                  d\dd:g      ej                  j                  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j                        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j                  j                  dd,      ej                  j                  dd      d               Zl ePdg      d        Zmej                  j                  d=      d        Znd Zod Zpd Zqd Zrej                  j                  de-j                  D  cg c]  } | |  c} g dz         ej                  j                  d=      d               Ztd Zud Zv ePdg      d        Zw ePdg      d        Zxd Zyej                  j                  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j                  j                  ddddj
                  g      d        Zd Zd Zd Zd Zd Zd Zej                  j                  d=      d        Zd Zd Zej                  j                  dd      ej                  j                  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j                  j                  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j                  j                  dd,      d؄               Zej                  jS                  ejT                  dd dk(  xr ejT                  jV                  dk7  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 Zyc c} w (      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                 F    | j                         }|j                  d       y NF)subplotsset_visiblefig_testfig_refaxs      U/var/www/html/bid-api/venv/lib/python3.12/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr&   5   s    				BNN5    c                      t        j                         \  } }|j                  d       |j                  d       |j	                         dk(  sJ |j                         dk(  sJ y )Nzx labelzy label)pltr   
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr$   s     r%   test_get_labelsr0   ;   sQ    llnGCMM)MM)==?i'''==?i'''r'   c                      t        j                         \  } }|j                  d       |j                  d       |j	                  d       |j                  d       t        |      dk(  sJ y )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_reprr9   C   s`    llnGCLLLLMM#MM#8	LM M Mr'   c                    | j                         }|j                  ddgddgddgd      }|j                          |j                  dd       |j	                  dd	       | j                  |      }|j                  d
d       |j                         }|j                  ddgddgddgd      }|j                          |j                  ddd	       |j	                  ddd	       |j                  |      }|j                  d
dd	       y )N      scattercr2   Y LabeltoplocX LabelrightZ Labelr5   har4   rH   r   r=   legendr+   r*   colorbarr6   r"   r#   r$   sccbars        r%   test_label_loc_verticalrP   N   s    				B	QFQFq!fI	>BIIKMM)M'MM)M)R DNN9%N(				B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BDNN9gN.r'   c                 &   | j                         }|j                  ddgddgddgd      }|j                          |j                  dd       |j	                  dd	       | j                  |d
      }|j                  dd	       |j                         }|j                  ddgddgddgd      }|j                          |j                  ddd	       |j	                  ddd	       |j                  |d
      }|j                  ddd	       y )Nr;   r<   r=   r>   r@   bottomrB   rD   left
horizontalorientationrF   r   rG   rI   rJ   rM   s        r%   test_label_loc_horizontalrW   a   s   				B	QFQFq!fI	>BIIKMM)M*MM)M(R\:DNN9&N)				B	QFQFq!fI	>BIIKMM)qVM,MM)qVM,BL9DNN9fN-r'   c                 t   t        j                  ddd      5  | j                         }|j                  ddgddgddgd      }|j	                          |j                  d       |j                  d	       | j                  |d
      }|j                  d       d d d        |j                         }|j                  ddgddgddgd      }|j	                          |j                  ddd       |j                  d	dd       |j                  |d
      }|j                  ddd       y # 1 sw Y   xY w)NrE   rA   )zxaxis.labellocationzyaxis.labellocationr;   r<   r=   r>   r@   rD   rT   rU   rF   rG   rI   )	
matplotlibr   r   r=   rK   r+   r*   rL   r6   rM   s        r%   test_label_loc_rcrZ   t   s"   			w7< > 
? ZZAA1a&	ZB
		
i 
i    >y!
? 
			B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BL9DNN9gN.!
? 
?s   BD..D7c                  N   t        j                         \  } }|j                  dd       |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ y )Nz
Test labelrS   rB   centerrE   rA   rR   )r)   r   r*   xaxisr2   get_horizontalalignmentr+   yaxisr.   s     r%   test_label_shiftr`      sO   llnGC MM,FM+MM,HM-88>>113x???MM,GM,88>>113w>>>MM,HM-88>>113x??? MM,EM*MM,HM-88>>113x???MM,HM-88>>113v===MM,HM-88>>113x???r'   c                    t         j                  j                  d       d}t         j                  j                  dd|      j	                         }|dz
  }| j                         }|j                  ||       |j                         }t        j                  ||d      t        j                  ||      z  }t        j                  | |dz         }||dz
  |z
  ||z    }|j                  |dg|       |j                  ddd       y )	N!N,   r   r;   maxlagsfullmoder5   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r"   r#   Nxr4   re   ax_testax_refnorm_auto_corrlagss	            r%   
test_acorrr}      s    IINN8	B
		Ar"))+AdG!GMM!WM%F\\!QV4RVVAq\AN99gXwqy)D#BqDLG<N
MM$^,
NNQQQN'r'   c                 x   t         j                  j                  d       d}t         j                  j                  |      dz  j	                         }t        j
                  |      j                  t         j                        }|dz
  }| j                         }|j                  ||       |j                         }t        j                  ||d      t        j                  ||      z  }t        j                  | |dz         }||dz
  |z
  ||z    }|j                  |dg|       |j                  ddd	       y )
Nrb   3   
   r;   rd   rf   rg   r   ri   )rl   rm   rn   randrp   ceilastypeint64r   rq   rr   rs   rt   ru   rv   rw   s	            r%   test_acorr_integersr      s    IINN8	B		b	 ((*A	BHH%AdG!GMM!WM%F \\!QV4RVVAq\AN99gXwqy)D#BqDLG<N
MM$^,
NNQQQN'r'   c                     t         j                  j                  d       t        j                  d      }d|d d t         j                  j	                  |       |j                  d      }| j                  d      }|d   j                  |       |d   j                  |dd	
       |j                  d      }|d   j                  |dd       |d   j                  j                           |d   j                  g t        j                  |      d d d   dddi |d   j                  d|d   j                         |d   j                         d d d          |D ]  }|j                  j!                  d        y )Nrb   i   r   rc   )    r   r<   r;   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer   )aspectxlimylimboth)rl   rm   rn   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      sL   IINN8
AAhwKIIa			(A  #HQKOOAQKOOAc'O2q!GAJahi@AJGAJOO=RZZ]4R4(=#="=AJNNwqz**,71:3F3F3H23N  P
##F+ r'   c                      t        j                         \  } }ddidddfD ]K  }t        j                  t              5   |j
                  t        j                  dd      fi | d d d        M y # 1 sw Y   XxY w)Nr   r   osolid)r   	linestyle   )r)   r   pytestraises	TypeErrorr   rl   eye)r/   r$   unsupported_kws      r%   test_spy_invalid_kwargsr      sg    llnGC+Y7&)@B]]9%BFF266!Q<2>2 &%B%%s   (A00A9	c                 l   t         j                  j                  d       t        j                  j                  dd      }| j                         j                  |       |j                         }|j                  |       |j                  j                          |j                  j                  d       y )Nmpl20r   r   )mplstyleuserl   rm   r   add_subplotmatshowr   r]   r   r   )r"   r#   r   rz   s       r%   test_matshowr      sy    IIMM'
		r2A""1%  "F
MM!
LL
LL##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}  | j                          dt        j
                  d<   t        d      D cg c]  }|| j                  z   }}t        d      D cg c]  }d|z  dz
  | j                  z   }}t        d      D cg c]  }d|z  dz
  | j                  z   }}t        j                         j                         }|j                  d	       t        j                         j                         }|j                  d	       |j                  ||d
d       t        j                         j                         }|j                  d	       |j                  ||d
d       |j                  d       t        j                         j                         }|j                  ||d
d       |j                  ||dd       |j                  d       t        j                         j                         }|j                  ||d
d       |j                  ||dd       |j                  d       |j                          y c c}w c c}w c c}w )Nr      zlines.markeredgewidthr         ?      ?      ?      ?zx-label 001bluesec)colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrY   rcParamsranger   kmr)   figurer   r*   r   autoscale_view)unitsr4   xdatar5   ydata1ydata2r$   s          r%   test_formatter_tickerr      s    10	NN 46J/0 #(),)QQuyy[)E,.3Bi8is1us{EHH$iF8/4Ry9y!tAv|UXX%yF9				 BMM- 				 BMM- GGE6G6				 BMM- GGE6G6MM- 				 BGGE6G6GGE6G8MM-  
			 BGGE6G6GGE6G8MM- 7 -89s   II
Ic                     d } t        j                         j                         }|j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ |j                  j                  |        |j                  j                  rJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ t        j                  |       }t        |j                  j                         t        j                        sJ |j                  j                         j                  |j                  k(  sJ y )Nc                      y)N  r4   poss     r%   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    r'   )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     s,    
			 B88$$$$88$$$$88$$$$88$$$$HH  +xx((((88$$$$88$$$$88$$$$ ..y9bhh224++- - - 88'')..2D2I2IIIIr'   c                     d} t        j                         j                         }|j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ |j                  j                  |        |j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  rJ t        j                  |       }t        |j                  j                         t        j                        sJ |j                  j                         j                  |j                  k(  sJ y )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88$$$$88$$$$88$$$$88$$$$HH  )88$$$$88$$$$88$$$$xx((((227;bhh224002 2 2 88'')--1B1F1FFFFr'   twin_axis_locators_formattersc                  8   t        j                  dddd      } t        j                  t         j                  | z  dz        }t	        j
                  |      }t	        j
                  g d      }t	        j                         }|j                  ddd      }|j                  dd	gddg       |j                  j                  |       |j                  j                  |       |j                  j                  t	        j                  d
             |j                  j                  t	        j                  g d             |j                   j                  t	        j"                                |j                   j                  t	        j
                  g d             |j                   j                  t	        j                  d             |j                   j                  t	        j                  g d             |j%                          |j'                          y )Nr   r;      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r?   3pr   )rl   linspacesinpir)   FixedLocatorr   r   r   r_   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterr]   LinearLocatortwinytwinx)valslocsmajlminlr/   ax1s         r%   "test_twin_axis_locators_formattersr  Q  sr   ;;q!T2D66"%%$,$%DD!DO,D
**,C
//!Q
"CHHc3Z!Q II%II%II!!#"8"8"CDII!!#"4"4 6> #? @ II 1 1 34II 0 01A BCII!!#"8"8"CDII!!#"4"45I"JKIIKIIKr'   c                  B   t        j                         \  } }|j                         }|j                         }t        j                          |j
                  j                         rJ |j                  j                         rJ |j                          |j                          |j
                  j                         rJ |j                  j                         rJ |j                  j                         sJ |j
                  j                         sJ |j                  j                         rJ |j                  j                         rJ |j
                  j                         sJ |j                  j                         sJ |j                  j                         sJ y N)
r)   r   r  r  drawr]   get_visiblepatchclar_   )r/   r$   ax2ax3s       r%   test_twinx_clar   j  s4   llnGC
((*C
))+CHHJyy$$&&&yy$$&&&GGIGGIyy$$&&&yy$$&&&99  """99  """yy$$&&&yy$$&&&88!!!88!!!88!!!r'   twinr4   r5   c                 ^   |  d}d|  }ddg}ddg}t               }|j                         }|j                  ||       t        ||      j                  J  t        ||             }t        ||      j                  J t        ||      j                  t        ||      j                  u sJ y )Naxisr!  01r   b)r   r   r   getattrr   )r!  	axis_name	twin_funcr   r'  r/   r  r  s           r%   test_twin_unitsr+    s    &ItfI	c
A	c
A
(C
,,.CHHQN3	"((444
!'#y
!
#C3	"((4443	"((GC,C,I,IIIIr'   RQ?)r   r   c                 r   d| }d| d}t        j                  dd      }| j                  ddd      } t        ||             } t        ||      d       |j	                  ||       | j                  ddd      } t        ||      d        t        ||             }|j	                  ||       dD ]  }|j                  dd|      }	 t        |	|      d       |	j	                  ||       t
        j                  j                  }
|j                  t
        j                  j                   |
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j                  |
j                  gd
z        |	j                  dt        j                  d   t        j                  d   d              t!        |        t!        |       y )Nr!  set_scaler;   r   r<   logr;   r<   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rl   rt   r   r(  r   rY   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r"   r#   r!  r*  	set_scaler4   ry   ax_twinirz   r<  s              r%   test_twin_logscalerF    s    tfItfE"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& kk4;;/!3	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                         }|j	                  ddd      }|j                  | |dd	
       t        j                  |      }|j                  ||dd       |j                  dd       |j                  dd       y )Nr   r   r;   r   r   r;   r<   r<   r   r   r;   r;   F)autoscalex_onautoscaley_onr   r   r   lwr--r   rN  r   )rl   arrayr)   r   add_axesr   r  margins)r4   r5   x2y2r/   r$   r  s          r%   test_twinx_axis_scalesrV    s     	AaA	)	B	
RB
**,C	l%u	MBGGAq2G&
))B-CHHRUqH!JJq!KK1r'   c                     t        j                         \  } }|j                         }|j                  d       |j                         }|j	                         sJ |j	                         rJ |j                         }|j                  d       |j                         }|j                         sJ |j                         rJ y r   )r)   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r/   r$   ax_x_onax_x_offax_y_onax_y_offs         r%   #test_twin_inherit_autoscale_settingr`    s    llnGChhjGxxzH$$&&&))+++hhjGxxzH$$&&&))++++r'   c                  n   t        j                  d      } | j                         }|j                         rJ |j	                         rJ t
        j                  j                  d      }|j                  |       |j                         rJ |j	                         sJ |j                          t        j                  ddt
        j                  z  d      }|j                  |t        j                  |             |j                         rJ |j	                         rJ |j                          |j                  |       t        j                          |j                         rJ |j	                         sJ | j                  D ]  }|j                           t        j                   d      }t        j                   d|      }|j"                  j%                  d       |j	                         sJ |j                  |t        j                  |             |j                          |j	                         rJ |j                          |j                  |       |j                  |t        j                  |             |j                          |j	                         sJ t        j&                  |        y )	Nr   )r   r   r<   r         shareyT)r)   r   gcaxaxis_invertedyaxis_invertedrl   rm   r   r  r  r	  r   cos	autoscaleaxesremovesubplotr_   set_invertedclose)r/   r$   imgr4   ax0r  s         r%   test_inverted_clarr    s    **Q-C	B  """  """
))

:
&CIIcN  """ FFH
Aqw$AGGArvvay  """  """ FFHIIcNMMO  """hh
		 
 ++c
C
++c#
&CII4 HHQq	GGI!!###GGIJJsOHHQq	GGI IIcNr'   c                    	 t        j                  t        d      5   G 	fddt              } d d d        t        j                  t        d      5   G 	fddt              }d d d         G d d       } G 	fd	d
t              } G 	fddt              } G d d|      }t	               }| ||||fD ])  }d	 ||g d      }	sJ d	|j                          	r)J  y # 1 sw Y   xY w# 1 sw Y   xY w)NzOverriding `Axes.cla`matchc                       e Zd Z fdZy)(test_subclass_clear_cla.<locals>.ClaAxesc                 
    dy NTr   selfcalleds    r%   r  z,test_subclass_clear_cla.<locals>.ClaAxes.cla  s    r'   N)__name__
__module____qualname__r  r|  s   r%   ClaAxesrw    s    r'   r  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 &    dt         |           y ry  )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y)+test_subclass_clear_cla.<locals>.SubClaAxesNr}  r~  r  r   r'   r%   
SubClaAxesr  *      r'   r  c                       e Zd Z fdZy)*test_subclass_clear_cla.<locals>.ClearAxesc                 
    dy ry  r   rz  s    r%   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clear.  s    Fr'   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                 &    dt         |           y ry  )r  r  r  s    r%   r  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear3  s    FGMOr'   )r}  r~  r  r  r  r  s   @r%   ClearSuperAxesr  2  s    	 	r'   r  c                       e Zd Zy)-test_subclass_clear_cla.<locals>.SubClearAxesNr  r   r'   r%   SubClearAxesr  8  r  r'   r  FrJ  )r   warnsPendingDeprecationWarningr   r   r  )
r  r  r  r  r  r  r/   
axes_classr$   r|  s
            @r%   test_subclass_clear_clar    s    
 
/3
5	d 	
5 
/3
5	4 	
5W D 
 y  (Cj .,@
\* v
v@C
5 
5
5 
5s   C#C/#C,/C8c                  t    t        j                         D ]!  } d| j                  vsd| j                  vr!J  y )Nr  r  )r   __subclasses__r  __dict__)klasss    r%   !test_cla_not_redefined_internallyr  I  s7    $$& %E,>,>>...	 'r'   c                    t        j                  ddd      5  | j                         }|j                  ddgddg       d d d        |j                         }|j                  ddgddg       |j	                          y # 1 sw Y   @xY w)NT)zxtick.minor.visiblezytick.minor.visibler   r;   )rY   r   r   r   minorticks_onr"   r#   ry   rz   s       r%    test_minorticks_on_rcParams_bothr  Q  s    			t7; = 
>##%aVaV$
> F
KKAA

> 
>s   'A??Bautoscale_tiny_rangeTremove_textc                      t        j                  dd      \  } }t        |j                        D ]&  \  }}dd|z
  z  }|j	                  ddgdd|z   g       ( y )Nr<   r   ir   r;   )r)   r   	enumerateflatr   )r/   axsrE  r$   y1s        r%   test_autoscale_tiny_ranger  \  sV     ||Aq!HC388$2#']
AAF$ %r'   defaultc                  x   t        j                  dd      \  } }|j                  g d       |j                  ddd       |j                  ddd       t	        |j                         d       t	        |j                         d	       |j                         sJ |j                         sJ |j                         sJ |j                  d 
       t	        |j                         d       t	        |j                         d	       |j                         sJ |j                         sJ |j                         sJ y )Nr;   r;   r<   r   r2  Tr4   F)enabler$  tightr5   )g333333ÿg333333	@)r         @)r  )
r)   r   r   rj  r   r   r   rY  r[  get_autoscale_onr.   s     r%   test_autoscale_tightr  e  s   ll1a GCGGLLL3eL4LL3dL3BKKM=1BKKM:. !!!!!!   LLLBKKM=1BKKM:.!!!!!!   r'   c                  "   t        j                  dt              } t        j                  ddd      \  }\  }}|j                  | |        |j                  | |        |j                  d       |j                  d       t        j                          | d   | d   f}t        |j                         |       t        |j                         |       t        |j                         |       t        |j                         | d	   | d   f       y )
Nr   dtyper<   r;   Tsharex)r  r   r   )rl   rt   floatr)   r   loglogsemilogxrj  r  r   r   r   )r4   r/   r  r  limss        r%   test_autoscale_log_sharedr  }  s     			#U#All1a5OC#sJJq!LLAMMMMMMHHJaD!B%=DCLLND)CLLND)CLLND)CLLNQqT1R5M2r'   c                     t        j                         \  } }|j                  ddgddggd       t        |j	                         d       t        |j                         d       d|_        |j                          d	d|j                  z  z
  d
d|j                  z  z   f}d	d|j                  z  z
  d
d|j                  z  z   f}t        |j	                         |       t        |j                         |       d|_        |j                          t        |j	                         d       t        |j                         d       y )Nr   r;   r<   r   r   r   )      r   Fr  r   T)
r)   r   r   r   r   r   use_sticky_edgesrj  _xmargin_ymargin)r/   r$   r   r   s       r%   test_use_sticky_edgesr    s    llnGCII1v1vwI/BKKM;/BKKM;/BLLN1r{{?"C!bkk/$9:D1r{{?"C!bkk/$9:DBKKM4(BKKM4(BLLNBKKM;/BKKM;/r'   c                 "   t        j                  d      j                  dd      }| j                  d      }| j                  d|      }|j	                  |       |j                  d      }|j                  d|      }|j	                  |       y )Nr  r   r   rb  rc  r  )rl   rt   r   r   
pcolormesh)r"   r#   Zrq  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   j                  d|d       |j                  d   j                  d|d       |j                  d   j                  d| d       |j                  d   j                  d| d       |j                  d   j	                  d| d	       |j                  d   j	                  d| d
	       |j                  d   j	                  d|d	       |j                  d   j	                  d|d
	       y )Nr<   r   r   gffff&@)r4   heightrR   r;   gffff@gffff&)r5   widthrS   gffffr   )r)   r   r  barbarh)r/   r  r  s      r%   test_sticky_tolerancer    s    ||Aq!HCEHHQKOOagO6HHQKOOagO6HHQKOOawO7HHQKOOawO7HHQKqX6HHQKqX6HHQKqH5HHQKqH5r'   zsticky_tolerance_cf.pngc                  t    t        j                         \  } }ddgx}}ddgddgg}|j                  |||       y )NgGZP@g    `P@r   r;   r<   r   )r)   r   contourf)r/   r$   r4   r5   datas        r%   test_sticky_tolerance_contourfr    sB    llnGCx  AFQFDKK1dr'   c                      t        j                  t        d      5  t        j                          d d d        y # 1 sw Y   y xY w)Nz0 were givenrt  )r   r   r   r)   stemr   r'   r%   test_nargs_stemr    s%    	y	7
 
8	7	7s	   :Ac                      t        j                  t        d      5  t        j                         } | j                  dgdgd       d d d        y # 1 sw Y   y xY w)Nz3 were givenrt  FirstSecondr   )r   r   r   r)   rm  rK   r$   s    r%   test_nargs_legendr    s;    	y	7[[]
		7)hZ+ 
8	7	7   *AAc                      t        j                  t        d      5  t        j                         } | j                  ddgg dg dg       d d d        y # 1 sw Y   y xY w)Nz2 were givenrt  r   r;   r   r<   r;   r<   r   )r   r   r   r)   rm  
pcolorfastr  s    r%   test_nargs_pcolorfastr    sA    	y	7[[] 	vv&I(>? 
8	7	7s   /AAoffset_pointsc                  .   t        j                  ddd      } t        j                  dt         j                  z  | z        }t	        j
                         }|j                  ddd      }|j                  | |d	d
      \  }|j                  ddddd       y )N              @{Gz?r   F)r   r   r   )autoscale_onr   r   r   purplerN  r   z	local maxr   r;   r  r   r   zoffset points)xyxycoordsxytext
textcoords)	rl   rt   ri  r	  r)   r   r   r   annotate)tsr/   r$   lines        r%   test_basic_annotater    s     			#sD!A
s255y1}A **,C	e'	HBGGAqQhG/EDKK/  ;r'   zarrow_simple.pngc                     d} d}d}t        | ||      }t        j                  dd      \  }}t        t	        |j
                  |            D ]  \  }\  }}|j                  dd       |j                  dd       |\  } }}dt        j                  z  |z  dz  }	|j                  ddt        j                  |	      t        j                  |	      |	d	z  | |||	d
z  |	d
z  
        y )N)TF)rf   rS   rE   r   r2  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_ylimrl   r	  arrowr  ri  )
r   r  r  kwargsr/   r  rE  r$   kwargthetas
             r%   test_arrow_simpler    s     )%E')52EFF||Aq!HC#C&$9:;B
B
B=B:	u&9BEE	A"
Arvve}bffUmSy&:%8!BJ"RZ 	 	) ;r'   c                  ^    t        j                         \  } }|j                  ddddd       y )Nr   )r  )r)   r   r  _r$   s     r%   test_arrow_emptyr    s'    LLNEArHHQ1aQH'r'   c                      t        j                         \  } }|j                  dddd       |j                         dk(  sJ |j	                         dk(  sJ y )Nr;   )皙?皙@)r)   r   r  r   r   r  s     r%   test_arrow_in_viewr    sK    LLNEArHHQ1a;;=J&&&;;=J&&&r'   c                      t        j                         \  } }|j                  ddd      }|j                  J |j                  dddi       }|j                  J y )Nfoor  r<   r   )r  )r  
arrowprops)r)   r   r  arrow_patch)r/   r$   anns      r%   test_annotate_default_arrowr    s[    llnGC
++eVF+
3C??"""
++eVFr+
BC??&&&r'   c                     t        j                         \  } }t        j                  |j                        j
                  }t        j                  t        j                        j
                  }t        |j                               t        |j                               k(  sJ t        |j                         |j                               D ]  \  }}||k(  rJ  y)z?Check that the signature of Axes.annotate() matches Annotation.N)r)   r   inspect	signaturer  
parametersmtext
Annotationlistkeysr  values)r/   r$   annotate_paramsannotation_paramsp1p2s         r%   test_annotate_signaturer)  %  s    llnGC''4??O))%*:*:;FF$$&'40A0F0F0H+IIIIo,,.0A0H0H0JKBRxx Lr'   zfill_units.pngdpi<   )savefig_kwargc                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }d| j                  z  }| j                  dd      }t        j                  d	d
d      }t        j                  |      }t        j                  dd      \  }\  \  }}\  }	}
|j                  |g|gdd       g d}|j                  ||   g dd       |j                  |g|gdd       |j                  ||||z   ||z   gg dd       |	j                  |g|gdd       |	j                  ||   d| j                  z  d| j                  z  d| j                  z  d| j                  z  gd       |
j                  |g|gdd       |
j                  ||||z   ||z   gd| j                  z  d| j                  z  d| j                  z  d| j                  z  gd       |j!                          y )Nr   ET  r2     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r<   degred)yunitsr   rJ  )r  r  g     V@r  r'  Z   r   r7  )r   r   r   r   Epochdatetimer5  Durationrl   rt   mdatesdate2numr)   r   r   fillautofmt_xdate)r   r  valuedayr2  dtnr/   r  r  r  ax4inds               r%   test_fill_unitsrF  /  s   00	NN 	DX..tQ;<A599E
..1
2C	<_	EB
//"
C$'LLA$6!C	!*3jsCHHaS5'%uH5
CHHSX,c2HHaS5'%uH5HHaAGQW%"C) HHaS5'%uH5HHSX%))mQ]BNA		MJ HHaS5'%uH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        t        j                  t        d      5  t        j                  dgdgdd	
       d d d        t        j                  t        d      5  t        j                  dgdgdd       d d d        t        j
                  dgdgdd       y # 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   =xY w)Nzmarker .* redundantly definedrt  r   r   r4   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r3  )r   r   )r   r  UserWarningr)   r   errorbarr   r'   r%    test_plot_format_kwarg_redundantrP  Q  s    	k)H	I!qc3s+ 
J	k)K	L!qc3$/ 
M	k)G	H!qc3f- 
I LL!qcvV4 
J	I	L	L	H	Hs#   CC&C2C#&C/2C;c                    g d}t        j                  |      }|j                         }| j                         }|j                  ||t        j                  |      t        j                  |            ^}}|j                  ddg       |j                  ||t        j                  |      t        j                  |      ddg       y )Nr  xerryerrr<   )rS  rT  dashes)rl   r  rf  rO  abs
set_dashes)r"   r#   r4   r5   rz   ry   r  r  s           r%   test_errorbar_dashesrX  \  s    A
q	A[[]FllnGq!"&&)"&&)DHD1OOQFQq	q	1a&Ir'   c                      t        d      D  ci c]  } | |  }} t        j                         \  }}|j                  |j	                         |j                         |j                                y c c} w )Nr   r4   r5   rS  )r   r)   r   rO  r#  r$  )iiDr/   r$   s       r%   test_errorbar_mapview_kwargr]  j  sV    )$)BR)A$llnGCKK!&&(ahhjqxxzK: 	%s   
A0single_pointc                  r   dt         j                  d<   dt         j                  d<   t        j                  d      \  } \  }}|j	                  dgdgd       |j	                  dgdgd       dgdgd}t        j                  d      \  } \  }}|j	                  d	d	d|
       |j	                  ddd|
       y )Nr   lines.markerT	axes.gridr<   r   r;   r   r'  r   r  r'  )rY   r   r)   r   r   )r/   r  r  r  s       r%   test_single_pointrd  p  s     +.J''+J$ll1oOC#sHHaS1#sHHaS1#s A3Dll1oOC#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   j                  || z   |d	d
       d d d        |d   j                  ||d	d
       y # 1 sw Y   "xY w)N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr<   r;   r   r   rL  rM  )r)   r   r=  r>  rl   
datetime64r   r   r  r   MatplotlibDeprecationWarning	plot_dater   )r2  time1data1r/   r$   s        r%   test_single_daterm    s     -2CLL()	|4	5BJEHEll1a GC	c66	7
1
E3c: 
8qEJJueSJ, 
8	7s   >B;;Cc                    t        j                  d      j                  d      }t        j                  ddd      j                  d      }| j                  d      }|d   j	                  |       |d   j	                  |       |j                  d      }|d   j                  dd	
       |d   j	                  |j                                y )Nr   r;   r   r   r   r   r;   r<   r;   gQQ?)r   	   r   r   )rl   rt   r   r   r   r   ravel)r"   r#   rowcolr  s        r%   test_shaped_datarx    s    
))B-


(C
))AsB

'
'
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                         j                  d      }|d   j                  dd|        |d	   j                  ddd
|        y )Nr;   r;   r<   r<   r   twosr  r<   r   rc  r;   rL  )rl   rQ  r  r)   r   r   r   )ptsr  s     r%   test_structured_datar~    sj    
((FF#VUOfe_+M
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                  |j                  |j                  dd	       y
)z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r<   )   @aitoff
projection)figsize
subplot_kwr   r2  )r   N)
rl   r  r	  meshgridr)   r   dictgridr   r  )r4   r5   XYr/   r$   s         r%   test_aitoff_projr    s     	RUUFBEE2&A
RUUFQJ	2.A;;q!DAqll8&*h&?AGCGGIGGAFFAFFCAG.r'   axvspan_epochc                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }| j	                  dt        j
                  ddd            }| j                  d| j                  j                  d            }t        j                         }|j                  ||d	d
       |j                  |d|z  z
  |d|z  z          y Nr   r.  r/  r;      r1     r   r         ?)r7  alphar  )r   r   r   r   r:  r;  r<  rB  convertr)   rf  axvspanr  r   t0tfr2  r$   s        r%   test_axvspan_epochr        00	NN 
Th//a<	=B	Th//a<	=B	eii//6	7B	BJJr2tJ4KKSVR#b&[)r'   axhspan_epoch{Gz?c                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }| j	                  dt        j
                  ddd            }| j                  d| j                  j                  d            }t        j                         }|j                  ||d	d
       |j                  |d|z  z
  |d|z  z          y r  )r   r   r   r   r:  r;  r<  rB  r  r)   rf  axhspanr  r  s        r%   test_axhspan_epochr    r  r'   zhexbin_extent.pngc                     t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}|j                  ||g d       ||d}t        j                         \  } }|j                  ddg d|       y )	N  )r<     r   r   333333?ffffff?extentr"  r4   r5   )r  r  )r)   r   rl   rt   r   hexbinr/   r$   r  r4   r5   s        r%   test_hexbin_extentr    s|     llnGCIIdOd"++I6DDAqIIa+I, DllnGCIIc3/dI;r'   c                     t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}t        j                  t        d      5  |j                  ||d       d d d        t        j                  t        d      5  |j                  ||d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)	Nr  )r<   r   z)In extent, xmax must be greater than xminrt  r;   r   r   r;   r  z)In extent, ymax must be greater than ymin)r   r;   r;   r   )	r)   r   rl   rt   r   r   r   
ValueErrorr  r  s        r%   test_hexbin_bad_extentsr    s    llnGCIIbMB''0DDAq	z)T	U
		!Q|	, 
V 
z)T	U
		!Q|	, 
V	U 
V	U 
V	Us   B5C5B>C
c                     t        j                         \  } }|j                  t        j                  j                  d      t        j                  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 y )Nr   r0  r<   r   normvminvmax)r)   r   r  rl   rm   r   r   rY   collectionsPolyCollectionr  colorsLogNormr  r  )r/   r$   hexs      r%   test_hexbin_string_normr    s    llnGC
))BIINN2&		r(:QUV)
WCc:11@@AAAchh
 1 1 9 9:::88==A88==Ar'   zhexbin_empty.pngc                     t        j                         \  } }|j                  g g        |j                  g g d       |j                  g g g t        j                         |j                  g g t        j
                  d             y )Nr0  bins)Creduce_C_functionr   )r)   r   r  rl   maxrt   r.   s     r%   test_hexbin_emptyr    sg     llnGCIIb" IIb"5I!IIb"bffI5IIb"299R=I)r'   c                      t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}|j                  ||g dd      }t        dd      }|j                  |      d	   sJ y )
N   r<   r   r  r   )r  picker  ,  r"  r   )r)   r   rl   rt   r   r  r   contains)r/   r$   r  r4   r5   hbmouse_events          r%   test_hexbin_pickabler    sq    llnGCIIcNS ))(3DDAq	1a 0	<B!C3/K;;{#A&&&r'   zhexbin_log.pngc                     dt         j                  d<   t        j                  j	                  d       d} t        j                  j                  |       }dd|z  z   dt        j                  j                  |       z  z   }t        j                  d|d	z        }t        j                         \  }}|j                  ||d
d
dt        j                        }t        j                  |       |j                         j                  dk(  sJ y )NFpcolormesh.snaprb   順 r         @r  r<   r   r0  T)yscaler  	marginalsr  )i&-  r<   )r)   r   rl   rm   rn   standard_normalpowerr   r  sumrL   get_offsetsr  )nr4   r5   r/   r$   hs         r%   test_hexbin_logr    s    
 ',CLL"#IINN8A
		!!!$AcAgbii77:::A
AGAllnGC
		!Qu5 BFF 	 	<ALLO ==?  J...r'   c                  >   t        j                  ddd      } t        j                         \  }}|j	                  | | ddd      }t         j
                  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             y )
Nr;   r     r0  r<   )xscaler  gridsizer   r   r   )	rl   	geomspacer)   r   r  r   assert_almost_equalr  rQ  )r4   r/   r$   r  s       r%   test_hexbin_log_offsetsr  -  s    
QS!AllnGC
		!QuUQ	?AJJ""	
VVVVVV1X1X	
r'   zhexbin_linear.pngr   r  c                  P   t         j                  j                  d       d} t         j                  j                  |       }dd|z  z   dt         j                  j                  |       z  z   }t	        j
                         \  }}|j                  ||ddt         j                         y )	Nrb   r  r   r  r  r   r   T)r  r  r  )rl   rm   rn   r  r)   r   r  r  )r  r4   r5   r/   r$   s        r%   test_hexbin_linearr  ?  s     IINN8A
		!!!$AcAgbii77:::AllnGCIIaW "  (r'   c                      t        j                  d      j                  d      \  } }t        j                         \  }}|j                  | |ddd      }|j                         dk(  sJ y )Nr  r  r0  r<   r   )r  r  r  )rl   rt   r   r)   r   r  get_clim)r4   r5   r/   r$   r  s        r%   test_hexbin_log_climr  L  sY    99S>!!(+DAqllnGC
		!QU	5A::<8###r'   c           	      H   g d}t        | \  }}dgt        |      z  }g d}d}| j                         }|j                         }	|	j                  ||||d       |	j	                  d       |j                  ||dgt        |      z  d d||       |j	                  d       y )	N)r   r   r  )   r   )r   r  r;   )      $r   r  r   )rg  rg  )r  r  mincntr   c                     t        |       S r  )r  )vs    r%   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>r  s    CFr'   )r  r  r  r  r  )r  lenr   r  set_facecolor)
r"   r#   
datapointsr  r  r  r  r  ry   rz   s
             r%   ,test_hexbin_mincnt_behavior_upon_C_parameterr  S  s    J 
DAq	
c!fA!FH!GF MM	1	   ! NN	1#A,*   '"r'   c                  f   t        j                         \  } }|j                          |j                  g dg d       |j	                         dk(  sJ |j                         dk(  sJ t        j                          t        j                         \  } }|j                          |j                  g dg d       |j	                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  d       |j                  dd	       |j                         d
k(  sJ y )N)r  r<   r2  )r;   r<   r  r   )r2  r  r  )r  r2  )r   r  r0  r   r;   )r   r;   )
r)   r   invert_xaxisr   r   r   ro  invert_yaxis
set_yscaler  r.   s     r%   test_inverted_limitsr  z  s     llnGCOOGGNM*;;=G###;;=G###IIKllnGCOOGGNM*;;=G###;;=G### llnGCMM%KKA;;=G###r'   nonfinite_limitsc                  ^   t        j                  dt         j                  d      } t        j                  d      5  t        j                  |       }d d d        t         j
                  | t        |       dz  <   t        j                         \  }}|j                  |        y # 1 sw Y   RxY w)Nr  r  ignoredivider<   )
rl   rt   eerrstater0  nanr  r)   r   r   r4   r5   r/   r$   s       r%   test_nonfinite_limitsr    sp    
		"bddD!A	H	%FF1I 
&66Ac!faiLllnGCGGAqM	 
&	%s   B##B,plot_fun)r=   r   fill_betweenc           	          t        j                  ddd      }|j                         }|j                         } t        ||       g g        ||fD ])  } t        ||       |t	        t        |            d       + y )Nz
2010-01-01z
2011-01-01r4  r  C0rM  )rl   rt   r   r(  r   r  )r  r"   r#   r4   ry   rz   r$   s          r%   test_limits_empty_datar    sq     			,ODA!GFGGXr2&Has1vd;  r'   r   c                  v   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                         \  }}|j                  |       d|i}t        j                         \  }}|j                  d|       y )Nr   image.interpolationr   r<   rL  rc  )rY   r   rl   indicessqrtr)   r   r   )Nr4   r5   rL  r/   r$   r  s          r%   test_imshowr    s     2;J-.AZZAFQAIAAIA
1QT	!A#A llnGCIIaL 8DllnGC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                         \  }}|j                  || dz  g      }t        j                  |j                         d   |j                               }|j                  ||       y )Nr   r
  r   r<   r2  r   )	clip_path)rY   r   rl   r  r  r)   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r4   r5   rL  r/   r$   r?   r  s           r%   test_imshow_clipr    s     2;J-. 	AZZAFQAIAAIA
1QT	!A#A llnGC


1qseA++AKKM!,<aoo>OPI IIa9I%r'   c                      ddgddgg} t        j                         }t        j                  t        d      5  |j                  | t        j                  dd      d	d
       ddd       y# 1 sw Y   yxY w)4Parameters vmin, vmax should error if norm is given.r;   r<   r   r2  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.rt  r   r   r   r  N)r)   rk  r   r   r  r   mcolors	Normalize)r   r$   s     r%   test_imshow_norm_vminvmaxr!    sj    
Q!QA	B	z@
A 			!'++C411	E
A 
A 
As   *A++A4polycollection_joinstylec                  "   t        j                         \  } }t        j                  ddgddgddgddgg      }t        j
                  j                  |gd      }|j                  |       |j                  dd       |j                  dd       y )Nr;   r<   (   )
linewidthsr   r   )
r)   r   rl   rQ  r   r  r  add_collection
set_xbound
set_ybound)r/   r$   vertsr?   s       r%   test_polycollection_joinstyler*    s     llnGCHHq!fq!fq!fq!f5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  |j                  | ||       d d d        y # 1 sw Y   y xY wr  )r)   r   r   r   r  r  r4   r  rU  r/   r$   s        r%   test_fill_between_inputr1    s;     llnGC	z	"
2r" 
#	"	"   AAz	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                     t        j                         \  }}t        j                  t              5  |j                  | ||       d d d        y # 1 sw Y   y xY wr  )r)   r   r   r   r  fill_betweenx)r5   x1rT  r/   r$   s        r%   test_fill_betweenx_inputr9    s=     llnGC	z	"
B# 
#	"	"r2  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      \  }\  }}|j                  | || |d	
       |j                  | ||||k\  ddd       |j                  | ||||k  dd       t         j                  j                  |d      }t         j                  j                  |d<   |j                  | || |d	
       |j                  | ||||k\  dd       |j                  | ||||k  dd       y )Nr  r<   r  333333?r2  r;   Tr  blackrM  white/)wherer7  hatchinterpolater6  )r@  r7  rB  r   r   r   )rl   rt   r  r	  r)   r   r   r  r	   masked_greatermasked)r4   r  rU  r/   r  r  s         r%   test_fill_between_interpolaterE    sP    			#q$A	"%%		B	RVVAbeeGAI	Bll1a5OC#sHHQArH)QBbBh'!%  'QBbBh%!%  ' 
		b#	&BEELLBqE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      \  }}|j	                  || d       |j	                  || d       |j                  | ||||k  dd	d
       |j                  | ||||kD  dd	d
       |j                  dd       |j                  dd       y )N)gfffff@i  i  )g"@rg  r  )g@gffffff@gffffff@)rs  rs  r  ztab:redkr   T皙?r@  r7  rB  r  r6  r   r      X  )rl   rQ  r)   r   r   r7  r  r  )r  r  profr/   r$   s        r%   (test_fill_between_interpolate_decreasingrO  .  s     	"#A
A88O$Dll6*GCGGAq)GGD!SQ4tax%4s  DQ4tax$$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
                         \  }}|j                  | |d	
       |j                  | |d
       |j                  | ||||k\  ddd       |j                  | ||||k\  ddd       y )Nr   r              r   r   rI  r?   r'  r   Tr   rK  r6  )rl   rt   asarrayr  r)   r   r   r  r0  s        r%   !test_fill_between_interpolate_nanrX  C  s     			"A	QBFFB2r2q"=	>B	RQBBBFFBFFC	DBllnGCGGArSGGGArSGOOAr2R2X $C  1OOAr2R2X $C  1r'   z
symlog.pdfc                     t        j                  g d      } t        j                  g d      }t        j                         \  }}|j	                  | |       |j                  d       |j                  d       |j                  dd       y )N)r   r;   r<   r2  r  rs  r  rS  )i@B i  r  r   r   r   r   r   symloglinearr   i )rl   rQ  r)   r   r   r  
set_xscaler  r  s       r%   test_symlogr]  W  sb    
+,A
;<AllnGCGGAqMMM(MM(KKHr'   zsymlog2.pdfc                  &   t        j                  ddd      } t        j                  dd      \  }}t	        |g d      D ];  \  }}|j                  | |        |j                  d|       |j                  d	       = |d
   j                  dd       y )N2   MbP?r   r;   )      4@r   r   r   r  rZ  )	linthreshTr   皙r   )	rl   rt   r)   r   r  r   r\  r  r  )r4   r/   r  r$   rc  s        r%   test_symlog2re  c  s~     			#r5!A||Aq!HCS":;I
1
h)4
 < GT3r'   c            
      j   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                y )N)            r  r  r   r   r   )rg  g      rh        r        пr   r  r         ?r         ?r   r   )rl   r  hypotr)   pcolorr"  )r4   r5   r  r  r  s        r%   test_pcolorargs_5205ro  p  s    .A	*A;;q!DAq
AAJJqMJJtAwJJq!QssCRCx[!JJq!T!CRC"H+&'r'   r  c                  d   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  }||j                         z
  t        j                  |      z  }t        j                  t        j                  |      d	t        j                  |      z  k  |      }t        j                  d
d      \  }	\  }
}}|
j                  |||d dd df   d	d       |j                  |||d dd df   dddg       |j                  |||d       y )NFr  r  rg  r   r<   皙?r   r   r;   r   r   rI  rN  
edgecolorsr'  wgouraudshading)r)   r   rl   r  r  ri  r  rm  minptpr	   masked_whererV  r  r   r  )r  r4   r5   r  r  QxQzr  Zmr  r  r  r  s                r%   test_pcolormeshr~  ~  sl    ',CLL"#
A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWq	!A 
cBFF2J&66	:Ba+AS#NN2r2crc3B3h<CCN@NN2r2crc3B3h<A3*NENN2r2yN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  }||j                         z
  t        j                  |      z  }t        j                  t        j                  |      dt        j                  |      z  k  |      }t        j                  |dt        j                  |      z  k  |      }	t        j                  dd      \  }
\  \  }}\  }}|j                  |||d d	d d	f   dd
       |j                  |||d d	d d	f   dddg       |j                  |||d       |j                  |||	d       |
j                  D ]  }|j!                           y )Nr   rg  r   r<   rq  r   r   r  r   rI  rr  r'  rt  ru  rv  )rl   r  r  ri  r  rm  rx  ry  r	   rz  rV  r  r)   r   r  rk  set_axis_off)r  r4   r5   r  r  r{  r|  r  r}  Zm2r/   r  r  r  rD  r$   s                   r%   test_pcolormesh_smallr    s   	A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWq	!A	cBFF2J&66	:B
//"tbffRj00!
4C$'LLA$6!C	!*3jsCNN2r2crc3B3h<CCN@NN2r2crc3B3h<A3*NENN2r2yN1NN2r3	N2hh
 r'   pcolormesh_alphapdf)r   r  c            
         dt         j                  d<   d} t        j                  t        j                  dd|       t        j                  dd| dz              \  }}|}|t        j
                  |      z   }t        j                  ||      dz  }||j                         z
  t        j                  |      z  }t        j                  d   j                  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 ]-  }|j!                  t#        j$                  dddg dd             / |
j'                  |||d dd df   |ddd       |j'                  ||||ddd       |j'                  |||d dd df   |dd       |j'                  ||||dd       y )NFr  r  rg  r   r<   r   viridis   r   r   )r   rg  )r  r   r   r   r   )r7  zorderr   rJ  r  r;   )r   r  rw  r  ru  )r   rw  r  )r)   r   rl   r  r  r  rm  rx  ry  r   	colormaps	resampledrt   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  r{  Qyr  virr  r   r/   r  r  r  rD  r$   s                  r%   test_pcolormesh_alphar    s    ',CLL"#
A;;
D#q!
D#qs#DAq 
B	
RVVAYB
AA	
QUUWq	!A
--	
"
,
,R
0C2FRVVBIIbM222F1a4L!!&)D$'LLA$6!C	!*3jsC3S 
X''sA)9!
 	 !
 NN2r1SbS#2#X;S!!  -NN2r13c9QNONN2r1SbS#2#X;T6!NLNN2r141NEr'   z
dims,alphar  )r2  r   c                     | j                         }t        j                  dd|ft              dz  }|j	                  |       |j                         }|j	                  |d   ddd|	       y )
Nr   r  r  r<   ).r   grayr   r;   )r   r  r  r  )r   rl   r   r  r  )r"   r#   dimsr  r$   r?   s         r%   test_pcolormesh_rgbar    sa     
			B
AtE*Q.AMM!				BMM!F)&qqMFr'   c                 $   t        j                  d      }t        j                  d      }t        j                  ||      \  }}||z   }| j                         }|j	                  |d       |j                         }|j	                  |||d       y )Nr2  rg  r   rv  )rl   rt   r  r   r  )r"   r#   r4   r5   r  r  r  r$   s           r%   test_pcolormesh_nearest_noargsr    sy    
		!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                         } | j                  ddd       t	        j                  ddd      }t        j                  t        d	      D cg c]  }|t	        j                  |
      z    c}      }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                  |||       | j                         D ]9  }|j!                         D ]$  }	|	j#                  d       |	j%                  d       & ; y c c}w )NFr  rJ  \(\?333333?hspacerA   rR     r;   r  daysr     r      r   r$        rE   r   )r)   r   r   subplots_adjustr;  rl   rQ  r   	timedeltart   r  rm  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation
r/   basedr4   r5   z1z2zr$   r2   s
             r%   test_pcolormesh_datetime_axisr    s    ',CLL"#
**,CsS9T1a(D
U2YGY$++33YGHA
		"A[[2		"6FB
RAKKNN1Sb61Sb61SbS#2#X;/KKNN1a
		!BJJ-!,A
		!ArzzM"BQ/AKKNN1SbS#2#X;#2#ss(QssCRCx[9KKNN1alln'')ELL!r" *  Hs   / I,zpcolor_datetime_axis.pngc            	         t        j                         } | j                  ddd       t        j                  ddd      }t	        j
                  t        d      D cg c]  }|t        j                  |      z    c}      }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                  |||       | j                         D ]9  }|j                         D ]$  }	|	j!                  d       |	j#                  d       & ; y c c}w )NrJ  r  r  r  r  r;   r  r  r  r  r   r  r   r  r  r  rE   r   )r)   r   r  r;  rl   rQ  r   r  rt   r  rm  rn  r  r  r  r  r  r  r  s
             r%   test_pcolor_datetime_axisr    s   
**,CsS9T1a(D
U2YGY$++33YGHA
		"A[[2		"6FB
RAKKJJq"vq"vq"crc{+KKJJq!Q
		!BJJ-!,A
		!ArzzM"BQ/AKKJJq"crc{Acrc3B3hK3B385KKJJq!Qlln'')ELL!r" *  Hs    Ic            	      	   d} t        j                  dd|       }t        j                  dd| dz        }t        j                  ||      \  }}t        j                  ||      dz  }t	        j
                         \  }}t        j                  t              5  |j                  |||       d d d        t        j                  t              5  |j                  |||j                         d d d        t        j                  t              5  |j                  |||d dd df   d       d d d        t        j                  t              5  |j                  |||d dd df   d       d d d        t         j                  |d	<   t        j                  t              5  |j                  |||d dd df          d d d        t        j                  d
      5  t         j                  j                  ||d	k        }d d d        t        j                  t              5  |j                  |||d dd df          d d d        g d}ddg}t        j                  ||      \  }}t        j                   |j"                        }t        j$                  t&        d      5  |j                  |||d       d d d        t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                   |j"                        }t         j(                  j+                  d       t         j(                  j)                  |j"                        }t         j(                  j)                  |j"                        }	t        j$                  t&        d      5 }
|j                  ||z   ||	z   |d       t-        |
      d	k(  sJ |j                  |d|z  z   |d|	z  z   |d       t-        |
      dk(  sJ 	 d d d        y # 1 sw Y   mxY w# 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  rg  r   r<   r   r   ru  rv  r   r  invalidmask)ig  r   r;   r  r   z.are not monotonically increasing or decreasingrt  autor;   r   rb   )rl   r  r  rm  r)   r   r   r   r   r  Tr  r  r   r	   rQ  zerosr  r  rN  rm   rn   r  )r  r4   r5   r  r  r  r  r$   noise_Xnoise_Yrecords              r%   test_pcolorargsr  !  st   
A
D#q!A
D#qs#A;;q!DAq
AALLNEAr	y	!
aA 
"	y	!
aACC  
"	y	!
aAcrc3B3hK; 
"	y	!
aAcrc3B3hK; 
"66AaD	z	"
aAcrc3B3hK( 
#	X	&EEKKQK( 
'	z	"
aAcrc3B3hK( 
#
 	A	b	A;;q!DAq
A	kL
N
aAv.
N 	B1A
B1A;;q!DAq
AIINN8iiqww'Giiqww'G	k)
*-3 	ai7Av>6{a 	a7
lAbjL!VD6{a
* 
*C 
"	!	!	!	!	!	!	! 
#	"	&	&	"	"
N 
N
* 
*sm   PP"
P/
P<Q	%QQ#Q0.AQ=P"P,/P9<Q	QQ #Q-0Q:=Rc                  n   t        j                  d      5  t        j                  ddd      } t        j                  ddd      }t         j                  j	                  t        |      t        |             }t        j                         \  }}|j                  | ||       ddd       y# 1 sw Y   yxY w)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)	rl   r   rt   rm   randnr  r)   r   r  r4   r5   r  r/   r$   s        r%   test_pcolormesh_underflow_errorr  Y  s{    
 
7	#IIaC IIaC IIOOCFCF+,,.R
aA 
$	#	#s   BB++B4c                  <   t        j                  d      j                  dd      } t        j                  g d| j                        }|j
                  j                  du sJ t         j                  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                  j                  ||      }t        j                  |||       t         j                  j                  ||      }	t         j                  j                  ||      }
t        j$                  |	|
|       y )Nr  r<   r   FTFFr  r   r;   r   r  Tr   )rl   rt   r   broadcast_tor  flags	writeabler	   rQ  r)   r  r  r  r  r	  ri  r  boolrn  )r4   xmaskmasked_xr5   r  r  r  r  masked_Zmasked_Xmasked_Ys              r%   test_pcolorargs_with_read_onlyr  f  s~   
		!Q"AOO0!'':E;;  E)))uu{{15{)HNN8
Aq"A
Aq"A;;q!DAq
q255y1}q255y1} 55A88Bd#DDH??4)D::5(((uu{{14{(HNN1a"uu{{14{(Huu{{14{(HJJx8,r'   c                    | j                         }t        j                  dd      }t        j                  dd      }t        j                  j	                  d       t        j                  j                  dd      }|j                  |||d       |j                         }|d d	 t        j                  |      dz  z   }|d d	 t        j                  |      dz  z   }|j                  |||d
       y )Nr   r   r   rb   r<   rs  r  rv  r   r   r   rl   rt   rm   rn   r  r  diffr"   r#   r$   r4   r5   r  rT  rU  s           r%   test_pcolornearestr  }  s    				B
		!RA
		!QAIINN8
		1AMM!Q6M*				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"b!YM/r'   c                 z   | j                         }t        d      D cg c]$  }t        j                  j                  |dz        & c}}t	        j
                  dd      }t        j                  j                  d       t        j                  j                  dd      }|j                  |||d	       |j                         }t        d      D cg c]'  }t        j                  j                  |d
z   dz        ) }}|d d t	        j                  |      dz  z   }|j                  |||d	       y c c}w c c}w )Nr   i  r   r   rb   r<   rs  r  rv  r   r   r   )r   r   r;  fromtimestamprl   rt   rm   rn   r  r  r  r  s           r%   test_pcolornearestunitsr    s    				B<A"IFIq			(	(T	2IFA
		!QAIINN8
		1AMM!Q6M*				BEJ1X	NX(


)
)1s7d*:
;XB	N	
3B"''!*q.	 BMM"b!YM/ 	G 
Os   )D3,D8c                     t        j                         \  } }t        j                  dd      }t        j                  dd      }t        j                  j                  d       t        j                  j                  dd      }t        j                  t        d      5  |j                  |||d       d d d        y # 1 sw Y   y xY w)	Nr   rs  r   rb   zDimensions of Crt  r  rv  )r)   r   rl   rt   rm   rn   r  r   r   r   r  r/   r$   r4   r5   r  s        r%   test_pcolorflaterrorr    s    llnGC
		!QA
		!QAIINN8
		1A	y(9	:
aAv. 
;	:	:s   B==Cc                  D   t        j                         \  } }t        j                  t        j                  d      t        j                  d            \  }}||z   }t        j                  t        d      5  |j                  |||d       d d d        y # 1 sw Y   y xY w)Nr   r   z.*one smaller than Xrt  r  rv  )	r)   r   rl   r  rt   r   r   r   r  r  s        r%   test_samesizepcolorflaterrorr    sn    llnGC;;ryy|RYYq\2DAq	AA	y(?	@
aAv. 
A	@	@s   7BBsnapFc                    | j                         }t        j                  dd      }t        j                  dd      }t        j                  j	                  d       t        j                  j                  dd      }|j                  ||||       |j                         }|d d t        j                  |      d	z  z   }|d d t        j                  |      d	z  z   }|j                  ||||       y )
Nr   r   r2  rb   r   rs  )r  r   r<   r  )	r"   r#   r  r$   r4   r5   r  rT  rU  s	            r%   test_pcolorautor    s     
			B
		!RA
		!QAIINN8
		1AMM!QM%				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"b!$M'r'   	canonicalc                  X    t        j                         \  } }|j                  g d       y )Nr  r)   r   r   r.   s     r%   test_canonicalr    s    llnGCGGIr'   zarc_angles.pngc                  ~   d} d}d}d}t        j                  dd      \  }}t        |j                        D ]  \  }}|dz  dz  }|dz
  }	|j	                  t        j                  || |d	             |j	                  t        j                  || ||	|
             |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       |j                  | |       |j                  | |       | dz  } |dz  }|d   dz  |d   dz  f}|dz  } y )Nr<   r;   )r   r   r   h  rs  -   r   r  )theta1theta2r   r   )r)   r   r  r  r  r  EllipseArcr   rl   ri  deg2radr  r  r  )
rt  r  centrer/  r/   r  rE  r$   r  r  s
             r%   test_arc_anglesr    s    	
A	AFE||Aq!HC388$2S1"
X%%fa#>?
X\\&!QvfMN


6 233fQi?

6 233fQi?A 

6 233fQi?

6 233fQi?A	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                         }
|
j                  dd      }|j                  ||d	d
d
dd       t        j                  | |f|||ddd      }|j                  |       |
j                  dd      }|j                  ||d	ddd       t        j                  | |f|||ddd      }|j                  |       y )N)gRQ?gp=
ף?)r   r   r  r   rb  r  )r   r   yellowr;   )r  r7  r8  r9  r  r<   F)angler9  r?  r  rc  equalr   )r  r7  r8  r  )rl   r  rt   ri  r  rQ  rs   r)   r   r   r?  r  r  r  )xcenterycenterr  r  r  r  r4   r5   rthetaRr/   r$   e1e2s                 r%   test_arc_ellipser    s   !GWME6EJJryy~&E
RVVE]"AbffUm#AZZF
	"&&.)	(* 	+A 66!aVDAqLALA
**,C	V	,BGGAqx8  # 
w(%!QU1
FB LL	W	-BGGAqw'!GL	w(%!QU1
FB LLr'   c                      t        j                         \  } }t        j                  d      }|j	                  g dg d|       |j                  g dg d|       |j                  g dg d|       y )Nr   r  r   r<   r;   rH  )r2  r   r<   )r   r2  r   )r)   r   mmarkersMarkerStyler   r=   rO  )fixr$   ms      r%   test_marker_as_markerstyler    sW    llnGCS!AGGIyG+JJy)AJ.KK	9QK/r'   	markeveryc                     t        j                  ddd      } t        j                  |       t        j                  | dz  dz         z  }t	        j
                         \  }}|j                  | |dd       |j                  | |dd d	
       |j                  | |ddd
       |j                  | |ddd
       |j                          y )Nr   r   r   r   r   r  r2   r  mark allr	  r2   r  mark every 10+r   r  mark every 5 starting at 10rl   r  r  r  r)   r   r   rK   r  s       r%   test_markeveryr    s    
Ar3A
q	BGGAbD3J''A llnGCGGAq#YG'GGAq#ZG8GGAq#?G;GGAq#0MGNIIKr'   markevery_lineg{Gzt?c                     t        j                  ddd      } t        j                  |       t        j                  | dz  dz         z  }t	        j
                         \  }}|j                  | |dd       |j                  | |dd d	
       |j                  | |ddd
       |j                  | |ddd
       |j                          y )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	BGGAbD3J''A llnGCGGAq$iG(GGAq$$jG9GGAq$"OG<GGAq$'1NGOIIKr'   markevery_linear_scalesra  c                     d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }d}t        j                  ddd|z  z
  d      |z   }t        j                  |      dz   |z   }t        |       D ]e  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  ||ddd|       g y )Nr  r   r  r  rS  r   r   r   r   r  r   r   r   r   r  r   ?r   r;   )\(?r   r<   r   markevery=%sr   rI  r2  lsmsr	  )slicerY   gridspecGridSpecr  rl   r  r  r  r)   rm  r3   strr   
casescolsgsdeltar4   r5   rE  caserv  rw  s
             r%   test_markevery_linear_scalesr-  7  s    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#4Dy$hBsCxL!		.3t9,-AssqT: $r'   markevery_linear_scales_zoomedc                  R   d ddg dddgt        ddd      d	d
dddg} d}t        j                  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        y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r;   r  r   r<   r   r  r   rI  r2  r   )r  g@)rq  g333333?)r#  rY   r$  r%  r  rl   r  r  r  r)   rm  r3   r&  r   r   r   r'  s
             r%   #test_markevery_linear_scales_zoomedr0  P  s   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#4Dy$hBsCxL!		.3t9,-AssqT: $r'   markevery_log_scalesc                  R   d ddg dddgt        ddd      d	d
dddg} d}t        j                  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|        y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r;   r  r   r<   r   r  r0  r   rI  r2  r   )r#  rY   r$  r%  r  rl   r  r  r  r)   rm  r3   r&  r  r  r   r'  s
             r%   test_markevery_log_scalesr3  k  s   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU#4Dy$hBsCxL!		.3t9,-

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                  j                  t	        |       |z  dz   |      }t        j                  ddd      }dt
        j                  z  |z  }t        |       D ]g  \  }}||z  }||z  }t        j                  |||f   d       t        j                  dt        |      z         t        j                  ||ddd|       i y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r;   r  r<   Tpolarr  r   rI  r2  r   )r#  rY   r$  r%  r  rl   r  r	  r  r)   rm  r3   r&  r   )	r(  r)  r*  rL  r  rE  r,  rv  rw  s	            r%   test_markevery_polarr8    s    Ar73Q#s&E D				%	%c%jD&81&<d	CB
AsC AIMEU#4Dy$hBsCxL-		.3t9,-331> $r'   markevery_linear_scales_nansc                  8   d ddg dddgt        ddd      d	d
dddg} d}t        j                  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 ]e  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  ||ddd|       g y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r;   r  r   r<   r   r`  F   r  r   rI  r2  r   )r#  rY   r$  r%  r  rl   r  r  r  r  r)   rm  r3   r&  r   r'  s
             r%   !test_markevery_linear_scales_nansr=    s#   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%A"$&&(AcrF(QstWqBxU#4Dy$hBsCxL!		.3t9,-AssqT: $r'   marker_edgesc                  h   t        j                  ddd      } t        j                         \  }}|j	                  | t        j
                  |       dddd       |j	                  | dz   t        j
                  |       dddd       |j	                  | d	z   t        j
                  |       ddd
d       y )Nr   r;   r   zy.      >@rL  )r"  mewmecr   r   r<   r'  )rl   r  r)   r   r   r  r4   r/   r$   s      r%   test_marker_edgesrD    s    
Aq"AllnGCGGArvvay$4QCG8GGAcE266!9dtG<GGAcE266!9dtG<r'   zbar_tick_label_single.pngc                      t        j                         } | j                  dddd       ddd}t        j                         \  }} t        j                         } | j                  dddd|	       y )
Nr   r;   edger%  )align
tick_labelrb  r   r'  )rG  rH  r  )r)   rf  r  r   )r$   r  r/   s      r%   test_bar_tick_label_singlerI    s_     
BFF1av#F. DllnGC	BFF36cF=r'   c                  z    t        j                         \  } }|j                  ddgt        j                  dg       y )Nr   r;   r2  )r)   r   r  rl   r  r.   s     r%   test_nan_bar_valuesrK    s+    llnGCFFAq6BFFA;r'   c                  V    t        j                         \  } }|j                  g g        y r  )r)   r   r  r.   s     r%   test_bar_ticklabel_failrM    s    llnGCFF2rNr'   zbar_tick_label_multiple.pngc                  h    t        j                         } | j                  ddgddgddgddgd	       y )
Nr;         @r<   r   r   r   r'  r\   r  rH  rG  )r)   rf  r  r  s    r%   test_bar_tick_label_multiplerQ    s;     
BFFAs8aVC:3*  r'   z/bar_tick_label_multiple_old_label_alignment.pngc                      dt         j                  d<   t        j                         } | j	                  ddgddgddgdd	gd
       y )Nr\   zytick.alignmentr;   rO  r<   r   r   r   r'  rP  )rY   r   r)   rf  r  r  s    r%   *test_bar_tick_label_multiple_old_alignmentrS    sL     .6J)*	BFFAs8aVC:3*  r'   c                    | j                         }g d}g d}|D cg c]  }t        |       c}}|D cg c]  }t        |       c}}|j                  ||d       |j                         }|j                  ||d       y c c}w c c}w )Nr   g @g333333@r  rq  r  gffffff
@g@r\   rG  )r   r   r  r"   r#   r$   x0y0r4   r5   s          r%   test_bar_decimal_centerr[    s    				B	B	B RR A RR AFF1axF 				BFF2rF" 	! s
   BB	c                 (   | j                         }g d}g d}|D cg c]  }t        |       c}}|D cg c]  }t        |       c}}|j                  ||g dd       |j                         }|j                  ||g dd       y c c}w c c}w )NrU  rV  )r   r   r;   r;   r\   r  rG  )r   r   r  rX  s          r%   test_barh_decimal_centerr^    s    				B	B	B RR A RR AGGAq)G:				BGGB+8G< 	! s
   B
Bc                     g d}g d}g d}|D cg c]  }t        |       }}| j                         }|j                  |||d       |j                         }|j                  |||d       y c c}w )NrU  rV  r  g333333?r;   r<   r\   r  rG  )r   r   r  )r"   r#   r4   r5   w0rE  rt  r$   s           r%   test_bar_decimal_widthrc    sr    AA	B RRA 				BFF1aqF)				BFF1arF* 	!   A0c                     g d}g d}g d}|D cg c]  }t        |       }}| j                         }|j                  |||d       |j                         }|j                  |||d       y c c}w )NrU  rV  r`  r\   r]  )r   r   r  )r"   r#   r4   r5   h0rE  r  r$   s           r%   test_barh_decimal_heightrg    sr    AA	B RRA 				BGGAq(G+				BGGAq8G, 	!rd  c                      t        j                         } | j                  ddgddgddd      }|D ],  }|j                         dk(  sJ |j	                         d	k(  r,J  y )
Nr;   r<   r2  r   r3  rL  r  r   r8  r   r   r   r   r;   r   r   r   r)   rf  r  get_facecolorget_edgecolorr$   rectsrects      r%   test_bar_color_none_alpharr  !  se    	BFFAq6Aq6FcFJE!!#|333!!#~555 r'   c                      t        j                         } | j                  ddgddgddd      }|D ],  }|j                         dk(  sJ |j	                         d	k(  r,J  y )
Nr;   r<   r2  r   rL  r3  ri  rk  rj  rl  ro  s      r%   test_bar_edgecolor_none_alphart  )  se    	BFFAq6Aq6C6FJE!!#~555!!#|333 r'   zbarh_tick_label.pngc                  h    t        j                         } | j                  ddgddgddgddgd	       y )
Nr;   rO  r<   r   r   r   r'  r\   )r  rH  rG  )r)   rf  r  r  s    r%   test_barh_tick_labelrv  1  s;     
BGGQHq!fc3ZS#J  r'   c            
         t        j                         \  } }|j                  t        j                  ddd      dt        j                  d             |j                  t        j                  ddd      dt        j                  d      t        j                  d             t        j                         \  } }|j                  t        j                  ddd      dt        j                  d      	       |j                  t        j                  ddd      dt        j                  d      t        j                  d      
       t        j                         \  } }|j                  t        j                  ddd      t        j                  ddd      gt        j                  ddg      t        j                  d      	       |j                  t        j                  ddd      t        j                  ddd      gt        j                  ddg      dD cg c]  }t        j                  |       c}	       |j                  t        j                  ddd      t        j                  d      fgd       yc c}w )z>Smoketest that bar can handle width and height in delta units.  r;   r   r   hoursr  r<   )rS  r  )r  )r  rT  r   r1  r   r  N)	r)   r   r  r;  r  r  rl   rQ  broken_barhr/   r$   r  s      r%   test_bar_timedeltar  9  s   llnGCFF8T1a("##!,  .FF8T1a("""+##!,  . llnGCGGHdAq)1%%A.  0GGHdAq)1%%A.##!,  . llnGCGGXtQ*H,=,=dAq,IJHHaX%%A.  0 GGXtQ*H,=,=dAq,IJHHaX9?@AH&&Q/@  B NNX&&tQ2''a02 3 As   J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                         \  }}|j                  g d|| z
  |        t        |j                  j                         t        j                        sJ t        j                         \  }}|j                  g d|| z
  | 	       t        |j                  j                         t        j                        sJ y
)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  rR   )r  rS   N)rl   rQ  rh  r)   r   r  r   r_   r   r=  AutoDateFormatterr  r]   )startstopr/   r$   s       r%   test_bar_datetime_startr  S  s    HHbmmL12==3NmmL13 4E88R]]<0"--2M]]<02 3D llnGCFF9T%ZF6bhh224f6N6NOOOllnGCGGIT%ZeG4bhh224f6N6NOOOr'   c                     t         j                  j                  dd      }| j                  dd| j	                  d            j
                  }t        j                          t        j                  ||       y )Nr   r<   z1/1/2000r;   )years)periodsfreq	positions)	rl   rm   r   
date_range
DateOffsetyearr)   r   boxplot)pdr  r  s      r%   test_boxplot_dates_pandasr  c  s[    99>>!QDMM*"#"--a-*@  BBF$ 
JJLKK&r'   c                     t         j                  j                  dd      } t        j                  d      \  }}|d   j                  | g dg d       |d   j                  | g dd	       |d
   j                  | g d       |d   j                  | dg d       |d   j                  | dd	       |d   j                  | d       |d   j                  | g d       |d   j                  | d	       |d   j                  |        y )Nr   r   rs  r   )r   r   r   r   )	capwidthswidthsr;   r   r<   r  r   r2  r  r  rg  r  )rl   rm   r   r)   r   r  )r  r/   r  s      r%   test_boxplot_capwidthsr  l  s    99>>!QD||AHCFNN4??NKFNN4?3N?FNN4?N3FNN43N?FNN43sN3FNN43N'FNN4N0FNN4N$FNN4r'   c                    ddl m}m} t        j                         }|j                  d      }t        j                  ddd      g}t        |      dk  r:|j                  |d   t        j                  d	      z          t        |      dk  r:t        j                  d
      }t        j                  ||      \  }}t        |      dz
  t        |      dz
  f}	t        j                  |	d   |	d   z        }
|	|
_        	  |        |j                  |||
      }|j                  j!                           |        y #  |        w xY w)Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r;   rg  r   x   )secondsr   )pandas.plottingr  r  r)   r   r   r;  r  appendr  rl   rt   r  r  r  canvasr  )r  r  r  r/   r$   timesy_vals	time_axisy_axisr  z_dataims               r%   test_pcolor_regressionr  }  s
   
 **,C		BtQ*+E
e*q.U2Y!3!3C!@@A e*q. YYq\FE62Iv[1_c%j1n-EYYuQx%(*+FFL+&(]]9ff5

(*(*s   >4D: :	Ec                 j   | j                  g dg dg dg dd      }| j                  |g d         |d<   |ddg   j                  dg      j                         }|j                  }|d   }|d   }t        j                         \  }}|j                  ||dd	
       |j                  ||dd       y )N)rx  rx  rx  r;   r;   r;   r  )r  monthrB  rA  )r  r  rB  daterA  r   r\   ra  oranger2  rM  )		DataFrameto_datetimegroupbyr  indexr)   r   r  r   )r  dfmonthlydatesforecastbaseliner/   r$   s           r%   test_bar_pandasr    s    	#	
B
 #; <=BvJ&'"#++VH599;GMMEwHwHllnGCFF5("HF5GGE88G2r'   c                     | j                  g dg ddg d      }t        j                         \  }}|j                  |j                  d|j
                         y )N)r   r   r  r   rJ  r  )r4   r  r  r  r   r{  )r  r)   r   r  r4   r  r  r  r/   r$   s       r%   test_bar_pandas_indexedr    sH    	L<@% 
 
'BllnGCFF244288F$r'   c                     | j                         }|j                         }ddg}ddg}ddg}t        d      D ]   }|j                  ||   ||   d||          " |j                  |||       y )	Nr;   r<   r   r4   r   r  )r   rA  rA  )r   r   r  )r"   r#   ry   rz   r4   r5   hatchesrE  s           r%   test_bar_hatchesr    s}     !GF	
AA	
AACjG1X

1Q41T
<  KK1GK$r'   )r4   r  r2   expected_labelscontainer_labelr4   r;   
_nolegend_r   r'  r?   )r   r  r  ABr  )r  r  r  bars)r  r  r  c                     t        j                         \  }}|j                  | ||      }|D cg c]  }|j                          }	}||	k(  sJ |j                         |k(  sJ y c c}w )Nr  )r)   r   r  	get_label)
r4   r  r2   r  r  r  r$   bar_containerr  
bar_labelss
             r%   test_bar_labelsr    sk     LLNEArFF1e5F1M-:;]c#--/]J;j(((""$777 <s   A&c                  ~   t        j                         \  } }t        j                  t              5  |j                  ddgddgg d       d d d        t        j                         \  } }t        j                  t              5  |j                  ddgddgdg       d d d        y # 1 sw Y   \xY w# 1 sw Y   y xY w)Nr4   r5   r;   r<   )r  r  r  r  r  )r)   r   r   r   r  r  r  s     r%   test_bar_labels_lengthr    s    LLNEAr	z	"
SzAq69 
#LLNEAr	z	"
SzAq6#/ 
#	" 
#	" 
#	"s   B'B3'B03B<c                    | j                  ddgd      | j                  ddgd      fD ]l  }t        j                  ||       t        j                  |j                  |       t        j                  |       t        j                  |j                         n | j	                  dg di      }t        j                  |       t        j                  ||       y )Nr;   r<   float64r  Float64rw  r  )Seriesr)   r   r  r  )r  r4   r  s      r%   test_pandas_minimal_plotr    s    iiAii0iiAii02A!2 
ui(	)BHHRLHHRr'   hist_logc                      t        j                  ddd      dz  } t        j                  d| z
  d| z   g      }t        j                         \  }}|j                  |dd       y )Nr   r;   r  r   FT)r?  r0  )rl   r  concatenater)   r   hist)data0r  r/   r$   s       r%   test_hist_logr    sU    KK1c"A%E>>1u9a%i01DllnGCGGDu$G'r'   c                 x   | j                  dd      }|j                  dd      }t        g d      D ]  \  }}|d|f   j                  d       |d|f   j                  dd|       |d|f   j                  dd|       |d|f   j                  d       |d d |f   D ]  }|j                  ddd|	         y )
Nr<   r   )r  step
stepfilledr   r0  r;   histtypeT)r0  r  )r   r  r  r  )r"   r#   r   r   rE  r  r$   s          r%   test_hist_log_2r    s      A&Hq!$G !>?8A!!%(AAq84AAq84A!!%(!Q$-BGGAqdXG6   @r'   c                  t   t        j                  d      \  } }|d   j                  dgddggdd       |d   j                  d       |d   j                  g ddd       |d   j                  d       | j                  j                          |d   j                         |d   j                         k(  sJ y )Nr<   r   r;   
barstackedr  r0  r   r   r;   )r)   r   r  r  r  r  r   r/   r  s     r%   test_hist_log_barstackedr  	  s    ||AHCFKK!q!fq<K8FeFKK	1|K4FeJJOOq6??A 1111r'   zhist_bar_empty.pngc                  R    t        j                         } | j                  g d       y )Nr  r  r)   rf  r  r  s    r%   test_hist_bar_emptyr  	  s     
BGGBGr'   c                     t         j                  j                  d       t        j                  t         j                  j	                  ddd      dd      j                  t         j                        } t        j                  | dd	      }|d
   }t        dt        |            D ]>  }||dz
     j                         }||   j                         }|d   d   |d   d   k  r>J  y )Nrb   r   r   r  sizer   r;   r   )r  r  r<   )rl   rm   rn   clipro   r   float16r)   r  r   r  get_corners)r$  r  bcrL  rleftrrights         r%   test_hist_float16r  	  s    IINN8WW
		c-q!55;VBJJ5G as+A	
1B1c"g1Q3##%A""$ Qx{fQil*** r'   zhist_step_empty.pngc                  R    t        j                         } | j                  g d       y )Nr  r  r  r  s    r%   test_hist_step_emptyr  '	  s     
BGGBG r'   zhist_step_filled.pngc                     t         j                  j                  d       t         j                  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 ]E  \  }}} |j                  | |f|dd| |j                  | d|        |j                  d       G |d   j                  }	t        d |	D              sJ y )Nr   r  r   r   r?  TFr<   r  r2  r  nrowsncolsr  stackedr?  r_  rR   r  c              3   ^   K   | ]%  }|j                         |j                         k(   ' y wr  )rm  rn  ).0r  s     r%   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>>	  s$     Gw!q AOO$55ws   +-)rl   rm   rn   r  r)   r   r  r  r  r7   r  r>  all)
r4   n_binsr	  typesr/   r  kg_typer$   r>  s
             r%   test_hist_step_filledr  .	  s    IINN1
		a AFtnvuo~rB1DFHQJ~a''E||!1-HCVUCHH5E26>E4>2>
t1UG_%
3 6
 $iGGwGGGGr'   zhist_density.pngc                      t         j                  j                  d       t         j                  j                  d      } t	        j
                         \  }}|j                  | d       y )Nrb   r  Tdensity)rl   rm   rn   r  r)   r   r  r  r/   r$   s      r%   test_hist_densityr  A	  sE    IINN899$$T*DllnGCGGD$Gr'   c                      t         j                  j                  d      } | j                  d      }g d}t	        j
                  ||d      \  }}}t        j                  ||d      \  }}t        ||       y )Ni  r   )r  r   r  r   r;   r   T)r  r  )rl   rm   RandomStater  r)   r  	histogramr   )rngr  r  mpl_heightsr  
np_heightss         r%   test_hist_unequal_bins_densityr  I	  sc     ))


&C		#A"Dt<KALLt<MJK,r'   c                  6   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                         \  }}|j                  | d       |j                  | d       y )N  r;   r<   T)r  F)r;  r)   r   r  r  s      r%   test_hist_datetime_datasetsr  T	  s    tQ*H,=,=dAq,IJtQ*H,=,=dAq,IJLDllnGCGGD$GGGD%G r'   bins_preprocessc                     | S r  r   r  s    r%   r  r  ^	  s    tr'   c                 .    t        j                  | d      S )Nrh  )rl   rW  r  s    r%   r  r  _	  s    rzz$'Er'   )r>  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                         \  }}|j                  | | |      d	      \  }}}t        j
                  j                  |t        j                  j                  |             |j                  | | |      d
	      \  }}}t        j
                  j                  |t        j                  j                  |             y )Ni  r;   r   rT  r<   r   rR  T)r  r  F)
r;  r)   r   r  rl   r   r   r   r  r>  )r  r  
date_edgesr/   r$   r  r  s          r%    test_hist_datetime_datasets_binsr  \	  sw    tQ*H,=,=dAr,JtQ*H,=,=dAq,IKtQ+X->->tQ-JtQ+X->->tQ-JLMD
 ##D!Q/1B1B4A1N##D!Q/1J llnGCOJ$?NJAtQJJtSYY%7%7
%CDOJ$?OJAtQJJtSYY%7%7
%CDr'   zdata, expected_number_of_histsc                     t        j                  |       \  }}}t        j                  |      }|j                  dk(  rd|k(  sJ y |j
                  d   |k(  sJ y )Nr;   r   )r)   r  rl   rW  ndimr  )r  expected_number_of_histshistsr  s       r%   test_hist_with_empty_inputr  s	  sV    
 ((4.KE1aJJuEzzQ,,,,{{1~!9999r'   zhisttype, zorderr  r  r  c                     t        j                         j                         }|j                  ddg|        |j                  sJ |j                  D ]  }|j                         |k(  rJ  y )Nr;   r<   r  )r)   r   r   r  r>  
get_zorder)r  r  r$   r  s       r%   test_hist_zorderr   	  s]    
 
	!	!	#BGGQFXG&:::!V+++ r'   c                      t        j                         \  } }t        j                  t        d      5  |j                  g dg ddd d       d d d        y # 1 sw Y   y xY w)Nzbaseline=None and fill=Truert  )r2  r   r;   r   r<   )r;   r<   r   r2  r   r  r   T)r7  r  r?  )r)   r   r   r  rN  stairsr.   s     r%   "test_stairs_no_baseline_fill_warnsr#  	  sM    llnGC	k)F	G
		 	 	
 
H	G	Gs   AA c                 `   dd l m} t        j                  g d      }t        j                  g d      }| j	                  dd      j                         }|d   j                  ||d        |d   j                  ||d d	       |d   j                  ||       |d   j                  ||d
       |d   j                  ||       |d   j                          |d   j                  ||d
       |d   j                          ddd}|j	                  dd      j                         } |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                   |j                  |d   |d   gd|d   gfi |       |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                  dd         |d   j                  t        j                  |d   |      |fddi| |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                  dd         |d   j                  |t        j                  ||d         fddi| |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                           |d   j                  t        j                  |d   |      |fddi| |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                          y )Nr   )r     r   %   0   r   r  r2  )	r   r   r  r  r        @      @       @      "@r   r<   r  r;   rT   )r  rV   rU   r2  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrl   rQ  r   flattenr"  semilogyr  r   r  add_liner   r  r  )r"   r#   mlinesr5   r4   	test_axesr   ref_axess           r%   test_stairsr<  	  s5   %
01A
56A!!!Q'//1IaL1t,aL1tFaL1aL1,7aL1aLaL1,7aL !(6BE1%--/HHQKQ		!QrU+M|MuMHQKRYYqtQ'LlLeLHQKQ		!QrU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKD!HQKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKD!HQKQ		!QrU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKHQKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKr'   c           	         g dg d}}d}| j                  dd      j                         }|d   j                  ||d       |d   j                  ||d	d
       |d   j                  |||d       |d   j                  |||d	d       |j                  dd      j                         }|d   j                  |t	        j
                  ||d         dd       |d   j                  dd        |d   j                  |t	        j
                  ||d         dd       |d   j                  dd        |d   j                  |t	        j
                  ||d         t	        j                  t        |      dz         |z  dd       |d   j                  |d        |d   j                  |t	        j
                  ||d         t	        j                  t        |      dz         |z  dd       |d   j                  |d        y )N)r;   r<   r   r2  r<   r   r;   r<   r   r2  r   r  r<   r   Tr?  r;   rT   )rV   r?  )r  r?  r   )r  rV   r?  r   post)r  rN  )r   r6  r"  r  rl   r  r  r7  r  r   r  )r"   r#   r  r  bsr:  r;  s          r%   test_stairs_fillrB  	  s   1tA	B!!!Q'//1IaL4d+aL4\EaL4"48aL4",!  # 1%--/HQKT299Q"#6VJQKD!QKdBIIa2$7fKQKD!QKT299Q"#6WWSVAX.r11  FQKT"QKdBIIa2$7 ggc!fQh/2A  GQKT"r'   c                 j   d}| j                         }|j                  g d      }|j                  |       |j                  g d       |j                  t	        j
                  d      dz          |j                  g dt	        j
                  d      dz         |j                  g d       |j                  d t	        j
                  d             t	        j                  |j                         d   t	        j
                  d	d            sJ t	        j                  |j                         d	   t	        j
                  d            sJ |j                  d
       |j                         j                  d
k(  sJ |j                         }|j                  g dd
      }|j                  |       y )N)r  r2  r  r  r2  r<   edges)r;   r<   r;   r   r;   r  r,  )	r   r"  r  set_datarl   rt   allcloseget_datar  )r"   r#   r   test_axr  ref_axs         r%   test_stairs_updaterK  	  s9    D""$Gy!ATJJyJJRYYq\!^J$JJy"))A,q.)JJyJJtRYYq\";;qzz|A		!Q888;;qzz|A		!555JJJ::<  B&&&   "Fi"-A
OODr'   c                 ,   t        j                  g d      }t        j                  g d      }| j                         }|j                  ||d        ddd}|j                         } |j                  |t        j
                  ||d         fdd	i| y )
N)r   r<   r   r   r   )g|?5^?gV-?g+?rl  r,  r-  r.  r/  r   r2  r3  )rl   rQ  r   r"  r   r  )r"   r#   r4   r5   r:  r   r;  s          r%   test_stairs_baseline_NonerM  	  s    
!"A
,-A$$&IQD) '6BE""$HHMM!RYYq!B%(JLJEJr'   c                      t        j                         j                         } | j                  g dg       | j	                         dk(  sJ | j                         dk(  sJ y )N*   )'   r  rq  )r)   r   r   r"  r   r   r  s    r%   test_stairs_emptyrQ  
  sN    		!	!	#BIIb2$;;=H$$$;;=M)))r'   c                      t        j                  t        d      5  t        j                  ddgdt
        j                  dg       d d d        y # 1 sw Y   y xY w)NNan values in "edges"rt  r;   r<   r   )r   r   r  r)   r"  rl   r  r   r'   r%   test_stairs_invalid_nanrT  
  s:    	z)@	A

Aq6Arvvq>* 
B	A	Ar  c                      t        j                  t        d      5  t        j                  ddgddg       d d d        y # 1 sw Y   y xY w)NSize mismatchrt  r;   r<   r   )r   r   r  r)   r"  r   r'   r%   test_stairs_invalid_mismatchrW  
  s2    	z	9

Aq6Aq6" 
:	9	9s   A  A	c                      t        j                  ddgg d      } t        j                  t        d      5  | j                  dt        j                  dg       d d d        y # 1 sw Y   y xY w)Nr;   r<   rI  rS  rt  rD  )r)   r"  r   r   r  rF  rl   r  r  s    r%   test_stairs_invalid_updaterZ  
  sJ    

Aq69%A	z)@	A	

!RVVQ
( 
B	A	As   $A##A,c                      t        j                  ddgg d      } t        j                  t        d      5  | j                  t        j                  d             d d d        y # 1 sw Y   y xY w)Nr;   r<   rI  rV  rt  r   rD  )r)   r"  r   r   r  rF  rl   rt   rY  s    r%   test_stairs_invalid_update2r\  
  sF    

Aq69%A	z	9	

1
& 
:	9	9s   &A%%A.ztest_stairs_options.pngc                  v   t        j                  g d      t        j                  g d      j                  t              }} |j	                         }t         j
                  |d<   t        j                         \  }}|j                  |dz  | ddd       |j                  || dz  dz
  d	dd
d       |j                  || dddd       |j                  |dz  | dz  dz
  dddd
d       |j                  |d d d   dz  dz   | dz
  d	ddd d       |j                  |d d d   dz  dz   | ddddd       |j                  |d d d   dz  dz   | dz   t        j                  dd t        |            d!dd"d#       |j                  |d d d d d   dz  d$z   | d d dz   d%ddd&d'd()       |j                  d*+       y ),Nr;   r<   r   r2  r   r  r;   r   r   Tr  )r   r?  r2   r6  rT   r  )r   r?  rV   r2   r  rJ  r<   r  )r   r!  rN  r2   r   r\  )r!  rN  r  rV   r2   r      E)r   r!  rN  r  r2   r%  rU  r  F)r  r   r!  rN  r2   r  r0     r   G)r  r   r!  r2   r?  rT  r=  r  //H)r   r!  rN  r  rA  r2   r   rB   )rl   rQ  r   r  copyr  r)   r   r"  r  r  rK   )r4   r5   ynr/   r$   s        r%   test_stairs_optionsrh  "
  s   88O$bhh|&<&C&CE&JqA	
BFFBqEllnGCIIac1G$cI:IIa1Qe$&c  3IIb!8#I>IIbdAaCEdq3&c  3IIa"gailAaCu!d  IIa"gailA!3  8IIb2hqjmQqS2;;r2s1v+Ft3T  ;IIafTrTl1nR3B7tS  2II!Ir'   ztest_stairs_datetime.pngc            	          t        j                  d      \  } }|j                  t        j                  d      t        j                  t        j
                  d      t        j
                  d                   t        j                  d       y )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r)   r   r"  rl   rt   rh  xticks)fr$   s     r%   test_stairs_datetimero  :
  s[    LLD1EArIIbiimiil3l356 JJr'   c                     | j                         }|j                  g ddd       |j                         }|j                  g dd      }|j                  d       y )Nr  r6  T)r   r?  r?  )r   r"  	set_color)r"   r#   rI  rJ  sts        r%   test_stairs_edge_handlingrs  C
  sR     ""$GNN9EN5   "F	yt	,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  )rl   r  ri  r  r  )r4   r5   r  s      r%   contour_datrv  O
  sY    
B3A
B3A
q	BFF1Q

]+,,Aa7Nr'   contour_hatchingc            
          t               \  } }}t        j                         \  }}|j                  | ||dg dt        j
                  d   dd       y )Nrg  )r?  \rd  rI  r  r   r   )r  r   extendr  )rv  r)   r   r  r   r  r  s        r%   test_contour_hatchingr{  V
  sK    mGAq!llnGCKK1a$:]]6*S  *r'   contour_colorbargHzG?c            
         t               \  } }}t        j                         \  }}|j                  | ||t	        j
                  ddd      t        j                  d   ddd      }|j                  | ||t	        j
                  d	d
d      dgdd      }|j                  | ||t	        j
                  ddd      dgd      }|j                  ||      }|j                  |       |j                  |d       y )Ngg7A`?r   RdBug333333r  r   )levelsr   r  r  rz  gg^I+r5   r   r<   )r  r  
linestylesr%  r  r?   )r  r  r%  r  F)erase)rv  r)   r   r  rl   rt   r   r  r  rL   	add_lines)	r4   r5   r  r/   r$   cscs1cs2rO   s	            r%   test_contour_colorbarr  _
  s     mGAq!llnGC	Q1RYYtUC%@--/"	 
 
$B
 **Q1RYYtVS%A E ' !  #C **Q1RYYsC%= E !  #C <<r<"DNN3NN3eN$r'   hist2dc                     dt         j                  d<   t        j                  j	                  d       t        j                  j                  d      dz  dz   } t        j                  j                  d      dz
  }t        j                         \  }}|j                  | |dd	       | |d
}t        j                         \  }}|j                  ddd|d       y )NFr  r   r   r<   r   r   Tr  
rasterizedr"  r4   r5   )r  r  r  )r)   r   rl   rm   rn   r  r   r  )r4   r5   r/   r$   r  s        r%   test_hist2dr  w
  s     ',CLL"#IINN1
		Qq A
		QAllnGCIIaI- DllnGCIIc3RdtI<r'   hist2d_transposec                  6   dt         j                  d<   t        j                  j	                  d       t        j
                  dgdz        } t        j                  j                  d      dz
  }t        j                         \  }}|j                  | |dd	       y )
NFr  r   r   r   r<   r   Tr  )	r)   r   rl   rm   rn   rQ  r  r   r  r  s       r%   test_hist2d_transposer  
  ss     ',CLL"#IINN1 	!SA
		QAllnGCIIaI-r'   c                      t         j                  j                  d      \  } }t        j                         j	                         }|t        fD ]  }|j                  | |d        y )Nr  Tr  )rl   rm   r)   r   r   r  )r4   r5   r$   objs       r%   test_hist2d_densityr  
  sN    99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                  j                  dddid ej                         iddiddig      d        Zd Zej$                  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                  j                  d:e      d;        Zej$                  j'                  d       ed
g      d<               Zd= Zd> Z y))?TestScatterr=   r   Tr  c                 j   t        j                  g d      t        j                  g d      g dg dg dd}t        j                         \  }}|j	                  |d   dz
  |d	   dz
  |d
   |d          |j	                  |d   dz   |d	   dz   |d   |d          |j	                  dd	d
d|       y )Nr   r2  r<   r  r<   r   r<   r   rL  r5   r'  limerS  r        )0.50.60.7z0.8)r4   r5   r?   r  c2r4   r   r5   r?   r  r?   r  r  )r?   r  r  )rl   rQ  r)   r   r=   )r{  r  r/   r$   s       r%   test_scatter_plotzTestScatter.test_scatter_plot
  s    XXl+"((<2H,3C24 ,,.R


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


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


3sc
5r'   zscatter_marker.pngr  c                 F   t        j                  d      \  }\  }}}|j                  g dg dg dg dg dd	       |j                  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      }	|j                  g dg dg dg dg d|		       y )Nr   r  r  r  )r;   r   r   r5   r'  r  )r+  r`  r$  r   )rI  rL  gr'  r  )r?   r  rs  r   r   rA   	fillstyler  r   r<   r  )r)   r   r=   r  r  rl   r	  r  column_stackri  r  )
r{  r/   rq  r  r  rxryarear  r)  s
             r%   test_scatter_markerzTestScatter.test_scatter_marker
  s    "||!4_c3L,3&3	 	 	 
 	L,3&3#//uE	 	 	G BBwAq255y"-!3d!:!#!3d!:!< =L,3&3 	 	 	"r'   
scatter_2Dr   )r  r   c                     t        j                  d      }t        j                  d      }t        j                  ||      \  }}||z   }t        j                         \  }}|j                  |||dd       y )Nr   r<   r  face)r?   r  rs  )rl   rt   r  r)   r   r=   )r{  r4   r5   r  r/   r$   s         r%   test_scatter_2DzTestScatter.test_scatter_2D
  s^    IIaLIIaL{{1a 1E,,.R


1a1
7r'   r   c                    t        j                  g d      }t        j                  g d      }t        j                  |D cg c]  }t        |       c}      }t        j                  |D cg c]  }t        |       c}      }g d}g d}	|j                         }
|
j	                  ||||	       |j                         }
|
j	                  ||||	       y c c}w c c}w )NrU  rV  r  r  r  )rl   rQ  r   r   r=   )r{  r"   r#   rY  rZ  rE  r4   r5   r?   r  r$   s              r%   test_scatter_decimalz TestScatter.test_scatter_decimal
  s    XX*+XX*+HH"-"Qgaj"-.HH"-"Qgaj"-.# 


1a1
"


2rQ!
$ .-s   C.Cc                 4   t        j                  t              5  t        j                  ddgddgddg       d d d        t        j                  t              5  t        j                  g dg dg d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr;   r<   r   r   rM  r  )r   r   r  r)   r=   r{  s    r%   test_scatter_colorzTestScatter.test_scatter_color
  sc    ]]:&KKAAsCj9 ']]:&KK	9I> '& '&&&s   B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        t        j                  t        |      5  t        j                  ddgddgfdg i| d d d        t        j                  g g fdg i| t        j                  ddgddgfdddgi| y # 1 sw Y   xY w# 1 sw Y   NxY w)	Nz"No data for colormapping provided rt  r;   r<   r   r2  r?   r   )r   r  Warningr)   r=   )r{  r	  
warn_matchs      r%   test_scatter_color_warningz&TestScatter.test_scatter_color_warning
  s     :
 \\'4KKB)&) 5\\'4KKAA7"77 5 	B+b+F+QFQF7q!f77 5444s   B8C8CCc           	      .   t        j                  g dg dg dt        j                  dd      g d      }|j	                         j
                  d	k(  sJ t        |j                         g d
g dg dg       t        |j                         g d       y )NrI  r;   r   r<   0.1z0.3r  r   r3  r  rq  r<  ?r?   r   r%  )r   r2  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    {{9i3H"*"6"6sf"M&57 ""$**f4444..03E3E3E3G 	H 	4..0/Br'   r  c                    t        j                  g dg dg ddg d      }t        |j                         |j	                                t        |j	                         g dg dg d	g       t        |j                         g d       y )
NrI  r  r  r4   r  r  r  r  r  )r)   r=   r   r  r  r  r  s     r%   test_scatter_unfillablez#TestScatter.test_scatter_unfillable
  ss    {{9i3H"%&57 	4..0$2E2E2GH4..03E3E3E3G 	H 	4..0/Br'   c                    t        j                  d      }t        j                  t        d      5  t        j                  |||dd         d d d        t        j                  t        d      5  t        j                  |dd  |dd  |       d d d        t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr2  zsame size as x and yrt  r;   zfloat array-liker  )rl   rt   r   r   r  r)   r=   )r{  r4   s     r%   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size
  s    IIaL]]:-CDKK1ae$ E]]:-CDKK!"qua( E]]:-?@KK1e$ A@	 EDDD@@s#   C/C0C)CC&)C2c                    t        j                  g ddt        j                  t        j                  gd      }t	        j
                  |j                         d      sJ t        j                  g ddt        j                  t        j                  dgd      }t	        j
                  |j                         d      sJ y )Nr  r;   r  r8  r  r  )r)   r=   rl   r  r  
same_colorrn  r  s     r%   test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB  s    {{9q"&&"&&&9&/1!!$"4"4"6	BBB{{<!RVVRVVQ)?&24!!$"4"4"6EEEr'   c                    |j                         }t        j                  d   j                  d      }|j	                  dd       |j                  t        d      t        d      dt        j                  dt        j                  gg d|d	       |j                         }t        j                  d   j                  d      }|j                  d
dgd
dgddgddg|       |j                  ddgddgddgd       y )Nr  r  rI  r;   r2  r<   r  Tr?   r  r   plotnonfiniter   r   r?   r  r   )r  r   	r   r   r  r  set_badr=   r   rl   r  r{  r"   r#   r$   r   s        r%   test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color  s     }}Y'11"5S! 	

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


Aq6Aq6aV1vD
A


Aq6Aq6aV3
7r'   c                 ~   |j                         }t        j                  d   j                  d      }|j	                  dd       |j                  t        d      t        d      dt        j                  dt        j                  gg d|d	       |j                         }|j                  d
dgd
dgddgddg|       y )Nr  r  rI  r;   r2  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S!


58U1XBFF+|E 	 	3 


Aq6Aq6aV1vD
Ar'   c           
          g d}t        j                         }t        j                  t        d      5  |j                  |||t        j                  dd      dd       d	d	d	       y	# 1 sw Y   y	xY w)
r  r  r  rt  r  r   r   r   )r?   r  r  r  N)r)   rk  r   r   r  r=   r  r   )r{  r4   r$   s      r%   test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax8  sg    XXZ]]:"DE JJq!qw'8'8b'AA  'E E Es   ,A))A2c                     |j                         }|j                  ddd       |j                         }|j                  dgdgdg       y )Nr;   rV  )r   r=   )r{  r"   r#   r$   s       r%   test_scatter_single_pointz%TestScatter.test_scatter_single_pointB  sH     


1a1



A3s
#r'   c                 >   t        j                  d      }|j                         }|j                  ||j	                  dd      |j	                  dd             |j                         }|j                  |j	                  dd      ||j	                  dd             y )Nr   r<   r   rV  )rl   rt   r   r=   r   )r{  r"   r#   r4   r$   s        r%   test_scatter_different_shapesz)TestScatter.test_scatter_different_shapesI  sw    IIbM 


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


199Q?A1a
9r'   )r  Nrgby
conversion)r6  N)r3  N)NN)rL  r  r'  r3  N)jauner  r  r2  r   r   r   r  )r  z0.4r  r  )r  r6  r  C5)r  r   r  r  r  r;   r   r   r   r6  z0.0r  r   r;   r   zc_case, re_keyc                 r   d }d}ddd}|t        j                  t        ||         nGt        |t              r$t        |      dk(  rt        j                  d      nt        j                         }|5  t        j                  j                  j                  |d	i ||
       d d d        y # 1 sw Y   y xY w)Nc                       yNr   r   r   r'   r%   get_next_colorz2TestScatter.test_scatter_c.<locals>.get_next_color  s    r'   r2  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  rt  r   (argument looks like a single numeric RGBr=  )r?   rs  r	  xsizeget_next_color_func)r   r   r  r   r"  r  r  
contextlibnullcontextr   rk  r   _parse_scatter_color_args)r{  c_casere_keyr  r  REGEXPassert_contexts          r%   test_scatter_czTestScatter.test_scatter_c  s    	  99 ! MM*F6N; &$'CK1,< $NO'') 	 HHMM33WRu$2 4 4 ^^s   5/B--B6c                    g dg}g dg}|j                         }|j                  t        j                  d      t	        d      |       |j                  t        j                  d      dz  t	        d      |       |j                         }|j                  t        j                  d      t	        d      |       |j                  t        j                  d      dz  t	        d      |       y )N)r;   r   皙?)r;   r   r  r   r   rM  r2  r<   rV  )r   r=   rl   r   r   )r{  r"   r#   rgbrgbarz   ry   s          r%   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_c  s     "# !!#rwwqz5837rwwqz!|U1XT: ##%
E!H4
1eAh$7r'   c                    t        j                  d      }t        j                         \  }}t	        d      D ]K  }|j                  |t        j                  d|      d| dd|dz         }|j                         |dz   k(  rKJ  |j                  |t        j                  dd      dddg t	        dd      d       }t        |j                         g t	        dd      t        j                  d	          y )
Nr   r   r  r4   r   r;   )r?   r   r  r%  C3lines.linewidth)rl   rt   r)   r   r   r=   rf   r  r   r   r   )r{  r4   r/   r$   rE  pcs         r%   test_scatter_linewidthsz#TestScatter.test_scatter_linewidths  s    IIaL,,.RqAArwwq!}!A3s'(1u  .B$$&!a%/// 
 ZZ2771a=D#7U1a[#7$#7  92,,.JU1a[J#,,7H*IJ	Lr'   c                    t        j                  t        d      5  t        j                  g dg dg dd       d d d        t        j                  t        d      5  t        j                  g dg dg dd	
       d d d        t        j                  t        d      5  t        j                  g dg dg dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)NzGGot both 'linewidth' and 'linewidths', which are aliases of one anotherrt  r  )r   rJ  r   r   )r%  r9  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r  )rs  r8  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr7  )r   r   r   r)   r=   r  s    r%   &test_scatter_singular_plural_argumentsz2TestScatter.test_scatter_singular_plural_arguments  s    ]]9"#$ KK	9TWX$
 ]]9"#$ KK	9#D$-/$ ]]9"#$ KK	9#D&/1$ $$ $
$ $$ $s#    C C" C#CC #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  
  sU   ykdC6 D6 +,$?" @"0 |n$E7K8 L8 UG,% -%? [[X%+V$4%+->W->->-@$A%+QK%+QK	!"#
8#
8C 	YYy!C "C%F UG,8 -8 UG,	B -	B' UG,$ -$ UG,: -: 	
< 	 $'
L!
1l#
q$
q$
q'	%t,	$d+	"L1
d
Q 
Q
Q 
	4 
	!	W%
	!	T"
	!	W%
	!	yk	)40
%	'1
%	-t4
%i	8'B
%	)<8
%	0,?
%g	6EQ)V [[-/DE4 F4. 	YYy!UG,8 - "8L1r'   r  )rs  c                    | |||fS r  r   )r?   r  rs  r	  s       r%   _paramsr
    s    z65))r'   _resultz	c, colorszparams, expected_resultr'  rJ  )r?   r  rL  rV  r  rM  r  )r   r   r   r;   c                     d }t        j                  j                  j                  | d|i\  }}}||j                  k(  sJ t        ||j                         y )Nc                       yr  r   r   r'   r%   r  z5test_parse_scatter_color_args.<locals>.get_next_color      r'   r  )r   rk  r   r  r?   r   r  )paramsexpected_resultr  r?   r  _edgecolorss         r%   test_parse_scatter_color_argsr    sW     !XX]]DD	5%35Av{!!!!!FO223r'   zkwargs, expected_edgecolorsr  r  r3  )r8  rs  )r?   r8  rs  )r   r8  c                     d }| j                  dd       }| j                  dd       }t        j                  j                  j	                  ||| d|      \  }}}||k(  sJ y )Nc                       yr  r   r   r'   r%   r  z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color  r  r'   r?   rs  r<   )r  r  )popr   rk  r   r  )r	  expected_edgecolorsr  r?   rs  r  result_edgecolorss          r%   (test_parse_scatter_color_args_edgecolorsr    sm     	

3AL$/J//z6 	0 	P Aq
  3333r'   c                      d } t        j                  t        d      5  t        j                  g dg dg      }t
        j                  j                  j                  |d i d|        d d d        y # 1 sw Y   y xY w)Nc                       yr  r   r   r'   r%   r  z;test_parse_scatter_color_args_error.<locals>.get_next_color  r  r'   z&RGBA values should be within 0-1 rangert  )r   r   r  )r   rJ  gffffff?r<   r	  r  r  )	r   r   r  rl   rQ  r   rk  r   r  )r  r?   s     r%   #test_parse_scatter_color_args_errorr    sh     
zE
GHHo78//tBa^ 	0 	M
G 
G 
Gs   A
A22A;c                  V    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                          y )Nc                       e Zd Zd Zd Zy)#test_as_mpl_axes_api.<locals>.Polarc                     d| _         y 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 )Nr"  )r   r"  r  s    r%   _as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes  s    ~t/@/@AAAr'   N)r}  r~  r  r#  r%  r   r'   r%   Polarr    s    	"	Br'   r&  rJ  r  y   )	rl   r	  r"  r)   rk  typer   ro  rm  )r&  prjprj2r$   s       r%   test_as_mpl_axes_apir+    s    B B 'C7DD 
,3	/B8y   IIK 
SS	)B8y   IIKr'   c                  >   t        j                         \  } }t        j                         \  }}t        j                  |       |t        j                         u sJ | t        j                         u sJ t        j
                  |        t        j
                  |       y r  )r)   r   scarf  gcfro  )fig1r  fig2r  s       r%   test_pyplot_axesr1  )  si    ID#ID#GGCL#'')3779IIdOIIdOr'   c                  v   t        j                         \  } }|j                  t        j                  t        j
                  dd                   |j                  dd       |j                          |j                  dd       d |j                  |j                  fD        \  }}|g dk(  sJ |g d	k(  sJ y )
Nr   r   r0        @)r  r+  c              3      K   | ]J  }|j                         D cg c],  }|j                         |j                  j                         f. c} L y c c}w wr  )_update_ticksget_loclabel1get_text)r  r$  r  s      r%   r  z"test_log_scales.<locals>.<genexpr>:  sP      (D 6:5G5G5IJ5I!))+qxx((*	+5IJ( 	Ks   A1A
A))r   z$\mathdefault{9^{0}}$)r+  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   r  r   r  r   r  r   )r(  r   )r)  r   )r*  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)r3  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   r9  r:  r;  r<  )r)   r   r   rl   r0  r  r  r  r\  r]   r_   )r/   r$   rm  ytickss       r%   test_log_scalesr?  4  s    llnGCGGBFF2;;sC()*MM%cM"OOMM%cM"XXrxx(NFF     &     r'   c                     t        j                         \  } }|j                  dd       |j                  j	                  t        j                  d             |j                         |j                         cxk(  rdk(  sJ  J y )Nr0  )r  r  r;   r;   r   )	r)   r   r   r]   r  r   MultipleLocatorr   r   r  s     r%   test_log_scales_no_datarC  `  sc    LLNEArFF%F&HHw66q9:;;=BKKM4W44444r'   c                  ~   t        j                         \  } }|j                  d       t        j                  t
        d      5  |j                  dd       d d d        |j                  d       t        j                  t
        d      5  |j                  dd       d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)Nr0  zAttempt to set non-positivert  r   r   )	r)   r   r\  r   r  rN  r  r  r  r.   s     r%   test_log_scales_invalidrE  g  s    llnGCMM%	k)F	G
B 
HMM%	k)F	G
B 
H	G 
H	G 
H	Gs   B'B3'B03B<stackplot_test_imagec            	         t        j                         } t        j                  ddd      }d|z  }d|z  dz   }d|z  dz   }| j	                  ddd      }|j                  ||||       |j                  d       |j                  d	       ||||d
}t        j                         \  } }|j                  dddd|g d       |j                  d       |j                  d	       y )Nr   r   r   r   r;   r  r<   r   r   r   r<  )r4   r  rU  y3r4   r  rU  rJ  )r  C1C2)r  r  )	r)   r   rl   r  r   	stackplotr  r  r   )r/   r4   r  rU  rJ  r$   r  s          r%   test_stackplotrN  q  s     **,C
Ar2A	qB	q1B	q1B	Aq	!BLLBBKKKK "Bb1DllnGCLLdD$T:LLMKKKKr'   stackplot_test_baselinec                     t         j                  j                  d       d }  | dd      }d|dd d f<   t        j                  dd      \  }}|d   j                  t        d      |j                  d	       |d
   j                  t        d      |j                  d	       |d   j                  t        d      |j                  d	       |d   j                  t        d      |j                  d	       y )Nr   c                    t        j                  || f      }t        |       D ]  }t        d      D ]  }ddt         j                  j                         z   z  }dt         j                  j                         z  dz
  }ddt         j                  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   )rl   r  r   rm   exprt   )r  r  r   rE  jr4   r5   r  s           r%   layersz'test_stackplot_baseline.<locals>.layers  s    HHaVqA1Xbii..001		((**R/"ryy//112!Q$1rvv1)9A)=(Bq'H&HIII	   r'   r   r   r`  r<   r  zeror,  r  symr;   r   wigglerz  weighted_wiggle)rl   rm   rn   r)   r   rM  r   r  )rT  r  r/   r  s       r%   test_stackplot_baselinerZ    s    IINN1 	q#AAb!eH||Aq!HCIc
ACC&9Ic
ACC%8Ic
ACC(;Ic
ACC2CDr'   c                 0   t        j                  ddd      }d|z  }d|z  dz   }d|z  dz   }|j                         }|j                  ||||g dd	g
       |j	                  d       |j                  d       t        j                  t        |            }| j                         }|j                  |||dd	       |j                  ||||z   dd	       |j                  |||z   ||z   |z   dd	       |j	                  d       |j                  d       y )Nr   r   r   r   r;   r  r<   )r4   rd  \\r>  )rA  r  rH  rI  r4   )rA  r7  rd  r\  )	rl   r  r   rM  r  r  r  r  r  )	r#   r"   r4   r  rU  rJ  ry   stack_baselinerz   s	            r%   test_stackplot_hatchingr^    s   
Ar2A	qB	q1B	q1B!GaR+>yQWWXXc!f%NF
>2SGL
2r"uDGD
2b5"R%(&GL
OOG
OOGr'   c                     | S r  r   )r  s    r%   r  r    s    1r'   c                    t         j                  j                  d       t        j                  j
                  t         j                  j                  ddd      fi | }t        j                         \  }}|j                  dd      dk(  r|j                  d       n|j                  d       |j                  d	d
      s$t        j                  d   t        j                  d<    |j                   ||      fi | y )N  rl  r   )r&  r2  )meansigmar  rV   verticalr0  patch_artistFr  boxplot.boxprops.linewidth)rl   rm   rn   r   cbookboxplot_stats	lognormalr)   r   getr  r\  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr/   r$   s         r%   _bxp_test_helperrp    s    IINN3yy&&
		Rg>PBNPHllnGC~~mZ0J>
e
e >>.%0LL*+ 	12
BFF?8$3
3r'   zbxp_baseline.pngr$  )r,  r   c                      t                y r  rp  r   r'   r%   test_bxp_baseliners    s
     r'   zbxp_rangewhis.pngc                  4    t        t        ddg             y )Nr   r   whisrl  rp  r  r   r'   r%   test_bxp_rangewhisry    s     $QH"56r'   zbxp_percentilewhis.pngc                  4    t        t        ddg             y )Nr   _   ru  rw  rx  r   r'   r%   test_bxp_percentilewhisr|    s     $QG"45r'   zbxp_with_xlabels.pngc                  "    d } t        |        y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S NABCDr2   r  r"  statsr  r2   s      r%   r6  z(test_bxp_with_xlabels.<locals>.transform  )    E4<0HAuAgJ 1r'   )rm  rr  r6  s    r%   test_bxp_with_xlabelsr    s    
 Y/r'   zbxp_horizontal.pngr   )r  r,  r   r   c                  0    t        t        d             y )NrT   rU   rn  rx  r   r'   r%   test_bxp_horizontalr    s      >?r'   zbxp_with_ylabels.png)r,  r   r   c                  8    d } t        | t        d             y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S r  r  r  s      r%   r6  z(test_bxp_with_ylabels.<locals>.transform  r  r'   rT   rU   rm  rn  rx  r  s    r%   test_bxp_with_ylabelsr    s    

 Y $ >@r'   zbxp_patchartist.png)r  r,  r   c                  0    t        t        d             y )NT)re  r  rx  r   r'   r%   test_bxp_patchartistr    s    
 $ 78r'   zbxp_custompatchartist.pngr   c            
      J    t        t        dt        ddd                   y )NTr  r   :)r7  r8  r!  )re  boxpropsr  rx  r   r'   r%   test_bxp_custompatchartistr    s$    
 GD!F Gr'   zbxp_customoutlier.pngc            	      H    t        t        t        ddd                   y )Nr3  r  r  r   r   mfc)
flierpropsr  rx  r   r'   r%   test_bxp_customoutlierr    s!    
 &#>!@ Ar'   zbxp_withmean_custompoint.pngc            
      J    t        t        dt        ddd                   y )NTr3  r  r   r  )	showmeans	meanpropsr  rx  r   r'   r%   test_bxp_showcustommeanr    s"    
 A! r'   zbxp_custombox.pngc            	      H    t        t        t        ddd                   y )NrJ  r'  r   r   r   rN  )r  r  rx  r   r'   r%   test_bxp_customboxr  %      
 CA6!8 9r'   zbxp_custommedian.pngc            	      H    t        t        t        ddd                   y )NrJ  r'  r   r  medianpropsr  rx  r   r'   r%   test_bxp_custommedianr  .  s    
 4sq9!; <r'   zbxp_customcap.pngc            	      H    t        t        t        ddd                   y )NrJ  r  r   r  )cappropsr  rx  r   r'   r%   test_bxp_customcapr  7  r  r'   zbxp_customwhisker.pngc            	      H    t        t        t        ddd                   y )NrI  r  r   r  )whiskerpropsr  rx  r   r'   r%   test_bxp_customwhiskerr  @  s    
 Csq9!; <r'   c                     t        j                  d      }ddi}i |ddi}| j                         j                  ||       |j                         j                  ||       y )Nr   r9  r  r1  r.  r  )rl   rt   r   r  )r"   r#   r  medianprops_testmedianprops_refs        r%    test_boxplot_median_bound_by_boxr  I  sf    99Q<D#R(D)D+;VDO3CDtAr'   zbxp_withnotch.pngc                  0    t        t        d             y )NT)shownotchesr  rx  r   r'   r%   test_bxp_shownotchesr  R  s    
  67r'   zbxp_nocaps.pngc                  0    t        t        d             y )NF)showcapsr  rx  r   r'   r%   test_bxp_nocapsr  Z  s    
 e 45r'   zbxp_nobox.pngc                  0    t        t        d             y )NF)showboxr  rx  r   r'   r%   test_bxp_noboxr  b  s    
 U 34r'   zbxp_no_flier_stats.pngc                  8    d } t        | t        d             y )Nc                 8    | D ]  }|j                  dd         | S )Nfliers)r  )r  r  s     r%   r6  z*test_bxp_no_flier_stats.<locals>.transformo  s    AEE(D! r'   F)
showfliersr  rx  r  s    r%   test_bxp_no_flier_statsr  j  s    

 Y $ 68r'   zbxp_withmean_point.pngc                  2    t        t        dd             y )NTFr  meanliner  rx  r   r'   r%   test_bxp_showmeanr  x  s    
 te DEr'   zbxp_withmean_line.pngc                  2    t        t        dd             y )NTr  r  rx  r   r'   r%   test_bxp_showmeanasliner    s    
 td CDr'   zbxp_scalarwidth.pngc                  0    t        t        d             y )Nr  r  r  rx  r   r'   r%   test_bxp_scalarwidthr    s    
 C 01r'   zbxp_customwidths.pngc                  4    t        t        g d             y )N)r   r  g?g333333?r  r  rx  r   r'   r%   test_bxp_customwidthsr    s    
 ,D EFr'   zbxp_custompositions.pngc                  4    t        t        g d             y )N)r;   r   r  rg  r  r  rx  r   r'   r%   test_bxp_custompositionsr    s    
 | <=r'   c                      t        j                  t              5  t        t	        dg             d d d        y # 1 sw Y   y xY w)Nr;   r  r  r   r   r  rp  r  r   r'   r%   test_bxp_bad_widthsr    s)    	z	"D$45 
#	"	"	   ;Ac                      t        j                  t              5  t        t	        ddg             d d d        y # 1 sw Y   y xY w)Nr<   r   r  r  r  r   r'   r%   test_bxp_bad_positionsr    s+    	z	"DAq6$:; 
#	"	"s	   <Azbxp_custom_capwidths.pngc                  4    t        t        g d             y )N)r  r   r   r   r  r  rx  r   r'   r%   test_bxp_custom_capwidthsr    s     /C DEr'   zbxp_custom_capwidth.pngc                  0    t        t        d             y )Nr  r  r  rx  r   r'   r%   test_bxp_custom_capwidthr    s     s 34r'   c                      t        j                  t              5  t        t	        dg             d d d        y # 1 sw Y   y xY w)Nr;   r  r  r  r   r'   r%   test_bxp_bad_capwidthsr    s)    	z	"DA3$78 
#	"	"r  r  g{Gz?)r   r   c                     t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdd	       |j                  d
       d| | gi}t        j                         \  }}|j                  ddd|       |j                  d
       y )Nra  rf  rg     rb  '  r;   	bootstrapnotchr  r   r4   )r  r  r  	rl   rm   rn   r  hstackr)   r   r  r  )r4   r/   r$   r  s       r%   test_boxplotr    s     IINN3
B3A
		32,AllnGCJJ1vaJ0KK	 !Q=DllnGCJJse14J8KK	r'   c                    t        j                  ddd      }| j                         }||dk\     }|j                  |       t         j                  j                  |d      }|j                         }|j                  |       y )Nr   r;   r  r   )rl   r  r   r  r	   masked_less)r"   r#   x_origr$   r4   s        r%   test_boxplot_maskedr    sl     [[Q$F				Bv{AJJqM
&!$A				BJJqMr'   zboxplot_custom_capwidths.pngc                      t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdddg	       y )
Nrf  rg  r  r  rb  r;   r  r   )r  r  )rl   r  r  r)   r   r  rC  s      r%   test_boxplot_custom_capwidthsr    sS     	B3A
		32,AllnGCJJ1vQ4+J6r'   zboxplot_sym2.pngc                  t   t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                  dd      \  }\  }}|j                  | | gd	d
       |j                  d       |j                  | | gd	d       |j                  d       y )Nra  rf  rg  r  r  rb  r;   r<   r  ^)r  rV  r  r  r  )r4   r/   r  r  s       r%   test_boxplot_sym2r    s     IINN3
B3A
		32,All1a(OC#sKKA%SK1LLKKA%SK1LLr'   zboxplot_sym.pngc                      t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gd       |j                  d       y )	Nrf  rg  r  r  rb  r*  rV  r  )rl   r  r  r)   r   r  r  rC  s      r%   test_boxplot_symr    sY    
 	B3A
		32,AllnGCJJ1v4J KK	r'   z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                     t         j                  j                  d       t        j                  d      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdd       |j                  d       t        j                         \  }}|j                  | | gddd	
       |j                  d       y )Nra  r  r   r<   r  r;   r  )r  r   T)r  r  	autorange)	rl   rm   rn   r   r  r)   r   r  r  )r4   r/  r  r0  r  s        r%   test_boxplot_autorange_whiskersr    s    
 IINN3
A
		1a)AID#KKA%qK1LLID#KKA%qDKALLr'   c                     t        j                  ddd      }t        j                  d|dg      }t        j                  |      5  | j                  ||g       d d d        | S # 1 sw Y   | S xY w)Nrf  rg  r  r  rb  )rl   r  r  rY   r   r  )r$   rc_dictr4   s      r%   _rc_test_bxp_helperr    s[    
B3A
		32,A			w	'


Aq6 
(I 
(Is   A##A-boxplot_rc_parameters)r,  r  r   r   c                     t         j                  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'   j                         D cg c]  }t        |       c}v sJ y c c}w )(Nra  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.linestylerJ  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrL  rf  zboxplot.boxprops.linestylezboxplot.capprops.colorr?   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrI  )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.linestyler;   )rl   rm   rn   r)   r   r  r  rY   r>  r?  get_childrenr(  )	r/   r$   rc_axis0rc_axis1rc_axis2	dict_listr$  rc_axisr  s	            r%   test_boxplot_rc_parametersr  !  s   
 IINN3ll1oGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/H6 H#H  ! #! #&'*'+&)*-*.H  8X.IR+gD'* , (( e00232T!W234 5 43s   C6zboxplot_with_CIarray.pngc                  Z   t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  ddgd	d
gg      }|j                  | | gdd dg|d       |j                  d       y )Nra  rf  rg  r  r  rb  rg  r  rh        @r  r   r;   )r  usermediansconf_intervalsr  r  )
rl   rm   rn   r  r  r)   r   rQ  r  r  )r4   r/   r$   CIss       r%   test_boxplot_with_CIarrayr  a  s     IINN3
B3A
		32,AllnGC
((T2Jc
+
,C JJ1vT3K!  ,KK	r'   zboxplot_no_inverted_whisker.pngc                  .   t        j                  g dt         j                        } t        j                         }|j                  |        |j                  d       |j                  j                  dd       |j                  j                  d       y )N)r   i(#  ru  X   i^  i@ ix  i  r  r0  Fminorwhich)
rl   rQ  r  r)   rk  r  r  r_   r  r]   )r4   r  s     r%   test_boxplot_no_weird_whiskerr	  s  sb     	;zz	#A
((*CKKNNN5IINN5N(IINN5r'   c                     t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  t              5  |j                  | ddg       d d d        t        j                  t              5  |j                  | | gddgddgg       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)	Nrf  rg  r  r  rb  r;   r<   )r   	rl   r  r  r)   r   r   r   r  r  rC  s      r%   test_boxplot_bad_mediansr    s    
B3A
		32,AllnGC	z	"


11a&
) 
#	z	"


Aq6AA'7
8 
#	" 
#	"	"	"s    B<C<CCc                     t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  t              5  |j                  | | gddgg       d d d        t        j                  t              5  |j                  | | gddgdgg       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)	Nrf  rg  r  r  rb  r;   r<   )r  r  rC  s      r%   test_boxplot_bad_cir    s    
B3A
		32,AllnGC	z	"


Aq6Aq6(
3 
#	z	"


Aq6Aq6A3-
8 
#	" 
#	"	"	"s    B>C
>C
Cc                     t        j                  d      } t        j                         \  }}|j	                  |       d   d   j                         dk(  sJ |j	                  | d      d   d   j                         dk(  sJ y )Nr   boxesr   r<   r  )rl   rt   r)   r   r  r  )r4   r  r$   s      r%   test_boxplot_zorderr    su    
		"AllnGC::a=!!$//1Q666::a:#G,Q/::<BBBr'   c                     dt         j                  d<   dt         j                  d<   dt         j                  d<   t        j                         \  } }t        j                  d      }d|d	<   |j                  |d
      }dD ]!  }||   D ]  }|j                         dk(  rJ  # |d   d   j                         dk(  sJ |d   d   j                         dk(  sJ y )Nr  r`  r   r  r  zboxplot.meanprops.markerr   ru  r   T)r  )whiskerscapsr  mediansr   r  r   means)r)   r   r   rl   rt   r  
get_marker)r/   r$   	test_data
bxp_handle	bxp_lines	each_lines         r%   test_boxplot_marker_behaviorr    s    #&CLL 03CLL,-/2CLL+,llnGC		#IIbMI6J=	#I.I'')R/// / > h"--/3666gq!,,.#555r'   z&boxplot_mod_artists_after_plotting.pngc                      g d} t        j                         \  }}|j                  | d      }|D ]  }||   D ]  }|j                  d         y )N)r  r  rr  rr  Q?gQ?gQr   r  r   )r)   r   r  rq  )r4   r/   r$   bpkeyr  s         r%   &test_boxplot_mod_artist_after_plottingr"    sN     	4AllnGC	A3	Bc7CMM'"  r'   zviolinplot_vert_baseline.pngc                     t         j                  j                  d       t        d      D  cg c]"  } t         j                  j	                  d      $ }} t        j                         }|j                  |t        d      ddd       d|i}t        j                         \  }}|j                  dt        d      ddd|       y c c} w )	Nier2  r   r  Fr  r  showextremashowmediansr  )r  r  r%  r&  r  )	rl   rm   rn   r   ro   r)   rk  
violinplotr   )r  r  r$   r/   s       r%   test_vert_violinplot_baseliner(    s     IINN905a91BII#&D9	BMM$%(e#  % ;DllnGCMM#qU#$  0 :s   'Czviolinplot_vert_showmeans.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Niw5+r2  r   r  TFr$  r)   rk  rl   rm   rn   r   ro   r'  r$   r  r  s      r%   test_vert_violinplot_showmeansr,    sl    	BIINN905a91BII#&D9MM$%(d#  % :   'B
zviolinplot_vert_showextrema.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Nir2  r   r  FTr$  r*  r+  s      r%    test_vert_violinplot_showextremar/    sl    	BIINN905a91BII#&D9MM$%(e#  % :r-  zviolinplot_vert_showmedians.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Nib}&r2  r   r  FTr$  r*  r+  s      r%    test_vert_violinplot_showmediansr1    sl    	BIINN905a91BII#&D9MM$%(e"  $ :r-  zviolinplot_vert_showall.pngc                  8   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddddgdd	gd
dgddgg       y c c}w )NiOr2  r   r  Tr   ?r   r  r   r  rJ  r  )r  r  r%  r&  	quantilesr*  r+  s      r%   test_vert_violinplot_showallr5    s    	BIINN905a91BII#&D9MM$%(d"!3Z#sc3Z#sL  N :s   'Bz#violinplot_vert_custompoints_10.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )Ni$r2  r   r  Fr   r  r  r%  r&  pointsr*  r+  s      r%   $test_vert_violinplot_custompoints_10r9    sn    	BIINN905a91BII#&D9MM$%(e#B  0 :   'Bz$violinplot_vert_custompoints_200.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )NiYqVr2  r   r  Fr  r7  r*  r+  s      r%   %test_vert_violinplot_custompoints_200r<    sn    	BIINN905a91BII#&D9MM$%(e#C  1 :r:  zviolinplot_horiz_baseline.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )Ni\dr2  r   r  rT   Fr  rV   r  r%  r&  r*  r+  s      r%   test_horiz_violinplot_baseliner?    so    	BIINN905a91BII#&D9MM$%(PU#  8 :r:  z violinplot_horiz_showmedians.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Nilo/r2  r   r  rT   FTr>  r*  r+  s      r%   !test_horiz_violinplot_showmediansrA    so    	BIINN905a91BII#&D9MM$%(PU#  7 :r:  zviolinplot_horiz_showmeans.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Ni&r2  r   r  rT   TFr>  r*  r+  s      r%   test_horiz_violinplot_showmeansrC    so    	BIINN905a91BII#&D9MM$%(PT#  8 :r:  z violinplot_horiz_showextrema.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Nie!r2  r   r  rT   FTr>  r*  r+  s      r%   !test_horiz_violinplot_showextremarE  #  so    	BIINN905a91BII#&D9MM$%(PU"  7 :r:  zviolinplot_horiz_showall.pngc                  :   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddddgd	d
gddgddgg       y c c}w )Ni"r2  r   r  rT   Tr   r3  r   r  r   r  rJ  r  )r  rV   r  r%  r&  r4  r*  r+  s      r%   test_horiz_violinplot_showallrG  -  s    	BIINN805a91BII#&D9MM$%(PT"!3Z#sc3Z#sL  N :s   'Bz$violinplot_horiz_custompoints_10.pngc            	      "   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddd       y c c}w )	Ni0r2  r   r  rT   Fr   r  rV   r  r%  r&  r8  r*  r+  s      r%   %test_horiz_violinplot_custompoints_10rJ  8  sr    	BIINN905a91BII#&D9MM$%(PU#r  C :   'Bz%violinplot_horiz_custompoints_200.pngc            	      "   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddd       y c c}w )	Ni<9!r2  r   r  rT   Fr  rI  r*  r+  s      r%   &test_horiz_violinplot_custompoints_200rM  B  sr    	BIINN905a91BII#&D9MM$%(PU#s  D :rK  zviolinplot_sides.pngc            
      p   t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        g dg d      D ]  \  }}| j                  ||gdddd|	         t        g d
g d      D ]  \  }}| j                  ||gdddd|	         y )Nrb   r   r  )r   r  r   )r   lowhighrT   FT)r  rV   r  r%  r&  side)r2  r        @rd  )r)   rk  rl   rm   rn   ro   r  r'  )r$   r  r   rQ  s       r%   test_violinplot_sidesrS  L  s    	BIINN8II#&'D)@A	T
dseQV"&Dt 	 	E B (?@	T
dseu"&Dt 	 	E Ar'   c                  t   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}t        j                  t              5  | j                  |t        d             d d d        y c c}w # 1 sw Y   y xY w)Ni@ 3r2  r   r  r   r  r)   rk  rl   rm   rn   r   ro   r   r   r  r'  r+  s      r%   test_violinplot_bad_positionsrV  [  s{    	BIINN905a91BII#&D9	z	"
deAh/ 
#	" :	"	"s   'B)B..B7c                  z   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}t        j                  t              5  | j                  |t        d      g d       d d d        y c c}w # 1 sw Y   y xY w)NiA#r2  r   r  r  )r  r  rU  r+  s      r%   test_violinplot_bad_widthsrX  d  s}    	BIINN905a91BII#&D9	z	"
deAhyA 
#	" :	"	"s   'B, B11B:c                  :   t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        j                  t              5  | j                  |ddgddgg       d d d        y # 1 sw Y   y xY w)	Nil r   r  r   r   r   r  r4  
r)   rk  rl   rm   rn   ro   r   r   r  r'  r$   r  s     r%   test_violinplot_bad_quantilesr]  m  sn    	BIINN9II#&'D 
z	"
dSzC:&>? 
#	"	"s   .BBc                     t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        j                  t              5  | j                  |g dg       d d d        t        j                  t              5  | j                  |g dg       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)Niq4r   r  )r   r   r   ?rZ  )皙r   r   rk  r[  r\  s     r%   $test_violinplot_outofrange_quantilesra  x  s    	BIINN9II#&'D 
z	"
d'<&=> 
# 
z	"
d'>&?@ 
#	"	 
#	" 
#	"s   .C&CCCc                    t         j                  j                  d       t         j                  j                  d      g}| j	                         }|j                  |g d       |j	                         }|j                  |g dg       y )N+r   r  )r   r   r3  rZ  )rl   rm   rn   ro   r   r'  )r"   r#   r  r$   s       r%   %test_violinplot_single_list_quantilesrd    sq     IINN9II#&'D 
			BMM$/M2 
			BMM$?"3M4r'   c                 >   t         j                  j                  d       |j                  t         j                  j	                  d      g d      }|j                  t         j                  j	                  d      t        d            }|j                  t         j                  j	                  d            }| j                         j                  |||g       |j                         j                  |j                  |j                  |j                  g       y )	Nrc  rg  r  )rs  r  rg  r  r   r2  r   r  rs  	ABCDEFGHIrT  )	rl   rm   rn   r  ro   r"  r   r'  r$  )r"   r#   r  s1s2s3s         r%   test_violinplot_pandas_seriesrj    s    IINN9	299###+3H	IB	299###+43D	EB	299###,	-B""BB<0!!299bii"CDr'   c                     t        j                         \  } }|j                  dd       |j                         }t        j
                  j                  d       t        j
                  j                  ddd      }t        j
                  j                  ddd      }|j                  ||gddgd	       |j                         }t        ||       y )
Nr   r2  r   r   r  r;   r<   F)r  manage_ticks)
r)   r   r  r   rl   rm   rn   ro   r  r   )r  r$   old_xlimr  rU  new_xlims         r%   test_manage_xticksro    s    LLNEArKK1{{}HIINN1			"a	$B			!Q	#BJJBxAq6J>{{}Hx*r'   c                     t        j                         \  } }|j                  t        j                  j                  d      dg       |j                  t        j                  j                  d      dg       | j                  j                          |j                         dk(  sJ t        |j                               ddgk(  sJ |j                         D cg c]  }|j                          c}ddgk(  sJ y c c}w )Nr   r   r  r   )rO  r3  r  5)r)   r   r  rl   rm   r   r  r  r   r"  
get_xticksr  r8  r~  s      r%   test_boxplot_not_singlers    s    llnGCJJryy~~c"qcJ2JJryy~~c"qcJ2JJOO;;=J&&& QF***"$"4"4"67"6QAJJL"67C:EEE7s   C=c                      t        j                  ddgddg       t        j                  j	                  ddi       t        j                         } t        j                  | dd       y )Nr   r;   z	font.sizeP   raw)r*  format)r)   r   rY   r   updateioBytesIOsavefigr'  s    r%   test_tick_space_size_0r}    sN     HHaVaVQ/0


AKKr%(r'   )errorbar_basicerrorbar_mixedr~  c            	      p   t        j                  dddt         j                        } t        j                  |        }ddt        j                  |       z  z   }d|z   }t        j                         }|j                         }|j                  | |dd       |j                  d       t        j                  d	d	d
      \  }}|d   }|j                  | ||d       |j                  d       |j                  d       |d   }|j                  | ||dd       |j                  d       |d   }|j                  | ||d	|z  g|d	|z  gd       |j                  d       |d   }|j                  d       t        j                  d||z
        }||z
  }|j                  | ||d	|z  g|ddd	       |j                  d       |j                  dd       |j                  d       | |d }	t        j                         }|j                         }|j                  d!d"dd|	#       |j                  d       y )$Nr   r2  r   r  r   rJ  rR  z&Simplest errorbars, 0.2 in x, 0.4 in yr<   T)r  r  r  r  r   rT  r   zVert. symmetricnbinsr  )rS  r   r  zHor. symmetric w/ alpharW  z--orT  rS  r   zH, V asymmetricrz  r0  r  r  )rT  rS  r   ecolorcapthickzMixed sym., log yr3  zVariable errorbarsr"  r4   r5   rS  rT  r  )rl   rt   
longdoublerR  r  r)   r   rf  rO  r7   r   locator_paramsr  maximumr  suptitle)
r4   r5   rT  rS  r/   r$   r  ylower
yerr_lowerr  s
             r%   test_errorbarr    s    			#q#R]]3A
r
ARWWQZD:D **,C	BKK13SK)LL9: ||!1T:HC	TBKK14SK)LL"# A	TBKK14SK4LL*+	TBKK1D!D&>qvEKJLL"#	TBMM%ZZa$h'FVJKK1J$/da  1LL$%KKcLL%& D
**,C	BKKSs4K8LL9:r'   mixed_errorbar_polar_capsc                  `   t        j                         } t        j                  dd      }g d}dgdz  }|j                  ||ddd	
       t        j
                  dz  dz   t        j
                  dz   g}ddg}|j                  ||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}	|j                  ||||	d	
       dg}
dg}|j                  |
|ddd	
       y)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  r7  r  r  r3  r   ffffff?r   r   rS  rT  r   r<   r   g?r  r  r  r2  r   rq  )r   r   r   )r   r   r   )r  r   r   )r   r  r    @@r   N)r)   r   rm  rO  rl   r	  )r/   r$   th_symr_symth_longr_longth_asymr_asymrS  rT  th_overr_overs               r%   test_mixed_errorbar_polar_capsr    s#    **,C	SW	-B FE!GEKKDsK< uuQw|RUURZ(G3ZFKKcBEEk#KF wqy2~qwqy2~qws{;GU1WF,'D=)DKKd3K? eGUFKKbrsK;r'   c                  \   t        j                         \  } }t        j                  d      }d|z  }|j	                  ||d       \  }}}|j	                  |d|z  d       \  }}}|j                  |d|z        \  }t        j                  |j                               t        j                  d      k(  sJ t        j                  |j                               t        j                  d      k(  sJ t        j                  |j                               t        j                  d      k(  sJ y )Nr   r<   rV  r2  r  rK  rL  )	r)   r   rl   rt   rO  r   r  to_rgba	get_color)rn  r$   r4   r5   r  r  r   ln1s           r%   test_errorbar_colorcycler    s    LLNEAr
		"A	!A{{1a4{(HB1{{1acT{*HB1771ac?DC??2<<>*good.CCCC??2<<>*good.CCCC??3==?+wt/DDDDr'   c           
      p   t        j                  ddd      }t        d      D cg c]  }t        j                  | |z          }}| j	                         }|j	                         }t        |g d      D ]:  \  }}|j                  |||dz  ddd	       |j                  |||dz  dd|d
       < y c c}w )Nr   r2  r   )r  rK  rL  r  r  rI  r   r=  )rT  r   r   r  )rT  r   r   r   r  )rl   rt   r   rR  r   r  rO  )	r"   r#   r4   r  r5   axtaxryir   s	            r%   test_errorbar_cycle_ecolorr  )  s    
		#q#A$Qx(x!1xA(



C



C45	EQ"t) 	 	1Q"t)uW 	 	> 6 	)s    B3c                     t        j                         } | 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  |j                  |||d       d d d        t        j                  t              5  |j                  |||d       d d d        t        j                  t              5  |j                  ||||d	       d d d        y # 1 sw Y   yxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)
Nr   r2  r   r   r<   r   r  )rS  r   r  )r)   r   rf  rl   rt   rR  r  vstackr  r   r   r  rO  )r/   r$   r4   r5   yerr1rT  rS  s          r%   test_errorbar_shaper  8  s    
**,C	B
		#q#A
r
A#bggaj. E99eQuW%&((D:D	z	"
Aqt- 
#	z	"
Aqt- 
#	z	"
Aqt$C8 
#	"	 
#	"	"	"	"	"s$   /D=&E	E=E	EEerrorbar_limitsc                     t        j                  ddd      } t        j                  |        }d}d}d}t        j                         \  }}|j                  | ||||d       t        j                  |       }d|g d	<   |j                  | |dz   ||||d
       t        j                  |       }d|g d<   |j                  | |dz   ||||d       |j                  | |dz   dd|||||d
       d}t        j                  | d      }d|ddg<   |}	|}
t        j                  |       }t        j                  |       }d|dg<   d|dg<   |j                  | |dz   dd|||	|
||dddd       |j                  d       |j                  d       y )Nr   r3  r   r   dottedr   )rS  rT  r!  r   T)r;   r   rs  r   )rS  rT  uplimsr!  r   )r<   r2  r  r   r6  )rS  rT  lolimsr!  r   r   r   r  magenta)r   r"  rS  rT  r  r  r!  r   r   r   r  r  r3  r   cyan)r   r"  rS  rT  xlolimsxuplimsr  r  r!  rB  capsizer   )r   r3  zErrorbar upper and lower limits)
rl   rt   rR  r)   r   rO  
zeros_like	full_liker  r7   )r4   r5   rS  rT  r!  r/   r$   r  r  r  r  s              r%   test_errorbar_limitsr  J  s   
		#sC A
r
ADD	BllnGC KK14drK@ ]]1FF9KK1S5t$v"   ]]1FF9KK1S5t$v"   KK1S5Df9  F D<<3DD!QLGG]]1F]]1FFA3KFA3KKK1S5D&fa   KKLL23r'   c                      t        j                  d      } t        j                  d      }t        j                  | |ddd      \  }}}|J |D ]=  }t        j                  |j                         t        j                  d      k(        r=J  y )Nr   r;   r3  r  r  )rl   rt   r)   rO  r  r  r  r  )r4   r5   plotliner  barlineserrbars         r%   test_errorbar_nonefmtr  y  sx    
		!A
		!ALLAAA6JHavvf&&(GOOD,AABBB r'   c                      t        j                  d      } t        j                  d      }t        j                  | |ddddddddd	d
      \  }}}|j	                         dk(  sJ |j                         dk(  sJ y )Nr   r;   Noner  rf   z	steps-midroundr-  r.  bevel)
rS  rT  r!  r   r  r2  dash_capstyledash_joinstyler1  r0  )rl   rt   r)   rO  get_fillstyleget_drawstyle)r4   r5   r  r  s       r%   "test_errorbar_line_specific_kwargsr    s     			!A
		!A\\!QQQ6),,707181729;NHa !!#v---!!#{222r'   c           	      "   |j                         }|j                  g dg ddddd       |j                  g dg ddd	d
dd       |j                  g dg dddddd       |j                  dd       t        g dg dg dg d      }t	        j
                  d|       | j                         }|j                  g dg dd       |j                  g dg ddd	       |j                  g dg ddd       |j                  dd       y )N)r<   r2  r   rI  r   rJ  r  rI  )r4   r5   rT  r!  r   r  r<   r   r2  z	tab:greenr  r5   )r4   r5   rT  r   r!  r   r  r2  r   r  ztab:bluer  r   r?   )r4   r5   rT  r   r!  r   r  r;   rT  )rJ  r  r  )r  r  r   )rI  r5   r?   r'  r  rL  )r!  r   r  r   rk  )
prop_cycler4   r5   rT  )r4   r5   rT  r   )r4   r5   rT  r   )r   rO  r  r
   r)   rc)r"   r#   r$   _cycles       r%   test_errorbar_with_prop_cycler    s    				BKK*	  .KK*	;s  -KK*	  .KK2('@FFF6f%				BKK*	K4KK*	;KGKK*	KDKK2r'   c                     t        j                  ddd      } | d| z
  z  }|dz  }t        j                         j	                         }t        j                  t        d      5  |j                  | ||d       d d d        t        j                  t        d      5  |j                  | ||d	       d d d        t        j                  t        d
      5  |j                  | ||ddg       d d d        t        j                  t        d      5  |j                  | ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)Nr   r;   r  r  znot a tuple of two integersrt  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rl   r  r)   r   r   r   r   r  rO  )r4   r5   rT  r$   s       r%   test_errorbar_every_invalidr    s   
Aq"A	QqS	AQ3D				 B	z)F	G
Aq$95 
H	z)F	G
Aq$84 
H	z)H	I
Aq$E4=9 
J	z)A	B
Aq$84 
C	B 
H	G	G	G	I	I	B	Bs0   "D.D:EE.D7:EEEc            
      H   t        j                         j                         } t        j                  t
        d      5  | j                  dgdgdgdggdgdgg       d d d        t        j                  t
        d      5  | j                  dgdgdgdgg       d d d        t        j                  t
        d      5  | j                  dgdgdgdgg	       d d d        t        j                  t
        d      5  t        j                  d
      }|D cg c]  }t        j                  dd|dz  dz         ! }}| j                  ||t        j                  d      	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY wc c}w # 1 sw Y   y xY w)Nz''xerr' must not contain negative valuesrt  r   r  r;   r4   r5   rS  rT  rZ  z''yerr' must not contain negative valuesr  r   r  rs  r<   r  r  )r)   r   r   r   r   r  rO  rl   rt   r;  r  )r$   r4   rE  r5   s       r%   test_xerr_yerr_not_negativer    sz   				 B	zF
H
qcaS}TFQC=I
H 
zF
H
qcaS}5
H 
zF
H
qcaS}5
H 
zF
HIIaL<=>AqXtQA	2A>
a!++5 	 	7	
H 
H
H 
H
H 
H
H 
H ?
H 
HsA    E.E;?F=F$F;*F.E8;FFFF!c                     t        j                         j                         } t        j                  t
        d      5  | j                  dgdgd gdggd gdgg       d d d        t        j                  t
        d      5  | j                  dgdgd gdgg       d d d        t        j                  t
        d      5  | j                  dgdgd gdgg       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)	Nz'xerr' must not contain Nonert  r   r;   r  rZ  z'yerr' must not contain Noner  )r)   r   r   r   r   r  rO  r  s    r%   test_xerr_yerr_not_noner    s    				 B	z;
=
qcaS}TFQC=I
= 
z;
=
qcaS}5
= 
z;
=
qcaS}5
= 
=
= 
=
= 
=
= 
=s#    C#C/?C;#C,/C8;Dc                    t        j                  ddd      }|d|z
  z  }|dz  }|j                         }| j                         }t        dg d      D ]a  \  }}|dz  }|j	                  ||||dfd|	       |j                  |||d
       |j	                  ||d d   ||d d   ||d d   d|d       c |j	                  ||dz   |ddd       |j                  |dd d   |dd d   dz   dd
       |j	                  ||dz   |dd       |j	                  ||dz   |t        dd d      t        dd d      ddd       |j                  |dd d   |dd d   dz   ddd
       |j	                  |dd d   |dd d   dz   |dd d   ddd       |j	                  ||dz   |g ddz  g ddz  ddd       |j                  |dd d   |dd d   dz   ddd
       |j	                  |dd d   |dd d   dz   |dd d   ddd       y )Nr   r;   r  r  rgbk)r   r   r<   rg  r  r2  )r  r  r?   r  )r?   r  r3  )r  r?   r   r   )r;   r2  r   )r	  r  r   r  )r  r   r   r<   r   r  )r  r	  r  r?   r   r  r   rK  )rl   r  r   r  rO  r   r#  )	r"   r#   r4   r5   rT  rz   ry   r   shifts	            r%   test_errorbar_everyr    s   
Aq"A	QqS	AQ3DF!GFL1u	S 	At
!"e 	 	-
 	AqE#.%((Quxax[$uxax. !U 	 	8 2 QCL
KK!$Q$14a43CK8
OOAq3waVO< QC%42C$Qa0$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3 QC2F2J3a7$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3r'   
elinewidthr  c                 B    t        j                  g dg dg d|        y )Nr  )rT  r  )r)   rO  )r  s    r%   test_errorbar_linewidth_typer  
  s     LLII*Mr'   c                    | j                         }t        d      }t        j                  ddt        j                  t        j                  dg      }t        j                  ddt        j                  t        j                  dg      }|j                  |||       |j                         }|j                  ddgddgddg       |j                  dgdgdgd	       y )
Nr   r;   r<   r   r2  r  r   r  r   )r   r   rl   rQ  r  rO  )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                         \  }}|j	                  | |fdd	       d
| |fi}t        j                         \  }}|j	                  d
dd|       y )Nr;   r   r  r   r   r`  r  Tr  r4   )r  r  r  rl   r  r)   r   r  )d1d2r/   r$   r  s        r%   test_hist_stacked_stepfilledr    s     
Q2	B	QB	BllnGCGGRH|TG: "b?DllnGCGGC,4G@r'   hist_offsetc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | d       |j	                  |d	       y )
Nr   r   r`  r;   r   r  r   r  r  r  r  r  r/   r$   s       r%   test_hist_offsetr  +  sW     
QB	B	Q2	BllnGCGGBqGGGBrGr'   zhist_step.pngc                      t        j                  ddd      } t        j                         \  }}|j	                  | d       |j                  dd       |j                  dd	       y )
Nr;   r   r  r  r  r   r   r   r   )rl   r  r)   r   r  r  r  r  r/   r$   s      r%   test_hist_stepr  5  sQ     
Q2	BllnGCGGBG KK2KKAr'   zhist_step_horiz.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       y )
Nr   r   r`  r;   r   r  r  rT   )r  rV   r  r  s       r%   test_hist_step_horizr  ?  sM     
QB	B	Q2	BllnGC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                         \  }}|j	                  | |f||fdd       y )Nr   r   r`  r;   r   r  r  r  r  r   r  T)weightsr  r  r  )r  r  w1w2r/   r$   s         r%   test_hist_stacked_weightedr  H  sw     
QB	B	Q2	B	T3	#B	T2r	"BllnGCGGRHr2htGLr'   zstem.pngc                      t        j                  ddt         j                  z  d      } t        j                         \  }}|j                  | t        j                  |       dddd       |j                          y )	Nr   r<   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr2   )rl   r  r	  r)   r   r  ri  rK   rC  s      r%   	test_stemr  S  s]    
CRUUC(AllnGC GGArvvaydF#  GIIKr'   c                     d } t        j                         \  }}g d}g d} | |j                  |      g d|f        | |j                  ||      ||f        | |j                  ||d      ||f        | |j                  ||d      ||f        | |j                  ||dd	      ||f        | |j                  |d      g d|f        | |j                  |d      g d|f       y
)z5Test that stem() correctly identifies x and y values.c                     t        t        | j                  j                               \  }}||d   k(  sJ ||d   k(  sJ y Nr   r;   )mapr"  
markerlinerH  )stem_containerexpectedr4   r5   s       r%   _assert_equalz%test_stem_args.<locals>._assert_equala  sE    422;;=>1HQKHQKr'   r;   r   r   rs  r  rg  rI  )r	  rO  r  zb--)r  r  Nr)   r   r  r
  r/   r$   r4   r5   s        r%   test_stem_argsr  _  s     
 llnGCAA "''!*	1~6"''!Q-1a&1"''!Q'.!Q@"''!Q&!Q8"''!Qu'=AO"''!U'+y!nE"''!U#y!n=r'   c                  Z   	 	 dd} t        j                         \  }}g d}g d} | |j                  ||      dd        | |j                  ||d	      dd        | |j                  ||d
	      dd        | |j                  ||d      ddd        | |j                  ||d
      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||d      ddd        | |j                  ||dd      ddd        | |j                  ||dd      ddd       y)zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 L   |0t        j                  | j                  j                         |      sJ |0t        j                  | j                  j                         |      sJ || j                  j                         |k(  sJ | j                  j                         dk(  sJ y)zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr  )r  r  	stemlinesr  r  r  get_linestyle)r  	linecolormarkercolorr   s       r%   r
  z*test_stem_markerfmt.<locals>._assert_equalw  s      %%((224   "%%))335   !,,779VCCC((668FBBBr'   r  r  r  r   )r  r   r4   )r   r  rL  )r  r  r   r  gxr  r  r   r  )r  r   )NNNr  r  s        r%   test_stem_markerfmtr  u  s   BF!C$ llnGCAA "''!Q-T#>"''!Q#'.DM"''!Q$'/SM 
1c3s4 
1d3s4 
1cS)3s4 
1cS)3s4 
1cT*3s4 
1cS)3v7 
1cR(3v7
 
1c"3s4 
1cS13s4 
1cT23s4r'   c                      t        j                  dd      \  } }t        j                  j	                  d      t        j                  j	                  d      g}ddg}|j                  ||       y )Nr;   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r)   r   dateutilparserparser  )r/   r$   r  r  s       r%   test_stem_datesr    sY    ll1a GC
//

 4
5
//

 4
5
7B
sBGGBOr'   zstem_orientation.pngc                      t        j                  ddt         j                  z  d      } t        j                         \  }}|j                  | t        j                  |       dddd       y )	Nr   r<   r`  r  kxr  rT   )r  r   r  rV   )rl   r  r	  r)   r   r  ri  rC  s      r%   test_stem_orientationr     sR    
C255"%AllnGCGGArvvaydF$  &r'   hist_stacked_stepfilled_alphac                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fddd	
       y )Nr;   r   r  r   r   r`  r  Tr   )r  r  r  r  r  s       r%   "test_hist_stacked_stepfilled_alphar#    sO     
Q2	B	QB	BllnGCGGRH|TGEr'   hist_stacked_stepc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       y )
Nr;   r   r  r   r   r`  r  Tr  r  r  s       r%   test_hist_stacked_stepr&    sM     
Q2	B	QB	BllnGCGGRHvtG4r'   hist_stacked_normedc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd       y )	Nr;   r   r  r   r   r`  T)r  r  r  r  s       r%   test_hist_stacked_densityr)    sM     
Q2	B	QB	BllnGCGGRHdDG1r'   zhist_step_bottom.pngc                      t        j                  ddd      } t        j                         \  }}|j	                  | t        j
                  d      d       y )Nr;   r   r  r   r  )rR   r  )rl   r  r)   r   r  rt   r  s      r%   test_hist_step_bottomr+    s?     
Q2	BllnGCGGBryy}|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 ]=  \  }}t        j                  || |	      \  }}\  }t        |j                         |       ? y )
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  rA   rR   r  r  r  polygons           r%   test_hist_step_geometryr4    s    DDq6Aq6Aq6Aq6Aq6Aq6Aq6Aq6
JC!fq!fq!fq!fq!f5F #sV|(DE"HHTxH1kw7>>+R0 F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 ]@  \  }}t        j                  || g d|      \  }}\  }t        |j                         |       B y )Nr-  r.  r   r;   r   r   r<   rO  r   r  r  r;   r<   r   )r  rR   r  r0  r2  s           r%   test_hist_step_bottom_geometryr7    s    DDq6Aq6Aq6Aq6Aq6As8aX3x
PC#hAAAA7F #sV|(DE"HHT[.681kw7>>+R0 Fr'   c            
      $   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}t        ||      D cg c]
  \  }}||z    }}}d	|fd
|ffD ]|  \  }}	t        j                  ||g| d|      \  }
}
}t        |      dk(  sJ |d   \  }t	        |j                         |	d          |d   \  }t	        |j                         |	d          ~ y c c}}w )Nr-  r.  rI  r   r<   r;   r   r2  r  r  T)r  r  r  r  r)   r  r  r   r1  r  data_1data_2topsbottomsr  r'  combinedr  r  r  r>  r3  s                r%   test_hist_stacked_step_geometryr@    s   DFF
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 #&dG"45"4$!QA"4H5 $,)AB"&&!1d*241g7|q   1:7>>+RU31:7>>+RU3 C 6s   2Dc            
      *   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}t        ||      D cg c]
  \  }}||z    }}}d|fd|ffD ]  \  }}	t        j                  ||g| dg d|      \  }
}
}t        |      dk(  sJ |d   \  }t	        |j                         |	d          |d   \  }t	        |j                         |	d           y c c}}w )Nr-  r.  rI  r   r;   r   r   r<   rO  r   r2  r  r  r  r  Tr6  )r  r  rR   r  r9  r:  s                r%   &test_hist_stacked_step_bottom_geometryrB    s   DFF
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 #&dG"45"4$!QA"4H5 $,)AB"&&!1d(3hH1g7|q   1:7>>+RU31:7>>+RU3 C 6s   2Dhist_stacked_barc                      g dg dg dg dg dg dg} g d}g d}t        j                         \  }}|j                  | d	d
d||       |j                  ddd       y )N)r   r   r   r   r  @  i  ru  r  rM  6  rL  )r     r`  rT  r   i  )r  r  r  r  r  ru     )r+  r+  r+  r+  r  r  r   r   r   r   r   r  )+  rI  rI  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  r=  r   r  mid)r  r  rG  r   r2   zupper right)r   r   r;   )rC   bbox_to_anchorr  )r)   r   r  rK   )r  r  labelsr/   r$   s        r%   test_hist_stacked_barrM  2  sn     
D	#%H	8	H	A		CA
OF @FllnGCGGABU&  II-
!IDr'   r	  r7  r  r8  rA  )r?  ry  r   r   )rI  rJ  r  r9  )r;   r   r<   r   c           
      .   t         j                  j                  d       dD cg c]!  }t         j                  j                  |      # }}| j	                  d      \  }}|j	                  d      \  }}d||fd||ffD ]  \  }	}
} |
j
                  |fd|	d|\  }}}t        t        |j                                     \  }}t        t        ||            D ]3  \  }\  }} |j
                  |f||	d||idt        |      |z
  dz  i 5  y c c}w )	Nrb   )r  r`  r   r<   r  r  r   r/  r  )rl   rm   rn   r  r   r  nextiteritemsr  r  r  )r"   r#   r	  r  r  axt1axt2axr1axr2r  r  r  r  r  kwr$  rE  r4   rA  s                      r%   test_hist_vectorized_paramsrW  D  s    IINN8&3	4m"))//!
mB	4$$Q'LT4##A&LT4 ,dD9FD$;OP#sSXXbGrHGG
4$v||~./
F&s2v7MAz5CHHQ +TH +U + WQYM+ 8	 Q 
5s   &Dzkwargs, patch_face, patch_edger5   )r  r   r7  r8  )r5   r   )r  r   r8  )rL  r   )r  r   r7  rI  )r  r7  r8  )r  r   )r  r7  r  )r  r8  )r  r   r  c                      t        j                         j                         j                  g dfi | \  }}}t	        fd|D              sJ y )Nr  c              3      K   | ]:  }t        j                  |j                         |j                         gg       < y wr  )r  r  rm  rn  )r  r  
patch_edge
patch_faces     r%   r  z,test_hist_color_semantics.<locals>.<genexpr>z  sB      NEL !!1??#4aoo6G"H#-z":<ELs   A A)r)   r   r   r  r  )r	  r[  rZ  r  r>  s    ``  r%   test_hist_color_semanticsr\  [  sU    < 1CJJL))+00EfEMAq' NELN N N Nr'   c                      t        j                  ddg      } t        j                  ddgddggdd|        | j	                         ddgk(  sJ y )Nr   r  r   r;   r<   r  )r  rR   )rl   rQ  r)   r  tolistr|  s    r%   %test_hist_barstacked_bottom_unchangedr_  ~  sK    
"bAHHq!fq!fq<B88:"b!!!r'   c                      t        j                         \  } }|j                  g t        d      t        d      gd       y )Nr   r  r  )r)   r   r  r   r.   s     r%   test_hist_emptydatara    s0    llnGCGGRrE"I&G8r'   c                      t        j                         \  } }|j                  g dgg d       |j                         \  }}|dgk(  sJ y )Nr  )r$  unusedzalso unusedr  r$  )r)   r   r  get_legend_handles_labels)r/   r$   r  rL  s       r%   test_hist_unused_labelsre    sH     llnGCGGYKBGC,,.IAvhZr'   c                     t        j                         \  } }|j                  ddgd      \  }}}|d   j                         dk(  sJ |j                  ddgdg      \  }}}|d   j                         dk(  sJ |j                  ddgd       \  }}}|d   j                         dk(  sJ |j                  ddgd      \  }}}|d   j                         dk(  sJ |j                  ddgd      \  }}}|d   j                         dk(  sJ y )Nr   r;   r  r%  r  00)r)   r   r  r  )r/   r$   r  r  s       r%   test_hist_labelsrh    s&   llnGC!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                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | ddd       y )Nr   r`  r\  r3  r   )r  r   rl   rm   rn   r)   r   r   r  s      r%   test_transparent_markersrl    sI    IINN199BDllnGCGGD#6cG2r'   rgba_markersc            
         t        j                  d      \  } }ddg}ddg}d dg}t        dd	
      }t        |      D ]n  \  }}t        |      D ][  \  }}	t        |      D ]H  \  }
} ||   j                  |dz   |
dz   df||	|d|  ||   j                  |dz   |
dz   df|	|d| J ] p |D ]  }|j                  g d        y )Nr<   r  r  r  rJ  )r   r   r;   r   r   r   r  )r"  rA  r;   r   )r  rB  r  r   r4   )rB  r  )r   r2  r   r   )r)   r   r  r  r   r$  )r/   r  rcolorsbcolorsalphasrV  rE  r  rS  rcolorrI  bcolorr$   s                r%   test_rgba_markersrt    s    ||!$HC^,G^,GC[F	"	Bf%5"7+IAv&w/	6AAaC1c /v6"'/+-/AAaC1cIvUIbI 0 , & 
 r'   mollweide_gridc                  p    t        j                         } | j                  d      }|j                          y )N	mollweider  )r)   r   r   r  r.   s     r%   test_mollweide_gridrx    s(     **,C	K	0BGGIr'   c                     t        j                         } | 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                  |j                         |j                         f      j                  }|j                  j                  |      }|j                  j                         j                  |      }t        j                  j                  ||d       y )	Nrw  r  r  r   rH  r;   r   r   )r)   r   r   rl   r  r	  r  r  r6  r  transProjectionr6  invertedr   r   )r/   r$   lonlatllr  ll2s          r%   &test_mollweide_forward_inverse_closurer    s     **,C	K	0B ++ruufbeeS
)C
++ruufslBEECK
5a
;C{{3$HC	CKKM3;;=1	2	4	4B 
			%	%b	)B 


%
%
'
1
1"
5C JJ((S!4r'   c                     t        j                         } | j                  d      }t        j                  ddd      }t        j
                  ||      \  }}t        j                  |j                         |j                         f      j                  }|j                  j                         j                  |      }|j                  j                  |      }t        j                  j                  ||d       y )Nrw  r  r   r;   r  r   )r)   r   r   rl   r  r  r  r6  r  rz  r{  r6  r   r   )r/   r$   r4   r5   r  r~  xy2s          r%   &test_mollweide_inverse_forward_closurer    s     **,C	K	0B 	Aq#A;;q!DAq	AIIK-	.	0	0B 
			$	$	&	0	0	4B 


&
&r
*C JJ((S!4r'   
test_alphac            	         t         j                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | dg dg ddd       |j                  | d	z   dg dg dddd
       |j                  | dz   dg dg dddd       |j                  | dz   dg dg ddd       |j                  | dz   dg dg ddd       y )Nr   r`  z-Dr  r  r  r   )r   r  r   rN  r<   r;   )r   r  r   rN  r  r2  r   r  r  rk  r  s      r%   r  r    s    IINN199BDllnGC GGD$i]b  " GGD1Hd-]b  
 GGD1Hd)b  
 GGD1Hd-]b  " GGD1Hd-Yb  "r'   	eventplotc                  V   t         j                  j                  d       t         j                  j                  ddg      j                         } t         j                  j                  ddg      j                         }| |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}|j                         |z   }	dgt	        |       z  }
g d}|
|z   }t        j                         }|j                         }|j                  |||	|      }t	        |      }||k(  sJ |||	|d}t        j                         }|j                         }|j                  dddd|      }t	        |      }||k(  sJ y )Nr   r   r  r  )r   r;   r  r  r  r  )r;   rk  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  )
rl   rm   rn   r^  r  rt   r)   r   r   r  )rl  data2r  num_datasetscolors1colors2r  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r/   axobjcollsnum_collectionss                    r%   test_eventplotr    s   IINN1IIb"X&--/EIIaW%,,.E5=Dt9LlSZ'GG wF		!SZ0366L+L%%',6K53u:%L'L-K
**,COOEOOD[(3  5E %jOl*** fK{KD
**,COOEOOE#4(,4  9E%jOl***r'   ztest_eventplot_defaults.pngc                  r   t         j                  j                  d       t         j                  j                  ddg      j                         } t         j                  j                  ddg      j                         }| |z   }t	        j
                         }|j                         }|j                  |       y)zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r   r  r  N)rl   rm   rn   r^  r)   r   r   r  )rl  r  r  r/   r  s        r%   test_eventplot_defaultsr  :  s     IINN1IIb"X&--/EIIaW%,,.E5=D
**,COOE	OODr'   r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r6  r  N)r;   r   r;   r   c                    dgdgdgdgg}| D cg c]  }||nd
 }}t        |      dk(  r|d   }t        j                  t        j                  |      t        |      df      }t        j                         \  }}t        |       dk(  r| d   } |j                  ||       }t        ||      D ]  \  }}t        |j                         |       ! yc c}w )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r;   r<   r   Nr  r2  r  )r  rl   r  r  to_rgba_arrayr)   r   r  r  r   r  )	r  r  r?   r	  r/   r$   r  r  r   s	            r%   test_eventplot_colorsr  K  s     C!qcA3D 7==fQ],fH= 8}A;w44X>TAOHllnGC
6{a,,tF,3K;1e(%0 2 >s   Cc                  ~   t        j                         \  } }|j                  g dg dgd      }|d   j                         dk(  sJ |d   j                         dk(  sJ |j                  g dg dgddg      }|d   j                         dk(  sJ |d   j                         dk(  sJ t	        j
                  t        d	      5  |j                  g dg dgg d
       d d d        t	        j
                  t        d	      5  |j                  g dddg       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)N)r   r<   r2  )r;   r   r   rg  r  r  r   r;   r   zalpha and positions are unequalrt  )r   r  r3  )r)   r   r  	get_alphar   r   r  )r/   r$   r  s      r%   test_eventplot_alphar  e  s   llnGC ,,	<8,DKq>##%,,,q>##%,,, ,,	<8c
,KKq>##%,,,q>##%,,,	z)J	K
i.oF 
L 
z)J	K
YsCj1 
L	K 
L	K 
L	Ks   D'D3'D03D<z!test_eventplot_problem_kwargs.pngc           
         t         j                  j                  d       t         j                  j                  dg      j                         }t         j                  j                  dg      j                         }||g}t	        j
                         }|j                         }|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 y)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   rL  r'  r?   r  r<   r;   r   dasheddashdotr  )r  r   r%  r9  r  r   r   c              3   d   K   | ](  }t        |j                  t        j                         * y wr  )
issubclasscategoryr   ri  )r  wis     r%   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  s)      " 2 "++s'G'GH s   .0N)
rl   rm   rn   r^  r)   r   r   r  r  r  )recwarnrl  r  r  r/   r  s         r%   test_eventplot_problem_kwargsr  y  s     IINN1IIbT"))+EIIbT"))+E5>D
**,COOE	OOD:* !1v !f '2((3  5 w<1 " " " " "r'   c                      t        j                  dd      \  } }|j                  g gdg       t        j                          y )Nr;   )r  r  r  r  r  r)   r   r  r  r.   s     r%   test_empty_eventplotr    s5    ll1a GCLL"34L5HHJr'   r  rV   )Nrd  rT   c                     |i nd|i}t        j                  dd      \  }} |j                  | fi | t        j                          y)z#Introduced when fixing issue #6412.NrV   r;   r  )r  rV   optsr/   r$   s        r%   test_eventplot_orientationr    sE     $2=+*FDll1a GCBLLHHJr'   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}|j                         }|j                  |d       |j                  |d       | j                         }|j                  ||g       y )	Nr  r;   r<   r   r  r  r   )r  )r;  r   r  )r"   r#   ts_1ts_2r$   s        r%   test_eventplot_units_listr    s     dAq)8+<+<T1a+HdAq)+DdAr*H,=,=dAr,JKD				BLL1L%LL1L%				BLL$r'   zmarker_styles.pngc            
         t        j                         \  } }t        t        j                  j
                  j                  d       }|j                  d       dg|}t        |      D ]Z  \  }}|j                  |dz  dz  t        j                  d      dz  z   t        j                  d      dz  |z  d|d|dz  z   |       \ y )	Nc                 B    t        t        |             t        |       z   S r  )r&  r(  r4   s    r%   r  z$test_marker_styles.<locals>.<lambda>  s    3tAw<A#6r'   )r!  r3  r<   r   r   r   )r   r   r   r2   )r)   r   sortedrY   markersr  rl  r  r   rl   rt   r   )r/   r$   r  r5   r   s        r%   test_marker_stylesr    s    llnGC
 Z''33;;68GNN6  Gw'	6
Q	BIIbM",,bggbk"nQ.>""QqS& 	 	@ (r'   zrc_markerfill.pnggl?c                      t        j                         \  } }t        j                  d      }t	        g d      D ]1  \  }\  }}|t
        j                  d<   |j                  ||z   |       3 y )Nrg  ))rA   r  )rR   r   )r3  r  zmarkers.fillstylerH  )r)   r   rl   rt   r  rY   r   r   )r/   r$   r4   idxr   r   s         r%   test_markers_fillstyle_rcparamsr    s`     llnGC
		!A ):!<_eV38
/0
#f%!<r'   zvertex_markers.pngc                     t        t        d            } d}g d}t        j                         \  }}|j	                  | d|d       |j	                  | d d d   d|d       |j                  ddg       |j                  ddg       y )Nr   ))r   r   ro  rz  rp  r   rI  r  r   r'  )r"  r   r)   r   r   r  r  )r  marker_as_tuplemarker_as_listr/   r$   s        r%   test_vertex_markersr    sx    b	?D:O9NllnGCGGDBCG@GGD2J"^GEKKRKKRr'   vline_hline_zordererrorbar_zorderx86_64g9v?c                     t        t        d            } t        j                         }|j	                         }|j                  | dd       |j                  dddd       |j                  dddd       |j                  dd	dd       |j                  d
ddd       |j                  d       t        j                         }|j	                         }t        t        d            } t        j                  d      }t        t        d            }|j                  | ||ddd       t        d      D ]-  }|j                  |dd|       |j                  | dd|       / |j                  d       y )Nr   r   )rN  r  r;   r6  )r   rN  r  r   rg  r  r<   rI  r   zaxvline and axhline zorder testrL  )rT  r  rN  r   )rN  r   r  zerrorbar zorder test)r"  r   r)   r   rf  r   rv   axvliner7   rl   r  rO  )r4   r/   r$   r5   rT  rS  s         r%   test_eb_line_zorderr    s6    	U2YA **,C	BGGA"QGJJq"QJ/JJqBrJ2JJq1J-JJq1J-LL23 **,C	BU2YA
Ab	?DKK14asK;2Y


1#a
0


A2!3q
1  LL'(r'   c                 D   | j                         }|j                  dd       |j                  ddgddgd       |j                  ddd	
       |j                         }|j                  dd       |j                  ddgddgd       |j                  ddgddgd	
       y )N)r   r   )ra  r;   rt  r   r  z.-)r;   ra  )r   r  rI  rV  r;   r   ra  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                    | j                         }|j                  dd       |j                  dd       |j                  ddd       |j                  dd	d
       |j                  ddd       |j                  ddd       |j                  dt        d      d       |j                         }|j                  dd       |j	                  ddgddg       |j                  dd       |j                  dd
       |j                  dd       |j	                  ddgddgd       |j                  dd       y )Nrp  rt  r  rz  rW  rK  rM  )r   r   r;   r   rL  )gffffffr  r   r  )sloper   )r;   r  r  C4)r  r;   infr  r   r;   r   )r   r   r  r  r   rv   r  r!   s      r%   test_axliner    s   				BFFgF&IIffIIffDI)IIhI-IIl!4I0IIit4I0IIiuU|4I8				BFFgF&GGRGb!WJJqJJJs$JJJt4J GGRGc4[G-JJt4J r'   c                 B   | j                         }|j                  dd       |j                  dd|j                         |j                  ddd|j                         |j                  d	d
d|j                         |j                  ddd|j                         |j                         }|j                  dd       |j	                  ddgddg       |j	                  d
dgdd
gd       |j	                  ddgd
d
gd       |j	                  d
d
gddgd       y )Nrp  rt  r  r;   r  r6  r  rK  r  r   r6  r   r   r   rL  )r   r   )r   r;   r  )r   r6  r   rM  )r   r   r  rB  r   r!   s      r%   test_axline_transaxesr    s    				BFFgF&IIfAI6IIhatr||IDIIjIFIIhIE				BFFgF&GGRGb!WGGQFRG4G(GGRGaV4G(GGQFRG4G(r'   c                 B   | j                         }|j                  dd       |j                  dd|j                         |j                  ddd|j                  	       |j                  dd
d|j                  	       |j                  dd       | j	                  dd       |j                         }|j                  dd       |j	                  dd       |j                  d
dgd
dg       |j                  d
dgd
dgd       |j                  d
dgddgd       y )Nrp  rt  r  r;   r  r  r<   rK  r  r   rL  )r   r   rH  r   r   r   rM  )r   r   r  rB  set_size_inchesr   r!   s      r%   test_axline_transaxes_panzoomr  /  s     
			BFFgF&IIfAI6IIjIFIIjIFFFWF%Q"				BFFWF%Aq!GGQFQFGGQFQG4G(GGQFQF$G'r'   c                  l   t        j                         \  } }t        j                  t              5  |j                  d       ddd       t        j                  t              5  |j                  ddd       ddd       |j                  d       t        j                  t              5  |j                  dd       ddd       |j                  d       |j                  d       t        j                  t              5  |j                  dd       ddd       |j                  d       t        j                  t              5  |j                  dd       t        j                          ddd       y# 1 sw Y   7xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w)z3Exactly one of *xy2* and *slope* must be specified.r  Nrz  r;   )r  r0  r[  )
r)   r   r   r   r   r  r\  r  r  r  r.   s     r%   test_axline_argsr  C  s   llnGC	y	!
		& 
"	y	!
		&&	* 
"MM%	y	!
		&	" 
"MM(MM%	y	!
		&	" 
"MM(	z	"
		&&!
 
#	" 
"	!	!	! 
"	! 
"	! 
#	"s;   E8$F+FF'F*8FFFF'*F3)vlines_basicvlines_with_nanvlines_maskedc                  >   g d} g d}t        j                         \  }}|j                  | d|dd       g d}dd	d
dt        j                  dg}t        j                  d
d      \  }\  }}}	|j                  |d|dd       g d}
t        j                  dd	d
ddg}|j                  |
d|dd
d       g d}t        j                  dd	d
dt        j                  g}|	j                  |d|dd       ||||	fD ]  }|j                  dd        |j                         |j                         k(  sJ |j                         |j                         k(  sJ |j                         |	j                         k(  sJ t        j                         \  }}t        j                  j                  g dd      }t        j                  j                  g dd      }t        j                  j                  g dd      }|j                  |||dd       |j                  dd       y N)r<   r   r2  r   rg  )r<   r   r  r<   r   r  r   r  r9  )r<   r   r2  r   r  rg  r<   r  r   r  )r2  r  )r  r  rL  rJ  )r  r9  r   rI  r   )r<   r2  r  r  r   r  )r   r;   r   r   r<   r;   )r_  r%  r  r     rR  rR  r  )	r)   r   ru   rl   r  r  r   r	   masked_equal)r8  r  r/  r  rT  rU  r0  r  r  rD  x3rJ  x4y4r$   fig3ax5x5ymin5ymax5s                       r%   test_vlinesr  W      
B	BID#JJr1bJ2 
B
RArvvq	!BLLq&AD/3SJJr1bJ2	B
&&!RAq	!BJJr1bTJB	B
&&!RArvv	&BJJr1bJ2 Cc"
Ar # <<>S\\^+++<<>S\\^+++<<>S\\^+++ID#			0!	4BEE2A6EEE7<EJJr5%qJ9LLBr'   c                     t        j                         \  } }t        j                  ddi      5  |j	                  ddd      }t        j
                  j                  |j                         d      sJ 	 d d d        y # 1 sw Y   y xY wNzlines.colorr6  r   r   r;   )r)   r   r   r   ru   r  r  r  r/   r$   r5  s      r%   test_vlines_defaultr    a    llnGC	.	/		#q!$zz$$U__%6>>> 
0	/	/   AA==B)hlines_basichlines_with_nanhlines_maskedc                  >   g d} g d}t        j                         \  }}|j                  | d|dd       g d}dd	d
dt        j                  dg}t        j                  d
d      \  }\  }}}	|j                  |d|dd       g d}
t        j                  dd	d
ddg}|j                  |
d|dd
d       g d}t        j                  dd	d
dt        j                  g}|	j                  |d|dd       ||||	fD ]  }|j                  dd        |j                         |j                         k(  sJ |j                         |j                         k(  sJ |j                         |	j                         k(  sJ t        j                         \  }}t        j                  j                  g dd      }t        j                  j                  g dd      }t        j                  j                  g dd      }|j                  |||dd       |j                  dd       y r  )	r)   r   hlinesrl   r  r  r   r	   r  )r  r8  r/  r  rU  rT  r0  r  r  rD  rJ  r  r  r  r$   r  r  y5xmin5xmax5s                       r%   test_hlinesr    r  r'   c                     t        j                         \  } }t        j                  ddi      5  |j	                  ddd      }t        j
                  j                  |j                         d      sJ 	 d d d        y # 1 sw Y   y xY wr  )r)   r   r   r   r  r  r  r  r  s      r%   test_hlines_defaultr    r  r  r   r^  r2  c                 T   g d}| j                  ddd      j                  |dd|d       | j                  ddd      j                  |dd|d       g d}g d}|j                  ddd      j                  |dd|d       |j                  ddd      j                  |dd|d       y )	N)r6  r   r   r  r  r<   r;   r   r   r  )r;   r<   r   r   )r6  r   r   r  )r   ru   r  )r"   r#   r  test_colors	expect_xyexpect_colors         r%   test_lines_with_colorsr	    s     ?KAq!((q!0;q ) JAq!((q!0;q ) J I5L1a ''	1a/;q ( J1a ''	1a/;q ( 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      \  }\  }}|j                  | |d	       |j                  dd
gdd|j                         d       |j                  | |d	       |j                  ddgdd|j                         d       y )Nr  r3  r   r<   r   r;   r  r  rH  r  rs  r   r   rL  )rj   rk   r6  r  r  rg  r  )yminymaxr6  r  )rl   rt   rR  r  r	  r)   r   r   r  get_yaxis_transformru   get_xaxis_transform)r  r  r/   haxvaxs        r%   $test_vlines_hlines_blended_transformr	    s     			#tS!A
r
RVVAIM**R/All1a8OC#sHHQ3JJAwQS0023  @HHQ3JJ1vADC4K4K4M  r'   step_linestyler   c            	         t        j                  d      x} }t        j                  dd      \  }}|j	                         }g d}t        ||      D ]s  \  }}|j                  | |d|d       |j                  | |dz   d|d       |j                  | |dz   d|d	       |j                  d
dg       |j                  d
dg       u | ||dz   |dz   d}t        j                  dd      \  }}|j	                         }g d}t        ||      D ]p  \  }}|j                  ddd|d|       |j                  ddd|d|       |j                  ddd|d	|       |j                  d
dg       |j                  d
dg       r y )Nr   r<   )rI  rJ  r  r  r   pre)rN  r   r@  r;   rJ  r@  r   rg  )r  Y0Y1Y2r  r	  )rN  r   r@  r  r	  r	  )	rl   rt   r)   r   r6  r  r  r  r  )r4   r5   r/   ax_lst	ln_stylesr$   r!  r  s           r%   test_step_linestyler	    sv   
 IIbMA ,,q!$KC^^F&Ifi(B
1b6
1q5Q"E:
1q5Q"F;
RG
RG ) !1Q3ac2D,,q!$KC^^F&Ifi(B
Ta2UF
Ta2UF
Ta2V$G
RG
RG )r'   mixed_collectionc                     t        j                         \  } }t        j                  dddd      }t        j
                  j                  |gd      }|j                  ddgd	d	gg       |j                  d
dg       t        j
                  j                  |gd      }|j                  ddgddgg       |j                  d
dg       |j                  g dg dg       |j                  j                  d       |j                  |       |j                  |       |j                  dd       |j                  dd       y )Nr  r  r2  r3  r   radiusr7  r8  T)match_originalr   rS  r;   r   r'  ii)r   r   r   r   )r   r   r   r   r  r  )r)   r   r  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  rq  r&  r  r  )r/   r$   r?   r'  r(  s        r%   test_mixed_collectionr"	    s    llnGCqFgNA 
	(	(!T	(	BBNNQFRH%&q!f 
	(	(!T	(	BBNNRGc3Z()q!f')9:;HHubbKK2KK2r'   c                      t        j                  t        j                  d      t        j                  d      d      } | j                          | j                         j                         dk(  sJ y )Nr   r;   )r   r;   r   r   )r)   rm  rl   int32r   r  get_subplotspecget_geometryr  s    r%   test_subplot_key_hashr'	    sM    	RXXa["((1+q	1BHHJ,,.,>>>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                  j                  ||      z        j                  d            }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j                  |       g      }g d}||f||ffD ]  \  }	}
|
dz  }t        dt        j                   t        j"                  |
            z        }t%        t'        j(                         j+                  d      |      D ]  \  }}|j-                  |	|
||||        t%        t'        j(                         j+                  d      |      D ]:  \  }}|j-                  |	|
||||dt         j.                  j1                                <  y)z)Test axes.specgram in default (psd) mode.r   r
  r  r3  r2  r   rT  @ffffff@'@r   r   r;   r<   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr[  )r0	  r1	  r2	  r3	  r4	  r/  r  N)rY   r   intrl   rx  rt   r  r  r	  multiplyouterr  rm   rn   r  r   r   log2r  r)   r   r   specgramr  r  )r  r1	  fstims
NFFT_freqsr4   y_freqs
NFFT_noisey_noise	all_sidesr5   r0	  r2	  r3	  r$   r4	  s                  r%   test_specgramr@	    s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"Ann
q255y2;;,,VQ778<<!<DFG R"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A419Q"''"''$-001SZZ\2215yAIBKKh%U  4 B SZZ\2215yAIBKKh%U&Z->->-F-F-H  J B B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                  j                  ||      z        j                  d      }d|dddf<   t        j                  |      }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j!                  |       g      }g d}	||f||ffD ]  \  }}
|
dz  }t        dt        j"                  t        j$                  |
            z        }t'        t)        j*                         j-                  d      |	      D ]  \  }}|j/                  ||
||||d        t'        t)        j*                         j-                  d      |	      D ];  \  }}|j/                  ||
||||ddt         j0                  j3                         	       =  y)z%Test axes.specgram in magnitude mode.r   r
  r  r3  r2  r   rT  r*	  r+	  r,	  r   r   r;   r<   r  Nr   r   r-	  r   	magnituder0	  r1	  r2	  r3	  r4	  rh   r[  )r0	  r1	  r2	  r3	  r4	  rh   r/  r  )rY   r   r5	  rl   rx  rt   r  r	  r6	  r7	  r  r  rm   rn   r  r  r   r   r8	  r  r)   r   r   r9	  r  r  )r  r1	  r:	  r;	  r4   r5   r<	  r=	  r>	  r?	  r0	  r2	  r3	  r$   r4	  s                  r%   test_specgram_magnituderD	  :  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FS2Xv./J
		!Q"A
q255y2;;,,VQ778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A419Q"''"''$-001SZZ\2215yAIBKKh%U  F B SZZ\2215yAIBKKh%U&Z->->-F-F-H  J B B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                  j                  ||      z        j                  d      }d|dddf<   t        j                  |      }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j!                  |       g      }g d}	||f||ffD ]  \  }}
|
dz  }t        dt        j"                  t        j$                  |
            z        }dD ]  }t'        t)        j*                         j-                  d      |	      D ]X  \  }}|j/                  ||
|||||       t1        j2                  t4              5  |j/                  ||
|||||d       ddd       Z   y# 1 sw Y   ixY w)z,Test axes.specgram in angle and phase modes.r   r
  r  r3  r2  r   rT  r*	  r+	  r,	  r   r   r;   r<   r  Nr   r-	  )r  phaser   rC	  dB)r0	  r1	  r2	  r3	  r4	  rh   r/  )rY   r   r5	  rl   rx  rt   r  r	  r6	  r7	  r  r  rm   rn   r  r  r   r   r8	  r  r)   r   r   r9	  r   r   r  )r  r1	  r:	  r;	  r4   r5   r<	  r=	  r>	  r?	  r0	  r2	  r3	  rh   r$   r4	  s                   r%   test_specgram_anglerH	  _  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"A
q255y2;;,,VQ778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A419Q"''"''$-001&D !6!6q!99E	EADR(#)T  C]]:.KKh'-U&*   , /. F ' B /.s   I	Ic                      t        j                  t        j                  d      dd      \  } }}}|j	                         \  }}}}|dk(  r|dk(  sJ y)z;Test axes.specgram when Fs is None, should not throw error.r  Nr[  )r1	  r/  r   `   )r)   r9	  rl   r   
get_extent)specfreqsr  r  rj   rk   freq0freq1s           r%   test_specgram_fs_nonerP	    sN    bggclt8LD%B!}}D$u2:$"*$$*r'   c                     t        j                  d      }t        j                  |      }dt        j                  d<   |j                         j                  |       dt        j                  d<   | j                         j                  |       y)zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r  upperzimage.originr   N)rl   rt   r  r)   r   r   r9	  )r"   r#   r  signals       r%   test_specgram_origin_rcparamrT	    sn     			#AVVAYF#*CLL  ' $+CLL    (r'   c                      t        j                  d      } t        j                  |       }t        j                  t
              5  t        j                  |d       ddd       y# 1 sw Y   yxY w)z4Ensure passing origin as a kwarg raises a TypeError.r  r   r  N)rl   rt   r  r   r   r   r)   r9	  )r  rS	  s     r%   test_specgram_origin_kwargrV	    sB    
		#AVVAYF	y	!VG, 
"	!	!s   A%%A.)zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c            
      *   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                  j                  ||      z        j                  d      }t        d	|z  dz        }t        j                  j                  d
       t        j                  j                  |       t        j                  j                  |       g}ddiddddddg}||f||ffD ]W  \  }	}
|
dz  }t        dt        j                  t        j                  |
            z        }t        t!        j"                         j%                  d      |      D ]f  \  }} |j&                  t        j(                  |	      f|
|||d|}t+        |      d|j-                  dd      z   k(  sJ |j/                  dd       h t        t!        j"                         j%                  d      |      D ]R  \  }} |j0                  |	|
|||d|}t+        |      d|j-                  dd      z   k(  sJ |j/                  dd       T Z y )Nr        Y@r2  r   rT  r*	  r+	  r,	  r  r   r;   r<   r  r4	  r  r.	  F)r4	  return_liner/	  Tr   )r0	  r1	  r2	  r3	  rY	  r   xlabelylabel)r5	  rl   rx  rt   r  r	  r6	  r7	  r  rm   rn   r  r   r   r8	  r  r)   r   r   psdr  r  rj  r   csd)r  r1	  r:	  r;	  r4   ys_freqsr=	  ys_noise
all_kwargsr  r0	  r2	  r3	  r$   r	  rets                   r%   test_psd_csdrc	    sf    	A	B!tRT2b5!BsFBsFBtG#<=FTBY/0J
		!Q"Avva"%%i"++"3"3FA">>?CCCKHTBY^$JIINN1		))!,biinnQ.?@HI&&u=&t<>J 
+h
-CDD19Q"''"''$-001cjjl33A6
CJB"&&+ E$2"*6E=CECs8q6::mU#CCCCCFF"RF(	 D
 cjjl33A6
CJB"&&"4B"*6E=CECs8q6::mU#CCCCCFF"RF(	 D E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  j                  d	      }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j                  |       g      dz
  }g d}||d}	||fD ]  }
t        t!        j"                         j%                  d      |      D ]1  \  }} |j&                  |
fd|i|	\  }}}|j)                  dd       3 t        t!        j"                         j%                  d      |      D ]5  \  }} |j&                  |
fd|i|	ddi\  }}}|j)                  dd       7 t        t!        j"                         j%                  d      |      D ]1  \  }} |j*                  |
fd|i|	\  }}}|j)                  dd       3 t        t!        j"                         j%                  d      |      D ]1  \  }} |j,                  |
fd|i|	\  }}}|j)                  dd       3  y )Nr  rX	  r2  r   rT  r  r<   r   r;   r   r   r  r   r-	  )r1	  r3	  r4	  r   rZ	  r/  rG	  )r5	  rx  rl   r   r8	  rt   r  r	  r7	  r  rm   rn   r  r  r   r  r)   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  r1	  fstims1r0	  r3	  r4   r<	  r>	  r?	  r	  r5   r$   r4	  rL	  rM	  r  s                   r%   test_spectrumri	    s    	A	B!tRT2b5!Gtby3w<'(Dbggbggdm,,-F
		!Q"Aq255y288Aw#7782ryy|;KK IINN1ii2215ryy~~a7HIJROG3I&)FwSZZ\2215yAIB 5 5 5a Ou O OD%FF"RF( B SZZ\2215yAIB 5 5 5a !Bu !B !B<@!BD%FF"RF( B SZZ\2215yAIB 1 1 1! K5 KF KD%FF"RF( B SZZ\2215yAIB 1 1 1! K5 KF KD%FF"RF( B  r'   c                     t        j                         j                  d      } | D ]  }|j                  j	                  d         t        j                  d      5  | d   j                  t        j                  d             | d   j                  t        j                  d      t        j                  d             d d d        y # 1 sw Y   y xY w)	Nr<   T)r{  r  r  r   r   r;   )
r)   r   r   r_   r   rl   r   r]	  r  r^	  r  r$   s     r%   test_psd_csd_edge_casesrl	    s    
**,


"C
d# 	H	%A

288A;A

288A;, 
&	%	%s   A#C		Cc                 ,   | j                         }|j                         }|j                         }|j                          |j                          |j                         }|j                  j                          |j                  j                          y r  )r   r  r  rl  r]   tick_bottomr_   	tick_left)r"   r#   ry   ax_twinxax_twinyrz   s         r%   test_twin_removerr	    sj    ""$G}}H}}HOOOO  "F LL
LLr'   ztwin_spines.pnggI+?c                     d } t        j                  d      }|j                  d       |j                         }|j	                         }|j	                         }|j
                  j                  j                  d        | |       |j
                  j                  j                  d       |j                  g dg dd	      \  }|j                  g dg d
d      \  }|j                  g dg dd      \  }|j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  j                  j                  |j                                |j                  j                  j                  |j                                |j                  j                  j                  |j                                t!        dd      } |j"                  dd|j                         d|  |j"                  dd|j                         d|  |j"                  dd|j                         d|  |j"                  dddi| y )Nc                     | j                  d       | j                  j                  d       | j                  d d  j                  d       y )NTF)set_frame_onr  r    spinesr  s    r%   make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisible  s6    

U#
		!  'r'   )r2  r   rH  rk  )rE   )rk  r<  TrI  zb-)r   r   r<   zr-)r`  r   r  zg-r   r<   r2  r;   A   r   )r  r  r5   )r$  r  r$  r4   r   )r)   r   r  r   r  rv	  rE   set_positionr    r   r  r  r_   r2   rq  r  r  tick_params)	rw	  r/   hostpar1par2r'  r(  p3tkws	            r%   test_twin_spinesr	    s   (
 **V
$Cd#??D::<D::<D 	KK""=1  %KK!!$'
))Iy$
/CB
))Iy$
/CB
))I|T
2CBMM!QMM!QMM!QMM!RJJr||~.JJr||~.JJr||~.
AS
!CD<#blln<<D<#blln<<D<#blln<<D%#%%r'   ztwin_spines_on_top.pngc                     dt         j                  d<   dt         j                  d<   t        j                         } | j	                  ddd      }t        j                  g dg dg      }|j                         }|j                  |d   |d   dz  d	
       |j                  |d   |d   dz  d	d       |j                  |d   |d   dz  d
       |j                  |d   |d   dz  dd       |d   |d   dz  d}t        j                         } | j	                  ddd      }|j                         }|j                  ddd	|       |j                  ddd	d|       |j                  ddd|       |j                  dddd|       y )Ng      H@r4  r  r;   )r  iL  i  i  )rF  i-  r  r  r   g     @@z#BEAED4rM  r  )r   r  z#7FC97Fr   )rE  rS  rE  rS  )r   r  )r   r  r  )
rY   r   r)   r   r   rl   rQ  r  r   r  )r/   r  r  r  s       r%   test_twin_spines_on_topr	  :  s    -1J()-1J)*
**,C
//!Q
"C88-)+ ,D ))+CHHT!Wd1gckH3T!Wd1gck"EHHT!Wd1gckH3T!Wd1gck"E atAws{+D
**,C
//!Q
"C
))+CHHS#YTH2S#YbtDHHS#YTH2S#YbtDr'   z(grid_which, major_visible, minor_visible))r   TT)majorTF)r  FTc                 V   t         j                  j                  d| d       t        j                         \  }}|j
                  j                          t        fd|j                  j                  D              sJ t        fd|j                  j                  D              sJ y )NT)ra  zaxes.grid.whichc              3   X   K   | ]!  }|j                   j                         k(   # y wr  gridliner  )r  tickmajor_visibles     r%   r  z*test_rcparam_grid_minor.<locals>.<genexpr>b  +      0.4 }}((*m;.   '*c              3   X   K   | ]!  }|j                   j                         k(   # y wr  r	  )r  r	  minor_visibles     r%   r  z*test_rcparam_grid_minor.<locals>.<genexpr>d  r	  r	  )r   r   rx  r)   r   r  r  r  r]   
majorTicks
minorTicks)
grid_whichr	  r	  r/   r$   s    ``  r%   test_rcparam_grid_minorr	  Y  s     LLdzJKllnGCJJOO 088..0 0 0 0 088..0 0 0 0r'   c                  "   t        j                         \  } }|j                          | j                  j	                          |j
                  j                  d   j                  j                         sJ |j                  d       | j                  j	                          |j
                  j                  d   j                  j                         rJ |j                  d       | j                  j	                          |j
                  j                  d   j                  j                         sJ |j                          | j                  j	                          |j
                  j                  d   j                  j                         rJ y )Nr   FvisibleT)	r)   r   r  r  r  r]   r	  r	  r  r.   s     r%   	test_gridr	  h  s   llnGCGGIJJOO88q!**66888GGEGJJOOxx""1%..::<<<GGDGJJOO88q!**66888GGIJJOOxx""1%..::<<<<r'   c                  R   t        j                         \  } }|j                  ddd       |j                  j                  d   j
                  j                         rJ |j                  d       |j                  j                  d   j
                  j                         sJ t        j                  ddi      5  |j                          |j                  ddd       |j                  j                  d   j
                  j                         sJ 	 d d d        y # 1 sw Y   y xY w)	NTr	  r   )resetr  	labelsizer   r6  rM  ra  )
r)   r   rz	  r]   r	  r	  r  r  r   r  r.   s     r%   test_reset_gridr	  x  s    llnGCNNWN;xx""1%..::<<<GG%G88q!**66888	d+	,


TB?xx""1%..::<<< 
-	,	,s   ;ADD&c                 <   || fD ]P  }|j                         }|j                  d       |j                  dddddddd	d
ddd       |j                          R | j                  D ]6  }|j
                  j                          |j                  j                          8 y )NTinr   r   r  r  r%  rK  r  rL  r  r   rJ  )	directionlengthr  r   padr	  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  rz	  draw_without_renderingrk  r]   reset_ticksr_   )r"   r#   r/   r$   s       r%   test_reset_ticksr	    s    "__

2QdTA	 	 	!
 	""$ # mm

 r'   c                  l   t        j                  dddddddddd		      5  t        j                         \  } }d d d         j                          j                  j
                  d
   }|j                  j
                  dd  D ]  }|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(  rJ  y # 1 sw Y   xY w)Nr	  r   r   r  r  Tr%  rK  )	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)r/   r$   
first_tickr	  s       r%   test_context_ticksr	    s   	#RSB t!t	= 
>
 ,,.R
>  $$Q'J##AB'zzZ-----{{j/////~~!5!5555""j&?&????||z11111}}
 3 3333 (
> 
>s   D**D3c                      t        j                         } | j                         }|j                  d       |j	                  g d       t        |j                         d       y )Nr   )rd  r   r   r   )rd  r   )r)   r   rf  r  r   r   r   r.   s     r%   test_vline_limitr	    s@    
**,C	BJJsOGG BKKM9-r'   zfv, fh, args)r;   rz  c                 
   t         j                  j                  d      }t        j                  t
        d      5   | ||dd d d d        t        j                  t
        d      5   | |d|d d d d        t        j                  t
        d      5   |||dd d d d        t        j                  t
        d      5   ||d|d d d d        y # 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   OxY w# 1 sw Y   y xY w)	Nr;   z"ymin must be a single scalar valuert  r	  r	  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rj   rk   z"xmax must be a single scalar value)rY   r  num2dater   r   r  )fvfhargsbad_lims       r%   test_axline_minmaxr	    s     ''*G	z)M	N
DwQ' 
O	z)M	N
Dqw' 
O 
z)M	N
DwQ' 
O	z)M	N
Dqw' 
O	N 
O	N	N	N 
O	N	N	Ns/   
C(
C!
C-
C9C!C*-C69Dc                      t        j                  dddd      \  } }|d   j                  g dg d       |d   j                         \  }}|d   j	                         \  }}|dk  sJ |dk\  sJ |dk  sJ |d	k\  sJ y )
Nr;   r<   T)r  r  r  re  r   r  )r<   r2  r  r   r  )r)   r   r   r   r   )r/   r  rY  r8  rZ  r  s         r%   test_empty_shared_subplotsr	    s    ||!1T$GHCFKK	9%V__FBV__FB7N77N77N77N7r'   c                  d   dD ]  } t        j                  dd      \  }}|d   j                  d| d       |d   j                         dk(  sJ |d   j	                         | k(  sJ t        j                  dd      \  }}|d   j                  d|        |d   j                         d	k(  rJ  y )
Nboxdatalimr<   T)r  r  r   )
adjustablesharer;   r	  r  )r)   r   
set_aspect
get_aspectget_adjustable)r	  r/   r  s      r%   test_shared_with_aspect_1r	    s    (
<<a5SA!
$?1v  "a'''1v$$&*444<<a5SA!
31v  "f,,, )r'   c                     t        j                  ddd      \  } }|d   j                  dd       |d   j                  ddgddg       |d   j                  ddgddg       t        j                          |d   j                         |d   j                         k(  sJ |d   j                         |d   j                         k(  sJ y )	Nr<   T)r  r  re  r   )r	  r;   r   r2  )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HHJq6??A 1111q6??A 1111r'   c                  H   dD ]  } t        j                  dd      \  }}|d   j                  d|        |d   j                  d|        |d   j                  ddgd	d
g       |d   j                  d	d
gddg       t        j                          |d   j                         |d   j                         k7  sJ |d   j                         |d   j                         k(  sJ |j                  j                  |j                  j                  z  }|D ]  }|j                         }|j                  |j                  z  }|j                  j                  |j                  j                  z  }||z  |z  }t        |d
      t        |j                         d
      k(  rJ   y )Nr	  r<   T)r  re  r   r	  r;   r   r   r2  )r)   r   r	  r   r  r   r   bbox_inchesr  r  get_positionviewLimr  r	  )	r	  r/   r  
fig_aspectr$   r  
box_aspect
lim_aspectr	  s	            r%   test_shared_with_aspect_3r	    sh   (
<<a5SA!
3A#*5AQFQF#AQFQF#
1v CFOO$55551v CFOO$5555__++coo.C.CC
B!AAGG+J**RZZ-=-==J!J.;H1%r}})BBBB  )r'   c                      t        j                  dddd      \  } }|d   j                  d       t        j                  t
        d      5  | j                          d d d        y # 1 sw Y   y xY w)	Nr;   r<   Tr  re  r   r  zset_aspect\(..., adjustable=rt  )r)   r   r$  r   r   RuntimeErrorr	  )r/   rk  s     r%   test_shared_aspect_errorr	    sR    Q$t<ICGLL	|+J	K""$ 
L	K	Ks   A&&A/zerr, args, kwargs, matchr1  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        y # 1 sw Y   y xY wNrt  )r   r   r)   r$  errr	  r	  ru  s       r%   test_axis_errorsr	    s/     
s%	($!&! 
)	(	(	   7A c                     t        j                         } t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  dd       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d	
       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        y # 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzunknown value for which: 'foo'rt  r  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer;   )	scilimitszSpecifying 'loc' is disallowedrS   )rC   r4   rA   )rC   r5   zCannot pass both 'left'r   )rS   rj   zCannot pass both 'right')rE   rk   zCannot pass both 'bottom')rR   r	  zCannot pass both 'top')rA   r	  )r)   rf  r   r   r  r
	  r		  r   set_prop_cycle
set_anchorticklabel_formatr*   r+   r  r  r  s    r%   test_axis_method_errorsr	    s   	B	z)I	J
u% 
K	z)I	J
u% 
K	y(K	L
%u- 
M	z)A	B
e 
C	z)G	H
a( 
I	y(H	I
e1- 
J	y(H	I
e!, 
J	y(A	B
# 
C	y(B	C
!!$ 
D	y(C	D
11% 
E	y(@	A
" 
B	A) 
K	J	J	J	L	L	B	B	H	H	I	I	I	I	B	B	C	C	D	D	A	As   I.%I;JJJ"<J/4J<,K	#KK"K..I8;JJJ"J,/J9<K	KK"K+.K7c                    t        j                         \  }} t        |d|               }|j                  d       |j                  d       t	        |j
                  j                  |j
                  j                         y )Nr!  r   r<   )r)   r   r(  r	  r   bboxextents)r!  r/   r$   rD  s       r%   test_twin_with_aspectr	  2  sa    llnGC(gbD-(*GMM!qrww||++-r'   c                  r   d} d}d}d}t         j                  j                         }|j                         }|j	                  | |       |j                         | k(  sJ |j                         |k(  sJ |j	                  ||      \  }|j                         |k(  sJ |j                         |k(  sJ |j                  d       |j                         |k(  sJ |j                         |k(  sJ |j                  d       |j                          |j                         | k(  sJ |j                         |k(  sJ y )N)r  r3  )r  rb  )r  r@  FT)visible_only)
rY   r   r   r   r   r   r   r    relimr   )r8  r  rT  rU  r/   r$   r  s          r%   test_relim_visible_onlyr	  =  s   	B	B	B	B



"
"
$C		BGGBO;;=B;;=BGGBOED;;=B;;=BU;;=B;;=BHH$H;;=B;;=Br'   c                      t        j                         } | j                         }|j                  d       |j                  d       y)z
    tests for issue #1172
    large)r	  outr	  N)r)   r   rf  rz	  r.   s     r%   test_text_labelsizer	  V  s6     **,C	BNNWN%NNUN#r'   zpie_default.pngr  c            	      ~    d} g d}g d}d}t        j                  d      \  }}|j                  ||| |ddd	
       y )NFrogsHogsDogsLogsr  r   r  r   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  r  rH  %1.1f%%Tr8  )exploderL  r  autopctshadow
startangler)   r   pie)rL  sizesr  r
  r/  r  s         r%   test_pie_defaultr

  e  sJ     -FEBFGV,ID#GGE76&dr  ;r'   )pie_linewidth_0r
  r
  )r   r   r   c                     d} g d}g d}d}t        j                  ||| |ddddd	i
       t        j                  d       | |||d}t        j                         }|j	                         }|j                  ddddddddd	i|	       |j                  d       t        j                          t        j                  ddddddddd	i|	       t        j                  d       y )Nr	  r	  r	  r
  r
  Tr8  r9  r   r
  rL  r  r
  r
  r
  
wedgepropsr  )lr  r?   exr  r
  r
  r?   )r
  rL  r  r
  r
  r
  r
  r  )r)   r
  r$  r   rf  )rL  r	
  r  r
  r  r/   r$   s          r%   test_pie_linewidth_0r
  q  s     -FEBFGGGE76&dr#Q') HHW e&@D
**,C	BFF3STb"A&T  3 GGG JJLGGCc#dr#Q'd4 HHW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       y )Nr	  r	  r	  r
  r
  Tr8  r9  r   r1  r   )	r
  rL  r  r
  r
  r
  r
  r\   r	  zCenter point)r;   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler7  )r  r  r  r	  r  )r)   r
  r  r  r$  rL  r	
  r  r
  s       r%   test_pie_center_radiusr
    sz     -FEBFGGGE76&dr#Q'sD LLF8 D179HDF
 HHWr'   zpie_linewidth_2.pngc                      d} g d}g d}d}t        j                  ||| |ddddd	i
       t        j                  d       y )Nr	  r	  r	  r
  r
  Tr8  r9  r<   r
  r  r)   r
  r$  r
  s       r%   test_pie_linewidth_2r
    sI     -FEBFGGGE76&dr#Q') HHWr'   zpie_ccw_true.pngc            
          d} g d}g d}d}t        j                  ||| |dddd       t        j                  d	       y )
Nr	  r	  r	  r
  r
  Tr8  )r
  rL  r  r
  r
  r
  counterclockr  r
  r
  s       r%   test_pie_ccw_truer!
    sD     -FEBFGGGE76&dr HHW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       y )Nr	  r	  r	  r
  r
  Tr8  r9  r   r{  )	r
  rL  r  r
  r
  r
  r
  framer\   r   )r   r<   )r   r   r  r
  r
  s       r%   test_pie_frame_gridr$
    s     -FEBFGGGE76&dr#Q'v'
 GGE$B$Kdr#Q'v'
 GGE74R4=dr#Q'v'
 HHWr'   zpie_rotatelabels_true.pngc            
          d} g d}g d}d}t        j                  ||| |dddd       t        j                  d	       y )
N)Hogwartsr	  r	  r	  r	  r	  r
  r
  Tr8  )r
  rL  r  r
  r
  r
  rotatelabelsr  r
  r
  s       r%   test_pie_rotatelabels_truer(
    sD     1FEBFGGGE76&dr HHW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                          y )Nr	  r	  r	  r
  r
  Tr8  )r
  rL  r  r
  r
  r
  labeldistancer'
  r  g333333r<  )r)   r
  r$  r   rK   r
  s       r%   test_pie_nolabel_but_legendr+
    s[    ,FEBFGGGE76&dr HHWHHT3JJLr'   zpie_shadow.pngc            
      T   g d} g d}d}t        j                  dd      \  }}|d   d   j                  | ||ddddi	       |d   d
   j                  | ||ddddi	       |d
   d   j                  | ||ddddddddi	       |d
   d
   j                  | ||dddddddi	       y )Nr	  r	  r
  r<   r   Tr8  r9  )r
  r  r
  r
  r
  r;   Fr`  r3  r3  )oxoyshader8  r  r   )r-
  r9  r/
  r
  )r	
  r  r
  r  rk  s        r%   test_pie_shadowr0
    s     EBFGll1a GAtGAJNN5'&2*A.  0 	GAJNN5'&B*A.  0 	GAJNN5'&!&ecPVW k1-=  ? 	GAJNN5'&!%AD k1-=  ?r'   c                     g d} g d}t        dddddd	      }t        j                         j                  | |d
|      \  }}}||fD ]  }|D ]  }|j	                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  rJ   y )N)rG  "   r  )zLong name 1zLong name 2zLong name 3r\   rA   r8  anchorr  r6  )horizontalalignmentverticalalignmentrl  rotation_moder  r   %.2f)rL  r
  	textpropsr4
  r5
  rl  r6
  r  r   )
r  r)   rf  r
  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  rL  r8
  r  textsr
  txs          r%   test_pie_textpropsr@
    s   D:F', #+E	+I 	d6609 & ;Aug'"B99;),A"BBBB99;),?"@@@@??$	*(===='')Y-GGGG;;=If$5555<<>Yw%7777  #r'   c                      t        j                         \  } }t        j                  t              5  |j                  g dg d       d d d        y # 1 sw Y   y xY w)N)r   r   r  )r   r   r   r
  r)   r   r   r   r  r
  r.   s     r%   test_pie_get_negative_valuesrD
  *  s9    llnGC	z	"
z;/ 
#	"	"   AAc                      t        j                         \  } }t        j                  t              5  |j                  g dddg       d d d        y # 1 sw Y   y xY w)Nr  r   rB
  rC
  r.   s     r%   test_pie_invalid_exploderG
  1  s=    llnGC	z	"
y3*- 
#	"	"rE
  c                      t        j                         \  } }t        j                  t              5  |j                  g dddg       d d d        y # 1 sw Y   y xY w)Nr  OneTworL  rC
  r.   s     r%   test_pie_invalid_labelsrL
  8  s=    llnGC	z	"
y%0 
#	"	"rE
  c                      t        j                         \  } }t        j                  t              5  |j                  g dd       d d d        y # 1 sw Y   y xY w)Nr  r  )r	  rC
  r.   s     r%   test_pie_invalid_radiusrN
  ?  s9    llnGC	z	"
y$ 
#	"	"s   AAc                     t        j                         \  } }g d}|j                  |d      }t        |d   d   j                  dz
        dk  sJ |j                  |d      }t        |d   d   j                  dz
        dkD  sJ y )	Nr   r   r   T)r4   	normalizer   r   g     v@ra  F)r)   r   r
  rV  r  )r/   r$   r4   t1t2s        r%   test_normalize_kwarg_pierT
  F  s    llnGCA	!t	$Br!uRy$&'$...	!u	%Br!uRy$&'$...r'   c                     g d}d}| j                         j                  ||       |j                         j                  |      \  }}|D cg c]  }|j                  |       c} y c c}w )NrP
  r  r  )r   r
  	set_hatch)r"   r#   r4   rA  wedgesr  rt  s          r%   test_pie_hatch_singlerX
  O  sc    AEAU+  "&&q)IFA!'(AQ[[((s   A*c                    g d}g d}| j                         j                  ||       |j                         j                  |      \  }}t        ||      D cg c]  \  }}|j                  |       c}} y c c}}w )NrP
  )r?  r  r   r  )r   r
  r  rV
  )r"   r#   r4   rA  rW
  r  rt  hps           r%   test_pie_hatch_multir[
  X  so    AEAU+  "&&q)IFA"%fe"45"4BQ[[_"455s   A;zset_get_ticklabels.pngg?c                  D   t        j                  d      \  } }ddg}|d   j                  t        j                  d             |d   j                  |d          |d   j                  t        j                  d             |d   j                  |d          |d   j                  t        d             |d   j                  t        d             |d   j                  g ddd	gz  z          |d   j                  g d
dd	gz  z          |d   j                  |d   j                                |d   j                  |d   j                                |d   j                  |d   j                                |d   j                  |d   j                                y )Nr<   ro   zset_x/yticklabelsr   r   r;   r   r'  r?   r  r  r   )11121314)r)   r   r   rl   rt   r7   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsrr  
get_yticksr  get_yticklabels)r/   r$   rH   s      r%   test_set_get_ticklabelsrh
  a  s`    ll1oGC
'	(BqEJJryy}qEOOBqEqEJJryy}qEOOBqE qEU2YqEU2YqE.bT9:qE2Q"X=> qERU%%'(qERU%%'(qE"Q%//12qE"Q%//12r'   c                      t        j                         \  } }g d}t        j                  t        d      5  |j
                  j                  |d       ddd       y# 1 sw Y   yxY w)z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  z)Incorrect use of keyword argument 'alpha'rt  r   r  N)r)   r   r   r   r  r]   	set_ticks)r/   r$   tickss      r%   0test_set_ticks_kwargs_raise_error_without_labelsrl
  |  sK    
 llnGCE	z)T	U
5, 
V	U	Us   AA'c                    |j                         }|j                  g d       |j                  g dd       |j                  g d       |j                  ddgd	       |j	                  d
dgd	       | j                         }|j                  g dg dd       |j                  g d       |j                  ddgd
dgd	       y)z
    Test that these two are identical::

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

    )r;   r<   r2  r  r]
  bold)
fontweightr  r<   r2  T)r  r  r  N)r   rb
  rd
  rc
  re
  r!   s      r%   test_set_ticks_with_labelsrp
    s     
			BMM,+?MM)MM1a&M%Sz.				BMM, 4MHMM)MM1a&3*DM1r'   c                  8   t        j                         j                         } t        j                  t
        d      5  | j                  ddgd       d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d             d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d	             d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d      t        d      
       d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d	      t        d      
       d d d        y # 1 sw Y   xY w# 1 sw Y   ?xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzmust be a sequencert  r<   rs  r  z
must be 1Dr2  rp  ro  rK
  )r)   r   r   r   r   r   rb
  r  rm  rl   rt   r   r   r  s    r%   test_xticks_bad_argsrr
    s8   		!	!	#B	y(<	=
q!fc" 
>	z	6

299Q<''01 
7	z	6

299Q<''01 
7	z	6

299Q<''0qB 
7	z	6

299Q<''0qB 
7	6 
>	=	6	6	6	6	6	6	6	6s=   G68G+8G8,AHAHG(+G58HHHc                  
   t        j                         \  } }|j                  t        j                  d             |j
                  j                  t        j                  d      dz          |j                  d       |j
                  j                  dD cg c]  }| c}       t        j                          |j
                  j                         D cg c]  }|j                          }}|g dk(  sJ y c c}w c c}w )Nr   r   r   r  
bcdefghijk)r'  r  rn  r  rS  )r)   r   r   rl   rt   r]   rj
  r  set_ticklabelsr  get_ticklabelsr8  )r/   r$   r?   r  rL  s        r%   test_subsampled_ticklabelsrw
    s    llnGCGGBIIbMHHryy}s*+AHH51Q56HHJ$&HH$;$;$=>$=qajjl$=F>.... 6>s   	C;D c                  J   t        j                         \  } }|j                  t        j                  d             |j
                  j                  ddg       t        j                  t              5  |j
                  j                  g d       d d d        y # 1 sw Y   y xY w)Nr   r   rO  r  )r)   r   r   rl   rt   r]   rj
  r   r   r  ru
  r.   s     r%   test_mismatched_ticklabelsry
    se    llnGCGGBIIbMHHSz"	z	"
0 
#	"	"s   2BB"c                      t        j                         \  } }|j                  ddgddg       |j                  ddg       |j	                  g        y )Nr;   r<   )r)   r   r  rb
  rd
  r.   s     r%   test_empty_ticks_fixed_locr{
    sE    llnGCFFAq6Aq6MM1a&rr'   zretain_tick_visibility.pngc                      t        j                         \  } }t        j                  g dg d       t        j                  |j	                         d       |j                  ddd       y )	NrI  )r   r   r2  Fr	  r5   r   r   r$  r  r	  )r)   r   r   setprg
  rz	  r.   s     r%   test_retain_tick_visibilityr
    sH    llnGCHHY
#HHR!51NN6!N4r'   c                     t        j                         \  } }t        j                  t        d      5  |j                  ddg       d d d        t        j                         \  } }|j                  g d       t        j                  t        d      5  |j                  ddg       d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY w)Nz:set_ticklabels\(\) should only be used with a fixed numberrt  r%  r  rH  z$The number of FixedLocator locations)	r)   r   r   r  rN  rd
  rb
  r   r  r.   s     r%   test_warn_too_few_labelsr
    s    llnGC	N
P 	C<(
P
 llnGCMM+	zC
E
C<(
E 
E
P 
P
E 
Es   B1B=1B:=Cc                     t        j                         \  } }d }|j                  j                  t        j                  |             |j                  g d       |j                  dd       | j                  j                          |j                  j                         D cg c]  }|j                          }}|g dk(  sJ y c c}w )Nc                     | dk(  rdS dS )Nr;   
unit valuer   r   r   s     r%   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Av|-2-r'   )r   r   r;   r<   r   r  rO  )r   r   r
  r   r   )r)   r   r]   r   r   rb
  r  r  r  rv
  r8  )r/   r$   r
  r	  
tick_textss        r%   test_tick_label_updater
    s     llnGC.HH  !2!2>!BC MM"#KKcJJOO.0hh.E.E.GH.Gd$--/.GJH7777 Is   $Czo_marker_path_snap.pngH   c                  b   t        j                         \  } }|j                  d       t        dd      D ]/  }|j	                  ddgt        j                  d      |z   d|       1 t        j                  ddd      D ]/  }|j	                  d	d
gt        j                  d      |z   d|       1 y )Nr   r;   r  r<   r   )r"  r   rb  r   r2  )r)   r   rS  r   r   rl   r   r  )r/   r$   r"  s      r%   test_o_marker_path_snapr
    s    llnGCJJrNArl
A"''!*r/326  kk!R$
A"''!*r/326 %r'   c                  *   ddg} d}t        |       dz
  }t        |       }t        |       }t        j                  dd      \  }}|j                  |        |j                  d       |j                         dk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ t        j                  dd      \  }}|j                  |        |j                  dd       |j                         dk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ t        j                  dd      \  }	}
|
j                  |        |
j                  d	d
       |
j                         dk(  sJ |
j                         |||z
  d	z  z
  |||z
  d	z  z   fk(  sJ |
j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ y )Nr;   r   r  r   rz  r   r<   )r   r<   皙ɿr"  )r
  r   )	r  rx  r  r)   r   r   rS  r   r   )r  rj   rk   r	  r	  r/  r  r0  r  r  r  s              r%   test_marginsr
    si   r7DDt9s?Dt9Dt9DQ"ID#HHTNKKN;;=F"""<<>ddTkQ%66"dTkQ%668 8 8 8<<>ddTkQ%66"dTkQ%668 8 8 8 Q"ID#HHTNKKQ;;=H$$$<<>ddTkS%88"dTkS%88: : : :<<>ddTkQ%66"dTkQ%668 8 8 8 Q"ID#HHTNKK$#K;;=K'''<<>ddTkT%99"dTkT%99; ; ; ;<<>ddTkS%88"dTkS%88: : : :r'   c                      t        j                         } | j                         }|j                  dd       |j	                         dk(  sJ |j                         dk(  sJ y )Nr   r   )r)   r   r   rS  get_xmarginget_ymarginr.   s     r%   test_margin_gettersr
     sQ    
**,C		BJJsC>>s""">>s"""r'   c                      t         j                  j                  d       t        j                         \  } }|j                  ddgddg       |j                  dd       |j                         dk(  sJ y )Nr  r;   r<   r0  r   )r  xmarginr1  )r   r   r   r)   r   r   r   r   r.   s     r%   test_set_margin_updates_limitsr
  (  s[    IIMM)llnGCGGQFQFFF%F#;;=F"""r'   )r   z!margin must be greater than -0\.5ro  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	                         } |j
                  |i | d d d        y # 1 sw Y   y xY wr	  )r   r   r)   r   r   rS  )r	  r	  r	  ru  r/   r$   s         r%   test_margins_errorsr
  0  sH     
s%	(jjl__

D#F# 
)	(	(s   7AA!c                  x    t        j                         \  } }|j                  d       |j                  dg       y Nr;   )r)   r   r  r.   s     r%   test_length_one_histr
  B  s)    llnGCGGAJGGQCLr'   c                     t        j                         } | j                         }|j                  dd       |j	                         dk(  sJ |j                         dk(  sJ |j                  d       |j	                         dk(  sJ |j                         dk(  sJ |j                  d       |j	                         dk(  sJ |j                         dk(  sJ |j                  dd       |j                         dk(  sJ |j                         dk(  sJ |j                  d       |j                         dk(  sJ |j                         dk(  sJ |j                  d       |j                         dk(  sJ |j                         dk(  sJ y )	Nr   r  )r   r  r  )rR	  )r   r  )r   )r  r  )	r)   r   r   r'  
get_xboundr   r(  
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      \  }}|j                  | |        |j                  t	        j
                                y )Nr   r   r;   )r)   r   r  r{  ry  rz  )mylistr/   r$   s      r%   test_pathological_hexbinr
  `  sA    TCZFll1a GCIIffKK

r'   c                  b    t        j                         \  } }|j                  ddgddgd        y )Nr;   r<   rM  r  r.   s     r%   test_color_Noner
  h  s+    llnGCGGQFQF$G'r'   c                      t        j                         \  } }|j                  ddgd      d   }d|j                         k(  sJ y )Nr   r;   r  rV  )r)   r   r   r  r/   r$   r  s      r%   test_color_aliasr
  n  sA    llnGC77Aq6V7$Q'DT^^%%%%r'   c                      t        j                         \  } }|j                  t        d      gdz  t        d             |j	                          y )Nr  r   r  )r)   r   r  r   rK   r.   s     r%   test_numerical_hist_labelr
  u  s8    llnGCGGU2YK!O58G,IIKr'   c                      t        j                         \  } }d}d}|j                  d      d|j                  d      g}|j                  t	        d      gdz  |       |j                          y )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr  r   r  )r)   r   decoder  r   rK   )r/   r$   r   r'  rL  s        r%   test_unicode_hist_labelr
  {  se    llnGC
@A+AhhwhhwF
 GGU2YK!O6G*IIKr'   c                     t         j                  j                  d      dz  } t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   kD  r|d   |d   k(  sJ |j                  j                  j                         dk(  sJ t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   k(  r|d   |d   kD  sJ |j                  j                  j                         dk(  sJ y )	Nr   g^ 9^;rS   r   r;   rE   rA   rR   )rl   rm   r)   r   r   r  r  r_   
offsetTextr	  r^   
tick_rightr]   get_verticalalignmentr   )r  r/   r$   beforeafters        r%   test_move_offsetlabelr
    s   99B%'DllnGCGGDMJJOOXX  --/F88668FBBBHHJJOOHH,,.E8fQiE!Hq	$99988668GCCCllnGCGGDMJJOOXX  --/F88446%???HHJJOOHH,,.E8vay U1Xq	%99988446(BBBr'   zrc_spines.pngc                      ddddd} t        j                  |       5  t        j                          d d d        y # 1 sw Y   y xY w)NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rY   r   r)   r   )r  s    r%   test_rc_spinesr
    s<     "" #	%G
 
		w	' 
(	'	's	   ;Azrc_grid.pngc                      t        j                         } ddd}ddd}ddd}|||g}t        |d      D ]6  \  }}t        j                  |      5  | j                  dd|       d d d        8 y # 1 sw Y   CxY w)NTr   )ra  zaxes.grid.axisr4   r5   r;   r   )r)   r   r  rY   r   r   )r/   rc_dict0rc_dict1rc_dict2r  rE  r  s          r%   test_rc_gridr
    s    
**,C H
 H
 H 8X.I	1-
7""7+OOAq!$ ,+ .++s   A//A8	c                     ddddd} t        j                  |       5  t        j                         }|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        y # 1 sw Y   y xY w)NFT)r	  r	  
ytick.leftytick.rightr  r;   tick1Ontick2Onr)   r   r   r   r]   r_   _major_tick_kw_minor_tick_kwr  r/   r  xaxyaxs        r%   test_rc_tickr
    s    TE	3A	1	jjlooaA&iiii%%i000!!),,,%%i000!!),,,!!),,,%%i000!!),,,%%i0000 
		s   CC00C9c            	          ddddddddd} t        j                  |       5  t        j                         }|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        y # 1 sw Y   y xY w)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
    s   4T$E"		?A
 
1	jjlooaA&iiii%%i000!!),,,%%i000!!),,,%%i000!!),,,%%i000!!),,, 
		s   CC44C=c                  .   t        j                  d      } t        j                  g d      }t        j                         \  }}|j                  | |d       |j                  d       |j                         |j                         }}t        j                  |      t        j                  |      k(  sJ |j                         dk(  sJ t        |j                  d      j                  d       t        |j                  d	      j                  d
       y )Nr2  )r   r  r  r)  mor
  r;   T)originalg      ?r   r3  r3  F)g333333?r   g      ?r3  )rl   rt   rQ  r)   r   r   r$  r   r   r  r	  r   r	  r	  )r4   r5   r/   r$   r   r   s         r%   test_square_plotr
    s    
		!A
!"AllnGCGGAq$GGH$D774=BGGDM)))==?a
&..0FH
'//1KMr'   c                     t        j                  t              5  t        j                  d        d d d        t        j                  t              5  t        j                  d d        d d d        t        j                  t              5  t        j                  t        j                  d      t        j                  d             d d d        t        j                  t              5  t        j                  t        j                  d      j                  d      t        j                  d      j                  dd      f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr{  r  r   ro  r   r;   )	r   r   r  r)   r   rl   r  rt   r   r   r'   r%   test_bad_plot_argsr
    s    	z	" 
#	z	"t 
#	z	"&!288F#34 
#	z	""))A,&&w/11E1Eb!1LMN 
#	" 
#	"	"	"	"	"	"	"s0   EE	=E&'AE2EE#&E/2E;zxy, clsr   ))r   rg  )r<   r  )r;   r<   r2  r  r  r-  )r2  r   r  )r   r2  c                 v    t        j                         \  }}t         |j                  g | |       |k(  sJ y r  )r)   r   r(  r  )r  r  clsr/   r$   s        r%   test_pcolorfastr
  	  s9     llnGC(r(4()S000r'   c                  *   t        j                         \  } }t        j                  t        d      5  |j                  t        j                  d      t        j                  d      t        j                  d             d d d        y # 1 sw Y   y xY w)Nz)the given X was 1D and the given Y was 2Drt  r  )r2  rg  r	  )r)   r   r   r   r   r  rl   emptyr.   s     r%   test_pcolorfast_bad_dimsr
    sa    llnGC	I
L
bhhqk288F#3RXXf5EF
L 
L 
Ls   AB		Bc            	      N   t        j                         \  } }t        j                  t        d      5  |j                  t        j                  d      t        j                  d      t        j                  j                  dd             ddd       t        j                  t        d      5  |j                  t        j                  d	      t        j                  d      t        j                  j                  dd             ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)
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\)rt  r   rT  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  rl   rt   rm   r   r.   s     r%   ,test_pcolorfast_regular_xy_incompatible_sizer
  #  s     llnGC	 ?
@ 	biilBIIbM299>>"b3IJ
@
 
 <
= 	biimRYYq\299>>"b3IJ
= 
=
@ 
@

= 
=s   AD.ADDD$c                     t        j                  dddd      \  } }|d   j                  d       |d   j                  d       |j                  D ],  }|j                         dk(  sJ |j                         dk(  r,J  |d   j                  d       |d   j                  d       |j                  D ],  }|j                         dk(  sJ |j                         dk(  r,J  y )Nr<   Tr	  r  r0  rz  r[  )r)   r   r\  r  r  
get_yscale
get_xscaler/   r  r$   s      r%   test_shared_scaler
  8  s    ||Aqd;HCIIhh}}%'''}}%'''  I"I"hh}}(***}}(*** r'   c                     t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)NTr  rd  )r   r   r   r)   rm  r   r'   r%   test_shared_boolr
  J  sO    	y	!4  
"	y	!4  
"	! 
"	!	!	!s   A2A>2A;>Bc                  X    t        j                  t        j                  ddg             y)z4Violin plot should handle point mass pdf gracefully.r   N)r)   r'  rl   rQ  r   r'   r%   test_violin_point_massr
  Q  s    NN288Q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 )
Nr4   r   r5   r	  r;   )r;   r;   r;   r;   r;   )r<   r   rS  rT  )r
   rl   rt   r   )base_xy
err_cyclerxerr_cyyerr_cyr
  	xerr_only	yerr_onlyboth_errs           r%   generate_errorbar_inputsr
  V  s   S299Q<.)F3,EEG /!0!0!2 "
 " $ " #J VZ(GVZ(GS2$&rd"33FRJ'(*0"d*DEE'!I'!I 7*H6Y66X666r'   c                 p    t        j                         } |j                  di | }|j                          y )Nr   )r)   rf  rO  rl  )r	  r$   ebs      r%   test_errorbar_inputs_shotgunr
  l  s)    	B		v	BIIKr'   dash_offsetc                      t        j                         \  } }t        j                  dd      }t        j                  |      }t        ddd      D ]  }|j                  |||z  |dfdd        y )	Nr   r   r   r<   r   r   r   rI  )r!  rN  r   )r)   r   rl   r  	ones_liker   r   )r/   r$   r4   r5   rS  s        r%   test_dash_offsetr
  s  s_    llnGC
ArA
QA1c1
1Q3Ax=Qc: r'   c                     t        j                         \  } }|j                  dd       |j                  j	                         }|d   d| j
                  z  k(  sJ |j                  dd       |j                  j	                         }|d   dk(  sJ |j                  dd        |j                  j	                         }|d   t        j                  d   dz  | j
                  z  k(  sJ y )	Naardvarkr@  r	  ro  g?r  zaxes.titlepadr=  )r)   r   r7   titleOffsetTrans
get_matrixr*  rY   r   )r/   r$   r  s      r%   test_title_padr
  |  s     llnGCLLL%
&&(AU8	CGG+,,,LLL$
&&(AU8r>>LLL&
&&(AU8
++O<sBSWWLMMMr'   c                  R   t        j                         \  } }dt         j                  d<   |j                  d       |j                  dd       |j                  dd       d|j	                  d      k(  sJ d|j	                  d      k(  sJ d|j	                  d      k(  sJ t        j                  t              5  |j	                  d       d d d        t        j                  t              5  |j                  dd       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)	Nr\   zaxes.titlelocationr
  rS   rB   rE   r  fail)r)   r   r   r7   	get_titler   r   r  r.   s     r%   test_title_location_roundtripr
    s    llnGC)1CLL%&LLLLVL$LLgL&R\\f\----bllwl////(3333	z	"
 
#	z	"
V' 
#	" 
#	"	"	"s    D4DDD&r  c                 R   t        j                  dd|       \  }}|d   j                  dd       |d   j                  dd       |j                          |d   j                  j                         \  }}|d   j                  j                         \  }}||cxk(  rd	k(  sJ  J y )
Nr<   r;   r  r   r  ir
  r  r   )r)   r   r7   r	  r3   r	  )r  r/   r  r4   r  rU  s         r%   test_title_location_sharedr
    s    ||Aq0HCFSc"FSc" FLL%%'EArFLL%%'EAr?s???r'   z
loglog.pngc                      t        j                         \  } }t        j                  dd      }|j	                  ||dz  d       |j                  dd       |j                  d	dd
       y )Nr;   rT  r   r   rP  rb  r<   )r	  r  r  r  )r	  r  r  )r)   r   rl   rt   r  rz	  )r/   r$   r4   s      r%   test_loglogr
    sY    llnGC
		!RAIIaA!INN"AN&NN"AWN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(  r3|r|j                  ||dz  d	|       )|j                  ||dz  d	       A|j                  ||dz  d	       |r|j                  d|       |sp|j                  d|        y )Nr   r;   rT  g      rg  r  r2  )r  r  r   r<   )r  )rN  nonpositiverP  r0  )r   )
r)   r   rl   rt   r  r   r  r  r\  r  )r/   r  r4   r5   mcymcxr$   s          r%   test_loglog_nonposr    s     ||Aq!HC
		!RA	1AAaDAaDg&:1E!hh(
cB#:		!QTaS	9		!QTa	(IIaA!I$e5e5(r'   c                     t        j                         \  } }|j                  g d       |j                         d   dk7  sJ t        j                         \  } }|j	                  g dg d       |j                         d   dk(  sJ t        j                         \  } }|j                  g dg d       |j                         d   dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         d   dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ y )Nr-  r   )r;   r;   r;   r;   r
  rH  r   )r  g      #@)r)   r   r   r
  r  r  r
  rn  rl   r  r  r  rt   r   r.   s     r%   test_axes_marginsr    s   llnGCGGL==?1"""llnGCFF<&==?1"""llnGCGGL,'==?1"""llnGCIIbhhx !==?g%%%==?g%%%llnGCMM"((8$%==?g%%%==?g%%%llnGCGGBIIbM==?1"""llnGCIIbhhx !==?k)))==?k)))r'   )r  c                 2    d }d }||d| j                      S )Nc                     | j                         }|j                          | j                  dd        | j                  j	                                }|d   dkD  sJ y Nr   r  r   r%  )r  rl  r  r]   get_major_locatorr$   r  rL  s      r%   	_helper_xz&shared_axis_remover.<locals>._helper_x  K    hhj


Ar(BHH&&(*urzzr'   c                     | j                         }|j                          | j                  dd        | j                  j	                                }|d   dkD  sJ y r  )r  rl  r  r_   r	  r
  s      r%   	_helper_yz&shared_axis_remover.<locals>._helper_y  r  r'   r"  )param)requestr  r  s      r%   shared_axis_removerr    s"     +GMM::r'   )rf  r   subplots_sharedrR  c                    | j                   dk(  r(t        j                         }|j                         }||fS | j                   dk(  rt        j                         \  }}||fS | j                   dk(  r(t        j                  dddd      \  }}|d   d   }||fS | j                   dk(  r't        j                         }|j                  g d	      }fS )
Nrf  r   r  r<   r  r	  r   rR  r   r   r  r  )r  r)   r   rf  r   rR  )r  r/   r$   r	  s       r%   shared_axes_generatorr    s     }}jjlWWY 7N 
*	$,,.R 7N 
+	+ll1aeDVAYq\ 7N 
*	$jjl\\*+7Nr'   c                     | \  }} ||       y r  r   )r  r  r/   r$   s       r%   test_remove_shared_axesr    s    #GCr'   c                      t        j                  dddd      \  } }|d   d   }|d   d   j                         }|j                          |j	                  dd       t        |d   d   j                         |       y )Nr<   r  r	  r   r;   r   )r)   r   r   rl  r  r   )r/   r	  r$   	orig_xlims       r%   test_remove_shared_axes_relimr    so    ,,q!E%@KC	1Bq	!%%'IIIKKK1vay|,,.	:r'   c                     t        j                  ddd      } t         j                  j                  | j                  | j                  f      }t        j                  dddd      \  }\  }}|j                  dd	       |j                  dd	       |j                  | | |       |j                  | | |       |j                         s|j                         rJ |j                         s|j                         rJ |j                         |j                         cxk(  rd
k(  sJ  J |j                         |j                         cxk(  rd
k(  sJ  J y )Nir8  r$  r<   r;   Tr	  r  )r  r  )rl   rt   rm   random_sampler  r)   r   r  r  r  rY  r[  r   r   )r
  r  r/   r  r  s        r%   test_shared_axes_autoscaler    s   
		#r2A
		 01All1aTBOC#sLLLLKK1aKK1a$$&s/D/D/FFF$$&s/D/D/FFF<<>S\\^<}<<<<<<<>S\\^<}<<<<<r'   c                     t        j                         \  } }|j                  j                         j	                  d       |j                  dd       |j                  d       | j                  j                          t         |j                  j                                      dk(  sJ |j                  dd       | j                  j                          t         |j                  j                                      dkD  sJ y )Nr  r  r   r  r  r<   )r)   r   r_   r	  
set_paramsr  r	  r  r  r  r  r.   s     r%   test_adjust_numtick_aspectr!  /  s    llnGCHH ++&+9KK4MM'JJOO+rxx))+-.!333KK4JJOO+rxx))+-.222r'   c                      t        j                         j                  dd      } | j                  D ]4  }g |j	                         g |j                         cxk(  r	g dk(  r1J  J  y )Nr2  rH  )r)   r   r   r  rr  rf
  rk	  s     r%   test_auto_numticksr#  ;  sX    
**,

1
%Chh!!%7r}}%7F;FFFFF r'   c                     t        j                         \  } }dt        j                  d<   |j	                  ddgddg       t        j                  |j                               t        j                  ddd	      k(  j                         sJ t        j                  |j                               t        j                  d
dd      k(  j                         sJ y )Nround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<r   irR  r2  r;  r   )r)   r   r   r   r  rl   log10rr  rt   r  rf
  r.   s     r%   test_auto_numticks_logr)  B  s     llnGC*9CLL&'IIuclUBK(HHR]]_%3A)>>CCEEEHHR]]_%3A)>>CCEEEr'   c                  V    t        j                         \  } }|j                  g d       y )N)r   r   )r)   r   r}  r.   s     r%   test_broken_barh_emptyr+  L  s    llnGCNN2x r'   c                     t        j                         \  } }t        j                  dddddd      }|j                  |t        j                  d      fgddg      }|j                         d   j                  d   t        j                  |      k(  sJ |j                         d   j                  d	   t        j                  |      d
z   k(  sJ y)z9Check that timedelta works as x, dx pair for this method.rx  rT  rs  r   r;   ry  r<   r  r<   r   gUUUUUU?N)	r)   r   r;  r}  r  r  verticesr=  r>  )r/   r$   d0pps       r%   test_broken_barh_timedeltar1  Q  s    llnGC			4Q1a	0B	"h00q9:;aV	DB<<>!%%d+vr/BBBB<<>!%%d+vr/BV/KKKKr'   c                     | j                  dd      }t        j                  d      }t        j                  j	                  dd      }t        j                         \  }}|j                  |||       y )Nz
2000-01-01r   )r  r  r  rs  )r  rl   rt   rm   r   r)   r   r  )r  timedepthr  r/   r$   s         r%   test_pandas_pcolormeshr5  Z  sT    ==r=2DIIbME99>>"a DllnGCMM$t$r'   c                 f   t        j                  ddd      }t        j                  t        t	        |                  }| j                  ||d      }t        j                         }|t        j                  |j                        dz  dk(     j                         }|j                  dd	|
       y )Nz2005-02z2005-03r4  r  )r  r$  r<   r;   r  r$  rc  )rl   rt   r  r   r  r  r)   rf  rQ  r  rf  r   )r  r  r$  r  r$   without_zero_indexs         r%   test_pandas_indexing_datesr8  c  s    IIi/BEVVE#e*%&F	8	9B	BBHHRXX.2a78==?GGGX$6G7r'   c                     | j                  t        j                  j                  d      g dg d      }t	        j
                         \  }}|j                  dddd	|
       y )N)r   r2  r  )r4   r5   xeyer^  )columnsr  r4   r5   r:  r;  r  )r  rl   rm   uniformr)   r   rO  r  s       r%   test_pandas_errorbar_indexingr>  n  sV    	bii''V'44+ 
 
-B llnGCKKSt$RK8r'   c                     | j                  g dg dd      }t        j                         \  }}|j                  |j                  |d          y )Nr  )rg  r;   r<   )XXYYrA  )r  r)   r   r   r  r  s       r%   test_pandas_index_shaperB  v  s:    	Yi8	9BllnGCGGBHHbhr'   c                     | j                  g d      }|j                  dd  }t        j                         \  }}|j	                  |       y )N)
r;   r<   r<   r   r   r2  r2  r2  r2  r   rc  r;   )r  ilocr)   r   r  )r  ser_1ser_2r/   r$   s        r%   test_pandas_indexing_histrG  |  s<    II9I:EJJqrNEllnGCGGENr'   c                 0   | j                  t        d      t        d      d      }t        j                  d      \  }}|j	                  |j
                  |d   dk(  df   |j
                  |d   dk(  df   d       |j                  j                          y )Nr<   rb  r;   r   r'  r\   rW  )r  r   r)   r   r  rC   r  r  r  s       r%   test_pandas_bar_align_centerrI    s    	E!H584	5Bll1oGCFF266"S'Q,#$66"S'Q,#$   JJOOr'   c                  >   t        j                         j                  } i | j                  d      }i | j                  d      }| j	                  | j
                  d      }| j	                  | j                  d      }||k(  sJ ||k(  sJ | j                  dddd	
       i | j                  d      }i | j                  d      }| j	                  |      }| j	                  |      }||k7  sJ | j
                  |k(  sJ ||k7  sJ | j                  |k(  sJ y )Nr	  r  r  T)reverser   r6  r	  r   )r	  r	  r	  r  )r)   rm  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_paramsrW    sb   ;;=D%L(<(<7(<(K%L"%L(<(<7(<(K%L"55T 6  55T 6  "@@@@"@@@@2%#(  8 "ID$8$8w$8$G!H!HD$8$8w$8$G!H112LMO112LMO)-GGGG/111)-GGGG/111r'   c                     t        j                         } | j                  j                  ddd       | j                  j                  d   j
                  dk(  sJ | j                  j                  d   j                  j                         dk(  sJ | j                  j                  d   j                  j                         dk(  sJ | j                  j                  d   j                  j                         dk(  sJ y )	Nr   r6  r	  )r	  r	  r	  r   r  rI  r@  )
r)   rm  r_   rN  r	  r	  	tick1liner  r7  r=
  )axis_1s    r%   .test_axis_set_tick_params_labelsize_labelcolorr[    s    [[]F
LL  2%+0 ! 2 <<""1%++s222<<""1%//99;sBBB<<""1%,,5574???<<""1%,,668EAAAr'   c                     t        j                         } | j                  dddd       | j                  | j                  fD ]  }|j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  rJ  y )Nr'  r   r   r  )r	  r	  r	  r	  r   r  )r)   rm  rz	  r]   r_   r	  r	  r  get_linewidthr  r  )r$   r$  s     r%   test_axes_tick_params_gridlinesr^    s    	BNNc!"+  -"(("q!**446#===q!**88:a???q!**446#===q!**88:dBBB	 #r'   c                  $   t        j                         } | j                  ddd       | j                  ddd       | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ y )NFTr	  )	labelleft
labelrightr  r  r   )	r)   rm  rz	  r_   r	  r7  r  label2r	  r  s    r%    test_axes_tick_params_ylabelsiderc    s    	BNNUt   "NNUt   " 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r'   c                  $   t        j                         } | j                  ddd       | j                  ddd       | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ y )NTFr	  )labeltoplabelbottomr  r  r   )	r)   rm  rz	  r]   r	  r7  r  rb  r	  r  s    r%    test_axes_tick_params_xlabelsiderg    s    	BNNDe   "NNDe   "
 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r'   c                      t        j                         j                         } | j                  t	        d      d       \  }|j                         dk(  sJ y )Nr   rK  rI  )r)   r   r   r   r   r  )r$   lns     r%   test_none_kwargsrj    sE    				 B
''%)t'
,CB$$$r'   c                      g d} t        j                  t        j                  | t        j                        g dd      }t        |j                  |       D ]  \  }}|j                  d   |k(  rJ  y )Nr-  r  )r<   r   r2  r   rF  rW  r   )r)   r  rl   rQ  uint8r  r>  r  )r  r'  r  r4   s       r%   test_bar_uint8rm    sW    	B288,l&IA!))R(
xx{a )r'   zdate_timezone_x.pngr   c                     t        d      D  cg c]9  } t        j                  ddd| t        j                  j	                  d            ; }} t        j                  d       t        j                  dd	d	       t        j                  t        j                        5  t        j                  |dgdz  d
       d d d        t        j                  dd	d       t        j                  t        j                        5  t        j                  |dgdz  d
       d d d        y c c} w # 1 sw Y   nxY w# 1 sw Y   y xY w)Nr     r<   r  Canada/Easternr   tzinfor  r  rH  r;   )tzUTCr   r;  r  rt  gettzr)   r   rm  r   r  r   ri  rj  r4   
time_indexs     r%   test_date_timezone_xrz    s    
 !8%#a ##D!Ra+3;;+<+<=M+NP#  %
 JJx KK1a	c66	7j1#'.>? 
8 KK1a	c66	7j1#'e4 
8	7% 
8	7
 
8	7s   >D#D(=D4(D14D=zdate_timezone_y.pngc                     t        d      D  cg c]9  } t        j                  ddd| t        j                  j	                  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        t        j                  dd	d       t        j                  t        j                        5  t        j                  dgdz  |dd
d       d d d        y c c} w # 1 sw Y   pxY w# 1 sw Y   y xY w)Nr   ro  r<   r  rp  rq  rs  rH  r;   FT)rt  xdateydateru  rv  rx  s     r%   test_date_timezone_yr~    s    
 !8%#a ##D!Ra+3;;+<+<=M+NP#  %
 JJx KK1a	c66	7qcAgz.>eSWX 
8 KK1a	c66	7qcAgze5M 
8	7% 
8	7
 
8	7s   >D'D,?D8,D58Ezdate_timezone_x_and_y.pngc            
      n   t         j                  j                  } t        d      D cg c]  }t        j                   ddd||        }}t	        j
                  d       t	        j                  ddd       t        j                  t        j                        5  t	        j                  ||d	d
       d d d        t	        j                  ddd       t        j                  t        j                        5  t	        j                  ||dd
       d d d        y c c}w # 1 sw Y   kxY w# 1 sw Y   y xY w)Nr   ro  r<   r  rq  rs  rH  r;   ru  T)rt  r}  z
US/Eastern)r;  timezoneutcr   r)   r   rm  r   r  r   ri  rj  )ru  r4   ry  s      r%   test_date_timezone_x_and_yr    s     



C 8%#a ##D!RaD#  % JJx KK1a	c66	7j*dC 
8 KK1a	c66	7j*TJ 
8	7% 
8	7
 
8	7s   !DD7D+D(+D4zaxisbelow.pngc                     t        j                         j                  ddd      } d}t        | |      D ]  \  }}|j	                  dddd       t        j                  d	d
      }|j                  |       |j                  ddd       |j                  dddd       |j                  d d  j                  d       |j                  |       |j                         |k(  rJ  y )Nr   T)r  r  re  )Fr  TrH  r   r  r  r  rL  rM  r?   rI  )r   r   r9  F)rA   rR   rS   rE   )r)   r   r   r  r   r  r	  r  r  rz	  rv	  r    set_axisbelowget_axisbelow)r  settingsr$   settingcircs        r%   test_axisbelowr  (  s    
 **,

aT

BC$H3)G
Rs3vS1
T
cSA6
5! 	 	0
		!  '
!!W,,, *r'   c                     t         j                  j                  d       t        j                  d      \  } }|j	                         }|j                  d      }|j                  d      }| j                  j                          | j                  j                         }|j                  |      j                  }|j                  |      j                  }||z
  }t        j                  |d      sJ y )Nr   r
  )r*  Xlabel2Titler   )r)   r   r   r   r  r*   r7   r  r  get_rendererget_window_extentrZ  r  rl   isclose)	r/   r$   r  xlabel2r3   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r%   test_titletwinyr  <  s    IIMM'llr"GC
((*CnnY'GLL!EJJOOzz&&(H++H588M//9<<O_,F::fa   r'   c                     t        j                         \  } }| j                  d       |j                         }|j	                  d       |j	                  d       |j                  d       d}|j                  j                  |       | j                  j                         }|j                  |       |j                  j                         |k(  sJ y )Nr  )rA   Xlabelr  r  )r   g(\?)r)   r   r  r  r*   r7   r3   ry	  r  r  _update_title_positionr	  )r/   r$   r  r   r  s        r%   test_titlesetposr  K  s    llnGCC 
((*CMM(NN9LL
CHH#zz&&(Hh'88  "c)))r'   c                  (   d t         j                  d<   t        j                         \  } }|j                  j                  d       |j                  d       | j                  j                          |j                  j                         d   dkD  sJ y )Naxes.titleyrA   
xlabel topr;   p=
ף?)r   r   r)   r   r]   r   r7   r  r  r3   r	  r.   s     r%   test_title_xticks_topr  Z  sk    "&CLLllnGCHH&LLJJOO88  "1%,,,r'   c                     d t         j                  d<   t        j                         \  } }|j	                  ddddd       |j                  d       | j                  j                          |j                  j                         d   dkD  sJ y )Nr  r4   Tr$  rR   rA   rf  re  r  r;   r  )
r   r   r)   r   rz	  r7   r  r  r3   r	  r.   s     r%   test_title_xticks_top_bothr  d  sv    "&CLLllnGCNNDdT  KLLJJOO88  "1%,,,r'   zleft, center))rS   r   )r   r\   )rS   r\   )zleft title movedzcenter title keptzboth titles alignedc                    d t         j                  d<   t        j                         \  }}|j	                  d       |j                  | d       |j                  |       |j                          | r%|s#|j                  j                         d   dkD  sJ y | s%|r#|j                  j                         d   dk(  sJ y |j                  j                         d   }|j                  j                         d   }|dkD  sJ ||k(  sJ y )Nr  g   vH7BrS   rB   r;   r   )
r   r   r)   r   r  r7   r	  _left_titler	  r3   )rS   r\   r/   r$   yleftr  s         r%   test_title_above_offsetr  o  s     #'CLLllnGCKKLL6L"LL F~~**,Q/#555fxx$$&q)S000++-a0(('')!,s{{%r'   c                  *   d t         j                  d<   t        j                         } | j	                  g d      }|j                  ddddd       |j                  d      }| j                  j                          |j                         d   dk(  sJ y )	Nr  )r   r  r  r   r4   Tr  Boor;   r   )
r   r   r)   r   rR  rz	  r7   r  r  r	  )r/   r$   tts      r%   test_title_no_move_off_pager    s     #'CLL
**,C	+	,BNNDdT  K	e	BJJOO??Q3&&&r'   c                  h   d t         j                  d<   t        j                         \  } }|j	                  d       | j                          |j                  j                         d   dk(  sJ |j                  g d       | j                          |j                  j                         d   dk(  sJ y )Nr  r  r;   )r   r;   r;   r   rq  )	r   r   r)   r   r7   r	  r3   r	  
inset_axesr.   s     r%   test_title_inset_axr    s    "&CLLllnGCLL 88  "1%***MM.! 88  "1%,,,r'   c                      t        j                         \  } }|j                  g d       |j                  j	                  d       |j                  j                         j                         dk(  sJ y )Ng   @Ag   eAg   FAr6  )r	  )r)   r   r   r_   rN  get_offset_textr  r.   s     r%   test_offset_label_colorr    sW    llnGCGG$%HH.88##%//1U:::r'   c                  r   t        j                         \  } }|j                  g d       |j                  j	                  dd       |j                  j                         j                         sJ |j                  j	                  d       |j                  j                         j                         rJ y )Nr  FT)label1Onlabel2On)r  )r)   r   r   r_   rN  r  r  r.   s     r%   test_offset_text_visibler    s    llnGCGG$%HHed;88##%11333HHe,xx'')557777r'   c                      t        j                         \  } }|j                  dt        j                  ddg      z   dz         | j
                  j                          y )Nr;   r   g-q=gqىE)r)   r   r   rl   rQ  r  r  r.   s     r%   test_large_offsetr    sB    llnGCGGQ1f+&&%/0JJOOr'   c            
      J   t        j                         \  } }t        ddd      D cg c]  }t        j                  dddd|       }}t	        j
                  ddt        |            }t	        j
                  dd	t        |            x}}|j                  ||||       y c c}w 
Nr   r+  r   r  rg  r  rR  r   r`  )r)   r   r   r;  rl   r  r  barbsr/   r$   rE  r  r5   ur  s          r%   test_barb_unitsr    s    llnGC<A!R<LM<LqXtQB2<LEM
Aq#e*%AKK2s5z**AHHUAq! N    B c            
      J   t        j                         \  } }t        ddd      D cg c]  }t        j                  dddd|       }}t	        j
                  ddt        |            }t	        j
                  dd	t        |            x}}|j                  ||||       y c c}w r  )r)   r   r   r;  rl   r  r  quiverr  s          r%   test_quiver_unitsr    s    llnGC<A!R<LM<LqXtQB2<LEM
Aq#e*%AKK2s5z**AIIeQ1 Nr  c                  ^   t         j                  } t        j                         \  }}t	        d      D ]x  }|j                  t	        d            \  }|j                  t	        d      t	        d            }|D ]1  } | |j                                | |j                               k(  r1J  z y )Nr   r   )	r  to_rgbr)   r   r   r   r  r  rm  )r  r/   r$   rS  ri  brsbrs          r%   test_bar_color_cycler    s    ^^FllnGC1XggeAhffU1XuQx(B",,.)VB4D4D4F-GGGG  r'   c                     t        j                  dd      \  } \  }}|j                  ddgddg       |j                  ddgddg       |j                  j	                  dd       |j
                  j	                  dd       |j                  d      D ]  }|j                         dk(  rJ  |j                  d      D ]  }|j                         dk(  rJ  |j                  d	d
       |j                  dd       |j                  d      D ]  }|j                         d
k(  rJ  |j                  d      D ]  }|j                         dk(  rJ  y )Nr;   r<   r   r   r  )r  rl  r8  r  r4   5   )r$  r	  r5   r  )r$  rl  r	  )
r)   r   r   r]   rN  r_   r  r;
  rg
  rz	  )r  r$   r  texts       r%   test_tick_param_label_rotationr    sR   \\!Q'NC"cGGQFQFHHaVaVHH6B7HH6B7"""0  "b((( 1"""0  "b((( 1 OOBO/OOrO*##'#2  "b((( 3##'#2  "b((( 3r'   c                     t        j                         \  } }t        d      D ]s  }|j                  t        d      t        d            }t	        j
                  d|       }t        |j                         j                               t        |      k(  rsJ  t        dd      D ]s  }|j                  t        d      t        d            }t	        j
                  d|       }t        |j                         j                               t        |      k(  rsJ  t	        j
                  d      }dD ]_  } |j                  t        d      t        d      fi |di}t        |j                         j                               t        |      k(  r_J  t	        j
                  d      }t        ddgd      D ]  \  }} |j                  t        d      t        d      fi |di}t	        j
                  d|       }t        |j                         j                               t        |      k(  sJ t        |j                         j                               t        |      k(  rJ  y )	Nr   r  r  rI  )r7  r  r   r8  rs  )r  )r)   r   r   r  r  r  tupler  squeezer7  r  r  )	r/   r$   rS  cctargetaledge_targetelface_targets	            r%   test_fillbetween_cycler    s   llnGC1X__U1XuQx01QC)R&&(0023uV}DDD 
 1a[eAha11QC)R&&(0023uV}DDD 
 __S!F2R__U1XuQx=B9=R&&(0023uV}DDD 3 //#&KK6a@2R__U1XuQx=B9=oo!g.R&&(0023u[7IIIIR&&(0023u[7IIII	 Ar'   c                     dt         j                  d<   t        j                         \  } }d}|j                  |       |j	                  ddgddg       |j                         \  }}|j                  j                         }|j                  ||g      \  }}|j                  ddg      \  }}	|	|z
  |z  }
t        ||
z   ||
z
  g||	g       y )Nr  r&  r  r   r   )
r)   r   r   set_xmarginr  r   r]   r  r6  r   )r/   r$   marginxlim0xlim1r6  xlim0txlim1tx0tx1tr+  s              r%   test_log_marginsr    s    *0CLL&'llnGCFNN6KKS	B9%;;=LE5&&(I((%8NFF""B9-HC3Y& EVe^Ve^4sCjAr'   c                     d} t        j                  |       t        j                  |       }}t        j                  | dz         }t        j                         \  }}t	        j
                  t              5  |j                  |||       d d d        t	        j                  d      5  |j                  ||d       d d d        |j                  ||dg| z         y # 1 sw Y   UxY w# 1 sw Y   .xY w)Nr   r;   rV  r  rt  )r   r   r   )	rl   rt   r)   r   r   r   r  r=   r  )r  r4   r5   r  r/   r$   s         r%   test_color_length_mismatchr    s    	A99Q<1qAYYqs^FllnGC	z	"


1a6
" 
#	F	G


1a?
+ 
HJJq!(1,J-	 
#	"	G	Gs   5C(C*C'*C3c                  \    t        j                  dgd       t        j                          y )Nr   Labelr  )r)   r  rK   r   r'   r%   test_eventplot_legendr     s    MM3%w'JJLr'   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        y # 1 sw Y   y xY wr	  )r   r   r)   r  r	  s       r%   test_eventplot_errorsr  %  s/    * 
s%	(t&v& 
)	(	(r	  c                  2   t        j                         \  } }|j                  t        d      d       |j	                  ddt        d      d       |j                  ddgddgd      \  }}|j                         |j                         cxk(  rdk(  sJ  J y )Nr2  r;   r   )rS   r  )r   r   r   rJ  r  )r)   r   r  r   r  rn  )r/   r$   rect1rect2s       r%   test_bar_broadcast_argsr  >  s    llnGCFF58QGGAquQxG*661a&1a&4D6ELE5 E$7$7$9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        t        j                  t              5  t        j
                  t        j                         d d d        t        j                  t              5  t        j                  t        j                         d d d        t        j                  t              5  t        j                  t        j                         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY wr  )
r)   r   r   r   r  r   rl   r  r  r   r   r'   r%   test_invalid_axis_limitsr  I  s    HHaVaV	z	" 
#	z	" 
#	z	" 
#	z	" 
#	" 
#	"	"	"	"	"	"	"s/   $D09$D<>$E$E0D9<EEEr  rZ  r0  r  c                     t        j                         }|j                  g d       |j                  |        |j	                  |       |j                          y )Nr  )r)   rm  r   r\  r  r  )r  r  r$   s      r%   test_minorticks_onr  V  s?     
BGGLMM&MM&r'   c                     t        j                         \  } }|j                  dd       |j                         }|j	                  ddgddg       t        j                         \  }}|j                  dd       |j	                  ddgddg       t        |j                  j                  |j                  j                         y )Nr;   r<   r   r   )r)   r   r  r  r   r   r	  	intervalx)r/   r$   xtwinr0  r  s        r%   test_twinx_knows_limitsr  `  s    llnGCJJq!HHJE	JJ3x!Q ID#KK1HHaX1vu}}..0E0EFr'   c                  >    t        j                  ddgddgdd       y )Nr   r;   rJ  )r!  rN  )r)   r   r   r'   r%   test_zero_linewidthr  o  s    HHaVaV+r'   c                      t        j                         \  } }|j                  g g g d       |j                  g g g d       |j                          y )Nzempty y)rS  r2   zempty x)rT  r2   )r)   r   rO  rK   r.   s     r%   test_empty_errorbar_legendr  t  sB    llnGCKKBRyK1KKBRyK1IIKr'   c                 ~   t        j                  ddd      }|D cg c]  }d|dz  z  d|dz  z  z
  d|z  z   d	z    }}|D cg c]  }t        |       }}|D cg c]  }t        |       }}| j                         j	                  ||       |j                         j	                  ||       y c c}w c c}w c c}w )
Nr  r   r   g@r   r  r<   g\(\@rR  )rl   rt   r   r   r   )r"   r#   rY  r4   rZ  rE  r5   s          r%   test_plot_decimalr  {  s    	3C	 B@B	C1#Q,qAv
%q
03
6B	C RRA  RRA Q"B# 
D  s   !B0B5B:c                     | j                         j                  dddd       |j                         j                  dddd       y )Nr   r   r3  r   )r  r  rt  )r   r   )r"   r#   s     r%   test_markerfacecolor_none_alphar    sB    Qr:As26r'   c                     dt         j                  d<   dt         j                  d<   t        j                         \  } }|j                  | j                  j                               }|j                  d       |j                  | j                  j                               }|j                  |j                  k  sJ |j                  |j                  k  sJ y)z5Test that tick padding gets turned off if axis is offr	  r	  zytick.directionoffN)	r)   r   r   get_tightbboxr  r  r$  rY  rZ  r/   r$   bbbb2s       r%   test_tick_padding_tightbboxr    s    &+CLL"#&+CLL"#llnGC			#**113	4BGGEN


3::224
5C55366>>55366>>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                         \  }}|j                  |||ddddf          |j                  d       |j                          dd	g}d
dg}|d   |d   |d   |d   z
  |d   |d   z
  g}	|j                  |	      }
|
j                  J |j                  j                          t        j                  ddgd	dgg      }t        j                  |
j                   j#                         j%                         |k(        sJ y)z:
    Ensure that inset_ax argument is indeed optional
    r  r  r;   r   r   Nr   r   r   333333@r<   rO  r   )boundsr   )rl   mgridr#  r  ri  r)   r   r  r	  apply_aspectindicate_inset
connectorsr  r  rQ  r  	rectangleget_bbox
get_points)dxdyr5   r4   r  r/   r$   r   r   rq  insetxxs               r%   
test_insetr    s    FB88E!QVR(!QVR() *DAq
q	R"&&a!e,rvvay88AllnGCMM!Q#2#ss($MM"OO ;Ds8DGT!Wd1gQ/a471BCDT*E###JJOO	C9#;  
!B66%//**,77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                         \  }}|j                  |||d dd df          |j                  d       |j                          |j                  g d      }|j                  |||d dd df          |j                  dd	g       |j                  d
dg       |j                  |j                                t        j                  t         j"                        5  |j%                  |      \  }}	d d d        |j&                  j)                          t+        	      dk(  sJ t        j,                  ddgd	dgg      }
t        j.                  j1                         j3                         |
k(        sJ t        j,                  ddgddgg      }
t         j4                  j7                  |j9                         j3                         |
d       y # 1 sw Y   xY w)Nr  r;   r   r   r   r   )r  r  r  r  r   r  r<   rO  r2  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rl   r  r#  r  ri  r)   r   r  r	  r  r  r  r  r	  r   r  r   ri  indicate_inset_zoomr  r  r  rQ  r  r	  r
  r   r   r	  )r  r  r5   r4   r  r/   r$   axin1recr  r  s              r%   test_zoom_insetr    s   FB88E!QVR(!QVR() *DAq
q	2rAaCx(266!944AllnGCMM!Q#2#ss($MM"OO MM01E	Q1SbS#2#X;'	NNC;	NNAs8	R]]_%	c66	7007Z 
8JJOOz?a	C":#;  
!B66#,,.++-3444	FH%H%' 
(BJJ'')2D  : 
8	7s   /I!!I*zinset_polar.pngc                  "   t        j                         \  } }|j                  g dd      }t        |t              sJ t        j                  ddd      }dt
        j                  z  |z  }|j                  ||       |j                  ||       y )N)r   r   r  r  Tr6  r   r<   r  )	r)   r   r  r   r   rl   rt   r	  r   )r  r$   axinsrL  r  s        r%   test_inset_polarr    ss    LLNEArMM0M=EeY'''
		!QAIMEGGE1	JJuar'   c                      t        j                         \  } }|j                  g dd      }t        |t              sJ y )Nr   r   r   r   hammerr  )r)   r   r  r   r   r  r$   r  s      r%   test_inset_projectionr    s4    LLNEArMM.8MDEeZ(((r'   c                      t        j                         \  } }|j                  g dt        j                        }t        |t        j                        sJ y )Nr  )r  )r)   r   r  AAr   r   r  s      r%   test_inset_subclassr!    s<    LLNEArMM.277MCEeRWW%%%r'   
x_inverted
y_invertedc                 n   t        j                  dd      \  }\  }}t        j                  d      }|j	                  ||d       | r|j                          |r|j                          |j                  g d|      }|j                  \  }}}	}
| rdnd}|rdnd}||	j                  d   |j                  d   z
  z  dkD  sJ ||
j                  d   |j                  d   z
  z  dkD  sJ ||j                  d   |j                  d   z
  z  dkD  sJ ||
j                  d   |	j                  d   z
  z  dkD  sJ y)	zR
    Test that the inset lines are correctly located with inverted data axes.
    r;   r<   r   r   )r<   r<   r   r2  r   r   N)
r)   r   rl   rt   r   r  r  r  r  r  )r"  r#  r/   r  r  r4   r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                r%   test_indicate_inset_invertedr+    s7    ll1a(OC#s
		"AHHQ3|S1E7<7G7G4J
KR1FR1F[__Q'*..*;;<q@@@[__Q'*..*;;<q@@@Z^^A&)::;a???[__Q'+//!*<<=AAAr'   c                  6   t        j                         \  } }|j                  d       |j                  g dd       t	        j
                  |j                         j                  d      sJ |j                  d       |j                  g dd       t	        j
                  |j                         j                  d      sJ |j                  d       |j                  g dd	       t	        j
                  |j                         j                  d      sJ y )
Nr  )r   r   rJ  rJ  r   r  r   r   r
  r  active)r)   r   r	  ry	  rl   rG  r	  r  r.   s     r%   test_set_positionr.    s    llnGCMM"OO(O7;;r(..444MM"OO(
O;;;r(..555MM"OO(O9;;r(..444r'   c                     t        j                         \  } }|j                  j                  j	                  | j
                  j                               }|j                  ddd dd       |j                  j                  j	                  | j
                  j                               }t        j                  j                  |j                         |j                         d       y )N)rE  rE  r  r  r	  Fgư>r  )r)   r   rv	  rR   r  r  r  _set_view_from_bboxrl   r   r   r
  r  s       r%   !test_spines_properbbox_after_zoomr1    s    llnGC				+	+CJJ,C,C,E	FB//
))


,
,SZZ-D-D-F
GCJJr}}0@tLr'   c                     t        j                         \  } }d}d}|j                  |       |j                  |d   |d          |j	                  d       t
        j                  j                  ||j                         d       t
        j                  j                  ||j                         d       |j	                  d	       d
}d}|j                         }|j                         }t
        j                  j                  |d   |d   z
  d       t
        j                  j                  |d   |d   z
  d       t
        j                  j                  ||d       t
        j                  j                  ||       |j	                  d       |j                         }|j                         }t
        j                  j                  |d   |d   z
  d       t
        j                  j                  |d   |d   z
  d       t
        j                  j                  ||d       t
        j                  j                  ||d       y )Nr  r   )r   r<   r   r;   r	  )r  r  r   r'  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r)   r   r  r  r0  rl   r   r   r   r   )r/   r$   r   r   rn  new_ylimres_xlimres_ylims           r%   test_limits_after_scroll_zoomr9  #  s   llnGCDDKKKKT!W47K+ >*JJtR[[]?JJtR[[]? >*9H"H{{}H{{}HJJx{Xa[8#>JJx{Xa[8#>JJx>JJx2 ?+{{}H{{}HJJx{Xa[8!<JJx{Xa[8!<JJtXE:JJtXE:r'   c                  0   t        j                         \  } }t        |        |j                  t        j
                  dd       | j                  j                         }t        j                  j                  |j                  |      j                  d       y )Nr;   r  i  )r)   r   r   r  rl   r  r  r  r   r   r  r  )r/   r$   r  s      r%   test_gettightbbox_ignore_nanr;  G  sd    llnGCC GGBFFAuzz&&(HJJr//9??Er'   c                 8   t        dd      }| j                  t        j                  j	                  d      |      }| j                  t        j                  j	                  d      |      }| j                  g d|      }t        j                  |||       y )Nr   rR  r  r  r  )r;   r;   r;   r;   r;   r   r   r   )r   r  rl   rm   r=  r)   r=   )r  r.  r4   r5   r?   s        r%   "test_scatter_series_non_zero_indexr=  O  sx    
B-C
		"))###+3	7A
		"))###+3	7A
		*#	6AKK1ar'   c                  b    t        j                  g g        t        j                  g g g g        y )N)r  r?   )r)   r=   r   r'   r%   test_scatter_empty_datar?  X  s"    KKBKKB"#r'   zannotate_across_transforms.png)r   r  r   c            
         t        j                  ddd      } t        j                  |        t        j                  |       z  }t	        j
                  d      \  }}|j                  | |       |j                  g d      }|j                  d       |j                  j                  d       |j                  j                  d       |j                  d	| d
   |d
   f|j                  d|j                  t        d             y )Nr   r   r  )gQ@r   rH  )rJ  r   r   r   r   Fr   ru  rW  r
  )r
  )r  r  r  r  r  )rl   r  rR  r  r)   r   r   r  r	  r]   r    r_   r  	transDatarB  r  )r4   r5   r/   r$   r  s        r%   test_annotate_across_transformsrB  ^  s     	Ar3A
r
RVVAYAll9-GCGGAqMMM./E	S	KKE"	KKE"KK##'",,%//40  2r'   c                   &    e Zd ZdZdZd Zd Zd Zy)_Translationr;   c                     || _         y r  r  )r{  r  s     r%   r#  z_Translation.__init__s  s	    r'   c                      || j                   z   S r  rF  )r{  r$  s     r%   r6  z_Translation.transformv  s    r'   c                 .    t        | j                         S r  )rD  r  r  s    r%   r{  z_Translation.invertedy  s    TWWH%%r'   N)r}  r~  r  
input_dimsoutput_dimsr#  r6  r{  r   r'   r%   rD  rD  o  s    JK &r'   rD  zsecondary_xy.pnggS㥛?c                     t        j                  dddd      \  } }d }t        |      D ]  \  }}|j                  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                          y )Nr;   r<   r  T)r  rj  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wNr  r  r;   rl   r   r  s    r%   invertz!test_secondary_xy.<locals>.invert  !    [[)q5 *))   &/rT  r   r   	functionsrJ  c                     d| z  S Nr<   r   r  s    r%   r  z#test_secondary_xy.<locals>.<lambda>  s    Ar'   c                     | dz  S rU  r   r  s    r%   r  z#test_secondary_xy.<locals>.<lambda>  s    Qr'   r  c                     | dz  S rU  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  rA   rE   g      @r  )
r)   r   r  r   rl   rt   secondary_xaxissecondary_yaxisrD  rA  )r/   r  rO  nnr$   secaxs         r%   test_secondary_xyr]  }  s     ||Aq'dKHC C.B
		!R "))Ar"237&&E&&Ecff-.co?@cn.@ABc
rQweG|AGdbll+ !r'   c                     t        j                         \  } }|j                  t        j                  dd      t        j                  dd             t        j                  t              5  |j                  dd        d d d        t        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   ~xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)
Nr<   rT  r   c                     d| z  S r
  r   r  s    r%   r  z%test_secondary_fail.<locals>.<lambda>  s    QUr'   rR  rE   rR   errorr  )r)   r   r   rl   rt   r   r   r  rY  rZ  r   r.   s     r%   test_secondary_failra    s    llnGCGGBIIabii2./	z	"
3?< 
#	z	"
7# 
#	z	"
8$ 
#	y	!
3'2 
"	! 
#	"	"	"	"	"	!	!s0   +D$!D0D<E$D-0D9<EEc                  |   t        j                  d      \  } }|j                  t        j                  dd      t        j                  dd             d }|j                  d||f       | j                  j                          | j                  d       t        |j                         j                  g d	       y )
Nr  rH  r<   rT  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wrM  rN  r  s    r%   rO  z%test_secondary_resize.<locals>.invert  rP  rQ  rA   rR  )rg  r2  r
  )r)   r   r   rl   rt   rY  r  r  r  r   r	  r	  )r/   r$   rO  s      r%   test_secondary_resizerd    s    ll7+GCGGBIIabii2./ u(89JJOOBOO%--/EFr'   c                  .   t        j                  d      \  } }|j                  t        j                  dd      t        j                  dd             d }|j                  d||f      }t        |j                  j                         t        j                        sJ |j                          t        |j                  j                         t        j                        sJ |j                  d       t        j                          t        |j                  j                         t        j                        sJ |j                  d	       t        j                          t        |j                  j                         t        j                        sJ y )
Nr  rH  r<   rT  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wrM  rN  r  s    r%   rO  z'test_secondary_minorloc.<locals>.invert  rP  rQ  rA   rR  r0  r[  )r)   r   r   rl   rt   rY  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr\  r  
LogLocator)r/   r$   rO  r\  s       r%   test_secondary_minorlocrl    s7   ll7+GCGGBIIabii2./ u0@AEekk335))+ + +	ekk335..0 0 0MM%HHJekk335((* * *MM(HHJekk335))+ + +r'   c                  l   t        j                         \  } }|j                  d       |j                  d      }|j                  j                  t        j                                | j                  j                          t        |j                  j                         t        j                        sJ y )Nr0  rA   )r)   r   r\  rY  r]   r   r   ScalarFormatterr  r  r   r   r/   r$   r\  s      r%   test_secondary_formatterrp    s    llnGCMM%u%E	KK##G$;$;$=>JJOO'')7+B+BD D Dr'   c                  t    t        j                         \  } }|j                  d      }t        |      dk(  sJ y )NrA   z<SecondaryAxis: >)r)   r   rY  r8   ro  s      r%   test_secondary_reprrr    s4    llnGCu%E;----r'   zaxis_options.pngc            	         t        j                  dd      \  } }t        d      D ]  \  }}|d|f   j                  dd       |d|f   j	                  |       |d|f   j                  t        j                  ddd	d
             |d|f   j                  dd       |d|f   j	                  |       |d|f   j                  t        j                  ddd	d
              y )Nr<   r   )scaledr  imager   r1  )r;   g	@)r   r   r   r3  rI  r	  r;   )r;   g      @)r;   r   )r   rl  r  )r)   r   r  r   r$  r=  r  r	  )r/   rk  rE  options       r%   test_axis_optionsrw    s    Q"IC;<	6 	QT
)QT
QT
hooj8>#O 	P 	QT
	9-QT
QT
hook$8>#O 	P =r'   c                 ~   | j                   j                          | j                   j                         }g }t        |j                  |j
                  g      D ]v  \  }}|j                  |      }|rXt        j                  |j                  |j                  f|j                  |j                  ddddd      }| j                  |       ||gz  }x g }t        g d      D ]  \  }}	|j                  |	   j                  |      }t        j                  |j                  |j                  f|j                  |j                  ddddd      }
| j                  |
       ||gz  } |j                         }t        j                  |j                  |j                  f|j                  |j                  d	d
ddd      }| j                  |       |}|j                  |      }t        j                  |j                  |j                  f|j                  |j                  ddddd      }| j                  |       |}||||fS )zS
    Helper for the tests below that test the extents of various Axes elements
    r  r5   r3  Nr   )r  r  r9  r8  r7  r6  r  )rR   rA   rS   rE   r   r   r  r<   r6  r;   )r  r  r  r  r]   r_   r  r  r  rY  rZ  r  r  r=  rv	  r  )r/   r$   r  bbaxisr[  axxr  axisrbbspinesr   spinerr  bbaxr  bbtbs                  r%   color_boxesr    s    JJOOzz&&(HFbhh12Cx(&&bhhryy$E NN5!2$ 3 H=>AYYq\++H5##UUBEEN"((299W$ 	vRD ? 
			B	bhhryyfE NN5D


8
$C			#**u$E NN5D8T4''r'   c                  4   t        ddi      5  t        j                  dd      \  } }| j                  j	                          t        j
                  |        t        | |      \  }}}}d d d        g dg dg}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d	       H g d
g dg dg dg}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d	       H g d}t        j                  j                  | }	t        j                  |	j                  d	       g d}t        j                  j                  | }	t        j                  |	j                  d	       j                         j                   j                        j                  }
t        |
|j!                         j                  d	       y # 1 sw Y   xY w)N_internal.classic_modeFr  r	  r*  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r<   )decimal     b@-]@     @F8&@r  g     @r  r  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r   r)   r   r  r  ro  r  r  r  Bboxfrom_boundsr   r  r	  transformedtransFigurer  )r/   r$   ry  r|  r~  r  r  r[  r'  targetbbaxbbs              r%   test_normal_axesr    s   	-u5	6,,37R

		#'23';$$	 
7 	3=F 6"A##//<!!((HOOQG #
 	(#(,	F 8$A##//<!!((HOOQG % 7F++V4Hdkk8??AF2F++V4Hdkk8??AF ??((9@@DdB$8$8$:$A$A1MG 
7	6s   AHHc                     t        ddi      5  t        j                  dd      \  } }| j                  j	                          |j                  g g        t        | |      \  }}}}d d d        t              D ]	  \  }}|	J  g dg dg d	g d
g}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d       H g d}t        j                  j                  | }	t        j                  |	j                  d       g d}t        j                  j                  | }	t        j                  |	j                  d       y # 1 sw Y   xY w)Nr  Fr  r	  r  xticklabelsyticklabelsr  r  r  r  r  r4  r  )r        ^@r  r  )r   r)   r   r  r  r   r  r  r  r  r  r   r  )
r/   r$   ry  r|  r~  r  r[  r'  r  r  s
             r%   test_nodecoratorr  ?  s<   	-u5	6,,37R


22.'23';$$	 
7 6"Ayy # 	(#(,	F 8$A##//<(//= % 7F++V4HDKKt<%F++V4HDKKt<5 
7	6s   AE--E7c                  
   t        ddi      5  t        j                  dd      \  } }|j                  g g        |j                  j
                  j                  d       | j                  j                          t        | |      \  }}}}d d d        g dg d	g d
g dg}t        |      D ]C  \  }}t        j                  j                  | }	t        |j                  |	j                  d       E g d}t        j                  j                  | }	t        j                  |	j                  d       g d}t        j                  j                  | }	t        j                  |	j                  d       y # 1 sw Y   xY w)Nr  Fr  r	  r  r  )rk  rd  )r        8@r  gs~8&@r  r  r  r  r4  r  )r  r  r  g     @)r   r)   r   r   rv	  rR   ry	  r  r  r  r  r  r  r  r   r  )
r/   r$   ry  r|  r~  r  targetsr  bbspiner  s
             r%   test_displaced_spiner  ]  s3   	-u5	6,,37R
22.
		%%n5

'23';$$ 
7 	%#(,	G w1##//8dC 2 7F++V4HDKKt<%F++V4HDKKt</ 
7	6s   A>E99F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	                  |       |j
                  j                          t        ||      \  }}}}t        ddg      D ]L  \  }	}
t        j                  j                  | |   |	    }t        ||
   j                  |j                  d       N 	 ddd        y# 1 sw Y   xY w)zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r  r  +e8&@)r  r  r  r  )r  gZӼ8[@r  88&@)g r\a@r  r  r  )r  gqq\@r  r  )g88b@r  r  r  )r	  r	  inoutr  Fr  r	  r  r	  r   r<   r  r4  N)r  r   r)   r   rz	  r  r  r  r  r  r  r   r  )r  dnumdirsr/   r$   ry  r|  r~  r  r[  r   r  s               r%   test_tickdirsr  x  s     /-/<-/F<>	?G   67
d159:llsF;GCNNTN*JJOO+6sB+?(FHdD$aV,C&++77r9JKSM(((//F - ;: 8::s   B4C88D	c                     t        ddi      5  t        j                  dd      \  } }| j                  j	                          |j                  dd       t        | |      \  }}}}t        | |      \  }}}}g d	g d
g}t        d      D ]I  }t        j                  j                  ||    }t        ||dz     j                  |j                  d       K t        j                  dd      \  } }| j                  j	                          |j                  dd       |j                          |j                  ddd       | j                  j	                          t        | |      \  }}}}g dg dg}t        d      D ]I  }t        j                  j                  ||    }t        ||dz     j                  |j                  d       K 	 d d d        y # 1 sw Y   y xY w)Nr  Fr  r	  r  r   r	  )r  r	  )r  g88[@r  r  )gCiq\a@r  r  r  r<   r  r4  r  r   r}
  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@r  )r   r)   r   r  r  rz	  r  r   r  r  r  r   r  r  )	r/   r$   ry  r|  r~  r  r  r  r  s	            r%   test_minor_accountedforr    s   	-u5	6,,37R


Vu5'23';$$'23';$$I79qA"''33WQZ@HQ&&dD 
 ,,37R


Vu5

F'"=

'23';$$G35 qA"''33WQZ@HQ&&dD 1 
7	6	6s   F>GGc                 *   | j                  d      j                  d       |j                  d      j                  d       | j                  d      }|j                  d       |j                  d       |j                  d      j                  d       y )Nrb  Fr  rc  Ton)r   r$  r!   s      r%   test_axis_bool_argumentsr    su     ""5)!!%(			c	"BGGENGGDM!!$'r'   c                      t        j                         \  } }d}d}d}d}|j                  ||||g      }t        |      ||||fk(  sJ ||f|j	                         k(  sJ ||f|j                         k(  sJ y )Nr   r   r  r  r)   r   r$  r  r   r   r/   r$   rj   rk   r	  r	  r  s          r%   test_axis_extent_argr    s    llnGCDDDDWWdD$-.F =T4t4444 $<2;;=((($<2;;=(((r'   c                      t        j                         \  } }d}d}d}d}|j                  ||||      }t        |      ||||fk(  sJ ||f|j	                         k(  sJ ||f|j                         k(  sJ y )Nr   r   r  r  )rj   rk   r	  r	  r  r  s          r%   test_axis_extent_arg2r    s    llnGCDDDDWW$T4W@F =T4t4444 $<2;;=((($<2;;=(((r'   c                  n    t        j                  g dg dgd      \  } }} |d   dk  sJ |d   dk\  sJ y )	Nr  )r   r2  r   r  r  r  r   r;   r   r  )r)   r  r  r  s     r%   test_hist_auto_binsr    s=    9l3&AJAtQ7a<<8q==r'   c                     t        j                  d      \  } \  }}g d}|t        j                  gz   }|j	                  |      \  }}}t        j
                  d      5  |j	                  |      \  }}	}d d d        t        j                  j                  |       t        j                  j                  |	       y # 1 sw Y   JxY w)Nr<   r  r  r  )r)   r   rl   r  r  r   r   r   )
r/   r  r  r  nan_datar  rE  r  nanbinsnanedgess
             r%   test_hist_nan_datar    s    ll1oOC#sDrvvhHXXd^ND%	X	&"xx11 
' JJtW-JJuh/	 
'	&s   B>>Cc                      t        j                  t        j                  j	                  d      ddd      \  } }} |d   dk(  sJ |d   dk(  sJ y )	Nr   r  r  T)r   r  r   r   r;   )r)   r  rl   rm   r   r  s     r%   test_hist_range_and_densityr    sL    "))..,f &6JAtQ7a<<8q==r'   c                  D   t        j                         \  } }g d}|j                  |||dd      }|j                  j                  \  }}}|j
                  D ]F  }|D ]  }|j                  |j                  kD  rJ  |D ]  }	|	j                  |j                  kD  rJ  H y )Nr  r   r   )r4   r  rT  r  r  )r)   r   r  rO  r5  r>  r  )
r/   r$   r4   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r%   test_bar_errbar_zorderr    s     llnGCAffqAaf@G'.'7'7'='=$IxG>>CJJ...  %J$$szz111 & r'   c                      t        j                         \  } }|j                          |j                  ddg       |j	                         dk(  sJ |j                  dg       |j	                         dk(  sJ y )Nr   r  rW  r   ro  )r)   r   r  rb
  r   r.   s     r%   test_set_ticks_invertedr     sa    llnGCOOMM2r(;;=F"""MM2$;;=G###r'   c                     t        j                  d      } | j                         }|j                  ddgddg       |j	                  ddddd	d
       |j                  d       | j                  j                  |j                               }|j                  |j                  z  t        j                  d      k(  sJ y )Nr
  rH  rJ  r  r0  rA  logit)F]tE?g'^P?r;   r	  r  r   r  r   r   r	  r   r<   )r)   r   r   r   r   rS  r  transform_bboxr	  r  r  r   approx)r/   r$   r   s      r%   $test_aspect_nonlinear_adjustable_boxr     s    
**X
&C		BGGRHr2hFF%g  ' JJqM
//
(
():
;C::		!V]]1%5555r'   c                  p   t        j                  d      } | j                  g d      }|j                  ddgddg       |j	                  dddd	d
d       |j                  d       |j                          |j                         t        j                  ddg      k(  sJ |j                         d	k(  sJ y )Nr
  rH  r  rJ  r  r0  )r;   r   r  )gbeF?r  r;   r	  r  r   gS[:XL	@g'In?@)r)   r   rR  r   r   rS  r  r   r   r  r   r.   s     r%   (test_aspect_nonlinear_adjustable_datalimr     s    
**X
&C	&	'BGGRHr2hFF%h 1	  + JJqMOO;;=FMM;*FGGGG;;=----r'   c                     t        j                         \  } }|j                         }|j                  ddg       |j	                  d       |j                         dk(  sJ t        j                         \  }}|j                  d       |j                  ddgddg       |j                  d	d
       | j                  j                          |j                  j                          |j                         }|j                         }|j                         }t        |j                  |j                         t        |j                  |j                         y )Nr  iX  r;   r   r   r<   r  r  r  r	  r	  )r)   r   r  r   set_box_aspectget_box_aspectrS  r	  r  r  r	  r   r	  )r/  r  axtwinr0  r  bb1bbtr  s           r%   test_box_aspectr  )   s    ID#YY[F
KKS	q3&&&ID#KKNHHaVaVNN7uN-KKKK



C



C



Cs{{CKK0s{{CKK0r'   c                  @   t        j                         \  } }|j                  g d       | j                  j	                          |j                  d       t        j                         \  }}|j                  d       |j                  j	                          |j                  g d       | j                  j	                          |j                  j	                          |j                         }|j                         }t        |j                  |j                         y )N)r   r   r3  r   r   )	r)   r   ry	  r  r  r  r	  r   r	  )r/  r  r0  r  r  r  s         r%   test_box_aspect_custom_positionr  D   s     ID#)*KKrID#rKK)*KKKK



C



Cs{{CKK0r'   c                  l   t        j                  ddt        d      d      \  } }| j                  j	                          | j                  j                         }g }|j                  D ]:  }|j                  |      }|j                  |j                  |j                  g       < t        ||d          y )Nr<   r   r;   )r	  T)r  rj  r   )r)   r   r  r  r  r  r  r  rz  r  r  r   )r/   r  r  r	
  r$   r  s         r%   test_bbox_aspect_axes_initr  [   s     ||AqTQ-?/35HCJJOOzz&&(HEhh!!(+bhh		*+  E58$r'   c                  t   t        j                         \  } }t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  t        j                         d d d        t        j                  t        d      5  |j                  t        j                          d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)Nzmust be finite and positivert  r   r   )r)   r   r   r   r  r	  rl   r  r.   s     r%   test_set_aspect_negativer  j   s    llnGC	z)F	G
b 
H	z)F	G
a 
H	z)F	G
bff 
H	z)F	G
rvvg 
H	G 
H	G	G	G	G	G	G	Gs/   D
(D D" !D.
DD"D+.D7c                      t        j                  dd      \  } }|j                  g d       | j                  j	                          |j                          y )Nr;   r  )r)   r   r   r  r  redraw_in_framer.   s     r%   test_redraw_in_framer  v   s<    ll1a GCGGIJJOOr'   c                      t        j                         \  } }| j                  j                  d      J |j	                  d       | j                  j                  d      J y )N)r  r  F)r)   r   r  inaxesr    r.   s     r%   test_invisible_axes_eventsr  }   sS    llnGC::Z(444NN5::Z(000r'   c                      dt         j                  d<   t        j                         } | j                  j	                         }|D ]!  }|j
                  j                         dk7  r!J  y Nr>  zlines.markeredgecolor)r)   r   rk  r]   get_major_ticksrY  get_markeredgecolorr$   rk
  r	  s      r%   "test_xtickcolor_is_not_markercolorr     S    ,3CLL()	BHH$$&E~~113w>>> r'   c                      dt         j                  d<   t        j                         } | j                  j	                         }|D ]!  }|j
                  j                         dk7  r!J  y r  )r)   r   rk  r_   r  rY  r  r  s      r%   "test_ytickcolor_is_not_markercolorr     r  r'   r$  r  )TFNc                    t        j                         \  }}t        j                  d      }t        j                  ddd      }|j                  ||       t        |d|  d      }t        |d|  d      }t        |d|  d      }| |       n|}	 |d	|
       |	 |       k(  sJ |j                  j                          t         |       d	       y )Nr   rd  r   get_autoscale_onr.  limget_r3  )r  )
r)   r   rl   rt   r  r=   r(  r  r  r   )
r$  r  r/   r$   r4   r5   r  set_limget_lim	post_autos
             r%   test_unautoscaler     s     llnGC
		#A
CS!AJJq!r]4&#<=bDc*+GbDc*+G&*l "IKd#(****JJOOwy+.r'   c                 Z   | j                  d      j                  dt        j                  dz  gddg      \  }d|j	                         _        |j                  d      j                  t        j                  dt        j                  dz  d      t        j                  ddd             y )Nr7  r  r   r<   r;   r   e   )r   r   rl   r	  get_path_interpolation_stepsr  )r"   r#   r
  s      r%   )test_polar_interpolation_steps_variable_rr     s    					1	6	62557|aV	LBA(+AJJL%7+00
AruuQw$bkk!Q&<>r'   c                      t        j                         \  } }|j                  dd       | j                  j	                          |j                         dk(  sJ y )Nr   g&.>)r   g	>)r)   r   r  r  r  r   r.   s     r%   test_autoscale_tiny_stickyr     s@    llnGCFF1dOJJOO;;=L(((r'   c                  6   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j	                         }|D ]@  }|j
                  j                         dk(  sJ |j                  j                         dk(  r@J  y )Nr  r	  r   r	  )r)   r   rk  r]   r  rY  r  r7  r  s      r%   &test_xtickcolor_is_not_xticklabelcolorr     |    "*CLL'-CLL#$	BHH$$&E~~'')X555{{$$&&000 r'   c                  6   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j	                         }|D ]@  }|j
                  j                         dk(  sJ |j                  j                         dk(  r@J  y )Nr  ytick.colorr   ytick.labelcolor)r)   r   rk  r_   r  rY  r  r7  r  s      r%   &test_ytickcolor_is_not_yticklabelcolorr     r  r'   c                  j   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ dt         j                  d<   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ y )Nr   r	  r  r	  inherit)r)   r   rk  r]   r
  r  r  s    r%   test_xaxis_offsetText_colorr     s    '-CLL#$	B88((*f444"*CLL'0CLL#$	B88((*h666r'   c                  j   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ dt         j                  d<   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ y )Nr   r  r6  r  r  )r)   r   rk  r_   r
  r  r  s    r%   test_yaxis_offsetText_colorr     s    '.CLL#$	B88((*g555"'CLL'0CLL#$	B88((*e333r'   r  )r  r   r  c                    | t         j                  d<   | t         j                  d<   t        j                         \  }}|j                  j                          t        ddg|j                  |j                  g      D ]H  \  }}|j                         D ]0  }|j                  j                         |j                  |      k(  r0J  J y )Nr	  zytick.labelsizer4   r5   )r   r   r)   r   r  r  r  r]   r_   r  r7  r=
  _get_tick_label_size)r  r/   r$   namer$  r	  s         r%   test_relative_ticklabel_sizesr     s     '+CLL"#&*CLL"#llnGCJJOO3*rxx&:;
d((*D;;'')T-F-Ft-LLLL + <r'   c                      t        j                         } | j                  ddd      \  }}|j                  g dg d       |j	                  dd       |j                         }t        j                  |d	d
g      sJ y )Nr<   r;   r  r  )PF  iJG  iDH  i>I  )r<   r   r<   r   r  r   r  ipI  )r)   r   r   r   r  r   rl   rG  )r/   r  r  r   s       r%   test_multiplot_autoscaler     se    
**,C||Aq|/HCHH)<8KKA<<>D;;teU^,,,r'   c                  :   t        j                         } | j                  d      }| j                  g d|      }|j	                         }| j                  d       |j	                         j                         |j                         k(  j                         sJ y )Nr  )r  r  r   r   r  r   rS   )r)   r   r   rR  r	  r  r
  r  )r/   rq  r  init_poss       r%   $test_sharing_does_not_link_positionsr     s    
**,C
//#
C
,,',
4C!HQ))+x/B/B/DDIIKKKr'   c                    t        j                  g d      }| j                  d      }|d   j                  ddgddg|j	                  d             t        j                  d	      5  |d   j                  ddgddg|j	                  d             d d d        |d   j                  ddgddg|j	                  d             |d
   j                  t        j                  d      |j	                  d             |d   j                  t        j                  d      t        j                  d      |j	                  d             |j                  d      }|d   j                  ddgddg|j	                  d             |d   j                  ddgddg|j	                  d             |d   j                  ddgddg|j	                  d             |d
   j                  t        j                  d      |j	                  d             |d   j                  t        j                  d      t        j                  d      |j	                  d             y # 1 sw Y   xY w)Nr   r   r   r;   r<   r   rV  r  rt  r   r   rM  r2  ro  )rl   rQ  r   r   r   r   r  r=   r  r  rt   r  )r"   r#   r   r  s       r%   test_2dcolor_plotr  !  s   HH_%E


A
CFKKAA%--"3K4	F	GA1v1vr):; 
HFKKAA%--"3K4FKK		"U]]2%6K7FJJryy}biim5==3DJE


1
CFKKAA%--"8K9FNNAq6Aq6U]]7%;N<FKKAA%--"8K9FKK		"U]]7%;K<FJJryy}biim5==3IJJ 
H	Gs   )+II(c                 ~   t        j                  ddt         j                  z  d      }t        j                  |      }|j	                  dddd      }|j
                  D ]  }|j                  ||        | j	                  dddd      }|j
                  D ]$  }|j                          |j                  ||       & y )Nr  r<   r  Tr	  )rl   rt   r	  r  r   r  r   r  )r"   r#   r4   r5   r  r$   s         r%   test_shared_axes_clearr  !  s    
		#qw%A
q	A


1aT

:Chh
1  

Aqd

;Chh


1 r'   c                     t        j                  dddd      \  } }|j                  D ]  }|j                  ddgd        |d   j	                  g d       |j                  D ](  }|j                         |d   j                         k(  r(J  |d   j                  g d       |j                  D ](  }|j                         |d   j                         k(  r(J  y )	Nr<   r  r	  r   zo-r  )r  r   r;   r   )r  r   r<   rO  )r)   r   r  r   rb
  r   rc
  r   r
  s      r%   test_shared_axes_retickr  &!  s    ||Aqu=HChh
A  I*+hh{{}D	 2 2 4444  I*+hh{{}D	 2 2 4444 r'   rH   )rS   r\   rE   c                     t               }|j                         }|j                  dd|        |j                  j	                  d       |j                  j
                  j                         | k(  sJ y )Ntestr;   rG   rE   )r   r   r+   r_   set_label_positionr2   r9
  )rH   r/   r$   s      r%   test_ylabel_ha_with_positionr  5!  sW    
(C	BMM&A"M%HH(88>>  "b(((r'   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr;   r<   r   r   r\   rR   rA   r)   rf  r  	bar_labelr  r^   r
  r$   r  heightsrp  rL  s        r%    test_bar_label_location_verticalr$  >!  s    	Ba&1b'BFF2wE\\% F!9<<BqE71:....!9,,.(:::!9**,888!9<<BqE71:....!9,,.(:::!9**,555r'   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr;   r<   r   r  r   r\   rA   rR   )r)   rf  r  r  r!  r  r^   r
  r"  s        r%   *test_bar_label_location_vertical_yinvertedr&  K!  s    	BOOa&1b'BFF2wE\\% F!9<<BqE71:....!9,,.(:::!9**,555!9<<BqE71:....!9,,.(:::!9**,888r'   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y 	Nr;   r<   r   r  r   rS   r\   rE   r)   rf  r  r!  r  r^   r
  r$   r  r  rp  rL  s        r%   "test_bar_label_location_horizontalr+  Y!  s    	BQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.&888!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r'   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y r(  )r)   rf  r  r  r!  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!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r'   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y 	Nr;   r<   r   r  r   rE   r\   rS   )r)   rf  r  r  r!  r  r^   r
  r*  s        r%   ,test_bar_label_location_horizontal_xinvertedr0  t!  s    	BOOQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r'   c                     t        j                         } | j                          | j                          ddgddg}}| j	                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y r/  )	r)   rf  r  r  r  r!  r  r^   r
  r*  s        r%   -test_bar_label_location_horizontal_xyinvertedr2  !  s   	BOOOOQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r'   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |d      }|d   j                  dk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr;   r<   r   r  r\   
label_typer   r  r)  r*  s        r%   test_bar_label_location_centerr6  !  s    	BQ!RBGGBE\\%H\5F!9<<:%%%!9,,.(:::!9**,888!9<<:%%%!9,,.(:::!9**,888r'   z%test_centered_bar_label_nonlinear.svgc                      t        j                         \  } }|j                  g dg d      }|j                  d       |j	                  dd        |j                  |d       |j                          y )N)r?   r'  r   )r  i  iX  r0  r;   r\   r4  )r)   r   r  r\  r  r!  r  )r  r$   r  s      r%   !test_centered_bar_label_nonlinearr8  !  sV    LLNEArGGO-BCMMM%KK4LL8L4OOr'   c                     t        j                         \  } }d}t        g dg d      D ]2  \  }}|j                  d|||      }|j	                  |d       ||z  }4 |j                  d d       | j                          y )	Nr   r  )r   r  r`  rw  )r2   rS   r\   r4  r  )r)   r   r  r  r!  r  r	  )r/   r$   lastr2   rA  r  s         r%   +test_centered_bar_label_label_beyond_limitsr;  !  sv    llnGCDO\:uuEE
]x8 ; KKb r'   c                     t        j                         } ddgddg}}| j                  ||d      }| j                  |      }|d   j                  |d   |d   dz   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   dz
  fk(  sJ |d   j                         dk(  sJ |d   j                         d	k(  sJ y )
Nr;   r<   r   r  rT  r   r\   rR   rA   r   r"  s        r%   !test_bar_label_location_errorbarsr>  !  s    	Ba&1b'BFF2wQF'E\\% F!9<<BqE71:>2222!9,,.(:::!9**,888!9<<BqE71:>2222!9,,.(:::!9**,555r'   r   r7
  z{:.2f}c                     t        j                         }|j                  ddgddg      }|j                  ||       }|d   j	                         dk(  sJ |d   j	                         dk(  sJ y )	Nr;   r<   r   r  r  r   z3.00z-4.00r)   rf  r  r!  r8  )r   r$   rp  rL  s       r%   test_bar_label_fmtrA  !  so     
BFFAq6Ar7#E\\%S\)F!96)))!97***r'   c                      t        j                         } | j                  ddgddg      }t        j                  t
        d      5  | j                  |d      }d d d        y # 1 sw Y   y xY w)	Nr;   r<   r   r  zstr or callablert  r   r  )r)   rf  r  r   r   r   r!  )r$   rp  r  s      r%   test_bar_label_fmt_errorrC  !  sR    	BFFAq6Ar7#E	y(9	:LLBL' 
;	:	:s   A##A,c                      t        j                         } | j                  ddgddg      }| j                  |ddg      }|d   j	                         dk(  sJ |d   j	                         dk(  sJ y )	Nr;   r<   r   r  r  r  rK
  r   r@  )r$   rp  rL  s      r%   test_bar_label_labelsrE  !  sq    	BFFAq6Ar7#E\\%c
\3F!93&&&!93&&&r'   c                  B   t        j                         } | j                  ddgt        j                  dg      }| j                  |      }|D cg c]  }|j                          c}ddgk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ y c c}w 	Nr<   r   r;   r   r&  r   r-  rR   )	r)   rf  r  rl   r  r!  r8  r  r
  r$   r  rL  r
  s       r%   test_bar_label_nan_ydatarI  !  s    	B661a&2661+&D\\$F"()&QAJJL&)b#Y666!9<<6!!!!9**,888 *s   Bc                  b   t        j                         } | j                          | j                  ddgt        j
                  dg      }| j                  |      }|D cg c]  }|j                          c}ddgk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ y c c}w rG  )
r)   rf  rh  r  rl   r  r!  r8  r  r
  rH  s       r%   !test_bar_label_nan_ydata_invertedrK  !  s    	B661a&2661+&D\\$F"()&QAJJL&)b#Y666!9<<6!!!!9**,888 *s   B,c                     t        j                         \  } }|j                  g dt        j                  ddgg d      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ t        j                         \  } }|j                  g dg dd	t        j                  d
g      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ t        j                         \  } }|j                  g dt        j                  ddgt        j                  t        j                  d
g      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ y c c}w c c}w c c}w )Nr  r;   r<   r  r=  )r   r&  2)r  r  rI  r   r  )r%  r&  rM  )r  r  )	r)   r   r  rl   r  r!  r8  rG  r   )r/   r$   r  rL  r
  s        r%   test_nan_barlabelsrN  !  s   llnGC66)bffa^/6BD\\$F"()&QAJJL&)^;;;;;r{{}j111llnGC66)Yc2663-?6@D\\$F"()&QAJJL&)_<<<;;r{{}k222llnGC66)bffa^26626632G6HD\\$F"()&QAJJL&)^;;;;;r{{}j111 * * *s   G32G8+G=c            	         t        j                         \  } }|j                  t        j                  ddddd             dt        j                  dt
        j                  z  d	z        d
z  z  }t
        j                  j                  t        j                  d|dz    d|dz   f      |j                  j                  d       y )N)r   r   r_  r+  r  r   r{  gffffff?r  rH  r<   gr  r  )r)   r   r  r  Wedgerl   r  r	  r   assert_array_almost_equal_nulprQ  dataLimr  )r/   r$   bots      r%   test_patch_boundsrT  "  s    llnGCLLr3cBC
bffRXc\"A%
%CJJ--
&CH+tSW56

8I8I2Or'   c            	          t        j                  t        d      5  t        j                  dgdgdddd       d d d        y # 1 sw Y   y xY w)	Nz!You passed a edgecolor/edgecolorsrt  r   r  r  rL  r'  )r   r  r7  r8  )r   r  rN  r)   r=   r   r'   r%    test_warn_ignored_scatter_kwargsrV  "  sA    	k@
BQC!SC3#N
B 
B 
Bs   AAc            
      b   t        j                         \  } }t        d      D cg c]-  }|j                  t	        j
                  ||dz               d   / }}|j                  t	        j
                  d      t	        j
                  d            }|j                  t	        j                  d            }|j                  t        j                  ddd            }|j                  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        |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k(  sJ d|j                   z   d
ddg|k(  sJ |j1                          |j                  rJ |j1                          |j                  rJ |j1                          |j"                  rJ |j$                  rJ |j1                          |j&                  rJ |j                   D ]  }|j1                           t/        |j                         dk(  sJ y c c}w # 1 sw Y   AxY w)Nr  r   r   r   r   r  r  r   zout of rangert  r;   r  r<   r   )r)   r   r   r   rl   rt   r=   r   r  r  r  r  r  r"  r  imagesr5  r>  tablesr>
  r   r   
IndexErrorr  rl  )	r/   r$   rE  r5  rw  r  r  r  ri  s	            r%   test_artist_sublistsr\  "  s   llnGC6;Ah?hRWWRYYq!a%()!,hE?
**RYYq\299Q<
0C	288F#	$BLL++FAq9:E771aD C5(((		?rd""">U"""

w&&&yy=>dV### 88A;%("""88B<59$$$	z	8
Ua  
9 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 JJL~~IIKyy=	LLNzz>yy=KKMxx<hh
		 rxx=AS @" 
9	8s   2L	L$$L.c                  <   t        j                  d      } t        j                  d      }t        j                         \  }}|j	                  | |      }t        |      dk(  sJ t        j                         \  }}|j	                  g g       }t        |      dk(  sJ y )Nr   )r   r   r   r;   )rl   r   r)   r   r   r  )r4   r5   r  r$   r  s        r%   test_empty_line_plotsr^  @"  s{    
A
ALLNEAr771a=Dt9>> LLNEAr772r?Dt9>>r'   z
fmt, match))rn  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                         \  }}||j                  dd      }t        j                  t
        d|z   dz         5  |j                  d| |       d d d        y # 1 sw Y   y xY w)Nnotzneither a data key norz\Az\Zrt  r`  rc  )r)   r   replacer   r   r  r   )r   ru  r  r/   r$   s        r%   test_plot_format_errorsrd  N"  s`     llnGCe%=>	z)>	?
#D) 
@	?	?s   A++A4c                     t        j                         \  } }|j                  g dd      }|d   j                         dk(  sJ |d   j	                         dk(  sJ t        j                         \  } }|j                  g dd      }|d   j	                         dk(  sJ t        j                         \  } }|j                  ddgddgdd      }| j
                  j                          |d   j                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  ddgddgdd      }| j
                  j                          |d   j	                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  g dd	      }|d   j	                         d
k(  sJ |d   j                         dk(  sJ t        j                         \  } }|j                  g dd      }|d   j	                         dk(  sJ |d   j                         t        j                  d      k(  sJ |d   j                         dk(  sJ y )Nr  z1.0r   )r   r   r   r   r  r&  r;   r<   k3r  rI  z.C12:r   C12r  )r)   r   r   r  r  r  r  rg
  r8  r  r  r  r
  s      r%   test_plot_formatrh  `"  sS   llnGC779e$D7"666676)))llnGC779c"D73&&&llnGC77Aq6Aq65#.DJJOO7"6666"++-444llnGC77Aq6Aq63.DJJOO73&&&"++-666llnGC779d#D73&&&7#%%%llnGC779g&D73&&&7'//%"88887  "c)))r'   c                     t        j                         \  } }|j                  ddddi       |j                         }| j                  j                          |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  dddddi       |j                         }| j                  j                          |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ y )Nr   r'  r  r<   rc  r   r?   )
r)   r   r   rK   r  r  	get_textsr8  rg
  r  )r/   r$   legs      r%   test_automatic_legendrl  }"  s3   llnGCGGCC8G$
))+CJJOO==?1&&(C///"++-444llnGCGGCcaG)
))+CJJOO==?1&&(C///"++-444"++-444r'   c            	         t        j                  t        d      5  t        j                  g dd       d d d        t        j                  t
        d      5  t        j                  g dg dg dg ddd	g
       d d d        t        j                  t
        d      5  t        j                  g ddg       d d d        t        j                  t
        d      5  t        j                  t        j                  d             d d d        t        j                  t
        d      5  t        j                  ddddddi       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   y xY w)Nz"plot\(\) got an unexpected keywordrt  r  r;   r  zplot\(\) with multiple groupsr  r&  rM  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<   rc  )r   r   r   r)   r   r  rl   r   r   r'   r%   test_plot_errorsrn  "  s    	y(M	Na  
O	z)I	JIy)C:N 
K	z)G	HQC  
I	z)I	J#$ 
K	z)I	Jc33(3 
K	J 
O	N	J	J	H	H	J	J	J	Js;   E%E!E))E5*FEE&)E25E>F
c            
         t        j                         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 ]4  }d} ||      j                  }|j                  |j                  f|k(  r4J  y )Nr   rV  r   r;   r<   )rg  r  )clim)r)   r   r   r   r=   r   r   rn  r  r  r  r  r  )r$   plot_methodrp  r  s       r%   	test_climrr  "  s    		!	!	#BBJJa%(eAh?BIIAA/0BII!Q!Q 01BMMQFQF#34BMMQFQF#34 %**		499%---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                         \  }}|j                  t        j                  |             |j                          |j                         d   dk(  sJ y )Nr   r   r;   r  )mpathr<  r@  CURVE3	CLOSEPOLYr)   r   r  r  r?  rj  r   )r)  codesr  r/   r$   s        r%   test_bezier_autoscalerx  "  s     !WWVVE ZZZZZZZZ!!#E 	

5% AllnGCLL##A&'LLN ;;=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                         \  }}|j                  t        j                  |             |j                          |j                         dY   |k  sJ |j                         dZ   |k\  sJ |j                         dY   |k  sJ |j                         dZ   |k\  sJ y )[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      rr  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr,  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r   g(\տg{Gz?g
ףp=
ǿr  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?rl  g(\?r  gQ?gGz?g=
ףp=?gffffff @r(	  gGz@r  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r;   )rl   rQ  rx  r  rt  r<  r)   r   r  r  r?  rj  r   r   )r)  minxminymaxxmaxyr  r/   r$   s           r%   test_small_autoscaler  "  sQ   HH 	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 66%1+D66%1+D66%1+D66%1+D

5AllnGCLL##A&'LLN;;=t###;;=t###;;=t###;;=t###r'   c                  6   t        j                         \  } }|j                  t        j                  d             t        d      D ]P  }|j                         |   j                         | k(  sJ |j                         |   j                         | k(  rPJ  y )Nr   )	r)   r   r   rl   rt   r   r  r8  rg
  )r/   r$   rE  s      r%   test_get_xticklabelr  "  s    llnGCGGBIIbMRy!!#C(113#???!!#C(113#??? r'   c                     t        j                  dt              } t        j                  g d      }t        j                  dgdz        }t         j                  | d<   t        j                         \  }}|j                  | ||      }|j                  | ||      }||fD ]  }|^}}	t        j                  |j                         j                         sJ t        j                  |j                               sJ |	D ]V  }
t        j                  |
j                        j                         sJ t        j                  |
j                               rVJ   y )Nr   r  )r   r   r   rz  r   r  r  )rl   rt   r  rQ  r  r)   r   r  r  isfiniter  any	get_widthr  )barx
barheights	barstartsr/   r$   r  hbarsbar_setnanfulrestr'  s              r%   test_bar_leading_nanr  "  s   99Qe$D/*J$"IffDGllnGC66$
965DGGD*9G5E%=VYY'',,...{{6++-...A;;qtt$((***;;q{{}---  !r'   c                 v   t         j                  j                  d       | j                         }|j                         }|j	                  t
        j                  gt
        j                  g       |j	                  dgdg       |j	                  dgdg      j                          |j	                  dgdg       y )Nr   r;   )r   r   r   r   r  rl   r  rl  r  s       r%   test_bar_all_nanr  #  s    IIMM'!GFKK266(#KKaS
JJsQC!
JJsQCr'   zextent_units.pngc            	         t        j                  dd      \  } }t        j                  dd      }t        j                  dd      }t	        d      D cg c]  }t	        d      D cg c]  }||z   	 c}  }}}|d   j                  d       |d   j                  |dd	d
||gt        j                  d         }|d   j                  d       |d   j                  |d||d	d
gt        j                  d         }|d   j                  j                  t        j                  d             |d   j                  |d||||gt        j                  d         }|d   j                  j                  t        j                  d             |d   j                  d       |d   j                  |dt        j                  d         }|j                  ||||g       |d   j                  j                  t        j                  d             |d   j                  d       t        j                   t"        d      5  |j                  dd||gd       d d d        y c c}w c c}}w # 1 sw Y   y xY w)Nr<   z
2020-01-01r\  z
2020-01-11r   r  zDate extents on y axisr   r;   rT  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%drW  zDay of Jan 2020)r[	  rz  )r   r   z set_extent\(\) got an unexpectedrt  r  Fr  )r)   r   rl   rh  r   r7   r   r   r  r]   r   r=  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastrS  rE  arrr  s           r%   test_extent_unitsr  #  s=   \\!QFAs|S1JlC0I-22Y
7Yr#AAaC#YC
7I01	T		#g"#RY!?"}}X6 
 
8B IBC	T		#g",iB!?"}}X6 
 
8B IOO''(<(<T(BC	T		#g",i",i"9"}}X6 
 
8B IOO''(<(<T(BCIMM*M+	T		#g"}}X6 
 
8BMM9j)Z@AIOO''(<(<T(BCIMM*M+	y(K	L
q"j)45A 
M	L5 $
74 
M	Ls$   I$&I2I$>I*I$*I3c                  T   t        j                         \  } }|j                  g g g g       }|j                  dgg      }||gz   D ]&  }|j                  |u sJ |j                         | u r&J  |j                          ||gz   D ]"  }|j                  J |j                         "J  y r
  )r)   r   r   r   rk  
get_figurer  )r/   r$   r5  rp  arts        r%   %test_cla_clears_children_axes_and_figr  B#  s    llnGCGGBB#E
))aSE
Cu}xx2~~~~3&&&  HHJu}xx~~''' r'   c                      t        j                         \  } }|j                  g d|      }|j                         }|j	                          |j                  dd       y )N)r;   r   r   r;   rd  rp  r|  rt  )r)   r   r  r  rl  r   )r/   r$   marginalmarginal_twins       r%   test_child_axes_removalr  O#  sI    llnGC}}]2}6HNN$MOOFFhF'r'   c                      d } d}t        j                  t        |      5  d}t        j                  j
                  j                  |d i d|        d d d        y # 1 sw Y   y xY w)Nc                       yr  r   r   r'   r%   r  z5test_scatter_color_repr_error.<locals>.get_next_colorY#  r  r'   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'rt  zred
r<   r  )r   r   r  r   rk  r   r  )r  msgr?   s      r%   test_scatter_color_repr_errorr  W#  sY    8  
z	-//tBa^ 	0 	M 
.	-	-s   1AA$c                  
   t        j                         \  } }|j                  d       |j                  t	        d      dd      \  }t        j                         5 }| j                  |d       d d d        y # 1 sw Y   y xY w)Nr   Tr;   )r  r  r  )rw  )r)   r   set_rasterization_zorderr   r   ry  rz  r{  )r/   r$   ri  r'  s       r%   &test_zorder_and_explicit_rasterizationr  e#  s^    llnGC"
''%(tA'
6CB	Ae$ 
s   A99Bzpreset_clip_paths.pngc            	      R   t        j                         \  } }t        j                  j	                  ddgddgddgddggdddd      }|j                  |       t        j                  j                  d	d
d|      }|j                  t        j                         g       |j                  |       t        j                  j                  d	ddd|      }|j                  |       t        j                  j	                  ddgddgddggddddd|      }|j                  |       |j                  dddddid|       t        j                  j	                  ddgddgddgddggddddd|      }| j                  |d       |j                  dd       |j                  dd       y )Nr;   r   r   z#ddffddz#00ff00r<   r   )r7  r8  r9  r  rp  r  T)clip_onr  )r  r  rL  )r   r  r  rj  z#beefc0r   z#faded0)r7  r  r8  r9  r  r  r!  )ri  ri  )r   rk  r   rI  )r  r  r  r  r  r5   )r7  r8  r9  r  r  r  r  )r)   r   r   r>  Polygonr  r5  r   set_path_effectsr   withTickedStroker=  r  r  r  )r/   r$   polyr  poly2poly3s         r%   test_preset_clip_pathsr  m#  s    llnGC;;
Q!Q"a1b'*iq  5D LL99GZND;779:;MM$99G\d&*  ,DMM$KK
a1a&1e*%#q$$   HE MM% KKn[#S>44  I KK
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
                  j                         dk(  sJ | j                  j
                  j                         dk(  sJ | j                  j
                  j                         dk(  sJ y )Nr6  zaxes.labelcolorr  zaxes.labelsizern
  zaxes.labelweight)	r   r   r)   rk  r]   r2   r  get_fontsizeget_fontweightr  s    r%   test_rc_axes_label_formattingr  #  s    &+CLL"#%'CLL!"'-CLL#$	B88>>##%...88>>&&(B...88>>((*f444r'   c                    t        j                  dt         j                   t         j                   t         j                  dddg      }t        t	        |            }| j                  dd      }t        |ddg      D ]  \  }}|j                  ||      }|j                  ddt         j                  j                  |      |d	|d
d
d      }t	        |j                               t        j                  |       j                         dz   k(  sJ t	        |j                               t	        h |t        j                  |                dz   k(  rJ  |j                  dd      }	|	d   j                  t         j                   t         j                   t         j                   ddddt         j                  gt        j                  d      dz  d       |	d   j                  t         j                   dddt         j                  t         j                  gt        j                  g d      dz  dd       |	d   j                  t        j                  d      dz  t         j                   t         j                   t         j                   ddddt         j                  gd       |	d   j                  t        j                  g d      dz  t         j                   dddt         j                  t         j                  gdd       y )Nr   r;   r<   rd  rT   rU   r  rt  )r  rt  Tr  )r  rV   complementarycompressr!  r  rg  r3  )ds)r  r  rR  r%  r   r   r  z	steps-pre)r  r!  )rl   rQ  r  r   r  r   r  ecdfr	   	get_xdataisnanr  r   rt   )
r"   r#   r  r  r   r$   rV   l0l1r   s
             r%   	test_ecdfr  #  sh   88Q"&&"&&!Q:;DCIG  A&Hx*l)CDKWWT{W3WWS#"%%++d*;'$J!,#'$3  @ 2<<>"&;&;&=&AAAA2<<>"c*BD"((4.,A*B&Ca&GGGG E q!$GAJOObffWrvvgw1aBFFCIIaL1$  7AJOObffWaArvvrvv6HH34r9"s  , AJOOBIIaL1$ffWrvvgw1aBFFC"  $ AJOOBHH34r9ffWaArvvrvv6#  -r'   c                  v   t        j                  t              5  t        j                  dt
        j                  g       d d d        t        j                  t              5  t        j                  t
        j                  j                  ddgddg             d d d        y # 1 sw Y   dxY w# 1 sw Y   y xY w)Nr;   r<   TFr  )	r   r   r  r)   r  rl   r  r	   rQ  r   r'   r%   test_ecdf_invalidr  #  sp    	z	"!RVV 
#	z	"aV4-89 
#	" 
#	"	"	"s   &B#!9B/#B,/B8c            
         t        j                         \  } }t        j                  ddt        j                  z  d      }dt        j
                  |      z  }d}|j                  ||d       |j                         |j                         f}|j                  |dd	d
       |j                  |dd||kD  dd|j                                |j                         |j                         f|k(  sJ y )Nr   r2  r  r   g333333?r=  rM  r   r<   r  )r   rN  r  r;   r   )r@  r   r  r6  )r)   r   rl   rt   r	  r  r   r   r   rv   r  r
	  )r/   r$   r4   r5   	thresholdoriginal_limss         r%   test_fill_between_axes_limitsr  #  s    llnGC
		!QY%ABFF1IAIGGAqG [[]BKKM2MJJyASJ9OOAq!1y=!8N8N8P  R KKM2;;=)]:::r'   c                  T   t        j                         \  } }|j                  g dg d       |j                  dd       |j	                  dd       |j                  dd	       t        j                  d
       |j                         D ]  }|j                         d   dk(  rJ  y )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptrL  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r)   r   r   r*   r+   rz	  r3   r  get_fontfamily)r/   r$   r  s      r%   test_tick_param_labelfontr  #  s    llnGCGGL,'MM*XM>MM*]MCNNkN:II#$""$""$Q';666 %r'   c                  d   t        j                         \  } }|j                  dd      }t        j                  |j
                  d   j                         d      sJ t        j                  |j
                  d   j                         d      sJ t        j                  |j                  j                         d   d      sJ t        j                  |j                  j                         d   d      sJ t        j                  |j                  j                  j                         d      sJ y )NrA   r6  rM  rR   r   r	  )r)   r   rY  r  r  rv	  rn  r]   rL  r2   r  )r/   r$   saxs      r%   test_set_secondary_axis_colorr  #  s    llnGC


U%

0Ccjj2@@BEJJJcjj/==?GGGcii779'BEJJJcii779,GOOOciioo7795AAAr'   c                  4   t        j                  ddd      \  } }g }|d   j                  j                  d|j                         |d   j                  j                  d|j                         |d   j                  ddgdd	g
       ||d   |d   gk(  sJ y )Nr<   Tr	  r;   xlim_changedylim_changedr   r   r2  rt  )r)   r   	callbacksconnectr  r   )r/   r  eventss      r%   test_xylim_changed_sharedr  #  s    ||Ad48HCFF^V]];F^V]];FJJQF!QJ(c!fc!f%%%%r'   zaxhvlinespan_interpolation.pngc                  f   t        j                         j                  d      } | j                          | j	                  dd       | j                  ddd	       | j                  d
dddd	       | j                  ddd       | j                  dddd       | j                  dddddd       y )Nr7  r  r   r  rV  r   r   rK  )fcrJ  r   rL  r;   )r?   r  r  r3  )r  r  r  r  )r)   r   r   r  r  r  rv   r  r  s    r%   test_axhvlinespan_interpolationr  #  s    		!	!W	!	5BOOJJrTJJJr2$JJJr2r2$J'JJqDJ#JJr2$bJ)JJr2r2$bJ1r'   r  c                 p   |j                         }| j                         }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| |j                          |j                  d       |j                  d       y")$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  rg  r	  r  r	  zxkcd:shocking pinkr	  zxkcd:fluorescent greenr	  r   r	  r   r	  r  rR   FrA   TrS   rE   )rf  re  r`  ra  r$  Nr   )r   rz	  r  r  )r#   r"   r  ry   rz   r  s         r%   test_axes_clear_behaviorr  #  sW    !GFT" 	 		
 	q 	7 	! 	 	* 	. 	c 	! 	#  	%!" 	t#$ 	%& 	'( /F4 F,E,V,G-U-f-MMO
KKLLr'   )r   r_  r   finalz/https://github.com/python/cpython/issues/124538)reasonc                     d } t               }|j                         }t        j                  j	                  d      }|j                  ||       |j                  ||       |j                         }|j                          |D cg c]  }t        |t        t        f      r| }}t        |      dkD  sJ |D ]
  } | |        t        |      dkD  sJ |D ]  }	 |j                           y c c}w # t        $ r Y 'w xY w)Nc                 >   t        | g      }t               }t        |      dkD  ry|j                         }t	        j
                  |      D ]A  }t        |      |v r|| usJ |j                  t        |             |j                  |       C t        |      dkD  rxy y r!  )	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    %>5(ma%%'F))&1e9(E)))RY'& 2 (mar'   r  r   )r   r   rl   rm   r   r   r=   r  r  r   r   r   r  rl  NotImplementedError)	r  r/   r$   r8  ax_childrenr   big_artists
big_artistr  s	            r%   test_axes_clear_reference_cycler  %$  s    
' (C		BYY^^D!FGGFFJJvv//#KIIK aa&.12 	
;   {a!
%j1 "{a	LLN  # 		s   C.C33	C?>C?c                  v   t         j                  j                  d       t         j                  j                  d      } t        j                  ddd      \  }}t        j                  t        j                  d      5  |d	   j                  | g d
       d d d        |d	   j                         D cg c]  }|j                          c}g d
k(  sJ |d   j                  | g d
       |d   j                         D cg c]  }|j                          c}g d
k(  sJ y # 1 sw Y   xY wc c}w c c}w )Nrb   )r   r   r;   r<   T)r  r  re  zhas been renamed 'tick_labels'rt  r   r  rK
  )tick_labels)rl   rm   rn   r)   r   r   r  r   ri  r  r  r8  )r  r/   r  r
  s       r%   test_boxplot_tick_labelsr  P$  s    IINN899G$D||!1T:HC	c66>
@AtO4
@ #&a&"8"8":;":QAJJL":;NNN FNN4_N5"%a&"8"8":;":QAJJL":;NNN
@ 
@ < <s   ?D%5D1D6%D.c                     g d}| j                         }|j                  |dddi       |j                         }|j                  |dddi       y )N)r  r   r<  z%1.0f%%usetexT)r
  r8
  z%1.0f\%%)r   r
  )r"   r#   r  r$   r  s        r%   test_latex_pie_percentr  b$  sS     D				BFF4x.>F?



CGGD+(D1AGBr'   c                    t        j                  dd      \  }}t        j                  j	                  d       t        dd      D cg c]#  }t        j                  j                  d|d      % }}|d   j                  |       t        |d   j                         t        j                  g d	      k(        sJ t        |d   j                         t        j                  g d
      k(        sJ |d   j                  |d       t        |d   j                         t        j                  g d
      k(        sJ t        |d   j                         t        j                  g d	      k(        sJ t        j                          |j                         }t        j                  t        d      5  |j                  |d       d d d        | j                         }|j                  |d       y c c}w # 1 sw Y   2xY w)Nr;   r   r  rb   r  r   r   r   )	r   r   r   r   rO  r  r  r  rR  g      >g      4r  r  r3  rb  r@  rT   rU   z
vert: boolrt  F)vert)r)   r   rl   rm   rn   r   ro   r'  r  rr  rQ  rf
  ro  r   r  r  r"   r#   r/   r  stdall_datarz   ry   s           r%   test_violinplot_orientationr  o$  s    ||!1-HCIINN89>q"F#		  C-HFFhs1v  "bhh1'3 3 4 4 4s1v  "bhh-'/ / 0 0 0 FhL9s1v  "bhh-'/ / 0 0 0s1v  "bhh1'3 3 4 4 4 IIK F	/|	D(/ 
E !Gx\:7 G. 
E	Ds   (G33G88Hc                 p   t        j                  dd      \  }}t        j                  j	                  d       t        dd      D cg c]#  }t        j                  j                  d|d      % }}|d   j                  |       t        |d   j                         t        j                  g d	      k(        sJ t        |d   j                         t        j                  g d
      k(        sJ |d   j                  |d       t        |d   j                         t        j                  g d
      k(        sJ t        |d   j                         t        j                  g d	      k(        sJ t        j                          t        j                  t        j                   d      5  t        j"                  ddi      5  |j                         }|j                  |       d d d        | j                         }|j                  |d       d d d        y c c}w # 1 sw Y   :xY w# 1 sw Y   y xY w)Nr;   r<   r  rb   r  r   r   r   r  r  rT   rU   z!was deprecated in Matplotlib 3.10rt  zboxplot.verticalF)r)   r   rl   rm   rn   r   ro   r  r  rr  rQ  rf
  ro  r   r  r   ri  r   r  s           r%   test_boxplot_orientationr  $  s    ||!1-HCIINN89>q"F#		  C-HFFNN8s1v  "bhh'    s1v  "bhh-'/ / 0 0 0 FNN8N6s1v  "bhh-'/ / 0 0 0s1v  "bhh'     IIK 
c66?
A ^^/78%%'FNN8$ 9 ##%l;
A 
A+ G2 98	
A 
As*   (H-H,"H '+H, H)	%H,,H5zuse_colorizer_keyword.pngr  c            	      p   t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }t        j                  dd      j	                  d      }t        j                  dd      \  }}t        j                  j                  dd	      }t        j                  j                  |d
      }|d   j                  ||||       |d   j                  | ||d       |d   j                  ||       |d   j                  ||       |d   j!                  ||       |d   j#                  ||       |d   j#                  dd||       |d   j#                  |j$                  ||d dd df   |       |d   j'                  ||       |d   j)                  ||       |d   j+                  |j$                  j-                         |j-                         |j-                         |       |d   j/                  |j$                  j-                         |j-                         |j-                         |       |j1                  t        j2                  t        j2                  |dd      dd      |       t5        |       y ) Nr   r   rb  float32r  rX  r   r2  r  r~  r  r   r  r?   	colorizerr  r{  r  r  r  )r  r   r   rW  rz  r1  r>  r   r;   r<   r   r   r  r;   r   r-  r<   r;   r  r  r  r;   )rl   rm   rn   rt   r   r)   r   r   r  r   r  	Colorizerr=   r  r   rn  r  r  r  r  r  
tricontourru  tricontourffigimager  r   )rand_xrand_yr?   r/   rk  r  cls          r%   test_use_colorizer_keywordr  $  s?    IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BJq!qB/JffVDJa2&Ja2&J!r*J!r*J,.@1$&  (J!##q!BQBF)r:JqB'JR(J!##))+qwwy!'')rJJ13399;	1779KLL299Q3Ra@BLOC r'   c            
         t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }t        j                  dd      j	                  d      }t        j                  dd      \  }}t        j                  j                  dd	      }t        j                  j                  |d
      }d}ddiddiddiddig}|D ]@  }	t        j                  t        |      5   |d   j                  ||f||d|	 d d d        B |D ]@  }	t        j                  t        |      5   |d   j                  ||f||d|	 d d d        B |D ]@  }	t        j                  t        |      5   |d   j                   | |f|dd|	 d d d        B |D ]>  }	t        j                  t        |      5   |d   j"                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j$                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j&                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j(                  |fd|i|	 d d d        @ |D ]@  }	t        j                  t        |      5   |d   j(                  dd |fd|i|	 d d d        B |D ]S  }	t        j                  t        |      5   |d!   j(                  |j*                  ||d dd df   fd|i|	 d d d        U |D ]>  }	t        j                  t        |      5   |d"   j,                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d#   j.                  |fd|i|	 d d d        @ |D ]t  }	t        j                  t        |      5   |d   j0                  |j*                  j3                         |j3                         |j3                         fd|i|	 d d d        v |D ]t  }	t        j                  t        |      5   |d$   j4                  |j*                  j3                         |j3                         |j3                         fd|i|	 d d d        v |D ];  }	t        j                  t        |      5   |j6                  |fd|i|	 d d d        = y # 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   6xY w# 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   xY w)%Nr   r   rb  r  r  rX  r   r2  r  r~  r   z5The `colorizer` keyword cannot be used simultaneouslyr  r  r  r0  r   r  rt  r  r  r  r{  r  r  r  r  rW  rz  r1  r>  r  r  r-  r  r  )rl   rm   rn   rt   r   r)   r   r   r  r   r  r  r   r   r  r=   r  r   rn  r  r  r  r  r  r	  ru  r
  r  )
r  r  r?   r/   rk  r  r  	match_strkwrdskwrds
             r%   test_wrong_use_colorizerr  $  s(   IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BGIa[61+8KLE]]:Y7DJq!?qB?$? 87  ]]:Y7DJq!?qB?$? 87  ]]:Y7DJffTVTtT 87  ]]:Y7DJa6266 87  ]]:Y7DJa6266 87  ]]:Y7!DJ!!!:r:T: 87  ]]:Y7!DJ!!!:r:T: 87  ]]:Y7!DJ!!"46H1 8,.8268 87  ]]:Y7!DJ!!!##q!BQBF)JrJTJ 87  ]]:Y7DJq7B7$7 87  ]]:Y7DJ8R848 87  ]]:Y7!DJ!!!##))+qwwy!'') *r *$(* 87  ]]:Y7"DJ""13399;	1779 +PR +%)+ 87  ]]:Y7CLL1b1D1 87 S 87 87 87 87 87 87 87 87 87 87 87 87 87 87s   TT,T9U U#U &U-)U:..VV	V!AV.AV;>WT)	,T6	9U	U	U	 U*	-U7	:V	V	V	!V+	.V8	;W	W	c                  X   t        j                         \  } }|j                  g dg d      }|D ](  }t        j                  |j                         d      r(J  |j                  g dg dd      }|D ](  }t        j                  |j                         d      r(J  |j                  g dg dd	      }|D ](  }t        j                  |j                         d      r(J  |j                  g d
g ddd      }|D ](  }t        j                  |j                         d      r(J  y )Nr  r  r   )rT  r  r_  r6  rM  )r  r  rG  r  r9  )   r   !   r   )r   r7  )r)   r   r  r  r  rm  )r/   r$   r  r  s       r%   test_bar_color_precedencer  %  s   llnGC 66)Y'D!!#"3"3"5v>>>  66,	67D!!#"3"3"5u===  66,	X6>D!!#"3"3"5x@@@  66,	'6JD!!#"3"3"5w??? r'   rU  (  r  r  r   r   r;  r  r   	functoolsr   r  r  ry  	itertoolsr   platformsysr   r   dateutil.tzr  numpyrl   r	   r
   r   rY   r   r   r   matplotlib.colorsr  r  matplotlib.datesr  r=  matplotlib.figurer   matplotlib.axesr   r4  r   matplotlib.collectionsr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesr>  r  matplotlib.pathr;  rt  matplotlib.projections.geor   matplotlib.projections.polarr   matplotlib.pyplotpyplotr)   matplotlib.textr  r   matplotlib.tickertickerr   matplotlib.transforms
transformsr  mpl_toolkits.axisartist
axisartistr   numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   matplotlib.testing._markersr   r&   r0   r9   rP   rW   rZ   r`   r}   r   r   r   r   machiner   r   r   r  r   r  r  r+  rF  rV  r`  rr  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  rF  rP  rX  r]  rd  rm  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r*  r  rt   r1  r9  rE  rO  rX  r]  re  ro  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r0  r3  r8  r=  rD  rI  rK  rM  rQ  rS  r[  r^  rc  rg  rr  rt  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r>  r  r  Patchr  r5  r   r#  r<  rB  rK  rM  rQ  rT  rW  rZ  r\  rh  ro  rs  rv  r{  r  r  r  r  r  r
  r  rQ  r  r  r  r  r+  r1  r?  rC  rE  rN  rZ  r^  rp  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  r  r  r	  r  r  r  r  r"  r(  r,  r/  r1  r5  r9  r<  r?  rA  rC  rE  rG  rJ  rM  rS  rV  rX  r]  ra  rd  rj  ro  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+  r4  r7  r@  rB  rM  rW  r\  r_  ra  re  rh  rl  rt  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@	  rD	  rH	  rP	  rT	  rV	  rc	  ri	  rl	  rr	  r	  r	  r	  r	  r	  r	  r	  r	  r  rv   r  r  r	  r	  r	  r	  r	  r	  r   r  r  r	  r	  r	  r	  r	  r

  r
  r
  r
  r!
  r$
  r(
  r+
  r0
  r@
  rD
  rG
  rL
  rN
  rT
  rX
  r[
  rh
  rl
  rp
  rr
  rw
  ry
  r{
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  ru  	AxesImager   PcolorImagerm   QuadMeshr   r   r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r  fixturer  r  r  r  r  r!  r#  r)  r+  r1  r5  r8  r>  rB  rG  rI  rW  r[  r^  rc  rg  rj  rm  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.  r1  r9  r;  r=  r?  rB  	TransformrD  r]  ra  rd  rl  rp  rr  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  font_scalingsr  r  r  r  r  r  r  r$  r&  r+  r-  r0  r2  r6  r8  r;  r>  rw  rA  rC  rE  rI  rK  rN  rT  rV  r\  r^  rd  rh  rl  rn  rr  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifversion_inforeleaselevelr  r  r  r  r  r  r  r  r  s   0r%   <module>rC     sQ7    )    	  	   
 !        . # ! $   # 1 / % %  1 2   # + $D DD D 4 ( )
(M / /$ . .$ / /(@, (( )($ (( )(( (, ),*3 (, ),    0x//1W<e!E$E$NJ4G2 234 50". ,J -J  ,T2'% 3 -'%T '(/x//1W<e!EE","1h0f/ ( ) )*=% >% 9! !. 93 3" 90 0$ ( ) )*GL6 M6$ ,-4wO P,@ ?#6; 7; %&D9) :)4('' #$UBK@ AB5 (
J )
J; >>23' 4'" $%W5- 6- ( )/ =/ug"'3/3/ ?#$* %* ?#.* /* &(;<$O< P<	- %&D9
* :
*' #$G4/ 5/*$ &'wDI	( J	($ (## )##L$4 %&' ( 9<>(
< )> 
< 8X&DH I( O7   "&NNTUW&W&,F -.DA B 	&	1a 	34	 ("((6"2A6	34	 !XRXXf%56  
#
# 	&	1a 	34	 ("((6"2A6	34	 !XRXXf%56  
$
$ -.D/x//1W<e!E'E'. 89T33& 12E1 F1& <.! " =/t4	  5	 ( <.d32 42. %&E7; <2 %&E5>"$F$FB '9:(G ) ;G (
. )
. 12'B# C#6 -.g># ?#05 p
-. (0 )0 (0 )0// %/(( ) 0(" ;--=X-=-=-?7-JTPQR S
 #$$iH IB =/t4! 5!H0 ;-T2
 3
 #$$EB C" ,-4UK; L;0 34$G H4 )*=; >;4 $%YDI? J?. 12E; F;2 >"5= 6= .0KLM	> N	> 

 012 3 DEF G (
# )
# (
= )
= (
+ )
+ (
- )
-64 ()* +4P '"+<3&% 9
%  
% A	a|nc*	,	,	(	,(@	!<	1	,	3V	=880
 :,D1( 2( (7 )72 '(d;  < + ()t<! =! )*=H >H$ %&'  ( -! *)),,+EG/	  0E0E" 9q'4)8Q-)*:	*: + #++"3"3":":;!399#3#3#:#:;'):):)A)ABDE,	E,	
 (( )(V (# )#2 ( ). (
K )
K*+
#
)' ,-4@ A. -./ 0 ( ) %&DH* I*    "&NNTUW%W%* 8X&DH= I=" %&DH
. I
.'j1 j1Z	*4 *
Y
, iHBHHl^457nHBHHl^457C HBHHl^457 CHBHHl^457S#Jc
8288\=,I#JKM44  !
fd^
Sk4
cC 
sCj!C:.
S3
fv&
fv&
SS)3/
SCC0#6
os
$c*	4	4M2)X5 )+AB/x//1W<e!EE( ,-4@E AE0  * 4$ %&!&!## &'!&!#7#7 +,!&!#6#6 )*!&!#0#0 '("!&!	
@
@ )*!&!@	@ ()"!&!#9	#9 ./"!&!#G	#G *+"!&!#A	#A
 12"!&!#	# &'"!&!#9	#9
 )*"!&!#<	#<
 &'"!&!#9	#9
 *+"!&!#<	#<
 B B &'"!&!#8	#8 #$"!&!#6	#6 ?#"!&!#5	#5 +,"!&!#8	#8 +,"!&!#F	#F *+"!&!#E	#E ()"!&!#2	#2 )*"!&!#G	#G ,-"!&!#>	#>6
<
 -.!&!#F#F ,-!&!#5#59
 9i(d)D E$ (
 )
 12!&9>7>7 %&D	J K $%"!&!#	# 98:!##  *+!&$y*:5*:5z -."5"+YPP  45"5"+YPP99C6$ ;<"5"+YP#P# 113 4040 234% 5% 456% 7% 456$ 7$ 012N 3N 89:0 ;0 9:;1 <1 2348 58 5677 87 3458 68 5677 87 123N 4N 9:;C <C :;<D =D )*GLE ME0B@A (5 )5 (E )E	+F) HI3; J3;l ./UG"$<$<BE > >9$ $%&+4 '+4\C3" ( )(5"7*6 (3 (3V 	(0(;()(+ ,N,N () )) ,.GHI
A J
A =/" # ?#6 7 ()*A +A )*+M ,M :,g4@ A>,>4B )*'tL& M& 234F 5F &'(5 )5 ()*2 +2 )*== >=1	14040 %&'E (E" [/$B%0/$B%,.>$?%02B$C%0+$>%,o$>$@ 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CS#N(.=xM(43GcR(.SA8TR(43GsS(.SA9cR&5tSA&/DA/CD:N;D:N"9
 ' ()t<3 =3 >"5 6  #$$7 85.5* <.d3" 4": ;,$?(+ @(+V 01tD E  ( & 
1
1*2( 67TJ" K"8 2$aV1vrl!CD(HI J E ( ) &'T:@ ;@ &'/x//1W<e!E&E& '(d; < '):;+8++-9auF)F)8 	, 	, ! !, ) )  ( (&( F#W&#&#L? F#W&#&#L? 1aBFFA"6"$%%"4"4_a"H"J K(J )KJ 45#WG5	5	 #%56D> %&D9 :2? 8$i1J	1J@ L$i1J	1JB =$i1,	1,D% () ))"- H%!)!)> ! 	)	)@- ( ) $%4/x//1W<e!E)&E)&X +-EF"$E$E: C F 
0
0= 
= ( )& 74 4*. 3;;T*J+.;;V*L*N O(O(	
-2C(% 3$fb./ &y"#$ %1vj"8:$egt}#$""
#4 ,- --2$ $%40; 1; K#WG??> *+7E F& ()dC D %&g4@ A '(UC D4 ./wEJ K %&D1
 2
 #$G?? @?.8,0.1%/ ) ) 6 6 +,/x//1W<e!E3E32- (2 )2*C	/1 /015 25)8& +,UBKH7 I7!:H## 3	UB DE	Wb"FG	UWsBi)MN	UWsBi)MN	E+	K	M	EC8	K	M	Ir#KL
6 
$
$'0(&C4 ?#E2;? @ =/%=% >%*1(-.MO 	SYY  !	399../
(E!H	syy223
L	)				 
))

6
"BII$4$4V$<	=		!	!	#
 
YRYYr]""6*BIINN1a,CD1
1
GK*+$!%
7, #;#=> ? =/t4; 5;N ($ D%=1 2 <.d=6 >6 +,$g/x//1W<e!E6E6* 9* *B Sz"; #;$ IJ K ;="	3 9G G 9F F!
L%89 
26
B	C?? %  ()s35 45$ ()*N +N$ ./S9K :K$ ?#6- 7-&!*--    
 
 &
'	-;8H)& 9J J6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	 He#45He#45 6 6G,
 ($ )$ (7 )7
	A::D $%4wG	 H	)& t}5t}5B 6 6B0
5M!;HF$ 34GQU/x//1W<e!E2E2&;(( & %&g/x//1W<e!E,E,,
3G+0D. %&DHP IP"+(\$NN=<=6F,D> (( )() )"02$
6.161.%	1?? ,!45/ 6 -/$ (> )> 9) )1174 =3N3N "73N4%)%5 #'3N "79D"E F9M FM-L (K )K& ( )5 :;) <)
69
9999
9 :;< =
!
6 
Hhoo! ++('992(O 9O O+\  (  $58(<!=>* ?**:5"
4.$*1$h@.0 (	 )	 %&g6B 7BD
((M% *+W/x//1W<e!E!E!H 95 5 (- )-2:; 7B& 34IF2 G2 (*-& . )&R RaJ&S3+;+;+H+HG+S<  $	$NO$ C  C ( ; ) ;F (#< )#<L .//x//1W<t!E!E!:92x@e!"7s   W,Bf
