
    EVf                    I   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlZd dl	Z	d dl
mZ d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZmZ d dlmZ d dlmZ d d
l m!Z! d dl"m#Z# d dl$m%Z& d dl'm(Z) d dl*m+Z, d dl-m.Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z6 d dl7m8Z9 d dl:m;Z< d dl=m>Z? d dl@mAZB d dlCmDZDmEZEmFZF d dlGmHZHmIZImJZJ  eIdg      d        ZKd ZLd ZM eI       d        ZN eI       d        ZO eI       d        ZPd ZQ eIdg      d        ZR eIdg      d        ZS eIdg      d        ZTd ZU eIdg      d        ZV eHg d      d        ZWd  ZXd! ZY eHd"g      d#        ZZd$ Z[ej                  j                  d%d&      d'        Z^ej                  j                  d%d&       eIdgd()      d*               Z_ eHd+g      d,        Z`d- Zad. Zbd/ Zcd0 Zd eIdg      d1        Ze eHd2gd34      d5        Zfej                  j                  d6      d7        Ziej                  j                  d6      d8        Zjej                  j                  d6      d9        Zk eIdg      d:        Zld; Zmd< Znd= Zo eHd>gd34      d?        Zp eHd@gd34      dA        ZqdB ZrdC ZsdD ZtdE Zu eHdFgdGdHiI      dJ        ZvdK Zw eIdg      dL        Zx eHdMdMg      dN        Zy eHdOgdPQ      dR        Zz eIdg      dS        Z{dT Z| eHdUgdgd3dPV      dW        Z} eHdXg      dY        Z~ eHdZgd[\      d]        Z eHd^d^gd34      d_        Z eHd`d`gd34      da        Zdb Z eHdcgdPQ      dd        Z eHdegdPd3f      dg        Zdh Z eIdg      di        Zdj Z eHdkg      dl        Zej                  j                  d6      ej                  j                  dmg dn       eIdg      do                      Z eHdpdpgd3dPq      dr        Z eHdsgdP ej                         dtv rdund v      dw        Zdx Z eHdygd34      dz        Zej                  j                  d{ ej                  d|      d}d}f ej                   d~dd[       ej                  d|      d}f ej                   d~dd[      d} ej                  d|      fgg d      d        Zej                  j                  d ej                  d|      d}d}f ej                   d~dd[       ej                  d|      d}f ej                   d~dd[      d} ej                  d|      fgg d      d        Z eHdgd34      d        Z eHdgdPd3f      d        Z eHdgd34      d        Z eHdg      d        Z eHdgd34      d        Zd Z eHdgd34      d        Z eHdgdg      d        Z eHdgddgd3      d        Zej                  j                  dddg       eIdg      d               Z eHdgdPQ      d        Z eHdgdPQ      d        Zd Zd Z eIdg      d        Z eIdg      d        Zd Zd Zej                  j                  ddd3g       eIdg      d               Z eHdg      d        Z eHdgd3d6q      d        Z eHdgd34      d        Zd Z eHdgd34      d        Z eHdgd3d      d        Z eHdgd3d      d        Z eHdgd34      d        Z eHdgd34      d        Z eHdgd6d3f      d        Z eHdgd34      d        Z eHdgd34      dĄ        Z eHddg      dƄ        ZdǄ ZdȄ Z eHdg      dʄ        Z eHdg      d̄        Z eIdg      d̈́        Z eIdg      d΄        Z eIdg      dτ        Z eIdg      dЄ        Zdф Zd҄ Z eHdg      dԄ        ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Zdۄ Zej                  j                  d6       eI       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 eHdgd34      d        Z eIdg      d        Zd Z eHdgd34      d        Zd Z eHdgd34      d        Z eHdgd34      d        Z eHdg      d        Zd Zd Zej                  j                  dej<                  j                  d d gg d      d        Zej                  j                  dg dfg gdfg g gdfg      d        Zej                  j                  d dejV                  j                  j                  fdej                  j                  j                  fdejV                  j                  j                  fg      d        Z eIdg      d        Z eIdg      d        Z eIdg      d        Z eIdg      d        Zސd	 Zߐd
 Zd Zd Zd Z eHdgd34      d        Z eHdg      d        Z eIdg      d        Zd Z eHdgd3dPq      d        Z eHdgdP ej                         dtv rdnd v      d        Z eHddgd3dPq      d        Z eHdgd3dPq      d        Zd Z G d d      Zddd d!Z ed"d#      Zej                  j                  d$ e        ed% ej                  g d&g      '      f ed()       ed( ej                  g d*g      '      f ed(d%'       ed( ej                  g d*g      '      f ed%+       ed% ej                  g d&g      '      f ed%d,g+       ed%d,g ej                  g d&g d-g      '      fg      d.        Z[[ej                  j                  d/ e       df ed%)      df ed(       d(f ed(d,g       d(d,gf ed(0      d(f ed1       d1f ed2       d2f ed(d,3      d(f ed%d(d,4      d(f ed(+      d(f ed(d,5      d,fg      d6        Zd7 Zd8 Zd9 Zd: Zd; Zd< Z eHd=d=g      d>        Z eHd?gd34      d@        Zi dA i fdBZ eHdCgdGdDid6E      dF        Z eHdGgdGdDid6E      dH        Z eHdIgdGdDid6E      dJ        Z eHdKgdGdDid6E      dL        Z  eHdMgd3dGdDid6dNO      dP        Z eHdQgdGdDid6dNR      dS        Z eHdTgd3dGdDid6U      dV        Z eHdWgd3dGdXid6U      dY        Z eHdZgd3dGdDid6U      d[        Z eHd\gd3dGdDid6U      d]        Z eHd^gd3dGdDid6U      d_        Z eHd`gd3dGdDid6U      da        Z eHdbgd3dGdDid6U      dc        Z	 eHddgd3dGdDid6U      de        Z
 eI       df        Z eHdggd3dGdDid6U      dh        Z eHdigd3dGdDid6U      dj        Z eHdkgd3dGdDid6U      dl        Z eHdmgd3dGdDid6U      dn        Z eHdogd3dGdDid6U      dp        Z eHdqgd3dGdDid6U      dr        Z eHdsgd3dGdDid6U      dt        Z eHdugd3dGdDid6U      dv        Z eHdwgd3dGdDid6U      dx        Zdy Zdz Z eHd{gdGdDid6E      d|        Z eHd}gdGdDid6E      d~        Zd Z eHddgdd6      d        Z eHdgdGdDid6E      d        Z eHdgd3d6q      d        Z eHdgd3dGdDid6U      d        Z eHddgd6Q      d        Zd Z eHdgdGdXid3dd6      d        Z  eHdgd3dGdDid6U      d        Z! eHdgd3dGdDid6U      d        Z"d Z#d Z$d Z%d Z& eHdgd3dGdDid6U      d        Z' eHddg      d        Z( eHdg      d        Z) eHdg      d        Z* eHdg      d        Z+ eHdg      d        Z, eHdg      d        Z- eHdg      d        Z. eHdg      d        Z/ eHdg      d        Z0 eHdg      d        Z1 eHdg      d        Z2 eHdg      d        Z3 eHdg      d        Z4 eHdg      d        Z5d Z6d Z7d Z8d Z9 eIdg      d        Z: eIdg      d        Z;d Z<d Z=d Z> eHg d      d        Z? eHdgdgd3      dÄ        Z@dĄ ZA eI       dń        ZBdƄ ZC eHdg      dȄ        ZDdɄ ZEdʄ ZF eIdg      d˄        ZGd̄ ZHd̈́ ZI eI       d΄        ZJej                  j                  dg dТ ej                  g dТ      dg      dф        ZK eIdg      d҄        ZL eHdӐdg      dԄ        ZM eHdg      dք        ZN eHdgd34      d؄        ZO eHdg      dڄ        ZP eHdg      d܄        ZQ eHdgdPd3f      dބ        ZRd߄ ZSd ZTd ZU eHdgdPd3f      d        ZV eHdg      d        ZW eHdg      d        ZX eHdg      d        ZY eHdgd34      d        ZZd Z[d Z\d Z]d Z^d Z_d Z`d Zad Zb eHdg      d        Zcd Zdd Zed Zf eHdgd34      d        Zg eHdgd34      d        Zh eHdgd34      d        Zid Zjd  Zk eHdgd34      d        Zl eHddgd34      d        Zm eHdgd34      d        Znej                  j                  dg d      d	        Zod
 Zp eHdgd34      d        Zqd Zrej                  j                  dg gg d dggd dgg gg      ej                  j                  dg d      d               Zs eIdg      d        Zt eHdgd34      d        Zu eHdg      d        Zv eHdgd34      d        Zw eHddg ej                         dk(  rd nd[\      d        Zx eI       d        Zy eI       d        Zz eI       d        Z{ eI       d         Z|d! Z} eHg d"dg      d#        Z~d$ Z eHg d%dg      d&        Zd' Zej                  j                  dddd}ej                  d(gej&                  j                  g d)d*      g       eIdg      d+               Z eHd,gdgdP-      d.        Z eHd/d/gd3d0      d1        Z eHd2gd34      d3        Zd4 Z eHg d5d3d6d67      d8        Z eHg d9d3d6d67      d:        Z eHg d;d3d6d67      d<        Zd= Z eIdg      d>        Zd? Z eHg d@d3dA      dB        Z eHg dCd34      dD        ZdE Z eIdg      dF        Z eHdGgd34      dH        Z eHdIdIgd34      dJ        Zej                  j                  dKg dL      dM        ZdN ZdO Z eIdg      dP        ZdQ Zej                  j                  dRe6j4                  e6j6                  dSge6j8                  e6j:                  dTgg      dU        ZdV ZdW ZdX ZdY ZdZ Zej                  j                  d[ed\i d]fed^i d_feddgfi d`fe e       dadidbff      dc        Zdd Zej                  j                  d%d&      de        Zdf Zdg Z eHdhg      di        Z eHg djdgdP-      dk        Z eHdlgdPQ      dm        Z eHdngdPQ      do        Z eHdpgdPQ      dq        Z eHdrgdPQ      ds        Z eHdtgdPQ      du        Z eHdvg      dw        Z eHdxgdPQ      dy        Zdz Zd{ Zd| Z eI       d}        Z eI       d~        Z eHdg      d        Zd Z eIdg      d        Zd Zd Zd Zd Z eHdg      d        Zd Zd Z eHdgdGdiI      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dSddd&dfedSddidfedi dff      d        Zǐd ZȐd Zɐd Zʐd Zːd Z̐d Z͐d Zΐd Z eHdgdGdDiI      d        Z eHdgdGdDiI      d        Zѐd ZҐd ZӐd ZԐd Zej                  j                  ddej                  j                  fdej                  j                  f eؐd(       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 Zej                  j                  d e             d        Z eHdgd34      d        Zd Zd Zej                  j                  dd3dg      d        Z eHdgd3d[      d        Z eHdgd3dPq      d        Zej                  j                  d6      d        Z ej                  dސdgë      dĄ        Z ej                  g dŢë      dƄ        ZdǄ ZdȄ ZdɄ Zdʄ Zej                  j                  d6      d˄        Zej                  j                  d6      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 eHdgdݬ\      dބ        Z eHdg      d        Z eHdgdݬ\      d        Z eHdgd34      d        Zd Zd Zd Z	d Z
ej                  j                  dg dg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  d6      d        Zd Zd Zd Zej                  j                  d[edggdg idfedggdg idfedggdg idfedggdg id fedggdg idfedgi dfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddgid	ff      d
        Zd Zd Zej                  j                  dddg      ej                  j                  dddg      d               Zd Zd Zd Z eIdg      d        Z eIdg      d        Z d Z!d Z"d Z# eHdgd3dPq      d        Z$d Z%d Z&ej                  j                  ddd3g      ej                  j                  ddd3g      d                Z'd! Z(d" Z)d# Z*d$ Z+d% Z,d& Z- eHd'gdPd3f      d(        Z. eHd)gdPQ      d*        Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4 eHd0gd3dPq      d1        Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z; eIdg      d8        Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMej                  j                  dJd&      ej                  j                  dKdL      dM               ZN eIdg      dN        ZOej                  j                  d6      dO        ZPdP ZQdQ ZRdR ZSdS ZTej                  j                  dTe&j                  D  cg c]  } | |  c} g dUz         ej                  j                  d6      dV               ZVdW ZWdX ZX eIdg      dY        ZY eIdg      dZ        ZZd[ Z[ej                  j                  d\g d]      d^        Z\d_ Z]d` Z^da Z_db Z`dc Zadd Zbde Zc eHdfg      dg        Zddh Zedi Zfej                  j                  djdkdldlj                  g      dm        Zhdn Zido Zjdp Zkdq Zldr Zmds Znej                  j                  d6      dt        Zodu Zpdv Zqej                  j                  dwdx      ej                  j                  dddy ed}      ig      dz               Zrd{ Zsd| Ztd} Zud~ Zvd Zwd Zxd Zyd Zz eIdg      d        Z{ eHdgdPQ      d        Z|d Z}d Z~d Zd Z eHdgd3dPq      d        Zej                  j                  d6      d        Z eIdg      d        Zd Zd Zd Zd Zd Zyc c} w (      N)
namedtuple)Decimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)Figure)Axes)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titlespng
extensionsc                 F    | j                         }|j                  d       y NF)subplotsset_visiblefig_testfig_refaxs      c/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr"   0   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_labelsr,   6   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_reprr5   >   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cr.   Y LabeltoplocX LabelrightZ Labelr1   har0   rD   r   r9   legendr'   r&   colorbarr2   r   r   r    sccbars        r!   test_label_loc_verticalrL   I   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 )Nr7   r8   r9   r:   r<   bottomr>   r@   left
horizontalorientationrB   r   rC   rE   rF   rI   s        r!   test_label_loc_horizontalrS   \   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)NrA   r=   )zxaxis.labellocationzyaxis.labellocationr7   r8   r9   r:   r<   r@   rP   rQ   rB   rC   rE   )	
matplotlibr
   r   r9   rG   r'   r&   rH   r2   rI   s        r!   test_label_loc_rcrV   o   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                  ~   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 labelrO   r>   centerrA   r=   rN   )r%   r   r&   xaxis	get_labelget_horizontalalignmentr'   yaxisr*   s     r!   test_label_shiftr]      sm   llnGC MM,FM+MM,HM-88779XEEEMM,GM,88779WDDDMM,HM-88779XEEE MM,EM*MM,HM-88779XEEEMM,HM-88779VCCCMM,HM-88779XEEEr#   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   r7   maxlagsfullmoder1   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r   r   Nxr0   rb   ax_testax_refnorm_auto_corrlagss	            r!   
test_acorrrz      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 )
Nr_   3   
   r7   ra   rc   rd   r   rf   )ri   rj   rk   randrm   ceilastypeint64r   rn   ro   rp   rq   rr   rs   rt   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 )Nr_   i   r   r`   )    r   r8   r7   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer}   )aspectxlimylimboth)ri   rj   rk   onesshufflereshaper   spyimshowrY   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r   r   aaxs_testaxs_refr    s         r!   test_spyr      sQ   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   ri   eye)r+   r    unsupported_kws      r!   test_spy_invalid_kwargsr      sv    llnGC+Y7&)@B 3]]9% 	3BFF266!Q<2>2	3 	33	3 	3s   (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useri   rj   r~   add_subplotmatshowr   rY   r   r   )r   r   r   rw   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_005c                     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registerrU   rcParamsranger   kmr%   figurer   r&   r   autoscale_view)unitsr0   xdatar1   ydata1ydata2r    s          r!   test_formatter_tickerr      s    10	NN 46J/0 #(),QQuyy[,E,.3Bi8s1us{EHH$8F8/4Ry9!tAv|UXX%9F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  r0   poss     r!   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    r#   )r%   r   r   rY   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   rY   r   r   r\   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr    targ_strformatters      r!   &test_strmethodformatter_auto_formatterr   2  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   r7      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r;   3pr   )ri   linspacesinpir%   FixedLocatorr   r   r   r\   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterrY   LinearLocatortwinytwinx)valslocsmajlminlr+   ax1s         r!   "test_twin_axis_locators_formattersr  K  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  drawrY   get_visiblepatchclar\   )r+   r    ax2ax3s       r!   test_twinx_clar  d  s4   llnGC
((*C
))+CHHJyy$$&&&yy$$&&&GGIGGIyy$$&&&yy$$&&&99  """99  """yy$$&&&yy$$&&&88!!!88!!!88!!!r#   twinr0   r1   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   tolc                 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_scaler7   r   r8   logr7   r8   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)ri   rq   r   r#  r   rU   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r   r   r  r%  	set_scaler0   rv   ax_twinirw   r8  s              r!   test_twin_logscalerB    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.pngc                     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   r7   r   r   r7   r8   r8   r   r   r7   r7   F)autoscalex_onautoscaley_onr   r}   r   lwr--r   rJ  r   )ri   arrayr%   r   add_axesr   r  margins)r0   r1   x2y2r+   r    r  s          r!   test_twinx_axis_scalesrR    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   r8   r         shareyT)r%   r   gcaxaxis_invertedyaxis_invertedri   rj   r   r  r  r  r   cos	autoscaleaxesremovesubplotr\   set_invertedclose)r+   r    imgr0   ax0r  s         r!   test_inverted_clarn    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  rx  s   r!   ClaAxesrs    s    r#   r}  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 &    dt         |           y ru  )superr  rw  	__class__rx  s    r!   r  z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla  s    r#   )ry  rz  r{  r  __classcell__r  rx  s   @r!   ClaSuperAxesr    s     r#   r  c                       e Zd Zy)+test_subclass_clear_cla.<locals>.SubClaAxesNry  rz  r{  r   r#   r!   
SubClaAxesr  #      r#   r  c                       e Zd Z fdZy)*test_subclass_clear_cla.<locals>.ClearAxesc                 
    dy ru  r   rv  s    r!   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clear'  s    Fr#   N)ry  rz  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 ru  )r  r  r  s    r!   r  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear,  s    FGMOr#   )ry  rz  r{  r  r  r  s   @r!   ClearSuperAxesr  +  s    	 	r#   r  c                       e Zd Zy)-test_subclass_clear_cla.<locals>.SubClearAxesNr  r   r#   r!   SubClearAxesr  1  r  r#   r  FrF  )r   warnsPendingDeprecationWarningr   r   r  )
r}  r  r  r  r  r  r+   
axes_classr    rx  s
            @r!   test_subclass_clear_clar    s    
 
/3
5 	d 	 
/3
5 	4 	W D 
 y  (Cj .,@ 

\* v
v
C  s   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  B  s<    $$& / %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   r7   )rU   r
   r   r   minorticks_onr   r   rv   rw   s       r!    test_minorticks_on_rcParams_bothr  J  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 )Nr8   r}   ir   r7   )r%   r   	enumerateflatr   )r+   axsrA  r    y1s        r!   test_autoscale_tiny_ranger  U  s[     ||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 )Nr7   r7   r8   r   r.  Tr0   F)enabler  tightr1   )g333333ÿg333333	@)r         @)r  )
r%   r   r   rf  r   r   r   rU  rW  get_autoscale_onr*   s     r!   test_autoscale_tightr  ^  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   dtyper8   r7   Tsharex)r  r   r   )ri   rq   floatr%   r   loglogsemilogxrf  r  r   r   r   )r0   r+   r  r  limss        r!   test_autoscale_log_sharedr  v  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   r7   r8   r   r   r   )      r   Fr  r   T)
r%   r   r   r   r   r   use_sticky_edgesrf  _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   r^  r_  r  )ri   rq   r   r   
pcolormesh)r   r   Zrm  r  s        r!   test_sticky_shared_axesr    s     			"a#A


s
#C


s3

/CNN1


c
"C


c#

.CNN1r#   c                      t        j                  t        d      5  t        j                          d d d        y # 1 sw Y   y xY w)Nz0 were givenrp  )r   r   r   r%   stemr   r#   r!   test_nargs_stemr    s.    	y	7 
  s	   :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 givenrp  FirstSecondr   )r   r   r   r%   ri  rG   r    s    r!   test_nargs_legendr    sD    	y	7 ,[[]
		7)hZ+, , ,   *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 givenrp  r   r7   )r   r8   r7   r8   r   )r   r   r   r%   ri  
pcolorfastr  s    r!   test_nargs_pcolorfastr    sN    	y	7 @[[] 	vv&I(>?@ @ @s   /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rJ  r   z	local maxr   r7   datar   r   zoffset points)xyxycoordsxytext
textcoords)	ri   rq   re  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)rc   rO   rA   r   r.  r8      r   r   r}   )widthlength_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r%   r   r  zipr  set_xlimset_ylimri   r  arrowr  re  )
r  r  r  kwargsr+   r  rA  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 )Nr7   )皙?皙@)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  r8   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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  r.     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r8   degred)yunitsr   rF  )r  r  g     V@r  r"  Z   r   )r3  )r   r   r   r   Epochdatetimer(  Durationri   rq   mdatesdate2numr%   r   r   fillautofmt_xdate)r   r  valuedayr%  dtnr+   r  r  r  ax4inds               r!   test_fill_unitsr8    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 definedrp  r   r   r0   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r/  )r   r   )r   r  UserWarningr%   r   errorbarr   r#   r!    test_plot_format_kwarg_redundantrB  -  s    	k)H	I ,!qc3s+,	k)K	L 0!qc3$/0	k)G	H .!qc3f-. LL!qcvV4, ,0 0. .s#   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yerrr8   )rE  rF  dashes)ri   r  rb  rA  abs
set_dashes)r   r   r0   r1   rw   rv   r  r  s           r!   test_errorbar_dashesrJ  8  s    A
q	A[[]FllnGq!"&&)"&&)DHD1OOQFQq	q	1a&Ir#   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.gridr8   r   r7   r   r"  r   r  r"  )rU   r   r%   r   r   )r+   r  r  r  s       r!   test_single_pointrQ  F  s     +.J''+J$ll1oOC#sHHaS1#sHHaS1#s A3Dll1oOC#sHHS#sH&HHS#sH&r#   zsingle_date.pngr   )r   c                     dt         j                  d<   t        j                  t	        j
                  d            } dg}dg}t        j                  dd      \  }}|d   j                  || z   |d	d
       |d   j                  ||d	d
       y )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr8   r7   r   r   r>  r?  )	r%   r   r/  r0  ri   
datetime64r   	plot_dater   )r%  time1data1r+   r    s        r!   test_single_daterY  X  s     -2CLL()	|4	5BJEHEll1a GCqEOOEBJs#O6qEJJueSJ,r#   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}   r7   r   r   r   r   r7   r8   r7   gQQ?)r   	   r   r   )ri   rq   r   r   r   r   ravel)r   r   rowcolr  s        r!   test_shaped_datard  g  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r7   r7   r8   r8   r   twosr  r8   r   rP  r7   r>  )ri   rM  r  r%   r   r   r   )ptsr  s     r!   test_structured_datarj  v  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
       r8   )   @aitoff
projection)figsize
subplot_kwr   r.  )r   N)
ri   r  r  meshgridr%   r   dictgridr   r  )r0   r1   XYr+   r    s         r!   test_aitoff_projrz    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"  r7   rm  r$     r   r         ?)r3  alphar  )r   r   r   r   r,  r-  r.  r4  convertr%   rb  axvspanr  r   t0tfr%  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?)r(  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.  r4  r  r%   rb  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  )r8     r   r   333333?ffffff?)extentr  r0   r1   )r  r  )r%   r   ri   rq   r   hexbin)r+   r    r  r0   r1   s        r!   test_hexbin_extentr    s|     llnGCIIdOd"++I6DDAqIIa+I, DllnGCIIc3/dI;r#   zhexbin_empty.pngc                      t        j                         \  } }|j                  g g        t        j                         \  } }|j                  g g d       |j                  g g g t        j                         y )Nr,  bins)Creduce_C_function)r%   r   r  ri   maxr*   s     r!   test_hexbin_emptyr    s\     llnGCIIb"llnGC IIb"5I!IIb"bffI5r#   c                      t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}|j                  ||g dd      }t        dd      }|j                  |      d	   sJ y )
N   r8   r   r  r   )r  picker  ,  r  r   )r%   r   ri   rq   r   r  r   contains)r+   r    r  r0   r1   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                  |       y )NFpcolormesh.snapr_   順 r         @r  r8   r   r,  T)yscaler  	marginalsr  )r%   r   ri   rj   rk   standard_normalpowerr   r  sumrH   )nr0   r1   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Or#   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 )	Nr_   r  r   r  r  r}   r   T)gridsizer  r  )ri   rj   rk   r  r%   r   r  r  )r  r0   r1   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  r,  r8   r   )r  vminvmax)ri   rq   r   r%   r   r  get_clim)r0   r1   r+   r    r  s        r!   test_hexbin_log_climr    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  r7   )      $r}   r  r}   )rT  rT  )r  r  mincntr   c                     t        |       S r  )r  )vs    r!   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>  s
    CF r#   )r  r  r  r  r  )r  lenr   r  set_facecolor)
r   r   
datapointsrx  ry  r  r  r  rv   rw   s
             r!   ,test_hexbin_mincnt_behavior_upon_C_parameterr    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  r8   r.  )r7   r8   r  r   )r.  r  r  )r  r.  )r   r  r,  r}   r7   )r}   r7   )
r%   r   invert_xaxisr   r   r   rk  invert_yaxis
set_yscaler  r*   s     r!   test_inverted_limitsr  $  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divider8   )
ri   rq   eerrstater,  nanr  r%   r   r   r0   r1   r+   r    s       r!   test_nonfinite_limitsr  >  sw    
		"bddD!A	H	% FF1I66Ac!faiLllnGCGGAqM	 s   B##B,plot_fun)r9   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-01r'  r  C0r?  )ri   rq   r   r#  r   r  )r  r   r   r0   rv   rw   r    s          r!   test_limits_empty_datar  I  sv     			,ODA!GFGGXr2& <Has1vd;<r#   r   )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   r8   r>  rP  )rU   r   ri   indicessqrtr%   r   r   )Nr0   r1   r>  r+   r    r  s          r!   test_imshowr  Z  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)aarch64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   r8   r.  r   )	clip_path)rU   r   ri   r  r  r%   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r0   r1   r>  r+   r    r;   r  s           r!   test_imshow_clipr  o  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.r7   r8   r   r.  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.rp  r}   r   r   )normr  r  N)r%   rg  r   r   
ValueErrorr   mcolors	Normalize)r   r    s     r!   test_imshow_norm_vminvmaxr    sp    
Q!QA	B	z@
A F 			!'++C411	EF F F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 )Nr7   r8   (   )
linewidthsr   r   )
r%   r   ri   rM  r   collectionsPolyCollection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, y2rg  r   r  r8   )
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  r0   r  rQ  r+   r    s        r!   test_fill_between_inputr
    sD     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)r1   x1rP  r+   r    s        r!   test_fill_betweenx_inputr    sF     llnGC	z	" $
B#$ $ $r  fill_between_interpolatec            	         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  r8   r  333333?r.  r7   Tr  blackr?  white/)wherer3  hatchinterpolater)  )r  r3  r  r   r   r   )ri   rq   r  r  r%   r   r   r  r   masked_greatermasked)r0   r  rQ  r+   r  r  s         r!   test_fill_between_interpolater    sN   
		#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"@rT  r  )g@gffffff@gffffff@)r_  r_  rs  ztab:redkr   T皙?r  r3  r  r  r)  r   r      X  )ri   rM  r%   r   r   r  r  r  )r  r  profr+   r    s        r!   (test_fill_between_interpolate_decreasingr(    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}   rn              r   r   r"  r;   r"  r   Tr   r$  r)  )ri   rq   asarrayr  r%   r   r   r  r	  s        r!   !test_fill_between_interpolate_nanr1    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   r7   r8   r.  r  r_  r  r,  )i@B i  r  r   r   r   r   r   symloglinearr   i )ri   rM  r%   r   r   r  
set_xscaler  r  s       r!   test_symlogr6     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   r7   )      4@r   r   r   r  r3  )	linthreshTr   皙r   )	ri   rq   r%   r   r  r   r5  rw  r  )r0   r+   r  r    r<  s        r!   test_symlog2r>    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   )r@  g      rA        r        пr   r  r         ?r         ?r   r   )ri   ru  hypotr%   pcolorr  )r0   r1   rx  ry  r  s        r!   test_pcolorargs_5205rH    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  r@  r   r8   皙?r   r   r7   r   r   r"  rJ  
edgecolorsr"  wgouraudshading)r%   r   ri   r  ru  re  r  rF  minptpr   masked_whererH  r  r   r  )r  r0   r1   rx  ry  QxQzr  Zmr  r  r  r  s                r!   test_pcolormeshrW  '  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   r@  r   r8   rJ  r   r   r  r   r"  rK  r"  rM  rN  rO  )ri   r  ru  re  r  rF  rQ  rR  r   rS  rH  r  r%   r   r  rg  set_axis_off)r  r0   r1   rx  ry  rT  rU  r  rV  Zm2r+   r  r  r  r6  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  r@  r   r8   r   viridis   r   r   )r   r@  )r  r   r   r   r   )r3  zorderr   r#  r  r7   )r   r  rP  rc  rN  )r   rP  rc  )r%   r   ri   ru  r  r  rF  rQ  rR  r   	colormaps	resampledrq   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  rx  ry  rT  Qyr  vircolorsr   r+   r  r  r  r6  r    s                  r!   test_pcolormesh_alpharm  Y  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  )r.  r   c                     | j                         }t        j                  dd|ft              dz  }|j	                  |       |j                         }|j	                  |d   ddd|	       y )
Nr   r  r  r8   ).r   grayr   r7   )r   r  r  r  )r   ri   r   r  r  )r   r   dimsr  r    r;   s         r!   test_pcolormesh_rgbarq  |  sa     
			B
AtE*Q.AMM!				BMM!F)&qqMFr#   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  r#  \(\?333333?hspacer=   rN     r7   r~  daysrm     r      r   r        rA   r   )r%   r   r   subplots_adjustr-  ri   rM  r   	timedeltarq   ru  ri  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation
r+   basedr0   r1   z1z2zr    r.   s
             r!   test_pcolormesh_datetime_axisr    s    ',CLL"#
**,CsS9T1a(D
U2YG$++33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 )Nr#  rs  rt  ru  rw  r7   r~  rx  rm  rz  r   r{  r   r|  r}  r~  rA   r   )r%   r   r  r-  ri   rM  r   r  rq   ru  ri  rG  r  r  r  r  r  r  r  s
             r!   test_pcolor_datetime_axisr    s   
**,CsS9T1a(D
U2YG$++33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            	      F   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        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   9x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   r8   r   r   rN  rO  r   r  invalidmask)ig  r   r7   r  r}   z.are not monotonically increasing or decreasingrp  auto)ri   r  ru  rF  r%   r   r   r   r   r  Tr  r  r  r   rM  zerosr  r  r@  )r  r0   r1   rx  ry  r  r  r    s           r!   test_pcolorargsr    s   
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./ /) ! !< << <) )) )) )/ /s`   J=K

K
K$K1%K>LL=K
KK!$K.1K;>LLL 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  r8   r   FTFFr  r   r7   r}   r  Tr   )ri   rq   r   broadcast_tor  flags	writeabler   rM  r%   r  r  ru  r  r  re  r  boolrG  )r0   xmaskmasked_xr1   rx  ry  r  r  masked_Zmasked_Xmasked_Ys              r!   test_pcolorargs_with_read_onlyr    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   r_   r8   r_  r  rO  r   r   r   ri   rq   rj   rk   randnr  diffr   r   r    r0   r1   r  rP  rQ  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   r_   r8   r_  r  rO  r   r   r   )r   r   r-  fromtimestampri   rq   rj   rk   r  r  r  r  s           r!   test_pcolornearestunitsr    s    				B<A"IFq			(	(T	2FA
		!QAIINN8
		1AMM!Q6M*				BEJ1X	N(


)
)1s7d*:
;	NB	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   r_  r   r_   zDimensions of Crp  r  rO  )r%   r   ri   rq   rj   rk   r  r   r   r   r  r+   r    r0   r1   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 Xrp  r  rO  )	r%   r   ri   ru  rq   r   r   r   r  r  s        r!   test_samesizepcolorflaterrorr    sv    llnGC;;ryy|RYYq\2DAq	AA	y(?	@ /
aAv./ / /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}   r.  r_   r   r_  )r  r   r8   r  )	r   r   r  r    r0   r1   r  rP  rQ  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  9  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 )Nr8   r7   )r   r   r   h  r_  -   r   r  )theta1theta2r   r}   )r%   r   r  r  rg  rh  EllipseArcr   ri   re  deg2radr  r  r  )
rM  r  centrer+  r+   r  rA  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   r^  r  )r   r   yellowr7   )r  r3  r4  r5  rc  r8   F)angler5  r1  rc  r_  equalr   )r  r3  r4  rc  )ri   r  rq   re  r  rM  rp   r%   r   r   r1  rh  r  rg  )xcenterycenterr  heightr  r  r0   r1   rthetaRr+   r    e1e2s                 r!   test_arc_ellipser  a  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   r8   r7   r:  )r.  r   r8   )r   r.  r   )r%   r   mmarkersMarkerStyler   r9   rA  )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  r.   r  mark allr  r.   r  mark every 10+r   rm  mark every 5 starting at 10ri   r  r  r  r%   r   r   rG   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?)r  r(  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_scalesr:  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 )Nrn  r   rn  rb  r,  r   r   r   r   r  r   r   r   r   r  r   ?r   r7   )\(?r}   r8   r   markevery=%sr   r;  r.  lsmsr  )slicerU   gridspecGridSpecr  ri   r  r  r  r%   ri  r/   strr   
casescolsgsdeltar0   r1   rA  caserb  rc  s
             r!   test_markevery_linear_scalesr    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 )Nrn  r  r  r   r   r   r  r   r   r   r   r  r  r7   r  r}   r8   r   r  r   r;  r.  r  )r  g@)rJ  g333333?)r  rU   r  r  r  ri   r  r  r  r%   ri  r/   r  r   r   r   r  s
             r!   #test_markevery_linear_scales_zoomedr    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 )Nrn  r  r  r   r   r   r  r   r   r   r   r  r  r7   r  r}   r8   r   r  r,  r   r;  r.  r  )r  rU   r  r  r  ri   r  r  r  r%   ri  r/   r  xscaler  r   r  s
             r!   test_markevery_log_scalesr    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 )Nrn  r  r  r   r   r   r  r   r   r   r   r  r  r7   r  r8   Tpolarr  r   r;  r.  r  )r  rU   r  r  r  ri   r  r  r  r%   ri  r/   r  r   )	r  r  r  r>  r  rA  r  rb  rc  s	            r!   test_markevery_polarr
    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 )Nrn  r  r  r   r   r   r  r   r   r   r   r  r  r7   r  r}   r8   r   r9  F   r  r   r;  r.  r  )r  rU   r  r  r  ri   r  r  r  r  r%   ri  r/   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   r7   r}   zy.      >@r>  )r  mewmecr   r   r8   r"  )ri   r  r%   r   r   r  r0   r+   r    s      r!   test_marker_edgesr  /  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   r7   edger   )align
tick_labelrO  r   r"  )r  r  r  )r%   rb  barr   )r    r  r+   s      r!   test_bar_tick_label_singler  8  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   r7   r.  )r%   r   r  ri   r  r*   s     r!   test_nan_bar_valuesr  E  s+    llnGCFFAq6BFFA;r#   c                  V    t        j                         \  } }|j                  g g        y r  )r%   r   r  r*   s     r!   test_bar_ticklabel_failr   J  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 )
Nr7         @r8   r   r   r   r"  rX   r  r  r  )r%   rb  r  r  s    r!   test_bar_tick_label_multipler$  O  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 )NrX   zytick.alignmentr7   r"  r8   r   r   r   r"  r#  )rU   r   r%   rb  r  r  s    r!   *test_bar_tick_label_multiple_old_alignmentr&  W  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@ro  rJ  r  gffffff
@g@rX   r  )r   r   r  r   r   r    x0y0r0   r1   s          r!   test_bar_decimal_centerr.  `  s|    				B	B	B  A  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 )Nr(  r)  )r   r   r7   r7   rX   r  r  )r   r   barhr+  s          r!   test_barh_decimal_centerr2  n  s    				B	B	B  A  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 )Nr(  r)  r  g333333?r7   r8   rX   r  r  )r   r   r  )r   r   r0   r1   w0rA  rM  r    s           r!   test_bar_decimal_widthr7  |  sq    AA	B  A 				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 )Nr(  r)  r4  rX   r0  )r   r   r1  )r   r   r0   r1   h0rA  r  r    s           r!   test_barh_decimal_heightr;    sq    AA	B  A 				BGGAq(G+				BGGAq8G, 	!r8  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 )
Nr7   r8   r.  r   r/  r>  r  r   r4  r   r   r   r   r7   r   r   r   r%   rb  r  get_facecolorget_edgecolorr    rectsrects      r!   test_bar_color_none_alpharF    sj    	BFFAq6Aq6FcFJE 6!!#|333!!#~5556r#   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 )
Nr7   r8   r.  r   r>  r/  r=  r?  r>  r@  rC  s      r!   test_bar_edgecolor_none_alpharH    sj    	BFFAq6Aq6C6FJE 4!!#~555!!#|3334r#   zbarh_tick_label.pngc                  h    t        j                         } | j                  ddgddgddgddgd	       y )
Nr7   r"  r8   r   r   r   r"  rX   )r  r  r  )r%   rb  r1  r  s    r!   test_barh_tick_labelrJ    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.  r7   r   r   hoursr  r8   )rE  r  )r  )r  rF  r   r-  r}   rm  N)	r%   r   r  r-  r  r1  ri   rM  broken_barhr+   r    r  s      r!   test_bar_timedeltarS    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   r7   r   )r  rN   )r  rO   N)ri   rM  rU  r%   r   r  r   r\   r   r/  AutoDateFormatterr1  rY   )startstopr+   r    s       r!   test_bar_datetime_startrX    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   r8   z1/1/2000r7   )years)periodsfreq	positions)	ri   rj   r~   
date_range
DateOffsetyearr%   r   boxplot)pdr  rZ  s      r!   test_boxplot_dates_pandasrd    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   r_  r   )r   r   r   r   )	capwidthswidthsr7   r   r8   rf  r   r.  r  rg  rT  rn  )ri   rj   r~   r%   r   rb  )r  r+   r  s      r!   test_boxplot_capwidthsrj    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     r7   rT  r   x   )secondsr   )pandas.plottingrl  rm  r%   r   r   r-  r  appendr  ri   rq   ru  r  r  canvasr  )rc  rl  rm  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)rL  rL  rL  r7   r7   r7   r  )ra  monthr4  r3  )ra  r~  r4  dater3  r}   rX   r5  oranger.  rI  )		DataFrameto_datetimegroupbyr  indexr%   r   r  r   )rc  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   r#  r  )r0   r  r  r  r   rO  )r  r%   r   r  r0   r  rc  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 )	Nr7   r8   r   r0   r   r  )r   r  r  )r   r   r  )r   r   rv   rw   r0   r1   hatchesrA  s           r!   test_bar_hatchesr  -  s     !GF	
AA	
AACjG1X =

1Q41T
<= KK1GK$r#   )r0   r  r.   expected_labelscontainer_labelr0   r7   
_nolegend_r   r"  r;   )r}   rm  r   )ABr  )r  ry  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  rZ   )
r0   r  r.   r  r  r  r    bar_containerr  
bar_labelss
             r!   test_bar_labelsr  <  sj     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)Nr0   r1   r7   r8   )rx  ry  r  r  rx  )r%   r   r   r   r  r  r  s     r!   test_bar_labels_lengthr  P  s    LLNEAr	z	" :
SzAq69:LLNEAr	z	" 0
SzAq6#/0 0: :0 0s   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 )Nr7   r8   float64r  Float64rc  r  )Seriesr%   r   r  r  )rc  r0   r  s      r!   test_pandas_minimal_plotr  Y  s    iiAii0iiAii02 A! 
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   r7   r  r   FT)r1  r,  )ri   r  concatenater%   r   hist)data0r  r+   r    s       r!   test_hist_logr  f  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 )
Nr8   r   )r  step
stepfilledr   r,  r7   histtypeT)r,  r  )r   r  r  r  )r   r   r   r   rA  r  r    s          r!   test_hist_log_2r  n  s      A&Hq!$G !>? 	78A!!%(AAq84AAq84A!!%(!Q$- 	7BGGAqdXG6	7	7r#   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 )Nr8   r   r7   
barstackedr  r,  r   r   r7   )r%   r   r  r  rt  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%   rb  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 )Nr_   r   r   r  sizer   r7   r   )r  r  r8   )ri   rj   rk   cliprl   r   float16r%   r  r   r  get_corners)r  r  bcr>  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}   r1  TFr8   r  r.  r  )nrowsncolsr  stackedr  r8  rN   r  c              3   ^   K   | ]%  }|j                         |j                         k(   ' y wr  )rA  rB  ).0r  s     r!   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>  s#     G!q AOO$55Gs   +-)ri   rj   rk   r  r%   r   r  r  r  r3   r  r:  all)
r0   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 
 $iGGwGGGGr#   zhist_density.pngc                      t         j                  j                  d       t         j                  j                  d      } t	        j
                         \  }}|j                  | d       y )Nr_   r  Tdensity)ri   rj   rk   r  r%   r   r  r  r+   r    s      r!   test_hist_densityr    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   r7   r   T)r  r  )ri   rj   RandomStater  r%   r  	histogramr   )rngr  r  mpl_heightsr  
np_heightss         r!   test_hist_unequal_bins_densityr    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  r7   r8   T)r  F)r-  r%   r   r  r  s      r!   test_hist_datetime_datasetsr    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    t r#   c                 .    t        j                  | d      S )NrU  )ri   r0  r  s    r!   r  r    s    rzz$'E r#   )r0  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  r7   r   r-  r8   r   r+  T)r  r  F)
r-  r%   r   r  ri   r   r   r   r  r0  )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 )Nr7   r   )r%   r  ri   r0  ndimr  )r  expected_number_of_histshistsr  s       r!   test_hist_with_empty_inputr    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 )Nr7   r8   r  )r%   r   r   r  r:  
get_zorder)r  rc  r    r  s       r!   test_hist_zorderr    sb    
 
	!	!	#BGGQFXG&::: ,!V+++,r#   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~  r.  )	r   r   r  r  r        @      @       @      "@r   r8   r  r7   rP   )r  rR   rQ   r.  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesri   rM  r   flattenstairssemilogyr  r   rs  add_lineLine2Dr  r  )r   r   mlinesr1   r0   	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)r7   r8   r   r.  r8   )r   r7   r8   r   r.  r   r  r8   r   Tr1  r7   rP   )rR   r1  )r  r1  r   )r  rR   r1  r   post)r  rJ  )r   r  r  r  ri   rs  r  r  r  r   r  )r   r   r  r  bsr
  r  s          r!   test_stairs_fillr  0	  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  r.  r  r  r.  r8   edges)r7   r8   r7   r   r7   r  r  )	r   r  r  set_datari   rq   allcloseget_datar  )r   r   r   test_axr  ref_axs         r!   test_stairs_updater  J	  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                     | j                         }|j                  g dd        |j                         }ddd} |j                  t        d      g dfdd	i| |j	                  d
d        y )N)r   r  rT  r  r  r  r  r.  )r   r  rT  rT  r   r  r   )r   r  r   r   r  )r   r   r  r  r   s        r!   test_stairs_baseline_0r  b	  sh     ""$GNN9tN,   "F '6BEFKKa,H,H%H
OOAtr#   c                      t        j                         j                         } | j                  g dg       | j	                         dk(  sJ | j                         dk(  sJ y )N*   )'   r  r]  )r%   r   r   r  r   r   r  s    r!   test_stairs_emptyr   o	  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"rp  r7   r8   r   )r   r   r  r%   r  ri   r  r   r#   r!   test_stairs_invalid_nanr#  v	  sB    	z)@	A +

Aq6Arvvq>*+ + +r  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 mismatchrp  r7   r8   r   )r   r   r  r%   r  r   r#   r!   test_stairs_invalid_mismatchr&  {	  s;    	z	9 #

Aq6Aq6"# # #s   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)Nr7   r8   rE  r"  rp  r  )r%   r  r   r   r  r  ri   r  r  s    r!   test_stairs_invalid_updater)  	  sR    

Aq69%A	z)@	A )	

!RVVQ
() ) )s   $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)Nr7   r8   rE  r%  rp  r   r  )r%   r  r   r   r  r  ri   rq   r(  s    r!   test_stairs_invalid_update2r+  	  sO    

Aq69%A	z	9 '	

1
&' ' 's   &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r7   r8   r   r.  r   r  r7   r   r   Tr  )r   r1  r.   r)  rP   r  )r   r1  rR   r.   r  r<  r8   r  )r   r  rJ  r.   r   D)r  rJ  r  rR   r.   r      E)r   r  rJ  r  r.   r  r.  r  F)r  r   r  rJ  r.   r   r#     r   G)r  r   r  r.   r1  r-  r  r  //H)r   r  rJ  r  r  r.   r   r>   )ri   rM  r   r  copyr  r%   r   r  r  r  rG   )r0   r1   ynr+   r    s        r!   test_stairs_optionsr8  	  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  ri   rq   rU  xticks)fr    s     r!   test_stairs_datetimer?  	  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  r)  T)r   r1  r  )r   r  	set_color)r   r   r  r  sts        r!   test_stairs_edge_handlingrC  	  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      rp  )ri   r  re  r  r  )r0   r1   r  s      r!   contour_datrF  	  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 )NrT  )r  \r4  r;  ro  r   r   )r  r   extendr  )rF  r%   r   contourfr   rd  )r0   r1   r  r+   r    s        r!   test_contour_hatchingrL  	  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  rJ  gg^I+r1   r   r8   )rP  rl  
linestylesr  r  r;   )rP  rl  r  r  F)erase)rF  r%   r   rK  ri   rq   r   rd  r  rH   	add_lines)	r0   r1   r  r+   r    cscs1cs2rK   s	            r!   test_contour_colorbarrW  	  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   r8   r   r}   Tr  
rasterizedr  r0   r1   )r  r  r[  )r%   r   ri   rj   rk   r  r   rX  )r0   r1   r+   r    r  s        r!   test_hist2dr\  	  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   r8   r}   TrZ  )	r%   r   ri   rj   rk   rM  r  r   rX  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  )ri   rj   r%   r   r   rX  )r0   r1   r    objs       r!   test_hist2d_densityrb  
  sS    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))?TestScatterr9   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   r.  r8   r  r8   r   r8   r   r>  r1   r"  limer,  r         )0.50.60.7z0.8)r0   r1   r;   r  c2r0   r   r1   r;   r  r;   r  rp  )r;   r  r  )ri   rM  r%   r   r9   )rw  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  rf  rg  )r7   r   r   r1   r"  ri  )r  r9  r  r   )r"  r>  gr"  r  )r;   r  rL  r   r   r=   	fillstyler  r   r8   r~  )r%   r   r9   r  r  ri   r  r  column_stackre  r  )
rw  r+   rm  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   r8   r  face)r;   r  rL  )ri   rq   ru  r%   r   r9   )rw  r0   r1   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 )Nr(  r)  rh  rj  rq  )ri   rM  r   r   r9   )rw  r   r   r,  r-  rA  r0   r1   r;   r  r    s              r!   test_scatter_decimalz TestScatter.test_scatter_decimal6
  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)Nr7   r8   r   r   r?  r  )r   r   r  r%   r9   rw  s    r!   test_scatter_colorzTestScatter.test_scatter_colorE
  su    ]]:& 	:KKAAsCj9	:]]:& 	?KK	9I>	? 	?	: 	:	? 	?s   BBBBr  r   ro  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 rp  r7   r8   r   r.  r;   r   )r   r  Warningr%   r9   )rw  r  
warn_matchs      r!   test_scatter_color_warningz&TestScatter.test_scatter_color_warningL
  s     :
 \\'4 	*KKB)&)	*\\'4 	8KKAA7"77	8 	B+b+F+QFQF7q!f77	* 	*	8 	8s   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 )NrE  r7   r   r8   0.1z0.3rm  r   r/  rw  rJ  r  ?r;   r   r  )r   r.  r   r   r   r7   r   r   r   r7   r   r   r   r7   )	r%   r9   r  r  get_facecolorsr  r   get_edgecolorsget_linewidthsrw  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 )
NrE  r  r  r0   r  r  r  r  r  )r%   r9   r   r  r  r  r  s     r!   test_scatter_unfillablez#TestScatter.test_scatter_unfillablei
  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)Nr.  zsame size as x and yrp  r7   zfloat array-liker	  )ri   rq   r   r   r  r%   r9   )rw  r0   s     r!   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_sizet
  s    IIaL]]:-CD 	%KK1ae$	%]]:-CD 	)KK!"qua(	)]]:-?@ 	%KK1e$	% 	%		% 	%	) 	)	% 	%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  r7   ru  r4  r  r7   r   r   r7   )r%   r9   ri   r  r  
same_colorrB  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 )Nra  rb  r"  r7   r.  r8   r  Tr;   r  r   plotnonfiniter   r   r;   r  r   )r  r   	r   r   rd  re  set_badr9   r   ri   r  rw  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 )Nra  rb  r"  r7   r.  r8   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  rp  r  r}   r   r   )r;   r  r  r  N)r%   rg  r   r   r  r9   r  r  )rw  r0   r    s      r!   test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax
  si    XXZ]]:"DE 	' JJq!qw'8'8b'AA  '	' 	' 	's   ,A))A2c                     |j                         }|j                  ddd       |j                         }|j                  dgdgdg       y )Nr7   r/  )r   r9   )rw  r   r   r    s       r!   test_scatter_single_pointz%TestScatter.test_scatter_single_point
  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}   r8   r   r/  )ri   rq   r   r9   r   )rw  r   r   r0   r    s        r!   test_scatter_different_shapesz)TestScatter.test_scatter_different_shapes
  sw    IIbM 


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


199Q?A1a
9r#   )rm  Nrgby
conversion)r)  N)r/  N)NN)r>  rv  r"  r/  N)jauner  r  r.  r   r   r   r  )rm  z0.4rn  ro  )rm  r)  rn  C5)rm  r   rn  r  ru  r7   r   r   r   r)  z0.0r  r   r7   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#   r.  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  rp  r   (argument looks like a single numeric RGBr  )r;   rL  r  xsizeget_next_color_func)r   r   r  r   r  r  r  
contextlibnullcontextr   rg  r   _parse_scatter_color_args)rw  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'') 	  	4HHMM33WRu$2 4 4	4 	4 	4s   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)r7   r   皙?)r7   r   r  r   r   r?  r.  r8   r/  )r   r9   ri   r   r   )rw  r   r   rgbrgbarw   rv   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  r0   r   r7   )r;   r   r  r  C3lines.linewidth)ri   rq   r%   r   r   r9   rc   r  r   r   r   )rw  r0   r+   r    rA  pcs         r!   test_scatter_linewidthsz#TestScatter.test_scatter_linewidths  s    IIaL,,.Rq 	0AArwwq!}!A3s'(1u  .B$$&!a%///	0
 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 anotherrp  r  )r   r#  r   r   )r  r5  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r  )rL  r4  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr3  )r   r   r   r%   r9   r  s    r!   &test_scatter_singular_plural_argumentsz2TestScatter.test_scatter_singular_plural_arguments  s    ]]9"#$ 	Y KK	9TWX	Y
 ]]9"#$ 	/ KK	9#D$-/	/ ]]9"#$ 	1 KK	9#D&/1	1 	1	Y 	Y
	/ 	/	1 	1s#    C C" C#CC #C,)!ry  rz  r{  r   rr  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!   rd  rd  
  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#   rd  )rL  c                    | ||||fS i |fS r  r   )r;   r  rL  r  s       r!   _paramsr  5  s     zV%76GGRGGr#   _resultz	c, colorszparams, expected_resultr"  rF  )r;   rl  r>  r/  r  r?  rv  )r   r   r   r7   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_colorI      r#   r  )r   rg  r   r  r;   r   rl  )paramsexpected_resultr  r;   rl  _edgecolorss         r!   test_parse_scatter_color_argsr  :  sW     !XX]]DD	5%35Av{!!!!!FO223r#   zkwargs, expected_edgecolorsr  r  r/  )r4  rL  )r;   r4  rL  )r   r4  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_colord  r  r#   r;   rL  r8   )r  r  )popr   rg  r   r  )r  expected_edgecolorsr  r;   rL  r  result_edgecolorss          r!   (test_parse_scatter_color_args_edgecolorsr  U  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_colorp  r  r#   z&RGBA values should be within 0-1 rangerp  )r   r   r  )r   r#  gffffff?r8   r  r  r  )	r   r   r  ri   rM  r   rg  r   r  )r  r;   s     r!   #test_parse_scatter_color_args_errorr  o  sn     
zE
G MHHo78//tBa^ 	0 	MM M M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)ry  rz  r{  r  r  r   r#   r!   Polarr  |  s    	"	Br#   r  rF  rq  y   )	ri   r  r  r%   rg  typer   rk  ri  )r  prjprj2r    s       r!   test_as_mpl_axes_apir  z  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   scarb  gcfrk  )fig1r  fig2r  s       r!   test_pyplot_axesr    si    ID#ID#GGCL#'')3779IIdOIIdOr#   c            
      &   t        j                         \  } }|j                  t        j                  t        j
                  dd                   |j                  dd       |j                          |j                  dd       |j                  |j                  fD cg c]H  }|j                         D cg c],  }|j                         |j                  j                         f. c}J c}}\  }}|g dk(  sJ |g dk(  sJ y c c}w c c}}w )	Nr   r   r,        @)r  r  ))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}}$)r  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   r  r  r  r  )r%   r   r   ri   r,  r  r  r  r5  rY   r\   _update_ticksget_loclabel1get_text)r+   r    r  r  r=  ytickss         r!   test_log_scalesr    s    llnGCGGBFF2;;sC()*MM%cM"OOMM%cM" XXrxx( 6:5G5G5IJ!))+qxx((*	+JNFF     &     - 	Ks   !D81D)DDc                     t        j                         \  } }|j                  dd       |j                  j	                  t        j                  d             |j                         |j                         cxk(  rdk(  sJ  J y )Nr,  )r  r  r7   r7   r}   )	r%   r   r   rY   r  r   MultipleLocatorr   r   r  s     r!   test_log_scales_no_datar    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)Nr,  zAttempt to set non-positiverp  r   r}   )	r%   r   r5  r   r  r@  r  r  r  r*   s     r!   test_log_scales_invalidr    s    llnGCMM%	k)F	G 
BMM%	k)F	G 
B   s   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   r7   r  r8   r   r}   )r   r  )r0   r  rQ  y3r0   r  rQ  r  )r  C1C2)r  rl  )	r%   r   ri   r  r   	stackplotr  r  r   )r+   r0   r  rQ  r  r    r  s          r!   test_stackplotr    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   r7   r   r8   r   r}   )ri   r  r   rj   exprq   )r  r  r   rA  jr0   r1   r  s           r!   layersz'test_stackplot_baseline.<locals>.layers  s    HHaVq 	JA1X Jbii..001		((**R/"ryy//112!Q$1rvv1)9A)=(Bq'H&HIII	J	J r#   r   r   r9  r8   r  zeror  r  symr7   r   wigglerf  weighted_wiggle)ri   rj   rk   r%   r   r  r   r  )r#  r  r+   r  s       r!   test_stackplot_baseliner)    s    IINN1 	q#AAb!eH||Aq!HCIc
ACC&9Ic
ACC%8Ic
ACC(;Ic
ACC2CDr#   c                     | S r  r   )r  s    r!   r  r  
  s    1 r#   c                    t         j                  j                  d       t        j                  j
                  t         j                  j                  ddd      fi | }t        j                         \  }}|j                  dd      r|j                  d       n|j                  d       |j                  d	d
      s$t        j                  d   t        j                  d<    |j                   ||      fi | y )N  rE  r   )r  r.  )meansigmar  vertTr,  patch_artistFr  boxplot.boxprops.linewidth)ri   rj   rk   r   cbookboxplot_stats	lognormalr%   r   getr  r5  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr+   r    s         r!   _bxp_test_helperr;  	  s    IINN3yy&&
		Rg>PBNPHllnGC~~fd#
e
e >>.%0LL*+ 	12
BFF?8$3
3r#   zbxp_baseline.pngr  )r  r   c                      t                y r  r;  r   r#   r!   test_bxp_baseliner>    s
     r#   zbxp_rangewhis.pngc                  4    t        t        ddg             y )Nr   r   whisr7  r;  rv  r   r#   r!   test_bxp_rangewhisrD  "  s     $QH"56r#   zbxp_percentilewhis.pngc                  4    t        t        ddg             y )Nr   _   r@  rB  rC  r   r#   r!   test_bxp_percentilewhisrG  )  s     $QG"45r#   zbxp_with_xlabels.pngc                  "    d } t        |        y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S NABCDr.   r  r  statsr  r.   s      r!   r2  z(test_bxp_with_xlabels.<locals>.transform4  .    E4<0 	HAuAgJ	r#   )r8  r=  r2  s    r!   test_bxp_with_xlabelsrQ  0  s    
 Y/r#   zbxp_horizontal.pngr   )r  r  r   r(  c                  0    t        t        d             y )NFr/  r9  rC  r   r#   r!   test_bxp_horizontalrU  <  s     % 01r#   zbxp_with_ylabels.png)r  r   r(  c                  8    d } t        | t        d             y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S rJ  rL  rM  s      r!   r2  z(test_bxp_with_ylabels.<locals>.transformJ  rO  r#   FrS  r8  r9  rC  rP  s    r!   test_bxp_with_ylabelsrY  E  s    

 Y4U;KLr#   zbxp_patchartist.png)r  r  r   c                  0    t        t        d             y )NT)r0  rT  rC  r   r#   r!   test_bxp_patchartistr[  R  s    
 $ 78r#   zbxp_custompatchartist.pngr   c            
      J    t        t        dt        ddd                   y )NTr  r   :)r3  r4  r  )r0  boxpropsrT  rC  r   r#   r!   test_bxp_custompatchartistr_  Z  s$    
 GD!F Gr#   zbxp_customoutlier.pngc            	      H    t        t        t        ddd                   y )Nr/  r  rv  r   r   mfc)
flierpropsrT  rC  r   r#   r!   test_bxp_customoutlierrd  d  s!    
 &#>!@ Ar#   zbxp_withmean_custompoint.pngc            
      J    t        t        dt        ddd                   y )NTr/  r  r   ra  )	showmeans	meanpropsrT  rC  r   r#   r!   test_bxp_showcustommeanrh  m  s"    
 A! r#   zbxp_custombox.pngc            	      H    t        t        t        ddd                   y )Nr<  r"  r   r   r   rJ  )r^  rT  rC  r   r#   r!   test_bxp_customboxrk  x      
 CA6!8 9r#   zbxp_custommedian.pngc            	      H    t        t        t        ddd                   y )Nr<  r"  r   rj  medianpropsrT  rC  r   r#   r!   test_bxp_custommedianrp    s    
 4sq9!; <r#   zbxp_customcap.pngc            	      H    t        t        t        ddd                   y )Nr<  rv  r   rj  )cappropsrT  rC  r   r#   r!   test_bxp_customcaprs    rl  r#   zbxp_customwhisker.pngc            	      H    t        t        t        ddd                   y )Nr;  r  r   rj  )whiskerpropsrT  rC  r   r#   r!   test_bxp_customwhiskerrv    s    
 Csq9!; <r#   c                     t        j                  d      }ddi}i |ddi}| j                         j                  ||       |j                         j                  ||       y )Nr   r5  r  r  r  rn  )ri   rq   r   rb  )r   r   r  medianprops_testmedianprops_refs        r!    test_boxplot_median_bound_by_boxrz    sf    99Q<D#R(D)D+;VDO3CDtAr#   zbxp_withnotch.pngc                  0    t        t        d             y )NT)shownotchesrT  rC  r   r#   r!   test_bxp_shownotchesr}    s    
  67r#   zbxp_nocaps.pngc                  0    t        t        d             y )NF)showcapsrT  rC  r   r#   r!   test_bxp_nocapsr    s    
 e 45r#   zbxp_nobox.pngc                  0    t        t        d             y )NF)showboxrT  rC  r   r#   r!   test_bxp_noboxr    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  )rN  r  s     r!   r2  z*test_bxp_no_flier_stats.<locals>.transform  s$     	"AEE(D!	"r#   F)
showfliersrX  rC  rP  s    r!   test_bxp_no_flier_statsr    s    

 Y $ 68r#   zbxp_withmean_point.pngc                  2    t        t        dd             y )NTFrf  meanlinerT  rC  r   r#   r!   test_bxp_showmeanr    s    
 te DEr#   zbxp_withmean_line.pngc                  2    t        t        dd             y )NTr  rT  rC  r   r#   r!   test_bxp_showmeanasliner    s    
 td CDr#   zbxp_scalarwidth.pngc                  0    t        t        d             y )Nr  ri  rT  rC  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?ri  rT  rC  r   r#   r!   test_bxp_customwidthsr    s    
 ,D EFr#   zbxp_custompositions.pngc                  4    t        t        g d             y )N)r7   r   r  rT  r]  rT  rC  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)Nr7   ri  rT  r   r   r  r;  rv  r   r#   r!   test_bxp_bad_widthsr    s2    	z	" 6D$456 6 6	   ;Ac                      t        j                  t              5  t        t	        ddg             d d d        y # 1 sw Y   y xY w)Nr8   r   r]  rT  r  r   r#   r!   test_bxp_bad_positionsr    s4    	z	" <DAq6$:;< < <s	   <Azbxp_custom_capwidths.pngc                  4    t        t        g d             y )N)r  r   r   r   rh  rT  rC  r   r#   r!   test_bxp_custom_capwidthsr    s     /C DEr#   zbxp_custom_capwidth.pngc                  0    t        t        d             y )Nr  rh  rT  rC  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)Nr7   rh  rT  r  r   r#   r!   test_bxp_bad_capwidthsr    s2    	z	" 9DA3$789 9 9r  rb  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 )Nr,  rS  rT     r2  '  r7   	bootstrapnotchr  r   r0   )r  r  r  	ri   rj   rk   r  hstackr%   r   rb  r  )r0   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#   zboxplot_custom_capwidths.pngc                      t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdddg	       y )
NrS  rT  r  r  r2  r7   r  r   )r  rf  )ri   r  r  r%   r   rb  r  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 )Nr,  rS  rT  r  r  r2  r7   r8   r  ^)r  r%  r  rv  r  )r0   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 )	NrS  rT  r  r  r2  r  r%  r  )ri   r  r  r%   r   rb  r  r  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 )Nr,  r  r   r8   r  r7   r  )r  r   T)r  r  	autorange)	ri   rj   rk   r   r  r%   r   rb  r  )r0   r   r  r  r  s        r!   test_boxplot_autorange_whiskersr  K  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)NrS  rT  r  r  r2  )ri   r  r  rU   r
   rb  )r    rc_dictr0   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"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 )(Nr,  r   zboxplot.notchTboxplot.whiskersr   rF  zboxplot.bootstrapr  zboxplot.flierprops.colorr"  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorrv  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler<  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr>  r1  zboxplot.boxprops.linestylezboxplot.capprops.colorr;   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr"  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalr  zboxplot.patchartist-.)r  zboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestyler7   )ri   rj   rk   r%   r   r  r  rU   r:  r;  get_childrenr  )	r+   r    rc_axis0rc_axis1rc_axis2	dict_listr  rc_axisr  s	            r!   test_boxplot_rc_parametersr  f  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T!W34 5 43s   C7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 )Nr,  rS  rT  r  r  r2  r@  r  rA        @r  r   r7   )r  usermediansconf_intervalsr  r  )
ri   rj   rk   r  r  r%   r   rM  rb  r  )r0   r+   r    CIss       r!   test_boxplot_with_CIarrayr    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(#  rE  X   i^  i@ ix  i  r  r,  Fminorwhich)
ri   rM  r  r%   rg  rb  r  r\   rw  rY   )r0   r  s     r!   test_boxplot_no_weird_whiskerr    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)	NrS  rT  r  r  r2  r7   r8   )r  	ri   r  r  r%   r   r   r   r  rb  r  s      r!   test_boxplot_bad_mediansr    s    
B3A
		32,AllnGC	z	" *


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


Aq6AA'7
89 9* *9 9s    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)	NrS  rT  r  r  r2  r7   r8   )r  r  r  s      r!   test_boxplot_bad_cir    s    
B3A
		32,AllnGC	z	" 4


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


Aq6Aq6A3-
89 94 49 9s    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   r8   rc  )ri   rq   r%   r   rb  r  )r0   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  rM  r   r  r  zboxplot.meanprops.markerr   rE  r   T)rf  )whiskerscapsr  mediansr   r  r   means)r%   r   r   ri   rq   rb  
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= 0	#I. 	0I'')R///	00 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)rt  r  r^  r^  Q?gQ?gQr   r  r   )r%   r   rb  rA  )r0   r+   r    bpkeyra  s         r!   &test_boxplot_mod_artist_after_plottingr    sX     	4AllnGC	A3	B #c7 	#C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r.  r   r  Fr^  rf  showextremashowmediansr  )r^  rf  r  r  r  )	ri   rj   rk   r   rl   r%   rg  
violinplotr   )r  r  r    r+   s       r!   test_vert_violinplot_baseliner    s     IINN905a91BII#&9D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+r.  r   r  TFr  r%   rg  ri   rj   rk   r   rl   r  r    r  r  s      r!   test_vert_violinplot_showmeansr    sk    	BIINN905a91BII#&9D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r.  r   r  FTr  r  r  s      r!    test_vert_violinplot_showextremar    sk    	BIINN905a91BII#&9D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}&r.  r   r  FTr  r  r  s      r!    test_vert_violinplot_showmediansr  "  sk    	BIINN905a91BII#&9D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r.  r   r  Tr   ?r   r  r   r  r#  r  )r^  rf  r  r  	quantilesr  r  s      r!   test_vert_violinplot_showallr  ,  s    	BIINN905a91BII#&9D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$r.  r   r  Fr}   r^  rf  r  r  pointsr  r  s      r!   $test_vert_violinplot_custompoints_10r  7  sm    	BIINN905a91BII#&9D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r.  r   r  Fr  r  r  r  s      r!   %test_vert_violinplot_custompoints_200r  A  sm    	BIINN905a91BII#&9D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r.  r   r  Fr^  r/  rf  r  r  r  r  s      r!   test_horiz_violinplot_baseliner  K  sm    	BIINN905a91BII#&9D9MM$%(%#  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/r.  r   r  FTr  r  r  s      r!   !test_horiz_violinplot_showmediansr	  U  sm    	BIINN905a91BII#&9D9MM$%(%#  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&r.  r   r  FTr  r  r  s      r!   test_horiz_violinplot_showmeansr  _  sm    	BIINN905a91BII#&9D9MM$%($#  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!r.  r   r  FTr  r  r  s      r!   !test_horiz_violinplot_showextremar  i  sm    	BIINN905a91BII#&9D9MM$%(%"  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"r.  r   r  FTr   r  r   r  r   r  r#  r  )r^  r/  rf  r  r  r  r  r  s      r!   test_horiz_violinplot_showallr  s  s    	BIINN805a91BII#&9D9MM$%($"!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r.  r   r  Fr}   r^  r/  rf  r  r  r   r  r  s      r!   %test_horiz_violinplot_custompoints_10r  ~  sp    	BIINN905a91BII#&9D9MM$%(%#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!r.  r   r  Fr  r  r  r  s      r!   &test_horiz_violinplot_custompoints_200r    sp    	BIINN905a91BII#&9D9MM$%(%#s  D :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@ 3r.  r   r  r   r]  r%   rg  ri   rj   rk   r   rl   r   r   r  r  r  s      r!   test_violinplot_bad_positionsr    s    	BIINN905a91BII#&9D9	z	" 0
deAh/0 0 :0 0s   '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#r.  r   r  r  )r^  rg  r  r  s      r!   test_violinplot_bad_widthsr    s    	BIINN905a91BII#&9D9	z	" B
deAhyAB B :B B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  r  
r%   rg  ri   rj   rk   rl   r   r   r  r  r    r  s     r!   test_violinplot_bad_quantilesr    s{    	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   ?r  )皙r   r   rD  r  r  s     r!   $test_violinplot_outofrange_quantilesr#    s    	BIINN9II#&'D 
z	" ?
d'<&=>? 
z	" A
d'>&?@A A	? ?A A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   r  r  )ri   rj   rk   rl   r   r  )r   r   r  r    s       r!   %test_violinplot_single_list_quantilesr&    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 )	Nr%  rT  r  )r_  rn  rT  r  r   r.  r   r  r_  	ABCDEFGHIr-  )	ri   rj   rk   r  rl   r  r   r  r  )r   r   rc  s1s2s3s         r!   test_violinplot_pandas_seriesr,    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   r.  r}   r   rm  r7   r8   F)r^  manage_ticks)
r%   r   r  r   ri   rj   rk   rl   rb  r   )r  r    old_xlimr  rQ  new_xlims         r!   test_manage_xticksr1    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   )r"  r  r   5)r%   r   rb  ri   rj   r~   rt  r  r   r  
get_xticksr  r  rR  s      r!   test_boxplot_not_singler5    s    llnGCJJryy~~c"qcJ2JJryy~~c"qcJ2JJOO;;=J&&& QF***"$"4"4"67QAJJL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   r7   z	font.sizeP   raw)r  format)r%   r   rU   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   r.  r   r  r   r#  rD  z&Simplest errorbars, 0.2 in x, 0.4 in yr8   T)r  r  r  r  r   rF  r   zVert. symmetricnbinsr  )rE  r   r  zHor. symmetric w/ alphar&  z--orF  rE  r   zH, V asymmetricrf  r,  r  rv  )rF  rE  r   ecolorcapthickzMixed sym., log yr&  zVariable errorbarsr  r0   r1   rE  rF  r  )ri   rq   
longdoubler!  r  r%   r   rb  rA  r3   r   locator_paramsr  maximumr  suptitle)
r0   r1   rF  rE  r+   r    r  ylower
yerr_lowerr  s
             r!   test_errorbarrP    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.
    rn  r	  rq  r  r  r   ffffff?r   r   rE  rF  r   r8   r   g?r  r  rt  r.  r   rJ  )r   r   r   )r   r   r   )rS  r   r   )r   rS  r    @@r}   N)r%   r   ri  rA  ri   r  )r+   r    th_symr_symth_longr_longth_asymr_asymrE  rF  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}   r8   r/  r.  r  r  r  )	r%   r   ri   rq   rA  r   r  to_rgba	get_color)r>  r    r0   r1   r  r  r  ln1s           r!   test_errorbar_colorcyclerd  Q  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   r.  r   )r  r  r  r  r  r;  r   r  )rF  r   r   rG  )rF  r   r   r   rG  )ri   rq   r   r!  r   r  rA  )	r   r   r0   r  r1   axtaxryir   s	            r!   test_errorbar_cycle_ecolorri  `  s    
		#q#A$Qx(!1(A(



C



C45 >	EQ"t) 	 	1Q"t)uW 	 	>> 	)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   r.  r   r   r8   r   rC  )rE  r   rF  )r%   r   rb  ri   rq   r!  r  vstackr  r   r   r  rA  )r+   r    r0   r1   yerr1rF  rE  s          r!   test_errorbar_shaperm  o  s   
**,C	B
		#q#A
r
A#bggaj. E99eQuW%&((D:D	z	" .
Aqt-.	z	" .
Aqt-.	z	" 9
Aqt$C89 9	. .. .9 9s$   /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   r  r   r   dottedr   )rE  rF  r  r   T)r7   r   r_  r   )rE  rF  uplimsr  r   )r8   r.  rn  r   r)  )rE  rF  lolimsr  r   r   r   rn  magenta)r   r  rE  rF  rr  rq  r  r   r   r   r  rU  r/  r   cyan)r   r  rE  rF  xlolimsxuplimsrq  rr  r  r  capsizer   )r   r  zErrorbar upper and lower limits)
ri   rq   r!  r%   r   rA  
zeros_like	full_liker  r3   )r0   r1   rE  rF  r  r+   r    rq  rr  ru  rv  s              r!   test_errorbar_limitsrz    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   r7   r/  rT  r  )ri   rq   r%   rA  r  rb  r  ra  )r0   r1   plotliner  barlineserrbars         r!   test_errorbar_nonefmtr    s    
		!A
		!ALLAAA6JHa Cvvf&&(GOOD,AABBBC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   r7   Noner  rc   z	steps-midroundr  r  bevel)
rE  rF  r  r   rx  r   dash_capstyledash_joinstyler  r  )ri   rq   r%   rA  get_fillstyleget_drawstyle)r0   r1   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)r8   r.  r}   rE  r   r<  r  r"  )r0   r1   rF  r  r   rb  r8   r   r.  z	tab:greenr]  r1   )r0   r1   rF  r   r  r   rb  r.  r   r  ztab:bluer  r   r;   )r0   r1   rF  r   r  r   rb  r7   r-  )r<  r]  r  )r  r  r   )r"  r1   r;   )r"  rv  r>  )r  r   rb  r   rg  )
prop_cycler0   r1   rF  )r0   r1   rF  r   )r0   r1   rF  r   )r   rA  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   r7   r   r  znot a tuple of two integersrp  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	ri   r  r%   r   r   r   r   r  rA  )r0   r1   rF  r    s       r!   test_errorbar_every_invalidr    s'   
Aq"A	QqS	AQ3D				 B	z)F	G 6
Aq$956	z)F	G 5
Aq$845	z)H	I :
Aq$E4=9:	z)A	B 5
Aq$845 56 65 5: :5 5s0   "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 valuesrp  r   r  r7   )r0   r1   rE  rF  )r0   r1   rE  z''yerr' must not contain negative valuesr  r   ro  r_  r8   r  rx  )r%   r   r   r   r   r  rA  ri   rq   r-  r  )r    r0   rA  r1   s       r!   test_xerr_yerr_not_negativer    s   				 B	zF
H J
qcaS}TFQC=IJ 
zF
H 6
qcaS}56 
zF
H 6
qcaS}56 
zF
H 7IIaL<=>qXtQA	2>>
a!++5 	 	7	7 7J J6 66 6 ?7 7sA    E.E;?F=F$F;*F.E8;FFFF!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   r7   r   r  rgbk)r   r   r8   rT  r  r.  )r  rw  r;   rU  )r;   rc  r/  )rw  r;   r   r   )r7   r.  r   )r  rw  r   r  )rw  r   r   r8   r   r  )r  r  rw  r;   r   r  r   r  )ri   r  r   r  rA  r   r  )	r   r   r0   r1   rF  rw   rv   r   shifts	            r!   test_errorbar_everyr    s   
Aq"A	QqS	AQ3DF!GFL1 8u	S 	At
!"e 	 	-
 	AqE#.%((Quxax[$uxax. !U 	 	88 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  )rF  r  )r%   rA  )r  s    r!   test_errorbar_linewidth_typer  3  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   r7   r8   r   r.  r  r   r  r   )r   r   ri   rM  r  rA  )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 )Nr7   r   rm  r   r}   r9  r  Tr  r0   )r  r  r  ri   r  r%   r   r  )d1d2r+   r    r  s        r!   test_hist_stacked_stepfilledr  F  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}   r9  r7   r   rm  r   r  r   r  r  r  r+   r    s       r!   test_hist_offsetr  T  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 )
Nr7   r   rm  r  r  r   r}   r   r   )ri   r  r%   r   r  r  r  r  r+   r    s      r!   test_hist_stepr  ^  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}   r9  r7   r   rm  r  rP   )r  rR   r  r  s       r!   test_hist_step_horizr  h  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}   r9  r7   r   rm  r  r  r  r   r  T)weightsr  r  r  )r  r  w1w2r+   r    s         r!   test_hist_stacked_weightedr  q  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   r8   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr.   )ri   r  r  r%   r   r  re  rG   r  s      r!   	test_stemr  |  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   r7   )mapr  
markerliner  )stem_containerexpectedr0   r1   s       r!   _assert_equalz%test_stem_args.<locals>._assert_equal  sE    422;;=>1HQKHQKr#   r7   r   r   r_  rn  rT  rE  )r  rK  r  zb--)r  r  Nr%   r   r  r  r+   r    r0   r1   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  	stemlinesrb  r  r  get_linestyle)r  	linecolormarkercolorr   s       r!   r  z*test_stem_markerfmt.<locals>._assert_equal  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   r0   )r  rz  r>  )r  r  r   rv  gxr  r  r   r  )r  r  )NNNr  r  s        r!   test_stem_markerfmtr    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 )Nr7   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   r8   r9  r  kxr  rP   )r  r  r  rR   )ri   r  r  r%   r   r  re  r  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 )Nr7   r   rm  r   r}   r9  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 )
Nr7   r   rm  r   r}   r9  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 )	Nr7   r   rm  r   r}   r9  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 )Nr7   r   rm  r}   r  )rN   r  )ri   r  r%   r   r  rq   r  s      r!   test_hist_step_bottomr    s?     
Q2	BllnGCGGBryy}|G<r#   c                      g d} g d}t        j                  || d      \  }}\  }ddgddgddgddgddgddgddgddgddgddgddgddgddgg}t        |j                         |       y )	Nr   r7   r8   r   r   r   r7   r7   r7   r8   r  r  r  r   r8   r7   r   r%   r  r   get_xyr  r  r  polygonr  s        r!   test_hist_stepfilled_geometryr    s    DD&**68Aq+7 a&1a&1a&1a&1a&1a&1a&a&1a&1a&1a&1a&1a&
:Bw~~',r#   c            	          g d} g d}t        j                  || d      \  }}\  }ddgddgddgddgddgddgddgddgg}t        |j                         |       y )	Nr  r  r  r  r   r8   r7   r   r  r  s        r!   test_hist_step_geometryr    st    DD&**02Aq+7 a&1a&1a&1a&1a&1a&1a&1a&	IBw~~',r#   c                      g d} g d}t        j                  || g dd      \  }}\  }ddgddgddgdd	gd
d	gd
dgddgddgd
dgd
d
gdd
gddgddgg}t        |j                         |       y )Nr  r  r7   r8   r   r  r  rN   r  r   r7   r   r   r8   r"  r   r  r  s        r!   $test_hist_stepfilled_bottom_geometryr  )  s    DD&*(3*68Aq+7 a&1a&1a&1a&1a&1c(QHc(QHq!fq!fq!fq!f
>Bw~~',r#   c            	          g d} g d}t        j                  || g dd      \  }}\  }ddgddgddgdd	gd
d	gd
dgddgddgg}t        |j                         |       y )Nr  r  r  r  r  r   r7   r   r   r8   r"  r   r  r  s        r!   test_hist_step_bottom_geometryr  5  sw    DD&*(3*02Aq+7 a&1a&1a&1a&1a&1c(QHq#h	OBw~~',r#   c                     g d} g d}g d}t        j                  ||g| dd      \  }}}t        |      dk(  sJ |d   \  }ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgddgddgd	dgd	dgddgg}t        |j	                         |       |d	   \  }ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg}t        |j	                         |       y )Nr  r  rE  Tr  r  r  r  r8   r   r7   r   r.  r%   r  r  r   r  r  data_1data_2r  r:  r  r  s          r!   %test_hist_stacked_stepfilled_geometryr  @  s/   DFFHHff-"&%)&24MAq'
 w<1
HGa&1a&1a&1a&1a&1a&1a&a&1a&1a&1a&1a&1a&
:Bw~~',
HGa&1a&1a&1a&1a&1a&1a&a&1a&1a&1a&1a&1a&
:Bw~~',r#   c            	      f   g d} g d}g d}t        j                  ||g| dd      \  }}}t        |      dk(  sJ |d   \  }ddgddgd	dgd	d
gdd
gdd	gd
d	gd
dgg}t        |j	                         |       |d	   \  }ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t        |j	                         |       y )Nr  r  rE  Tr  r  r8   r   r7   r   r.  r  r  s          r!   test_hist_stacked_step_geometryr  V  s    DFFHHff-"&%)&,.MAq'
 w<1
HGa&1a&1a&1a&1a&1a&1a&1a&	IBw~~',
HGa&1a&1a&1a&1a&1a&1a&1a&	IBw~~',r#   c                     g d} g d}g d}t        j                  ||g| dg dd      \  }}}t        |      dk(  sJ |d	   \  }d	d
gd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
d
gd	d
gg}t        |j	                         |       |d
   \  }d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t        |j	                         |       y )Nr  r  rE  Tr  r  r  r  rN   r  r8   r   r7   r   r   r"  r   r.  r  r  r  r  s          r!   ,test_hist_stacked_stepfilled_bottom_geometryr  j  s2   DFFHHff-"&%)$/&2	4MAq' w<1
HGa&1a&1a&1a&1a&1c(QHc(QHq!fq!fq!fq!f
>Bw~~',
HGa&1a&1a&1a&1a&1c(QHc(QHq!fq!fq!fq!f
>Bw~~',r#   c            	      l   g d} g d}g d}t        j                  ||g| dg dd      \  }}}t        |      dk(  sJ |d	   \  }d	d
gd	dgd
dgd
dgddgddgddgddgg}t        |j	                         |       |d
   \  }d	dgd	dgd
dgd
dgddgddgddgddgg}t        |j	                         |       y )Nr  r  rE  Tr  r  r  r8   r   r7   r   r   r"  r   r.  r  r  r  r  s          r!   &test_hist_stacked_step_bottom_geometryr    s    DFFHHff-"&%)$/&,	.MAq' w<1
HGa&1a&1a&1a&1a&1c(QHq#h	OBw~~',
HGa&1a&1a&1a&1a&1c(QHq#h	OBw~~',r#   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  r7  rm  r&  6  r%  )rm     r9  r-  r   i  )rp  rp  rp  r  r  rE     )r  r  r  r  r  r  r   r   r   r   r}   r  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   r  )r  r   g `p?)r  r   gǟ?)r  gˢ`?r   )gC?r  r   )gK?r  r   )r   r  z yellowrs  r  r}   r  mid)r  r  r  r   r.   zupper right)r   r   r7   )r?   bbox_to_anchorr  )r%   r   r  rG   )r  rl  labelsr+   r    s        r!   test_hist_stacked_barr    sn     
D	#%H	8	H	A		CA
OF @FllnGCGGABU&  II-
!IDr#   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}   rm  r   r7   r8   r  )r  rN   )ri   rM  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_emptydatar    s0    llnGCGGRrE"I&G8r#   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   r7   r  r   r  00)r%   r   r  rZ   )r+   r    r  r  s       r!   test_hist_labelsr    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   r9  r.  r/  r   )rb  r   ri   rj   rk   r%   r   r   r  s      r!   test_transparent_markersr    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 )Nr8   rt  r  r  rF  )r   r   r7   r   r   r   rm  )r  r  r7   r   )rb  r  r  r   r0   )r  r  )r   r.  r   r   )r%   r   rv  r  r   r  )r+   r  rcolorsbcolorsalphaskwrA  r  r"  rcolorr"  bcolorr    s                r!   test_rgba_markersr(    s   ||!$HC^,G^,GC[F	"	Bf% J5"7+ 	JIAv&w/ J	6AAaC1c /v6"'/+-/AAaC1cIvUIbIJ	JJ  
r#   mollweide_gridc                  p    t        j                         } | j                  d      }|j                          y )N	mollweiderq  )r%   r   r   rw  r*   s     r!   test_mollweide_gridr,    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 )	Nr+  rq  r  r   r  r7   r   r   )r%   r   r   ri   r  r  ru  rk  r  r  transProjectionr2  invertedr   r   )r+   r    lonlatllr  ll2s          r!   &test_mollweide_forward_inverse_closurer4    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 )Nr+  rq  r   r7     r   )r%   r   r   ri   r  ru  rk  r  r  r.  r/  r2  r   r   )r+   r    r0   r1   r  r2  xy2s          r!   &test_mollweide_inverse_forward_closurer8    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   r9  z-Dru  r  rm  r}   )r   rb  r   rJ  r8   r7   )r   rb  r   rJ  r  r.  r   r  rn  r  r  s      r!   r9  r9    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   rm  r  )r   r7   r  ru  r  r  )r7   rD  r   )r7   r   r7   )r   r7   r7   r  Q?)ir  r7   r   r  r}   )r   r8   r7   r7   r   r   )rl  lineoffsetslinelengths)r   r;   lor2  r   r;   r@  r2  )rl  r>  r?  r  )
ri   rj   rk   r  r  rq   r%   r   r   r;  )rX  data2r  num_datasetscolors1colors2rl  lineoffsets1lineoffsets2r>  linelengths1linelengths2r?  r+   axobjcollsnum_collectionss                    r!   test_eventplotrL  /  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   rm  r  N)ri   rj   rk   r  r%   r   r   r;  )rX  rA  r  r+   rI  s        r!   test_eventplot_defaultsrN  [  s     IINN1IIb"X&--/EIIaW%,,.E5=D
**,COOE	OODr#   rl  ))rm  )z
tab:orangeztab:pinkztab:cyanbLacK)r)  r  N)r7   r   r7   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   r7   r8   r   Nr  r.  rl  )r  ri   r  r  to_rgba_arrayr%   r   r;  r  r   rb  )	rl  r  r;   r  r+   r    r  r  r   s	            r!   test_eventplot_colorsrS  l  s     C!qcA3D 7==Q],=H= 8}A;w44X>TAOHllnGC
6{a,,tF,3K;1 1e(%01 >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   r8   r.  )r7   r   r   rT  r  r  r   r7   r   zalpha and positions are unequalrp  )r   r  r  )r%   r   r;  	get_alphar   r   r  )r+   r    r  s      r!   test_eventplot_alpharV    s/   llnGC ,,	<8,DKq>##%,,,q>##%,,, ,,	<8c
,KKq>##%,,,q>##%,,,	z)J	K G
i.oFG 
z)J	K 2
YsCj12 2G G2 2s   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   rm  r}   r>  r"  r;   r  r8   r7   r   dasheddashdotrp  )rl  r   r  r5  rQ  r   r   c              3   d   K   | ](  }t        |j                  t        j                         * y wr  )
issubclasscategoryr   MatplotlibDeprecationWarning)r  wis     r!   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  s)      " "++s'G'GH "s   .0N)
ri   rj   rk   r  r%   r   r   r;  r  r  )recwarnrX  rA  r  r+   rI  s         r!   test_eventplot_problem_kwargsr`    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 )Nr7   )r  r  r  r  rQ  r%   r   r;  r  r*   s     r!   test_empty_eventplotrc    s5    ll1a GCLL"34L5HHJr#   r  rR   )NverticalrP   c                     |i nd|i}t        j                  dd      \  }} |j                  | fi | t        j                          y)z#Introduced when fixing issue #6412.NrR   r7   rb  )r  rR   optsr+   r    s        r!   test_eventplot_orientationrg    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 )	Nro  r7   r8   r   r   rb  r   )r>  )r-  r   r;  )r   r   ts_1ts_2r    s        r!   test_eventplot_units_listrk    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  r0   s    r!   r  z$test_marker_styles.<locals>.<lambda>  s    3tAw<A#6 r#   )r  r/  r8   r   r}   r   )r   r   r   r.   )r%   r   sortedrU   markersr  rh  r  r   ri   rq   r   )r+   r    rp  r1   r   s        r!   test_marker_stylesrq    s    llnGC
 Z''33;;68GNN6  Gw' @	6
Q	BIIbM",,bggbk"nQ.>""QqS& 	 	@@r#   zrc_markerfill.pngc                      t        j                         \  } }t        j                  d      }t	        g d      D ]1  \  }\  }}|t
        j                  d<   |j                  ||z   |       3 y )NrT  ))r=   r  )rN   r   )r/  r  zmarkers.fillstyler:  )r%   r   ri   rq   r  rU   r   r   )r+   r    r0   idxr   r   s         r!   test_markers_fillstyle_rcparamsrt    sc    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   r[  rf  r\  r   r"  ra  r   r"  )r  r   r%   r   r   r  r  )r  marker_as_tuplemarker_as_listr+   r    s        r!   test_vertex_markersrx    sx    b	?D:O9NllnGCGGDBCG@GGD2J"^GEKKRKKRr#   vline_hline_zordererrorbar_zorderx86_64c                     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   )rJ  rc  r7   r)  )r   rJ  rc  r   rT  r  r8   r"  r   zaxvline and axhline zorder testr>  )rF  rc  rJ  r   )rJ  r   rc  zerrorbar zorder test)r  r   r%   r   rb  r   rs   axvliner3   ri   r  rA  )r0   r+   r    r1   rF  r"  s         r!   test_eb_line_zorderr~    s;    	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 2


1#a
0


A2!3q
12 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}   )r:  r7   r`  r   r  z.-)r7   r:  )r}   r  r"  r/  r7   r}   r:  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 )Nr\  r`  r  rf  r&  r  r?  )r   r   r7   r   r  )gffffffr  r   r  )sloper   )r7   r  r  C4)r  r7   infr  r   r7   r   )r   r   r  r  r   rs   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 )Nr\  r`  r  r7   r  r2  r  r  r  r   r2  r   r   r   r  )r   r   )r   r7   r  )r   r2  r   r?  )r   r   r  r>  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 )Nr\  r`  r  r7   r  r  r8   r  r  r   r  )r   r   r  r   r   r}   r?  )r   r   r  r>  set_size_inchesr   r   s      r!   test_axline_transaxes_panzoomr  O  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  Nrf  r7   )r  r,  r4  )
r%   r   r   r   r   r  r5  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)r8   r   r.  r   rT  )r8   r   rn  r8   r   rv  r   rl  r5  )r8   r   r.  r   r  rT  r8   r  r   rn  )r.  rn  )r  rs  r>  r<  )rl  r5  r   r"  r}   )r8   r.  r  rn  r}   r  )r   r7   r   r   r8   r7   )r/  r  r   rb     r+  r+  r   )	r%   r   rr   ri   r  r  r   r   masked_equal)r  r  r   r  rP  rQ  r  r  r  r6  x3r  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.colorr)  r   r   r7   )r%   r   r   r
   rr   rl  r  rb  r+   r    r  s      r!   test_vlines_defaultr    j    llnGC	.	/ ?		#q!$zz$$U__%6>>>? ? ?   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   hlinesri   r  r  r   r   r  )r  r  r   r  rQ  rP  r  r  r  r6  r  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  rl  r  rb  r  s      r!   test_hlines_defaultr    r  r  r   r-  r.  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)r)  r   r   r  r  r8   r7   r   r   r  )r7   r8   r   r   )r)  r   r   r  )r   rr   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  r&  r   r8   r}   r7   r  r  r!  r  r_  r   r   r>  )rg   rh   r2  rl  r  rT  rt  )yminymaxr2  rl  )ri   rq   r!  r  r  r%   r   r   r  get_yaxis_transformrr   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}   r8   )r;  r<  r  r]  r   pre)rJ  r   r  r7   r  r  r   rT  )rx  Y0Y1Y2rx  r  )rJ  r   r  r  r  r  )	ri   rq   r%   r   r  r  r  r  r  )r0   r1   r+   ax_lst	ln_stylesr    r  r  s           r!   test_step_linestyler    s   
 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)rn  rn  r.  r/  r   radiusr3  r4  T)match_originalr   r,  r7   r   r  ii)r   r   r   r   )r   r   r   r   rm  rb  )r%   r   rh  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  rA  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   r7   )r   r7   r   r   )r%   ri  ri   int32r   r  get_subplotspecget_geometryr  s    r!   test_subplot_key_hashr  0  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  r&  r.  r   r-  @ffffff@'@r}   r   r7   r8   r|  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr4  )r  r  r  r  r  r+  r  N)rU   r   intri   rQ  rq   r  r  r  multiplyouterr  rj   rk   r  r~   r   log2r  r%   r   r   specgramrl  LogNorm)r  r  fstims
NFFT_freqsr0   y_freqs
NFFT_noisey_noise	all_sidesr1   r  r  r  r    r  s                  r!   test_specgramr  6  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 	J419Q"''"''$-001SZZ\2215yA 	4IBKKh%U  4	4 SZZ\2215yA 	JIBKKh%U&Z->->-F-F-H  J	J	Jr#   )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                     dt         j                  d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t        d|z  t        j                  |      z        }t        j
                  d| d|z        }t        j                  dt        j                  z  t        j                  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  r&  r.  r   r-  r  r  r  r   r   r7   r8   r|  Nr   r}   r  r   	magnituder  r  r  r  r  re   r4  )r  r  r  r  r  re   r+  r  )rU   r   r  ri   rQ  rq   r  r  r  r  r  r  rj   rk   r  r  r~   r   r  r  r%   r   r   r  rl  r  )r  r  r  r  r0   r1   r  r  r  r  r  r  r  r    r  s                  r!   test_specgram_magnituder  Z  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 	J419Q"''"''$-001SZZ\2215yA 	FIBKKh%U  F	F SZZ\2215yA 	JIBKKh%U&Z->->-F-F-H  J	J	Jr#   )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                     dt         j                  d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t        d|z  t        j                  |      z        }t        j
                  d| d|z        }t        j                  dt        j                  z  t        j                  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  r&  r.  r   r-  r  r  r  r}   r   r7   r8   r|  Nr   r  )r  phaser   r  dB)r  r  r  r  r  re   r+  )rU   r   r  ri   rQ  rq   r  r  r  r  r  r  rj   rk   r  r  r~   r   r  r  r%   r   r   r  r   r   r  )r  r  r  r  r0   r1   r  r  r  r  r  r  r  re   r    r  s                   r!   test_specgram_angler    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&*   ,, ,,	,
,, ,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  Nr4  )r  r+  r   `   )r%   r  ri   r   
get_extent)specfreqsr  rz  rg   rh   freq0freq1s           r!   test_specgram_fs_noner	    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'.r6  upperzimage.originr   N)ri   rq   r  r%   r   r   r  )r   r   r  signals       r!   test_specgram_origin_rcparamr	    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.r6  r   r  N)ri   rq   r  r   r   r   r%   r  )r  r
	  s     r!   test_specgram_origin_kwargr	    sK    
		#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@r.  r   r-  r  r  r  r  r   r7   r8   r|  r  r  r  F)r  return_liner  Tr   )r  r  r  r  r	  r   xlabelylabel)r  ri   rQ  rq   r  r  r  r  r  rj   rk   r  r~   r   r  r  r%   r   r   psdr  r  r5  r   csd)r  r  r  r  r0   ys_freqsr  ys_noise
all_kwargsr  r  r  r  r    r  rets                   r!   test_psd_csdr	    sr    	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
C 	)JB"&&+ E$2"*6E=CECs8q6::mU#CCCCCFF"RF(		)
 cjjl33A6
C 	)JB"&&"4B"*6E=CECs8q6::mU#CCCCCFF"RF(		))r#   )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                     d} d}|dz  |dz  |dz  g}t        d|z  t        |      z        }t        dt        j                  t        j                  |            z        }t        j
                  d| d	|z        }t        j                  dt        j                  z  t        j                  ||      z        d
t        j
                  d      z  z  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  r	  r.  r   r-  r  r8   r   r7   r}   r   r|  r   r  )r  r  r  r   r	  r+  r  )r  rQ  ri   r   r  rq   r  r  r  r  rj   rk   r  r  r~   r  r%   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  r  fstims1r  r  r0   r  r  r  r  r1   r    r  r	  r	  r  s                   r!   test_spectrumr 	    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A 	)IB 5 5 5a Ou O OD%FF"RF(	) SZZ\2215yA 	)IB 5 5 5a !Bu !B !B<@!BD%FF"RF(	) SZZ\2215yA 	)IB 1 1 1! K5 KF KD%FF"RF(	) SZZ\2215yA 	)IB 1 1 1! K5 KF KD%FF"RF(	))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)	Nr8   T)r/  r  r  r   r   r7   )
r%   r   r   r\   r   ri   r  r	  r  r	  r  r    s     r!   test_psd_csd_edge_casesr#	    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  rh  rY   tick_bottomr\   	tick_left)r   r   rv   ax_twinxax_twinyrw   s         r!   test_twin_remover)	    sj    ""$G}}H}}HOOOO  "F LL
LLr#   ztwin_spines.pngc                     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#   )r.  r   r!  rD  )rA   )rg  r  TrE  zb-)r   r   r8   zr-)r9  r   r   zg-r   r8   r.  r7   A   r   )r  r  r1   )r  rl  r  r0   r   )r%   r   r  r   r  r-	  rA   set_positionr   r   r  r  r\   r.   rA  rb  rv  tick_params)	r.	  r+   hostpar1par2r  r  p3tkws	            r!   test_twin_spinesr7	  ,  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@r0  r  r7   )r  iL  i  i  )r  i-  r  r  r   g     @@z#BEAED4r?  r  )r   r  z#7FC97Fr   )rA  r"  rA  r"  )r   r  )r   r  r  )
rU   r   r%   r   r   ri   rM  r  r   r  )r+   r  r  r  s       r!   test_twin_spines_on_topr9	  Y  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)rN  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>  +      0 }}((*m; 0   '*c              3   X   K   | ]!  }|j                   j                         k(   # y wr  r=	  )r  r?	  minor_visibles     r!   r  z*test_rcparam_grid_minor.<locals>.<genexpr>  rA	  rB	  )r   r   r:  r%   r   rt  r  r  rY   
majorTicks
minorTicks)
grid_whichr@	  rD	  r+   r    s    ``  r!   test_rcparam_grid_minorrH	  x  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   rw  rt  r  rY   rE	  r>	  r  r*   s     r!   	test_gridrL	    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   r)  r?  rN  )
r%   r   r1	  rY   rE	  r>	  r  rw  r
   r  r*   s     r!   test_reset_gridrP	    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  r  r  r  r  r   r<  )	directionlengthr  r   padrO	  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   rw  r1	  draw_without_renderingrg  rY   reset_ticksr\   )r   r   r+   r    s       r!   test_reset_ticksr^	    s    " %__

2QdTA	 	 	!
 	""$% mm 

r#   c                      t        j                         } | j                         }|j                  d       |j	                  g d       t        |j                         d       y )Nr   )r=  r   r   r   )r=  r   )r%   r   rb  r}  r   r   r   r*   s     r!   test_vline_limitr`	    s@    
**,C	BJJsOGG BKKM9-r#   zfv, fh, args)r7   rf  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)	Nr7   z"ymin must be a single scalar valuerp  r  r  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rg   rh   z"xmax must be a single scalar value)rU   r  num2dater   r   r  )fvfhargsbad_lims       r!   test_axline_minmaxrh	    s     ''*G	z)M	N (
DwQ'(	z)M	N (
Dqw'( 
z)M	N (
DwQ'(	z)M	N (
Dqw'( (( (( (( (( (s/   
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 )
Nr7   r8   T)r  r  r  ra  r   r  )r8   r.  r  r   r  )r%   r   r   r   r   )r+   r  r,  r  r-  r  s         r!   test_empty_shared_subplotsrj	    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datalimr8   T)r  r  r   )
adjustablesharer7   ro	  r  )r%   r   
set_aspect
get_aspectget_adjustable)ro	  r+   r  s      r!   test_shared_with_aspect_1ru	    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 )	Nr8   T)r  r  ra  r   )rp	  r7   r   r.  )r%   r   rr	  r   r  r   r   r  s     r!   test_shared_with_aspect_2rw	    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 )Nrl	  r8   T)r  ra  r   rq	  r7   r   r   r.  )r%   r   rr	  r   r  r   r   bbox_inchesr  r  get_positionviewLimr  rs	  )	ro	  r+   r  
fig_aspectr    r  
box_aspect
lim_aspectr  s	            r!   test_shared_with_aspect_3r	    sv   ( C
<<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
 	CB!AAGG+J**RZZ-=-==J!J.;H1%r}})BBBB	CC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)	Nr7   r8   Tr  ra  r   r  zset_aspect\(..., adjustable=rp  )r%   r   r  r   r   RuntimeErrorr\	  )r+   rg  s     r!   test_shared_aspect_errorr	    sZ    Q$t<ICGLL	|+J	K %""$% % %s   A&&A/zerr, args, kwargs, matchr-  z@axis\(\) takes from 0 to 1 positional arguments but 2 were given)r	  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zThe first argument to axis*r	  z1axis\(\) got an unexpected keyword argument 'foo'c                     t        j                  | |      5  t        j                  |i | d d d        y # 1 sw Y   y xY wNrp  )r   r   r%   r  errrf	  r  rq  s       r!   test_axis_errorsr	    s8     
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'rp  r	  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer7   )	scilimitszSpecifying 'loc' is disallowedrO   )r?   r0   r=   )r?   r1   zCannot pass both 'left'r   )rO   rg   zCannot pass both 'right')rA   rh   zCannot pass both 'bottom')rN   r  zCannot pass both 'top')r=   r  )r%   rb  r   r   r  r  r  r   set_prop_cycle
set_anchorticklabel_formatr&   r'   r  r  r  s    r!   test_axis_method_errorsr	  !  sN   	B	z)I	J &
u%&	z)I	J &
u%&	y(K	L .
%u-.	z)A	B 
e	z)G	H )
a()	y(H	I .
e1-.	y(H	I -
e!,-	y(A	B $
#$	y(B	C %
!!$%	y(C	D &
11%&	y(@	A #
"# #)& && &. . ) ). .- -$ $% %& &# #s   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   r8   )r%   r   r#  rr	  r   bboxextents)r  r+   r    r@  s       r!   test_twin_with_aspectr	  ;  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  r&  )r  r;  )r  r  FT)visible_only)
rU   r   r   r   r   r   r   r   relimr   )r  r  rP  rQ  r+   r    r  s          r!   test_relim_visible_onlyr	  F  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)rO	  outrS	  N)r%   r   rb  r1	  r*   s     r!   test_text_labelsizer	  _  s6     **,C	BNNWN%NNUN#r#   zpie_default.pngc            	      ~    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   )rn  r  r!  %1.1f%%Tr+  )exploder  rl  autopctshadow
startangler%   r   pie)r  sizesrl  r	  r   r  s         r!   test_pie_defaultr	  i  sJ     -FEBFGV,ID#GGE76&dr  ;r#   )pie_linewidth_0r	  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	  Tr+  r5  r   r	  r  rl  r	  r	  r	  
wedgepropsr  )lr  r;   exr  r	  r	  r;   )r	  r  rl  r	  r	  r	  r	  r  )r%   r	  r  r   rb  )r  r	  rl  r	  r  r+   r    s          r!   test_pie_linewidth_0r	  u  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	  Tr+  r5  r   r-  r   )	r	  r  rl  r	  r	  r	  r	  rX   r  zCenter point)r7   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler3  )r  r  r  r	  r  )r%   r	  r  rv  r  r  r	  rl  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	  Tr+  r5  r8   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	  Tr+  )r	  r  rl  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	  Tr+  r5  r   rg  )	r	  r  rl  r	  r	  r	  r	  framerX   r   )r   r8   )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	  Tr+  )r	  r  rl  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	  Tr+  )r	  r  rl  r	  r	  r	  labeldistancer	  r  g333333r  )r%   r	  r  r   rG   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	  r8   r   Tr+  r5  )r	  rl  r	  r	  r	  r7   Fr"  r  r/  )oxoyshader4  r  r   )r	  r5  r	  r	  )r	  rl  r	  r  rg  s        r!   test_pie_shadowr	     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)r  "   r  )zLong name 1zLong name 2zLong name 3rX   r=   r+  anchorr  r)  )horizontalalignmentverticalalignmentr<  rotation_moder  r   %.2f)r  r	  	textpropsr	  r	  r<  r	  r  r   )
rv  r%   rb  r	  get_haget_vaget_rotationget_rotation_modeget_sizerb  )r  r  r	  r  textsr	  txs          r!   test_pie_textpropsr	    s   D:F', #+E	+I 	d6609 & ;Aug'" 8 	8B99;),A"BBBB99;),?"@@@@??$	*(===='')Y-GGGG;;=If$5555<<>Yw%7777	88r#   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_valuesr	  .  sB    llnGC	z	" 0
z;/0 0 0s   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)r0   	normalizer   r   g     v@r:  F)r%   r   r	  rH  r  )r+   r    r0   t1t2s        r!   test_normalize_kwarg_pier	  5  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 )Nr	  r  r  )r   r	  	set_hatch)r   r   r0   r  wedgesr  rM  s          r!   test_pie_hatch_singler	  >  s_    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 )Nr	  )r  r  r   r  )r   r	  r  r	  )r   r   r0   r  r	  r  rM  hps           r!   test_pie_hatch_multir	  G  si    AEAU+  "&&q)IFA"%fe"45BQ[[_55s   A;zset_get_ticklabels.pngc                  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 )Nr8   rl   zset_x/yticklabelsr   r}   r7   r   r"  r;   r  r  r   )11121314)r%   r   r   ri   rq   r3   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr4  
get_yticksr  get_yticklabels)r+   r    rD   s      r!   test_set_get_ticklabelsr
  P  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'rp  r   r  N)r%   r   r   r   r  rY   	set_ticks)r+   r    tickss      r!   0test_set_ticks_kwargs_raise_error_without_labelsr
  j  sS    
 llnGCE	z)T	U -
5,- - -s   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)

    )r7   r8   r.  r  r	  bold)
fontweightr  r8   r.  T)r  r  r  N)r   r	  r 
  r	  r
  r   s      r!   test_set_ticks_with_labelsr
  u  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 sequencerp  r8   r_  rV  z
must be 1Dr.  r\  r[  r  )r%   r   r   r   r   r   r	  r  r=  ri   rq   r   r   r  s    r!   test_xticks_bad_argsr
    sn   		!	!	#B	y(<	= #
q!fc"#	z	6 2

299Q<''012	z	6 2

299Q<''012	z	6 C

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

299Q<''0qBC C# #2 22 2C CC Cs=   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   rD  
bcdefghijk)r"  r  r>  r  r"  )r%   r   r   ri   rq   rY   r
  rK  set_ticklabelsr  get_ticklabelsr  )r+   r    r;   r  r  s        r!   test_subsampled_ticklabelsr
    s    llnGCGGBIIbMHHryy}s*+AHH51Q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   r"  r  )r%   r   r   ri   rq   rY   r
  r   r   r  r
  r*   s     r!   test_mismatched_ticklabelsr
    sn    llnGCGGBIIbMHHSz"	z	" 1
01 1 1s   2BB"c                      t        j                         \  } }|j                  ddgddg       |j                  ddg       |j	                  g        y )Nr7   r8   )r%   r   r  r	  r 
  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 )	NrE  )r   r   r.  FrJ	  r1   r   r   r  r  rT	  )r%   r   r   setpr
  r1	  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 numberrp  r   r  rD  z$The number of FixedLocator locations)	r%   r   r   r  r@  r 
  r	  r   r  r*   s     r!   test_warn_too_few_labelsr
    s    llnGC	N
P ) 	C<()
 llnGCMM+	zC
E )
C<() )) )) )s   B1B=1B:=Cc                     t        j                         \  } }d }|j                  j                  t        j                  |             |j                  g d       |j                  dd       |j                  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 )Nr7   
unit valuer   r   r   s     r!   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Av|-2-r#   )r   r   r7   r8   r   r  r"  )r   r   r!
  r   r   )r%   r   rY   r   r   r	  r  r   rt  r  r
  r  )r+   r    r"
  r?	  
tick_textss        r!   test_tick_label_updater$
    s     llnGC.HH  !2!2>!BC MM"#KKcII.0hh.E.E.GHd$--/HJ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   r7   r   r8   r   )r  r}   r2  r   r.  )r%   r   rO  r   r   ri   r   r  )r+   r    r  s      r!   test_o_marker_path_snapr'
    s    llnGCJJrNArl 7
A"''!*r/3267 kk!R$ 7
A"''!*r/3267r#   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 )Nr7   r}   r  r   rf  r   r8   )r   r8   皙ɿr  )r)
  r   )	r  rQ  r  r%   r   r   rO  r   r   )r  rg   rh   r  r  r   r  r  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                  d       t        j                         \  } }|j                  ddgddg       |j                  dd       |j                         dk(  sJ y )Nr  r7   r8   r,  r   )r  xmarginr-  )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\.5r[  r   r1   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   rO  )r	  rf	  r  rq  r+   r    s         r!   test_margins_errorsr/
    sQ     
s%	( $jjl__

D#F#$ $ $s   7AA!c                  x    t        j                         \  } }|j                  d       |j                  dg       y Nr7   )r%   r   r  r*   s     r!   test_length_one_histr2
  (  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  )r		  )r   r  )r   )r  r  )	r%   r   r   r   
get_xboundr   r  
get_yboundr   r*   s     r!   test_set_xy_boundr6
  .  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   r7   )r%   r   r  r=  r;  r<  )mylistr+   r    s      r!   test_pathological_hexbinr9
  F  sA    TCZFll1a GCIIffKK

r#   c                  b    t        j                         \  } }|j                  ddgddgd        y )Nr7   r8   r?  r  r*   s     r!   test_color_Noner;
  N  s+    llnGCGGQFQF$G'r#   c                      t        j                         \  } }|j                  ddgd      d   }d|j                         k(  sJ y )Nr   r7   ri  r/  )r%   r   r   rb  r+   r    r  s      r!   test_color_aliasr>
  T  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   rG   r*   s     r!   test_numerical_hist_labelr@
  [  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   rG   )r+   r    r   r"  r  s        r!   test_unicode_hist_labelrC
  a  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^;rO   r   r7   rA   r=   rN   )ri   rj   r%   r   r   rt  r  r\   
offsetTextrz	  r[   
tick_rightrY   get_verticalalignmentr   )r  r+   r    beforeafters        r!   test_move_offsetlabelrJ
  o  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)rU   r
   r%   r   )r  s    r!   test_rc_spinesrL
    sE     "" #	%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   )rN  zaxes.grid.axisr0   r1   r7   r   )r%   r   r  rU   r
   r   )r+   rc_dict0rc_dict1rc_dict2r  rA  r  s          r!   test_rc_gridrQ
    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)xtick.bottom	xtick.top
ytick.leftytick.rightr  r7   tick1Ontick2Onr%   r
   r   r   rY   r\   _major_tick_kw_minor_tick_kwr  r+   r  xaxyaxs        r!   test_rc_tickr`
    s   TE	3A	1	 1jjlooaA&iiii%%i000!!),,,%%i000!!),,,!!),,,%%i000!!),,,%%i00001 1 1s   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)rT
  rV
  rS
  rU
  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftrW
  r7   rX
  rY
  rZ
  r]
  s        r!   test_rc_major_minor_tickrb
    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 )Nr.  )r   r  r  r  mor	  r7   T)originalg      ?r   r  r  F)g333333?r   g      ?r  )ri   rq   rM  r%   r   r   r  r   r   r  rs	  r   rz	  r	  )r0   r1   r+   r    r   r   s         r!   test_square_plotrg
    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)Nrg  r
  r   r[  r   r7   )	r   r   r  r%   r   ri   r  rq   r   r   r#   r!   test_bad_plot_argsri
    s   	z	" 	z	" t	z	" 5&!288F#345	z	" O"))A,&&w/11E1Eb!1LMNO O  5 5O Os0   EE	=E&'AE2EE#&E/2E;zxy, clsr   ))r   rT  )r8   r  )r7   r8   r.  rn  rb  r  )r.  r   r  )r   r.  c                 v    t        j                         \  }}t         |j                  g | |       |k(  sJ y r  )r%   r   r  r  )r  r  clsr+   r    s        r!   test_pcolorfastrl
    s9     llnGC(r(4()S000r#   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 )Nr8   Tr	  r  r,  rf  r4  )r%   r   r5  r  r  
get_yscale
get_xscaler+   r  r    s      r!   test_shared_scalerq
    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  r`  )r   r   r   r%   ri  r   r#   r!   test_shared_boolrs
    sa    	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  ri   rM  r   r#   r!   test_violin_point_massru
    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 )
Nr0   r   r1   r	  r7   )r7   r7   r7   r7   r7   )r8   r   rE  rF  )r	   ri   rq   r   )base_xy
err_cyclerxerr_cyyerr_cyempty	xerr_only	yerr_onlyboth_errs           r!   generate_errorbar_inputsr
     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#   r  c                 p    t        j                         } |j                  di | }|j                          y )Nr   )r%   rb  rA  rh  )r  r    ebs      r!   test_errorbar_inputs_shotgunr
  6  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   r8   r}   r}   r   r"  )r  rJ  r   )r%   r   ri   r  	ones_liker   r   )r+   r    r0   r1   r"  s        r!   test_dash_offsetr
  =  sd    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  rU	  r[  g?r  zaxes.titlepadr	  )r%   r   r3   titleOffsetTrans
get_matrixr  rU   r   )r+   r    r  s      r!   test_title_padr
  F  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)	NrX   zaxes.titlelocationr
  rO   r>   rA   r	  fail)r%   r   r   r3   	get_titler   r   r  r*   s     r!   test_title_location_roundtripr
  V  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 )
Nr8   r7   r  r   r  ir
  r  r   )r%   r   r3   r\	  r/   rz	  )r  r+   r  r0   r  rQ  s         r!   test_title_location_sharedr
  h  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 )Nr7   r-  r   r   rL  r2  r8   )rT	  r  r   r  )rT	  r  r  )r%   r   ri   rq   r  r1	  )r+   r    r0   s      r!   test_loglogr
  s  sY    llnGC
		!RAIIaA!INN"AN&NN"AWN5r#   ztest_loglog_nonpos.pngc                     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   r7   r-  g      rT  r  r.  )r  r  r   r8   )r  )rJ  nonpositiverL  r,  )r
  )
r%   r   ri   rq   r  r   r  r  r5  r  )r+   r  r0   r1   mcymcxr    s          r!   test_loglog_nonposr
  |  s    ||Aq!HC
		!RA	1AAaDAaDg&:1E!hh( 6
cB#:		!QTaS	9		!QTa	(IIaA!I$e5e56r#   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   )r7   r7   r7   r7   r
  r  r}   )r  g      #@)r%   r   r   r5
  r  r1  r4
  rG  ri   r  r  r  rq   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  rh  r  rY   get_major_locatorr    r  r>  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  rh  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#   )rb  r   subplots_sharedrN  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 )
Nrb  r   r
  r8   r  r	  r   rN  r   r   r  r  )r
  r%   r   rb  r   rN  )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 )Nr8   r  r	  r   r7   r   )r%   r   r   rh  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 )Nir+  r  r8   r7   Tr	  r  )r
  r  )ri   rq   rj   random_sampler  r%   r   r  r  r  rU  rW  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  rD  r   r  r  r8   )r%   r   r\   r
  
set_paramsr  rr	  rt  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 )Nr.  rD  )r%   r   r   r  r4  r
  r"	  s     r!   test_auto_numticksr
    s_    
**,

1
%Chh G!!%7r}}%7F;FFFFFG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}   ir+  r.  r  r   )r%   r   r   r   r  ri   log10r4  rq   r  r
  r*   s     r!   test_auto_numticks_logr
    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   rQ  r*   s     r!   test_broken_barh_emptyr
    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.rL  r-  r_  r   r7   rM  r8   r  r8   r   gUUUUUU?N)	r%   r   r-  rQ  r  r  verticesr/  r0  )r+   r    d0pps       r!   test_broken_barh_timedeltar
    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[  rm  rk  r_  )r_  ri   rq   rj   r~   r%   r   r  )rc  timedepthr  r+   r    s         r!   test_pandas_pcolormeshr
  #  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-03r'  r  )r  r  r8   r7   r  r  rP  )ri   rq   r  r   r  r  r%   rb  rM  r  r6  r   )rc  r  r  r  r    without_zero_indexs         r!   test_pandas_indexing_datesr
  ,  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   r.  r  )r0   r1   xeyer-  )columnsr  r0   r1   r
  r
  rI  )r  ri   rj   uniformr%   r   rA  r  s       r!   test_pandas_errorbar_indexingr
  7  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  )rT  r7   r8   )XXYYr
  )r  r%   r   r   r  r  s       r!   test_pandas_index_shaper
  ?  s:    	Yi8	9BllnGCGGBHHbhr#   c                     | j                  g d      }|j                  dd  }t        j                         \  }}|j	                  |       y )N)
r7   r8   r8   r   r   r.  r.  r.  r.  r   rP  r7   )r  ilocr%   r   r  )rc  ser_1ser_2r+   r    s        r!   test_pandas_indexing_histr
  E  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 )Nr8   rO  r7   r   r"  rX   r*  )r  r   r%   r   r  r?   rt  r  r  s       r!   test_pandas_bar_align_centerr
  L  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   r)  r	  r   )rO	  rV	  rS	  r  )r%   ri  r\   get_tick_params_translate_tick_paramsr[
  r\
  set_tick_params)	r  initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styles	            r!   test_axis_get_tick_paramsr
  Y  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   r)  r	  )rO	  rV	  rS	  r   r  r"  r  )
r%   ri  r\   r
  rE	  _size	tick1linerb  r  r	  )axis_1s    r!   .test_axis_set_tick_params_labelsize_labelcolorr
  t  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   rY  )rX	  rZ	  rY	  r[	  r   r  )r%   ri  r1	  rY   r\   rE	  r>	  rb  get_linewidthrU  r  )r    r  s     r!   test_axes_tick_params_gridlinesr
    s    	BNNc!"+  -"((" Cq!**446#===q!**88:a???q!**446#===q!**88:dBBB	C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%   ri  r1	  r\   rE	  r  r  label2rF	  r  s    r!    test_axes_tick_params_ylabelsider
    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%   ri  r1	  rY   rE	  r  r  r
  rF	  r  s    r!    test_axes_tick_params_xlabelsider
    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   r=  r;  )r%   r   r   r   r   r  )r    lns     r!   test_none_kwargsr    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  )r8   r   r.  r   r  r*  r   )r%   r  ri   rM  uint8r  r:  r  )r  r"  r  r0   s       r!   test_bar_uint8r    s\    	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                  |dgdz  d
       t        j                  dd	d       t        j                  |dgdz  d
       y c c} w )Nr     r8      Canada/Easternr   tzinform  r  r!  r7   )tzUTC	r   r-  r  r  gettzr%   r   ri  rV  r0   
time_indexs     r!   test_date_timezone_xr    s    
 !8% ##D!Ra+3;;+<+<=M+NP %J %
 JJx KK1aMM*qcAg*:; KK1aMM*qcAg%0%s   >C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                  dgdz  |dd
d       t        j                  dd	d       t        j                  dgdz  |dd
d       y c c} w )Nr   r  r8   r  r	  r
  r  r!  r7   FT)r  xdateydater  r  r  s     r!   test_date_timezone_yr    s    
 !8% ##D!Ra+3;;+<+<=M+NP %J %
 JJx KK1aMM1#'!1dL KK1aMM1#':%uDI%s   >Czdate_timezone_x_and_y.pngc            
         t         j                  j                  } t        d      D cg c]  }t        j                   ddd||        }}t	        j
                  d       t	        j                  ddd       t	        j                  ||d	d
       t	        j                  ddd       t	        j                  ||dd
       y c c}w )Nr   r  r8   r  r
  r  r!  r7   r  T)r  r  z
US/Eastern)r-  timezoneutcr   r%   r   ri  rV  )r  r0   r  s      r!   test_date_timezone_x_and_yr    s     



C 8% ##D!RaD %J % JJx KK1aMM*jU$? KK1aMM*j\F%s   !C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  ra  )Fr  Tr  r}   r  r  r  r>  r?  r;   r;  )r   r   r5  F)r=   rN   rO   rA   )r%   r   r   r  r   rh  r  rg  rw  r1	  r-	  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&   r3   rt  r  get_rendererget_window_extentr-  r  ri   isclose)	r+   r    r  xlabel2r/   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  )r=   Xlabelr$  r%  )r   g(\?)r%   r   r  r  r&   r3   r/   r0	  rt  r&  _update_title_positionrz	  )r+   r    r  r   r*  s        r!   test_titlesetposr2    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.titleyr=   
xlabel topr7   p=
ף?)r   r   r%   r   rY   r   r3   rt  r  r/   rz	  r*   s     r!   test_title_xticks_topr7    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 )Nr4  r0   Tr  rN   r=   r
  r
  r5  r7   r6  )
r   r   r%   r   r1	  r3   rt  r  r/   rz	  r*   s     r!   test_title_xticks_top_bothr:  (  sv    "&CLLllnGCNNDdT  KLLJJOO88  "1%,,,r#   zleft, center))rO   r   )r   rX   )rO   rX   )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 )Nr4  g   vH7BrO   r>   r7   r   )
r   r   r%   r   r  r3   r\	  _left_titlerz	  r/   )rO   rX   r+   r    yleftr  s         r!   test_title_above_offsetr>  3  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 )	Nr4  )r   r  r  r   r0   Tr9  Boor7   r   )
r   r   r%   r   rN  r1	  r3   rt  r  rz	  )r+   r    tts      r!   test_title_no_move_off_pagerB  Q  s     #'CLL
**,C	+	,BNNDdT  K	e	BJJOO??Q3&&&r#   c                      t        j                         \  } }|j                  g d       |j                  j	                  d       |j                  j                         j                         dk(  sJ y )Ng   @Ag   eAg   FAr)  )rV	  )r%   r   r   r\   r
  get_offset_textrb  r*   s     r!   test_offset_label_colorrF  ^  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 )NrD  FT)label1Onlabel2On)rI  )r%   r   r   r\   r
  rE  r  r*   s     r!   test_offset_text_visiblerJ  f  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 )Nr7   r   g-q=gqىE)r%   r   r   ri   rM  rt  r  r*   s     r!   test_large_offsetrL  o  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  rT  r   r+  r   r9  )r%   r   r   r-  ri   r  r  barbsr+   r    rA  r  r1   ur  s          r!   test_barb_unitsrR  u  s    llnGC<A!R<LMqXtQB2ME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 rN  )r%   r   r   r-  ri   r  r  quiverrP  s          r!   test_quiver_unitsrV  }  s    llnGC<A!R<LMqXtQB2MEM
Aq#e*%AKK2s5z**AIIeQ1 NrS  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  rb  rA  )rX  r+   r    r"  r  brsbrs          r!   test_bar_color_cycler[    s    ^^FllnGC1X HggeAhffU1XuQx( 	HB",,.)VB4D4D4F-GGGG	HH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 )Nr7   r8   r   r   r   )r  r<  r+  r  r0   5   )r  rW	  r1   r   )r  r<  r:	  )
r%   r   r   rY   r
  r\   r  r	  r
  r1	  )r  r    r  texts       r!   test_tick_param_label_rotationr_    sf   \\!Q'NC"cGGQFQFHHaVaVHH6B7HH6B7"""0 )  "b((()"""0 )  "b((() OOBO/OOrO*##'#2 )  "b((()##'#2 )  "b((()r#   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  r"  )r3  r  r   r4  rL  )rV  )r%   r   r   r  r  ra  tupler  squeezer  r  r  )	r+   r    r"  cctargetaledge_targetelface_targets	            r!   test_fillbetween_cycleri    s   llnGC1X E__U1XuQx01QC)R&&(0023uV}DDDE
 1a[ EeAha11QC)R&&(0023uV}DDDE
 __S!F2 ER__U1XuQx=B9=R&&(0023uV}DDDE //#&KK6a@ J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	J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   rY   r  r2  r   )r+   r    marginxlim0xlim1r2  xlim0txlim1tx0tx1tr  s              r!   test_log_marginsrs    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   r7   r/  r  rp  )r   r   r   )	ri   rq   r%   r   r   r   r  r9   r  )r  r0   r1   rl  r+   r    s         r!   test_color_length_mismatchru    s    	A99Q<1qAYYqs^FllnGC	z	" #


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


1a?
+,JJq!(1,J-	# #, ,s   5C(C*C'*C3c                  \    t        j                  dgd       t        j                          y )Nr   Labelr  )r%   r;  rG   r   r#   r!   test_eventplot_legendrx    s    MM3%w'JJLr#   r>  zlineoffsets cannot be emptyr?  zlinelengths cannot be emptyr  zlinewidths cannot be emptyrQ  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_errorsrz    s8    * 
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 )Nr.  r7   r   )rO   r  )r   r   r   r#  r  )r%   r   r  r   r1  rB  )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   ri   r  r  r   r   r#   r!   test_invalid_axis_limitsr    s    HHaVaV	z	" 	z	" 	z	" 	z	"      s/   $D09$D<>$E$E0D9<EEEr  r3  r,  r  c                     t        j                         }|j                  g d       |j                  |        |j	                  |       |j                          y )Nr  )r%   ri  r   r5  r  r  )r  r  r    s      r!   test_minorticks_onr    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 )Nr7   r8   r   r   )r%   r   r  r  r   r   r{	  	intervalx)r+   r    xtwinr  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   r7   r<  )r  rJ  )r%   r   r   r#   r!   test_zero_linewidthr  '  s    HHaVaV+r#   c                      t        j                         \  } }|j                  g g g d       |j                  g g g d       |j                          y )Nzempty y)rE  r.   zempty x)rF  r.   )r%   r   rA  rG   r*   s     r!   test_empty_errorbar_legendr  ,  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   rU  r8   g\(\@      @)ri   rq   r   r   r   )r   r   r,  r0   r-  rA  r1   s          r!   test_plot_decimalr  3  s    	3C	 B@B	C1#Q,qAv
%q
03
6	CB	C  A   A Q"B# 
D  s   !B0B5B:c                     | j                         j                  dddd       |j                         j                  dddd       y )Nr   r   r/  r   )rb  r  rM  )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	  zxtick.directionzytick.directionoffN)	r%   r   r   get_tightbboxrt  r&  r  r,  r-  r+   r    bbbb2s       r!   test_tick_padding_tightbboxr  F  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                          t        j                  ddgd	dgg      }t        j                  |
j                         j!                         |k(        sJ y)z:
    Ensure that inset_ax argument is indeed optional
    r  r  r7   r   r}   Nr   r   r   333333@r8   r"  r   )boundsr   )ri   mgridr  r  re  r%   r   r  rr	  apply_aspectindicate_insetrt  r  rM  r  get_bbox
get_points)dxdyr1   r0   r  r+   r    r   r   rE  rec
connectorsxxs                r!   
test_insetr  R  sw    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'4OCJJOO	C9#;  
!B66#,,.++-3444r#   c                  j   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                                |j                  |      \  }}	t        |	      dk(  sJ |j                   j#                          t        j$                  ddgd	dgg      }
t        j&                  |j)                         j+                         |
k(        sJ t        j$                  ddgddgg      }
t         j,                  j/                  |j1                         j+                         |
d       y )Nr  r7   r   r}   r   r   )r  r  rS  rS  r   r  r8   r"  r.  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)ri   r  r  r  re  r%   r   r  rr	  r  
inset_axesr  r  rs	  indicate_inset_zoomr  rt  r  rM  r  r  r  r   r   rz	  )r  r  r1   r0   r  r+   r    axin1r  r  r  s              r!   test_zoom_insetr  o  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]]_%,,U3OCz?aJJOO	C":#;  
!B66#,,.++-3444	FH%H%' 
(BJJ'')2D  :r#   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  Tr  r   r8   r  )	r%   r   r  r   r   ri   rq   r  r   )r  r    axinsr>  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   hammerrq  )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                 `   t        j                  dd      \  }\  }}t        j                  d      }|j	                  ||d       | r|j                          |r|j                          |j                  g d|      \  }}|\  }}	}
}| 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.
    r7   r8   r}   r   )r8   r8   r   r.  r   r   N)	r%   r   ri   rq   r   r  r  r  r7  )r  r  r+   r  r  r0   rE  r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                 r!   test_indicate_inset_invertedr    s5    ll1a(OC#s
		"AHHQ3%%lC8LD&7=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   r#  r#  r   r  r   r   re
  rt  active)r%   r   rr	  r0	  ri   r  rz	  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)r  r  r6  r6  rR	  Fgư>r  )r%   r   r-	  rN   r'  rt  r&  _set_view_from_bboxri   r   r   r  r  s       r!   !test_spines_properbbox_after_zoomr    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   r8   r   r7   rb	  )r  r  r   r
  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r%   r   r  r  r  ri   r   r   r   r   )r+   r    r   r   r0  new_ylimres_xlimres_ylims           r!   test_limits_after_scroll_zoomr    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 )Nr7   r@  i  )r%   r   r   r^  ri   r  rt  r&  r   r   r  r  )r+   r    r*  s      r!   test_gettightbbox_ignore_nanr    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}   r+  rn  r  r  )r7   r7   r7   r7   r7   r   r   r   )r   r  ri   rj   r
  r%   r9   )rc  r  r0   r1   r;   s        r!   "test_scatter_series_non_zero_indexr    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%   r9   r   r#   r!   test_scatter_empty_datar    s"    KKBKKB"#r#   zannotate_across_transforms.pngc            
         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   r!  )r#  r   r   r   r   Fr   rE  r&  r	  )r	  )r  r  r  r  r  )ri   r  r!  r  r%   r   r   r  rr	  rY   r   r\   r  	transDatar>  rv  )r0   r1   r+   r    r  s        r!   test_annotate_across_transformsr    s     	Ar3A
r
RVVAYAll9-GCGGAqMMM./E	S	KKE"	KKE"KK##'",,%//40  2r#   zsecondary_xy.pngc                  x   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        y )Nr7   r8   r  T)rs  r:  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wNr  r  r7   ri   r  rn  s    r!   invertz!test_secondary_xy.<locals>.invert*  *    [[) 	q5	 	 	   &/r-  r   r   	functionsr#  c                     d| z  S Nr8   r   rn  s    r!   r  z#test_secondary_xy.<locals>.<lambda>6  s
    A r#   c                     | dz  S r  r   rn  s    r!   r  z#test_secondary_xy.<locals>.<lambda>6  s
    Q r#   r  c                     | dz  S r  r   rn  s    r!   r  z#test_secondary_xy.<locals>.<lambda>7  s
    1 r#   c                     | dz  S )Nr   r   rn  s    r!   r  z#test_secondary_xy.<locals>.<lambda>7  s
    C r#   r  )r%   r   r  r   ri   rq   secondary_xaxissecondary_yaxis)r+   r  r  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

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        y # 1 sw Y   pxY w# 1 sw Y   IxY w# 1 sw Y   y xY w)Nr8   r-  r   c                     d| z  S r1
  r   rn  s    r!   r  z%test_secondary_fail.<locals>.<lambda>?  s
    QU r#   r  rA   rN   )
r%   r   r   ri   rq   r   r   r  r  r  r*   s     r!   test_secondary_failr  ;  s    llnGCGGBIIabii2./	z	" =
3?<=	z	" $
7#$	z	" %
8$% %	= =$ $% %s$   +C/!C;D/C8;DD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  r!  r8   r-  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wr  r  rn  s    r!   r  z%test_secondary_resize.<locals>.invertJ  r  r  r=   r  )rT  r.  rf
  )r%   r   r   ri   rq   r  rt  r  r  r   rz	  r	  )r+   r    r  s      r!   test_secondary_resizer  F  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  r!  r8   r-  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wr  r  rn  s    r!   r  z'test_secondary_minorloc.<locals>.invertX  r  r  r=   r  r,  r4  )r%   r   r   ri   rq   r  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr5  r  
LogLocator)r+   r    r  r  s       r!   test_secondary_minorlocr  T  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 )Nr,  r=   )r%   r   r5  r  rY   r   r   ScalarFormatterrt  r  r   r   r+   r    r  s      r!   test_secondary_formatterr  l  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 )Nr=   z<SecondaryAxis: >)r%   r   r  r4   r  s      r!   test_secondary_reprr  v  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 )Nr8   r   )scaledr  imager   r-  )r7   g	@)r   r   r   r/  r"  r  r7   )r7   g      @)r7   r   )r   rE  r  )r%   r   r  r   r  r9  rh  r  )r+   rg  rA  options       r!   test_axis_optionsr  |  s    Q"IC;< P	6 	QT
)QT
QT
hooj8>#O 	P 	QT
	9-QT
QT
hook$8>#O 	P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  r1   r/  Nr   )r  r  r5  r4  r3  r2  rc  )rN   r=   rO   rA   r   r   rs  r8   r)  r7   )rt  r  r&  r  rY   r\   r  rh  ri  r,  r-  r  r  r9  r-	  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$ 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  rs  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r8   )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   rt  r  rk  r  r  r  Bboxfrom_boundsr   r  rz	  transformedtransFigurer'  )r+   r    r  r	  r  r  rd  r  r"  targetbbaxbbs              r!   test_normal_axesr#    s   	-u5	6 <,,37R

		#'23';$$	< 	3=F 6" HA##//<!!((HOOQGH
 	(#(,	F 8$ HA##//<!!((HOOQGH 7F++V4Hdkk8??AF2F++V4Hdkk8??AF ??((9@@DdB$8$8$:$A$A1MG< <s   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  r  r  )r        ^@r  r  )r
   r%   r   rt  r  r   r  r  r  r  r  r   r  )
r+   r    r  r	  r  r  r  r"  rd  r!  s
             r!   test_nodecoratorr)    sM   	-u5	6 <,,37R


22.'23';$$	< 6" Ayy 	(#(,	F 8$ >A##//<(//=> 7F++V4HDKKt<%F++V4HDKKt<5< <s   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%  )rg  r=  )r        8@r  gs~8&@r  r  r  r  r  r  )r  r+  r  g     @)r
   r%   r   r   r-	  rN   r0	  rt  r  r  r  r  r  r  r   r  )
r+   r    r  r	  r  r  targetsrd  bbspiner!  s
             r!   test_displaced_spiner.    sA   	-u5	6 <,,37R
22.
		%%n5

'23';$$< 	%#(,	G w1 D##//8dCD 7F++V4HDKKt<%F++V4HDKKt</< <s   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@rp  r  r  )r  gqq\@r  r1  )g88b@r  r  r  )rR	  r	  inoutr  Fr  r  r  r	  r   r8   r  r  N)r  r
   r%   r   r1	  rt  r  r  r  r  r  r   r  )r,  dnumdirsr+   r    r  r	  r  r  r  r   r!  s               r!   test_tickdirsr5    s    /-/<-/F<>	?G   67 	F
d159: 	FllsF;GCNNTN*JJOO+6sB+?(FHdD$aV, FC&++77r9JKSM(((//FF	F 	F	F	F 	F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  rS	  )r  g88[@r  r1  )gCiq\a@r  r0  r  r8   r  r  r  r   r
  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r(  goTT@r  )r
   r%   r   rt  r  r1	  r  r   r  r  r  r   r  r  )	r+   r    r  r	  r  r  r,  r  r!  s	            r!   test_minor_accountedforr7  2  s   	-u5	6 D,,37R

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

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

'23';$$G35 q 	DA"''33WQZ@HQ&&dD	D1D D Ds   F>GGc                 *   | j                  d      j                  d       |j                  d      j                  d       | j                  d      }|j                  d       |j                  d       |j                  d      j                  d       y )Nr^  Fr  r_  Ton)r   r  r   s      r!   test_axis_bool_argumentsr:  Q  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   rm  r%   r   r  ra  r   r   r+   r    rg   rh   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   rm  )rg   rh   r  r  r<  r=  s          r!   test_axis_extent_arg2r@  m  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   r.  r   r  r  r  r   r7   r   r  )r%   r  r  r  s     r!   test_hist_auto_binsrC  ~  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)Nr8   r  r  r  )r%   r   ri   r  r  r  r   r   )
r+   r  r  r  nan_datar  r  r  nanbinsnanedgess
             r!   test_hist_nan_datarH    s    ll1oOC#sDrvvhHXXd^ND%	X	& 2"xx112 JJtW-JJuh/	2 2s   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   r7   )r%   r  ri   rj   r~   rB  s     r!   test_hist_range_and_densityrJ    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   )r0   r  rF  rw  rc  )r%   r   r  rA  r  r:  rc  )
r+   r    r0   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r!   test_bar_errbar_zorderrR    s     llnGCAffqAaf@G'.'7'7'='=$Ix 2 	/G>>CJJ...	/% 	2J$$szz111	22r#   c                      t        j                         \  } }|j                          |j                  ddg       |j	                         dk(  sJ |j                  dg       |j	                         dk(  sJ y )Nr   r  r&  r   r[  )r%   r   r  r	  r   r*   s     r!   test_set_ticks_invertedrT    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
  r!  r#  r  r,  r  logit)F]tE?g'^P?r7   rm	  r  r   r  r   r   ro	  r   r8   )r%   r   r   r   r   rO  r   transform_bboxrz	  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
  r!  r
  r#  r  r,  )r7   r   rV  )gbeF?rW  r7   rn	  rX  r   gS[:XL	@g'In?@)r%   r   rN  r   r   rO  r  r   r   rZ  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  r7   r   r   r8   r  rn  r  rm	  rq	  )r%   r   r  r   set_box_aspectget_box_aspectrO  rr	  rt  r  rz	  r   r	  )r   r  axtwinr  r  bb1bbtr  s           r!   test_box_aspectrd    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   r  r   r   )	r%   r   r0	  rt  r  r_  rz	  r   r	  )r   r  r  r  rb  r  s         r!   test_box_aspect_custom_positionrf    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 )Nr8   r   r7   )r}	  T)rt  r:  r   )r%   r   rv  rt  r  r&  r  r'  rJ  r  r  r   )r+   r  r*  r	  r    r  s         r!   test_bbox_aspect_axes_initrh    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 positiverp  r   r   )r%   r   r   r   r  rr	  ri   r  r*   s     r!   test_set_aspect_negativerj    s    llnGC	z)F	G 
b	z)F	G 
a	z)F	G 
bff	z)F	G 
rvvg     s/   D
(D D" !D.
DD"D+.D7c                      t        j                  dd      \  } }|j                  g d       | j                  j	                          |j                          y )Nr7   r  )r%   r   r   rt  r  redraw_in_framer*   s     r!   test_redraw_in_framerm    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   rt  inaxesr   r*   s     r!   test_invisible_axes_eventsrp  !  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   rg  rY   get_major_ticksr
  get_markeredgecolorr    r
  r?	  s      r!   "test_xtickcolor_is_not_markercolorrv  )  X    ,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 rr  )r%   r   rg  r\   rs  r
  rt  ru  s      r!   "test_ytickcolor_is_not_markercolorry  1  rw  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   r=  r   get_autoscale_onr*  limget_r  )r  )
r%   r   ri   rq   r  r9   r#  rt  r  r   )
r  r  r+   r    r0   r1   r  set_limget_lim	post_autos
             r!   test_unautoscaler  9  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 )Nr	  rq  r   r8   r7   r   e   )r   r   ri   r  get_path_interpolation_stepsr  )r   r   r	  s      r!   )test_polar_interpolation_steps_variable_rr  M  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  rt  r  r   r*   s     r!   test_autoscale_tiny_stickyr  U  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  xtick.colorr   xtick.labelcolor)r%   r   rg  rY   rs  r
  rb  r  ru  s      r!   &test_xtickcolor_is_not_xticklabelcolorr  ]      "*CLL'-CLL#$	BHH$$&E 1~~'')X555{{$$&&0001r#   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   rg  r\   rs  r
  rb  r  ru  s      r!   &test_ytickcolor_is_not_yticklabelcolorr  g  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   rg  rY   rE
  rb  r  s    r!   test_xaxis_offsetText_colorr  q  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  r)  r  r  )r%   r   rg  r\   rE
  rb  r  s    r!   test_yaxis_offsetText_colorr  |  s    '.CLL#$	B88((*g555"'CLL'0CLL#$	B88((*e333r#   r  )rn  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 )Nzxtick.labelsizezytick.labelsizer0   r1   )r   r   r%   r   rt  r  r  rY   r\   rs  r  r	  _get_tick_label_size)r  r+   r    namer  r?	  s         r!   test_relative_ticklabel_sizesr    s     '+CLL"#&*CLL"#llnGCJJOO3*rxx&:; M
d((* 	MD;;'')T-F-Ft-LLLL	MM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 )Nr8   r7   r  r  r  )r8   r   r8   r   r  r   r   r  )r%   r   r   r9   r  r   ri   r  )r+   r  r  r   s       r!   test_multiplot_autoscaler    sd    
**,C||Aq|/HCKKl+KKA<<>D;;tc3Z(((r#   c                  :   t        j                         } | j                  d      }| j                  g d|      }|j	                         }| j                  d       |j	                         j                         |j                         k(  j                         sJ y )Nrz  )r  r  r   r   r  r   rO   )r%   r   r   rN  rz	  r  r  r  )r+   rm  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   r7   r8   r   r/  r  rp  r   r}   r?  r.  r[  )ri   rM  r   r   r   r   r  r9   r  r  rq   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):;<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< <s   )+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  r8   r  Tr	  )ri   rq   r  r  r   r  r   r  )r   r   r0   r1   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 )	Nr8   r  r	  r   zo-r  )r  r   r7   r   )r  r   r8   r"  )r%   r   r  r   r	  r   r	  r   rp
  s      r!   test_shared_axes_retickr    s    ||Aqu=HChh 
A I*+hh 5{{}D	 2 2 44445 I*+hh 5{{}D	 2 2 44445r#   rD   )rO   rX   rA   c                     t               }|j                         }|j                  dd|        |j                  j	                  d       |j                  j                         j                         | k(  sJ y )Ntestr7   rC   rA   )r   r   r'   r\   set_label_positionrZ   r	  )rD   r+   r    s      r!   test_ylabel_ha_with_positionr    s\    
(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 )	Nr7   r8   r   r   rX   rN   r=   r%   rb  r  	bar_labelr  r[   rG
  r    r  heightsrD  r  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 )	Nr7   r8   r   r  r   rX   r=   rN   )r%   rb  r  r  r  r  r[   rG
  r  s        r!   *test_bar_label_location_vertical_yinvertedr    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 	Nr7   r8   r   r  r   rO   rX   rA   r%   rb  r1  r  r  r[   rG
  r    r  rg  rD  r  s        r!   "test_bar_label_location_horizontalr    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%   rb  r  r1  r  r  r[   rG
  r  s        r!   ,test_bar_label_location_horizontal_yinvertedr  
   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 	Nr7   r8   r   r  r   rA   rX   rO   )r%   rb  r  r1  r  r  r[   rG
  r  s        r!   ,test_bar_label_location_horizontal_xinvertedr     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%   rb  r  r  r1  r  r  r[   rG
  r  s        r!   -test_bar_label_location_horizontal_xyinvertedr  &   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 )	Nr7   r8   r   r  rX   
label_typer   r  r  r  s        r!   test_bar_label_location_centerr  5   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  r,  r7   rX   r  )r%   r   r1  r5  r  r  r[  )r  r    r  s      r!   !test_centered_bar_label_nonlinearr  B   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}   rm  r9  rc  )r.   rO   rX   r  rm  )r%   r   r  r1  r  r  r\	  )r+   r    lastr.   r3  r  s         r!   +test_centered_bar_label_label_beyond_limitsr  L   s{    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 )
Nr7   r8   r   r  rF  r   rX   rN   r=   r  r  s        r!   !test_bar_label_location_errorbarsr  Y   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   r	  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 )	Nr7   r8   r   r  r  r   z3.00z-4.00r%   rb  r  r  r  )r   r    rD  r  s       r!   test_bar_label_fmtr  f   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)	Nr7   r8   r   r  zstr or callablerp  r}   r  )r%   rb  r  r   r   r   r  )r    rD  r  s      r!   test_bar_label_fmt_errorr  q   s[    	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 )	Nr7   r8   r   r  r  r  r
  r   r  )r    rD  r  s      r!   test_bar_label_labelsr  x   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 	Nr8   r   r7   r   r!  r   r
  rN   )	r%   rb  r  ri   r  r  r  r  rG
  r    r  r  r	  s       r!   test_bar_label_nan_ydatar     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 r  )
r%   rb  rd  r  ri   r  r  r  r  rG
  r  s       r!   !test_bar_label_nan_ydata_invertedr     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  r7   r8   r  r  )r   r!  2)r  r  rE  r   r  )r   r!  r  )r  r  )	r%   r   r  ri   r  r  r  r  r   )r+   r    r  r  r	  s        r!   test_nan_barlabelsr     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  rp  r   rO  gffffff?r   r  r8   gr  rb  )r%   r   rg  rh  Wedgeri   r  r  r   assert_array_almost_equal_nulprM  dataLimr  )r+   r    bots      r!   test_patch_boundsr     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/edgecolorsrp  r   r  r6  r>  r"  )r   r  r3  r4  )r   r  r@  r%   r9   r   r#   r!    test_warn_ignored_scatter_kwargsr     sG    	k@
B OQC!SC3#NO O O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 rangerp  r7   r  r8   r   )r%   r   r   r   ri   rq   r9   r   r  rg  rh  ri  r^  r  r  imagesr  r:  tablesr	  r   r   
IndexErrorr  rh  )	r+   r    rA  r  rc  rz  r  r^  r  s	            r!   test_artist_sublistsr     s   llnGC6;Ah?RWWRYYq!a%()!,?E?
**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 ! 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 @"! !s   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   r7   )ri   r   r%   r   r   r  )r0   r1   r  r    r  s        r!   test_empty_line_plotsr     s{    
A
ALLNEAr771a=Dt9>> LLNEAr772r?Dt9>>r#   z
fmt, match))r>  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\)stringc                     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\Zrp  r  rP  )r%   r   replacer   r   r  r   )r   rq  r  r+   r    s        r!   test_plot_format_errorsr     sh     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 y )Nr  z1.0r   )r   r   r   r   r  r!  r7   r8   k3r   r"  )	r%   r   r   rb  r  rt  r  r
  r  r=
  s      r!   test_plot_formatr  !  s   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#%%%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  r8   rP  r   r;   )
r%   r   r   rG   rt  r  	get_textsr  r
  r  )r+   r    legs      r!   test_automatic_legendr  !  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 keywordrp  r  r7   rn  zplot\(\) with multiple groupsr  r!  r  r  zx and y must have same firstzx and y can be no greater than)r8   r8   r8   zUsing arbitrary long args withr   r"  r;   r  r8   rP  )r   r   r   r%   r   r  ri   r   r   r#   r!   test_plot_errorsr  +!  s"   	y(M	N !a !	z)I	J OIy)C:NO	z)G	H !QC !	z)I	J %#$%	z)I	J 4c33(34 4! !O O! !% %4 4s;   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   r/  r   r7   r8   )rT  rn  )clim)r%   r   r   r   r9   r   r   rG  r  r  r  r  r  )r    plot_methodr  r  s       r!   	test_climr  8!  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   r7   r  )mpathr8  r<  CURVE3	CLOSEPOLYr%   r   rg  rh  r;  rf  r   )r  codesr  r+   r    s        r!   test_bezier_autoscaler  F!  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      r^  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?rE  g(\?rt  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   r7   )ri   rM  rQ  r  r   r8  r%   r   rg  rh  r;  rf  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   ri   rq   r   r  r  r
  )r+   r    r7  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   r  r   r  r  )ri   rq   r  rM  r  r%   r   r  r1  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   r7   )r   r   r   r   r  ri   r  rh  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)Nr8   z
2020-01-01r.  z
2020-01-11r}   r  zDate extents on y axisr   r7   r-  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%dr&  zDay of Jan 2020)r	  rf  )r   r   z set_extent\(\) got an unexpectedrp  r  Fr  )r%   r   ri   rU  r   r3   r   r   rd  rY   r   r/  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastr"  rA  arrrz  s           r!   test_extent_unitsr$  !  sD   \\!QFAs|S1JlC0I-22Y
7r#AAaC#
7C
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 B
q"j)45AB B5 $
74B Bs$   I$&I2I$>I*I$*I3c                  D   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 r1
  )r%   r   r   r   rg  r   r  )r+   r    r  rl  arts        r!   %test_cla_clears_children_axes_and_figr'  !  s    llnGCGGBB#E
))aSE
Cu} !xx2~~zzS   ! HHJu} "xxzz!!!"r#   c                      t        j                         \  } }|j                  g d|      }|j                         }|j	                          |j                  dd       y )N)r7   r   r   r7   r`  r\  rP  r`  )r%   r   r  r  rh  r   )r+   r    marginalmarginal_twins       r!   test_child_axes_removalr+  !  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_color!  r  r#   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'rp  zred
r8   r  )r   r   r  r   rg  r   r  )r  msgr;   s      r!   test_scatter_color_repr_errorr/  !  sf    8  
z	- M//tBa^ 	0 	MM M 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   Tr7   )r[  rc  r_  )r9  )r%   r   set_rasterization_zorderr   r   r;  r<  r=  )r+   r    r  r"  s       r!   &test_zorder_and_explicit_rasterizationr2  "  si    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 )Nr7   r   r   z#ddffddz#00ff00r8   r   )r3  r4  r5  r  r\  r  T)clip_onr  )r  r  r>  )r   r4  r  rC  z#beefc0r   z#faded0)r3  r  r4  r5  r4  r  r  )rB  rB  )r   rD  r   r"  )r  r  r4  r  rv  r1   )r3  r4  r5  r  r4  r  r  )r%   r   r   r:  Polygonrg  r  r  set_path_effectsr   withTickedStroker9  r  r  r  )r+   r    polyr  poly2poly3s         r!   test_preset_clip_pathsr;  
"  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 )Nr)  zaxes.labelcolorrm  zaxes.labelsizer

  zaxes.labelweight)	r   r   r%   rg  rY   r.   rb  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   r7   r8   rd  rP   rQ   r  rM  )r  rM  Tr]  )r  rR   complementarycompressr  rn  rT  r  )ds)r~  rm  r+  r  r   r   r~  z	steps-pre)rC  r  )ri   rM  r  r   r  r   r  ecdfr   	get_xdataisnanr  r   rq   )
r   r   r  r  r   r    rR   l0l1r   s
             r!   	test_ecdfrI  ;"  sn   88Q"&&"&&!Q:;DCIG  A&Hx*l)CD HKWWT{W3WWS#"%%++d*;'$J!,#'$3  @ 2<<>"&;&;&=&AAAA2<<>"c*BD"((4.,A*B&Ca&GGGGH 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)Nr7   r8   TFr  )	r   r   r  r%   rD  ri   r  r   rM  r   r#   r!   test_ecdf_invalidrK  U"  s    	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   r.  r  r   g333333?r  r?  r   r8   r  )r   rJ  r  r7   r   )r  r   r  r2  )r%   r   ri   rq   r  r  r   r   r   rs   r  r  )r+   r    r0   r1   	thresholdoriginal_limss         r!   test_fill_between_axes_limitsrO  \"  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 Humor Sansz
Humor Sansr>  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r%   r   r   r&   r'   r1	  r/   r  get_fontfamily)r+   r    r^  s      r!   test_tick_param_labelfontrV  l"  s    llnGCGGL,'MM*XM>MM)LMANNkN:II#$""$ 7""$Q';6667r#   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 )Nr=   r)  r?  rN   r   rV	  )r%   r   r  r  r  r-	  rB  rY   r
  r.   rb  )r+   r    saxs      r!   test_set_secondary_axis_colorrY  w"  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 )Nr8   Tr	  r7   xlim_changedylim_changedr   r   r.  r`  )r%   r   	callbacksconnectrs  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#   r  (  r  r  r   r-  r  r   	functoolsr   r  r;  	itertoolsr   platformr  r   dateutil.tzr  numpyri   r   r	   r   rU   r   r
   r   matplotlib.colorsrl  r  matplotlib.datesr  r/  matplotlib.figurer   matplotlib.axesr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersrp  r  matplotlib.patchesr:  rh  matplotlib.pathr7  r   matplotlib.projections.geor   matplotlib.projections.polarr   matplotlib.pyplotpyplotr%   matplotlib.textr^  r  matplotlib.tickertickerr   matplotlib.transforms
transformsr  mpl_toolkits.axisartist
axisartistr  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   r"   r,   r5   rL   rS   rV   r]   rz   r   r   r   r   r   r   r   r  r  r  r  r&  rB  rR  r\  rn  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8  rB  rJ  rQ  rY  rd  rj  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  machiner  r  r  r  rq   r
  r  r  r(  r1  r6  r>  rH  rW  r]  rm  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r   r$  r&  r.  r2  r7  r;  rF  rH  rJ  rS  rX  rd  rj  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r0  r  r  Patchrc  r  r  r  r  r  r  r  r   r#  r&  r)  r+  r8  r?  rC  rF  rL  rW  r\  r_  rb  rd  r  r  rM  r  rv  r  r  r  r  r  r  r  r  r)  r;  r>  rD  rG  rQ  rU  rY  r[  r_  rd  rh  rk  rp  rs  rv  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r#  r&  r,  r1  r5  r?  rP  r_  rd  ri  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,  r4  r8  r9  rL  rN  rS  rV  r`  rc  rg  rk  rq  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)	  r7	  r9	  rH	  rL	  rP	  r^	  r`	  r}  rs   r  r  rh	  rj	  ru	  rw	  r	  r	  r   r  ra  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r
  r
  r
  r
  r
  r
  r
  r$
  r'
  r*
  r-
  r/
  r2
  r6
  r9
  r;
  r>
  r@
  rC
  rJ
  rL
  rQ
  r`
  rb
  rg
  ri
  r  	AxesImager   PcolorImagerj   QuadMeshr   r~   rl
  rq
  rs
  ru
  r
  r
  r
  r
  r
  r
  r
  r
  r
  fixturer
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r  r  r  r  r"  r.  r2  r7  r:  r>  rB  rF  rJ  rL  rR  rV  r[  r_  ri  rs  ru  rx  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r)  r.  r5  r7  r:  r>  r@  rC  rH  rJ  rR  rT  r[  r]  rd  rf  rh  rj  rm  rp  rv  ry  r  r  r  r  r  r  r  font_scalingsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r9  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r'  r+  r/  r2  r;  r?  rI  rK  rO  rV  rY  r`  r  s   0r!   <module>r     s1    "     	   !        . # ! $   / % %  1 2   # + $D DD D ( )
(M / /$ . .$ / /(F, (( )($ (( )(( (, ),*3 (, ),   $$NJ4G2 234 50". ,J -J  ,T2'% 3 -'%T '() *","1h0f/ ( ) )*=% >% 9! !. 93 3" 90 0$ ( ),@ ?#6; 7; %&D9) :)4('' #$UBK@ AB5 (
J )
J >>23' 4'" $%W5- 6- ( )/ =/ug"'3/3/ ?#$* %* ?#.* /* &(;<$O< P< %'9:M	6 N	6' #$G4 5$ &'wDI	( J	($ (## )##L$4 %&' ( 9<>(
< )> 
< 8X&DH I( O7   "&EE1N&N&,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A' B'. 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># ?#0/B-. (0 )0 (0 )0// %/(( ) 0(" ;-  !
 #$$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 ( ). (	 )	*+
#
)' ,-4@ A. -./ 0 ( ) %&DH* I*    "&EE1N%N%* 8X&DH= I=" %&DH
. I
.'j1 j1Z	H4 H
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C D( ,-4@E AE2 4$ %&!&!## &'!&!#7#7 +,!&!#6#6 )*!&!#0#0 '("!&!	
2
2 )*!&!M	M ()"!&!#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*;5| -."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0B@A (5 )5 (E )E	+F) HI3; J3;l ./UG"$<$<BE > >9$ $%&+4 '+4\C3" ( )(5"7* (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 )*== >=--	---,-(-.-* %&'E (E""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:@ ;@ &'(& )& '(d; < '):;+8++-9atE)E)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8)& 9)&X +-EF"$E$E: C F 
0
0= 
= ( )&. 3;;T*J+.;;V*L*N O(O(	
-2C(% 3$fb./ &y"#$ %1vj"8:$egt}#$""
#4 ,- --2$ $%&; '; K#WG55> *+7; <& ()9 : %&g6 7 '(8 94 ./w? @ %&'
 (
 #$G4? 5?.8,0/ ) ) 6 6 +,-3 .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
+$!%
7, #;#=> ? =/t4; 5;N ($ D%=1 2 <.d=6 >6 +,$gN6 O6* 9* *B Sz"; #;$ IJ K ;="	3 9G G 9F F!
L%89 
26
B	C?? %  ()s31 41  ()*J +J" ./S9G :G  ?#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
	5::B $%4wG	 H	)& t}5t}5B 6 6B0
5M!;HF$ 34T3232 %&g6 7(%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 "74%)%5 #' "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(<!=>* ?*&05"
4.$*1$h@.0 (	 )	 %&g6B 7BD
"(M% *+WM! N!H 95 5 (- )-2:; 7B&u"7s   I"BS
