
    G8c0                    :D   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 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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        ZSd ZT eIdg      d        ZU eHg d      d        ZVd  ZWd! ZX eHd"g      d#        ZYd$ ZZej                  j                  d%d&       eIdgd'(      d)               Z] eHd*g      d+        Z^d, Z_d- Z`d. Zad/ Zb eIdg      d0        Zc eHd1gd23      d4        Zdej                  j                  d5      d6        Zgej                  j                  d5      d7        Zhej                  j                  d5      d8        Zi eIdg      d9        Zj eHd:gd23      d;        Zk eHd<gd23      d=        Zld> Zmd? Znd@ ZodA Zp eHdBgdCdDiE      dF        ZqdG Zr eIdg      dH        Zs eHdIdIg      dJ        Zt eHdKgdLM      dN        Zu eIdg      dO        ZvdP Zw eHdQgdgd2dLR      dS        Zx eHdTg      dU        Zy eHdVgdWX      dY        Zz eHdZdZgd23      d[        Z{ eHd\d\gd23      d]        Z|d^ Z} eHd_gdLM      d`        Z~ eHdagdLd2b      dc        Zdd Zde Z eHdfg      dg        Zej                  j                  d5      ej                  j                  dhg di       eIdg      dj                      Z eHdkdkgd2dLl      dm        Z eHdngdLM      do        Zdp Z eHdqgd23      dr        Zej                  j                  ds ej                  dt      duduf ej                  dvdwdW       ej                  dt      duf ej                  dvdwdW      du ej                  dt      fgg dxy      dz        Zej                  j                  d{ ej                  dt      duduf ej                  dvdwdW       ej                  dt      duf ej                  dvdwdW      du ej                  dt      fgg d|y      d}        Z eHd~gd23      d        Z eHdgdLd2b      d        Z eHdgd23      d        Z eHdg      d        Z eHdgd23      d        Zd Z eHdgd23      d        Z eHdgdg      d        Z eHdgddgd2      d        Z eHdgdLM      d        Z eHdgdLM      d        Zd Z eIdg      d        Z eIdg      d        Zd Zej                  j                  ddd2g       eIdg      d               Z eHdg      d        Z eHdgd2d5l      d        Z eHdgd23      d        Zd Z eHdgd23      d        Z eHdgd2d      d        Z eHdgd2d      d        Z eHdgd23      d        Z eHdgd23      d        Z eHdgd5d2b      d        Z eHdgd23      d        Z eHdgd23      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̄ Zej                  j                  d5       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d23      d܄        Z eIdg      d݄        Zdބ Z eHdgd23      d        Zd Z eHdgd23      d        Z eHdgd23      d        Z eHdg      d        Zd Zd Zej                  j                  dej<                  j                  d d gg dy      d        Zej                  j                  dg dfg gdfg g gdwfg      d        Zej                  j                  ddejV                  j                  j                  fdej                  j                  j                  fdejV                  j                  j                  fg      d        Z eIdg      d        Z eIdg      d        Z eIdg      d        Z eIdg      d        Zd Zd Zd Zd Zd Z eHdgd23      d         Z eHdg      d        Z eIdg      d        Zېd Z eHdgd2dLl      d        Z eHdgdLM      d        Z eHd	d	gd2dLl      d
        Z eHdgd2dLl      d        Zd Z G d d      ZdKd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       df ed!      d!f ed"      d"f edd#      df eddd$      df ed      df edd%      dfg      d&        Zd' Zd( Zd) Zd* Zd+ Zd, Z eHd-d-g      d.        Z eHd/gd23      d0        Zi d1 i fd2Z eHd3gdCd4id55      d6        Z eHd7gdCd4id55      d8        Z eHd9gdCd4id55      d:        Z eHd;gdCd4id55      d<        Z eHd=gd2dCd4id5d>?      d@        Z eHdAgdCd4id5d>B      dC        Z eHdDgd2dCd4id5E      dF        Z eHdGgd2dCdHid5E      dI        Z eHdJgd2dCd4id5E      dK        Z eHdLgd2dCd4id5E      dM        Z eHdNgd2dCd4id5E      dO        Z eHdPgd2dCd4id5E      dQ        Z eHdRgd2dCd4id5E      dS        Z eHdTgd2dCd4id5E      dU        Z eHdVgd2dCd4id5E      dW        Z  eHdXgd2dCd4id5E      dY        Z eHdZgd2dCd4id5E      d[        Z eHd\gd2dCd4id5E      d]        Z eHd^gd2dCd4id5E      d_        Z eHd`gd2dCd4id5E      da        Z eHdbgd2dCd4id5E      dc        Z eHddgd2dCd4id5E      de        Z eHdfgd2dCd4id5E      dg        Zdh Z	di Z
 eHdjgdCd4id55      dk        Z eHdlgdCd4id55      dm        Zdn Z eHdodogdpd5q      dr        Z eHdsgdCd4id55      dt        Z eHdugd2d5l      dv        Z eHdwgd2dCd4id5E      dx        Z eHdydzgd5M      d{        Zd| Z eHd}gdCdHid2dd5~      d        Z eHdgd2dCd4id5E      d        Z eHdgd2dCd4id5E      d        Zd Zd Zd Zd Z eHdgd2dCd4id5E      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        Z$ eHdg      d        Z% eHdg      d        Z& eHdg      d        Z' eHdg      d        Z( eHdg      d        Z)d Z*d Z+d Z,d Z- eIdg      d        Z. eIdg      d        Z/d Z0d Z1d Z2 eHg d      d        Z3d Z4 eI       d        Z5d Z6 eHdg      d        Z7d Z8d Z9 eIdg      d        Z:d Z;d Z< eI       d        Z=ej                  j                  dg d ej                  g d      dg      d        Z> eIdg      d        Z? eHddg      d        Z@ eHdg      dÄ        ZA eHdgd23      dń        ZB eHdg      dǄ        ZC eHdg      dɄ        ZDej                  j                  dd2dgdːdgy       eHdgdLd2b      d΄               ZEdτ ZFdЄ ZGdф ZHej                  j                  dd2dgdːdgy       eHdgdLd2b      dӄ               ZI eHdg      dՄ        ZJ eHdg      dׄ        ZK eHdg      dل        ZL eHdgd23      dۄ        ZMd܄ ZNd݄ ZOdބ ZPd߄ ZQd ZRd ZSd ZTd ZU eHdg      d        ZVd ZWd ZXd ZY eHdgd23      d        ZZ eHdgd23      d        Z[ eHdgd23      d        Z\d Z]d Z^ eHdgd23      d        Z_ eHddgd23      d        Z` eHdgd23      d        Zaej                  j                  dg d      d        Zb eHdgd23      d        Zcd Zdej                  j                  dg gg d dggd dgg gg      ej                  j                  dg d      d                Ze eIdg      d        Zf eHdgd23      d        Zg eHdg      d        Zh eHdgd23      d        Zi eHdd	g ej                         d
k(  rd ndWX      d        Zk eI       d        Zl eI       d        Zm eI       d        Zn eI       d        Zod Zp eHg ddg      d        Zqd Zr eHg ddg      d        Zsd Ztej                  j                  dddwduej                  dgej$                  j                  g dd      g       eIdg      d               Zw eHddgd23      d        Zx eHdgd23      d        Zyd Zz eHg d d2d!d5"      d#        Z{ eHg d$d2d!d5"      d%        Z| eHg d&d2d!d5"      d'        Z}d( Z~ eIdg      d)        Zd* Z eHg d+d2d,      d-        Z eHg d.d23      d/        Zd0 Z eIdg      d1        Z eHd2gd23      d3        Z eHd4d4gd23      d5        Zej                  j                  d6g d7      d8        Zd9 Zd: Z eIdg      d;        Zd< Zej                  j                  d=e6j                  e6j                  d>ge6j                  e6j                  d?gg      d@        ZdA ZdB ZdC ZdD ZdE Zej                  j                  dFedGi dHfedIi dJfeddwgfi dKfe e       dLdidMff      dN        ZdO Zej                  j                  d%d&      dP        ZdQ ZdR Z eHdSg      dT        Z eHg dUdgdLV      dW        Z eHdXgdLM      dY        Z eHdZgdLM      d[        Z eHd\gdLM      d]        Z eHd^gdLM      d_        Z eHd`gdLM      da        Z eHdbg      dc        Zdd Zde Zdf Z eHdgg      dh        Z eIdg      di        Zdj Zdk Zdl Zdm Z eHdng      do        Zdp Z eHdqgdCdriE      ds        Zdt Zdu Zej                  j                  dFedvi dwfedxi dwfe e       dϐdyidwfe e       dzdyidwfed>ddd&d{fed>ddid{fed|i d}ff      d~        Zd Zd Zd Zd Zd Zd Zd Zd Z eHdgdCd4iE      d        Z eHdgdCd4iE      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                  duddu      g      d               Zːd Z̐d Z͐d Zΐd Zej                  j                  d eϫ             d        Z eHdgd23      d        Zѐd ZҐd Zej                  j                  dd2dg      d        Z eHdgd2dW      d        Z eHdgd2dLl      d        Zej                  j                  d5      d        Z ej                  dϐdzg      d        Z ej                  g d      d        Zڐd Zېd Zܐd Zݐd Zej                  j                  d5      d        Zej                  j                  d5      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ìX      dĄ        Z eHdg      dƄ        Z eHdgdìX      dȄ        Z eHdgd23      dʄ        Zd˄ Zd̄ Zd̈́ Zd΄ Zej                  j                  dg dТg dѢy      d҄        Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Z ej                  j                  d5      dۄ        Zd܄ Zd݄ Zdބ Zd߄ Zd Zej                  j                  dddg      ej                  j                  dddg      d               Zd Zd Z	d Z
 eIdg      d        Z eIdg      d        Zd Zd Zd Z eHdgd2dLl      d        Zd Zd Zej                  j                  ddd2g      ej                  j                  ddd2g      d               Zd Zd Zd Zd Zd Z eHdgdLd2b      d        Z eHdgdLM      d        Zd Zd Zd  Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z% eIdg      d	        Z&d
 Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6ej                  j                  dd&      ej                  j                  dd      d               Z7 eIdg      d        Z8ej                  j                  d5      d        Z9d  Z:d! Z;ej                  j                  d"e&jx                  D  cg c]  } | |  c} g d#z         ej                  j                  d5      d$               Z=d% Z>d& Z? eIdg      d'        Z@ eIdg      d(        ZAd) ZBej                  j                  d*g d+      d,        ZCd- ZDd. ZEd/ ZFd0 ZGd1 ZHd2 ZId3 ZJd4 ZKd5 ZLd6 ZMd7 ZNd8 ZOd9 ZPd: ZQej                  j                  d5      d;        ZRd< ZSd= ZTej                  j                  d>d?      ej                  j                  ddd@ edu      ig      dA               ZUdB ZVdC ZWdD ZXdE ZYdF ZZdG Z[dH Z\dI Z] eIdg      dJ        Z^yc c} w (L      )
namedtupleN)Decimal)partial)product)SimpleNamespace)ma)cycler)
rc_context)MatplotlibDeprecationWarning)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      </usr/lib/python3/dist-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yzO<AxesSubplot: 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   ra   ax_testax_refnorm_auto_corrlagss	            r!   
test_acorrrv      s    IINN8	B
		Ar"))+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`   )    rx   r8   r7   .lower)markerorigingray_rnearest)cmapinterpolation
markersize
   )aspectxlimylimboth)rf   rg   rh   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   rf   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mpl20rx   r   )mplstyleuserf   rg   randadd_subplotmatshowr   rY   r   r   )r   r   r   rs   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         ?      ?g      ?      ?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     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   )rf   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  6  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  O  s4   llnGC
((*C
))+CHHJyy$$&&&yy$$&&&GGIGGIyy$$&&&yy$$&&&99  """99  """yy$$&&&yy$$&&&88!!!88!!!88!!!r#   twinr0   r1   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)rf   rn   r   getattrr   rU   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r   r   r  	twin_func	set_scaler0   rr   ax_twinirs   r%  s              r!   test_twin_logscaler0  f  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   r8  r   )rf   arrayr%   r   add_axesr   r  margins)r0   r1   x2y2r+   r    r  s          r!   test_twinx_axis_scalesr@    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_settingrJ    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_invertedrf   rg   r   r  r   r   r   cos	autoscaleaxesremovesubplotr\   set_invertedclose)r+   r    imgr0   ax0r  s         r!   test_inverted_clar\    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  rf  s   r!   ClaAxesra    s    r#   rk  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 &    dt         |           y rc  )superr  re  	__class__rf  s    r!   r  z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla  s    r#   )rg  rh  ri  r  __classcell__rq  rf  s   @r!   ClaSuperAxesrm    s     r#   rt  c                       e Zd Zy)+test_subclass_clear_cla.<locals>.SubClaAxesNrg  rh  ri  r   r#   r!   
SubClaAxesrv        r#   rx  c                       e Zd Z fdZy)*test_subclass_clear_cla.<locals>.ClearAxesc                 
    dy rc  r   rd  s    r!   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clear  s    Fr#   N)rg  rh  ri  r}  rj  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 rc  )ro  r}  rp  s    r!   r}  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear  s    FGMOr#   )rg  rh  ri  r}  rr  rs  s   @r!   ClearSuperAxesr    s    	 	r#   r  c                       e Zd Zy)-test_subclass_clear_cla.<locals>.SubClearAxesNrw  r   r#   r!   SubClearAxesr    ry  r#   r  Fr4  )r   warnsPendingDeprecationWarningr   r   r  )
rk  rt  rx  r~  r  r  r+   
axes_classr    rf  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__ri  __dict__)klasss    r!   !test_cla_not_redefined_internallyr    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   rr   rs   s       r!    test_minorticks_on_rcParams_bothr  $  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+   axsr/  r    y1s        r!   test_autoscale_tiny_ranger  /  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)enableaxistightr1   )g333333ÿg333333	@)r         @)r  )
r%   r   r   rT  r   r   r   rC  rE  get_autoscale_onr*   s     r!   test_autoscale_tightr  8  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   )rf   rn   floatr%   r   loglogsemilogxrT  r
  r   r   r   )r0   r+   r  r  limss        r!   test_autoscale_log_sharedr  P  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   rz   r|   )      r   Fr  r   T)
r%   r   r   r   r   r   use_sticky_edgesrT  _xmargin_ymargin)r+   r    r   r   s       r!   test_use_sticky_edgesr  b  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   rL  rM  r  )rf   rn   r   r   
pcolormesh)r   r   Zr[  r  s        r!   test_sticky_shared_axesr  u  s     			"a#A


s
#C


s3

/CNN1


c
"C


c#

.CNN1r#   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r8  r   z	local maxr   r7   datar   r   zoffset points)xyxycoordsxytext
textcoords)	rf   rn   rS  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)rb   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_ylimrf   r   arrowr   rS  )
r  r  r  kwargsr+   r  r/  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foor   r7   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   r4  )r  r  g     V@r  bZ   r   )r  )r   r   r   r   Epochdatetimer
  Durationrf   rn   mdatesdate2numr%   r   r   fillautofmt_xdate)r   r  valuedayr  dtnr+   r  r  r  ax4inds               r!   test_fill_unitsr    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 definedr^  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_redundantr%    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   )r(  r)  dashes)rf   r   rP  r$  abs
set_dashes)r   r   r0   r1   rs   rr   r  r  s           r!   test_errorbar_dashesr-    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_pointr4  
  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  r  rf   
datetime64r   	plot_dater   )r  time1data1r+   r    s        r!   test_single_dater<    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   )rf   rn   r   r   r   r   ravel)r   r   rowcolr  s        r!   test_shaped_datarG  +  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   r3  r7   r!  )rf   r;  r  r%   r   r   r   )ptsr  s     r!   test_structured_datarM  :  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)
rf   r   r   meshgridr%   r   dictgridr   r  )r0   r1   XYr+   r    s         r!   test_aitoff_projr]  D  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   rP  r     r   r         ?)r  alphar  )r   r   r   r   r  r  r  r  convertr%   rP  axvspanr  r   t0tfr  r    s        r!   test_axvspan_epochri  U      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  r  rd  r%   rP  axhspanr  rf  s        r!   test_axhspan_epochro  d  rj  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   )rv  r  )r%   r   rf   rn   r   hexbin)r+   r    r  r0   r1   s        r!   test_hexbin_extentrx  s  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       y )Nr  bins)r%   r   rw  r*   s     r!   test_hexbin_emptyr|    sD     llnGCIIb"llnGC IIb"5I!r#   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   rs  r   )rv  picker  ,  r  r   )r%   r   rf   rn   r   rw  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{  	marginalsreduce_C_function)r%   r   rf   rg   rh   standard_normalpowerr   rw  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  )rf   rg   rh   r  r%   r   rw  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)rf   rn   r   r%   r   rw  get_clim)r0   r1   r+   r    r  s        r!   test_hexbin_log_climr    sY    99S>!!(+DAqllnGC
		!QU	5A::<8###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   rY  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   )
rf   rn   eerrstater  nanlenr%   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"  )rf   rn   r   r#  r   r  )r  r   r   r0   rr   rs   r    s          r!   test_limits_empty_datar    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!  r3  )rU   r   rf   indicessqrtr%   r   r   )Nr0   r1   r!  r+   r    r  s          r!   test_imshowr    s     2;J-.AZZAFQAIAAIA
1QT	!A#A llnGCIIaL 8DllnGCIIcIr#   imshow_clipc                     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      }|j                  d   }|j                         d   }|j                         }t        j                  ||      }|j                  ||       y )Nr~   r  r   r8   r  r   )	clip_path)rU   r   rf   r  r  r%   r   contourcollections	get_pathsget_transformmtransformsTransformedPathr   )	r  r0   r1   r!  r+   r    r;   r  clip_transforms	            r!   test_imshow_clipr  
  s     2;J-. 	AZZAFQAIAAIA
1QT	!A#A llnGC


1qseA	aAa I__&N++I~FI 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.r^  r   r   r   )normr  r  N)r%   rU  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   rf   r;  r   r  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, y2rJ  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  r?  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   x1r>  r+   r    s        r!   test_fill_betweenx_inputr  K  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   rl  333333?r  r7   Tr  blackr"  white/)wherer  hatchinterpolater  )r  r  r  r   r   r   )rf   rn   r   r   r%   r   r   r  r   masked_greatermasked)r0   r  r?  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"@r7  r  )g@gffffff@gffffff@)rB  rB  rV  ztab:redkr   T皙?r  r  r  rc  r  r   r      X  )rf   r;  r%   r   r   r  r  r  )r   r  profr+   r    s        r!   (test_fill_between_interpolate_decreasingr  t  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   rQ              rx   r   r  r;   r  r   Tr   r  r  )rf   rn   asarrayr  r%   r   r   r  r  s        r!   !test_fill_between_interpolate_nanr    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     rB  r  r   )i@B i  r  r   r   r   r   r   symloglinearr   i )rf   r;  r%   r   r   r  
set_xscaler  r  s       r!   test_symlogr    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  r  )	linthreshTr   皙r   )	rf   rn   r%   r   r  r   r
  rZ  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      r  g      r  g      пr   rb  r         ?r         ?r   r   )rf   rX  hypotr%   pcolorr  )r0   r1   r[  r\  r  s        r!   test_pcolorargs_5205r    s    .A	*A;;q!DAq
AAJJqMJJtAwJJq!QssCRCx[!JJq!T!CRC"H+&'r#   r  c                  Z   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
  |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  r8  
edgecolorsr  wgouraudshading)r%   r   rf   r   rX  rS  r   r  minptpr   masked_wherer+  maxr   r  )r  r0   r1   r[  r\  QxQzr  Zmr+   r  r  r  s                r!   test_pcolormeshr+    sj    ',CLL"#
A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWA 
cBFF2J&66	:B<<1-C#sCNN2r1SbS#2#X;33N?NN2r1SbS#2#X;1#sNDNN2r1iN0r#   pcolormesh_smallepsc                  v   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
  |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       |	j                  D ]  }|j!                           y )Nr   r  r   r8   r  r   r   r7   r   r  r  r  r   r!  r"  )rf   r   rX  rS  r   r  r$  r%  r   r&  r+  r'  r%   r   r  rU  set_axis_off)r  r0   r1   r[  r\  r(  r)  r  r*  r+   r  r  r  r    s                 r!   test_pcolormesh_smallr0    st   	A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWA	cBFF2J&66	:B<<1-C#sCNN2r2crc3B3h<CCN@NN2r2crc3B3h<A3*NENN2r2yN1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
  |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  )ru  r   r   r   r   )r  zorderr   r  r  r7   )r   rc  r#  r6  r!  )r   r#  r6  )r%   r   rf   rX  r   r   r  r$  r%  r   	colormaps	resampledrn   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r[  r\  r(  Qyr  vircolorsr   r+   r  r  r  r  r    s                  r!   test_pcolormesh_alphar@    s    ',CLL"#
A;;
D#q!
D#qs#DAq 
B	
RVVAYB
AA	
QUUW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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   ra  daysrP     r      r   r        rA   r   )r%   r   r   subplots_adjustr  rf   r;  r   	timedeltarn   rX  rW  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  rB  rC  rD  rF  r7   ra  rG  rP  rI  r   rJ  r   rK  rL  rM  rA   r   )r%   r   rN  r  rf   r;  r   rO  rn   rX  rW  r  rP  rQ  rR  rS  rT  rU  rV  s
             r!   test_pcolor_datetime_axisr^  0  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   r!  r"  r   r  invalid)mask)ig  r   r7   r  r   z.are not monotonically increasing or decreasingr^  auto)rf   r   rX  r  r%   r   r   r   r   r  TNaNr  r  r   r;  zerosr  r  r#  )r  r0   r1   r[  r\  r  r  r    s           r!   test_pcolorargsrg  I  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                    | 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   rB  r  r"  r   r~   r   rf   rn   rg   rh   randnr  diffr   r   r    r0   r1   r  r>  r?  s           r!   test_pcolornearestrm  j  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   rB  r  r"  r   r   r~   )r   r   r  fromtimestamprf   rn   rg   rh   rj  r  rk  rl  s           r!   test_pcolornearestunitsrp  z  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   rB  r   r_   zDimensions of Cr^  r  r"  )r%   r   rf   rn   rg   rh   rj  r   r   r   r  )r+   r    r0   r1   r  s        r!   test_pcolorflaterrorrr    s    llnGC
		!QA
		!QAIINN8
		1A	y(9	: /
aAv./ / /s   B==C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   rB  )rs  r   r8   ri  )	r   r   rs  r    r0   r1   r  r>  r?  s	            r!   test_pcolorautoru    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 )Nr7   r8   r   r%   r   r   r*   s     r!   test_canonicalrz    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  rB  -   r   )rc  )theta1theta2r   r   )r%   r   r  r  r:  r;  EllipseArcr   rf   rS  deg2radr   r  r  )
r   r  centrer  r+   r  r/  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                  |	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   rL  rc  )r   r   yellowr7   )rc  r  r   r!  r6  r8   F)angler!  r  r6  rM  equalr   )rc  r  r   r6  )rf   r  rn   rS  r   r;  rm   r%   r   r   r  r;  r  r:  )xcenterycenterr  heightr  r  r0   r1   rthetaRr+   r    e1e2s                 r!   test_arc_ellipser    s   !GWME6EJJryy~&E
RVVE]"AbffUm#AZZF
	"&&.)	(* 	+A 66!RXXq!f%&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   rx  r   r8   r7   r  )r  r   r8   )r   r  r   )r%   r   mmarkersMarkerStyler   r9   r$  )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.   rX  mark allr  r.   r  mark every 10+r   rP  mark every 5 starting at 10rf   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 )NrQ  r   rQ  r5  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  rf   r   r   r  r%   rW  r/   strr   
casescolsgsdeltar0   r1   r/  caserE  rF  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 )NrQ  r  r  r   r   r   r~  r   r   r   r   r  r  r7   r  r   r8   r   r  r   r  r  r  )r  g@)r  g333333?)r  rU   r  r  r  rf   r   r   r  r%   rW  r/   r  r   r   r   r  s
             r!   #test_markevery_linear_scales_zoomedr  5  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 )NrQ  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  rf   r   r   r  r%   rW  r/   r  xscaler  r   r  s
             r!   test_markevery_log_scalesr  P  s   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU# ;4Dy$hBsCxL!		.3t9,-

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 )NrQ  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  rf   r   r   r  r%   rW  r/   r  r   )	r  r  r  r!  r  r/  r  rE  rF  s	            r!   test_markevery_polarr  k  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 )NrQ  r  r  r   r   r   r~  r   r   r   r   r  r  r7   r  r   r8   r   r  F   r  r   r  r  r  )r  rU   r  r  r  rf   r   r   r  r  r%   rW  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  )rf   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   edge0)align
tick_labelr2  r   r  )r  r  r  )r%   rP  barr   )r    r  r+   s      r!   test_bar_tick_label_singler    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  rf   r  r*   s     r!   test_nan_bar_valuesr    s+    llnGCFFAq6BFFA;r#   c                  V    t        j                         \  } }|j                  g g        y r	  )r%   r   r  r*   s     r!   test_bar_ticklabel_failr    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%   rP  r  r    s    r!   test_bar_tick_label_multipler    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%   rP  r  r  s    r!   *test_bar_tick_label_multiple_old_alignmentr    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@rR  r  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_centerr    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  ru  g333333?r7   r8   rX   r  r  )r   r   r  )r   r   r0   r1   w0r/  r   r    s           r!   test_bar_decimal_widthr    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  r  rX   r  )r   r   r  )r   r   r0   r1   h0r/  r  r    s           r!   test_barh_decimal_heightr    sq    AA	B  A 				BGGAq(G+				BGGAq8G, 	!r  c                      t        j                         } | j                  ddgddgddd      }|D ],  }|j                         dk(  sJ |j	                         d	k(  r,J  y )
Nr7   r8   r  r   r  r!  rc  r   r   r   r   r   r   r7   r   r   r   r%   rP  r  get_facecolorget_edgecolorr    rectsrects      r!   test_bar_color_none_alphar    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  r  s      r!   test_bar_edgecolor_none_alphar
    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%   rP  r  r  s    r!   test_barh_tick_labelr    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   )r(  r  )r  )r  r)  r   r  )r   rP  N)	r%   r   r  r  rO  r  rf   r;  broken_barhr+   r    r  s      r!   test_bar_timedeltar    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                  j                  dd      }| j                  dd| j	                  d            j
                  }t        j                          t        j                  ||       y )Nr   r8   z1/1/2000r7   )years)periodsfreq	positions)	rf   rg   r   
date_range
DateOffsetyearr%   r   boxplot)pdr  r  s      r!   test_boxplot_dates_pandasr   8  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   rB  r   )r   r   r   r   )	capwidthswidthsr7   r   r8   r"  r   r  r  r#  r7  rQ  )rf   rg   r   r%   r   r  )r  r+   r  s      r!   test_boxplot_capwidthsr&  A  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   r7  r   x   )secondsr   )pandas.plottingr(  r)  r%   r   r   r  r  appendrO  rf   rn   rX  r  r  canvasr
  )r  r(  r)  r+   r    timesy_vals	time_axisy_axisr  z_dataims               r!   test_pcolor_regressionr7  R  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)r  r  r  r7   r7   r7   rx  )r  monthr  r  )r  r:  r  dater  r   rX   r  oranger  r7  )		DataFrameto_datetimegroupbyr  indexr%   r   r  r   )r  dfmonthlydatesforecastbaseliner+   r    s           r!   test_bar_pandasrF  p  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  rt  )r0   r  rx  r@  r   r  )r=  r%   r   r  r0   r  r  rA  r+   r    s       r!   test_bar_pandas_indexedrK    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   rr   rs   r0   r1   hatchesr/  s           r!   test_bar_hatchesrN    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   rP  r   )ABC)r  r\  rQ  bars)rQ  rQ  rQ  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.   rO  rP  r  r    bar_containerr  
bar_labelss
             r!   test_bar_labelsrZ    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   )r[  r\  r  r  r[  )r%   r   r   r   r  r  r  s     r!   test_bar_labels_lengthr\    s    LLNEAr	z	" :
SzAq69:LLNEAr	z	" 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  Float64rF  rx  )Seriesr%   r   r@  r=  )r  r0   rA  s      r!   test_pandas_minimal_plotra    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)r  r  )rf   r   concatenater%   r   hist)data0r  r+   r    s       r!   test_hist_logrg    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  rl  )r   r  r  re  )r   r   r   r   r/  rl  r    s          r!   test_hist_log_2rm    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   
barstackedrk  r  r   r   r7   )r%   r   re  r  r0  r
  r   r+   r  s     r!   test_hist_log_barstackedrr    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  rk  r%   rP  re  r  s    r!   test_hist_bar_emptyru    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   rr  sizer   r7   r   )r{  rc  r8   )rf   rg   rh   clipri   astypefloat16r%   re  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 )Nri  rk  rt  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   rr  r   r   r  TFr8   ri  r  rj  )nrowsncolsrl  stackedr  r  rN   r   r   c              3   ^   K   | ]%  }|j                         |j                         k(   ' y wr	  )r  r  ).0r   s     r!   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>  s#     G!q AOO$55Gs   +-)rf   rg   rh   rj  r%   r   r  r  re  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>
E*+
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_   rq  Tdensity)rf   rg   rh   r  r%   r   re  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  )rf   rg   RandomStaterj  r%   re  	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   re  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   rz  s    r!   <lambda>r  3  s    t r#   c                 J    t        j                  |       j                  d      S )Nr8  )rf   r  rz  rz  s    r!   r  r  4  s    rzz$'7'>'>|'L r#   )r  zdatetime.datetimeznp.datetime64c           	         t        j                   ddd      t        j                   ddd      t        j                   ddd      t        j                   ddd      gt        j                   ddd      t        j                   ddd      t        j                   ddd      t        j                   ddd      gg}t        j                   ddd      t        j                   ddd      t        j                   ddd      g}t        j                         \  }}|j                  | | |      d	      \  }}}t        j
                  j                  |t        j                  j                  |             |j                  | | |      d
	      \  }}}t        j
                  j                  |t        j                  j                  |             y )Ni  r7   r   r  r8   r   r  T)r{  r  F)
r  r%   r   re  rf   r   r   r   rC  r  )r  r  
date_edgesr+   r    r  r{  s          r!    test_hist_datetime_datasets_binsr  1  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%   re  rf   r  ndimr  )r  expected_number_of_histshistsr  s       r!   test_hist_with_empty_inputr  H  sV    
 ((4.KE1aJJuEzzQ,,,,{{1~!9999r#   zhisttype, zorderr  ri  rj  c                     t        j                         j                         }|j                  ddg|        |j                  sJ |j                  D ]  }|j                         |k(  rJ  y )Nr7   r8   rk  )r%   r   r   re  r'  
get_zorder)rl  r6  r    r  s       r!   test_hist_zorderr  V  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     rx   %   0   rx   ra  r  )	r   r   r  r  r        @      @       @      "@r   r8   rE  r7   rP   )rE  rR   rQ   r  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrf   r;  r   flattenstairssemilogyr  r   r/  add_lineLine2Dr  r  )r   r   mlinesr1   r0   	test_axesr   ref_axess           r!   test_stairsr  b  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r  r7   rP   )rR   r  )rE  r  r   )rE  rR   r  r   post)ri  r8  )r   r  r  r  rf   r/  r  r  r  r   r  )r   r   r  r{  bsr  r  s          r!   test_stairs_fillr    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  rx  r  r  r8   edges)r7   r8   r7   r   r7   r  r  )	r   r  r  set_datarf   rn   allcloseget_datarE  )r   r   r   test_axr  ref_axs         r!   test_stairs_updater    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  r7  r  r  r  r  r  )r   r  r7  r7  r  r  r   )r   r  r   r   r  )r   r   r  r  r   s        r!   test_stairs_baseline_0r    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    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"r^  r7   r8   r   )r   r   r  r%   r  rf   r  r   r#   r!   test_stairs_invalid_nanr    sB    	z)@	A +

Aq6Arvvq>*+ + +s   *AA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 mismatchr^  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   r3  r  r^  r  )r%   r  r   r   r  r  rf   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   r3  r  r^  r   r  )r%   r  r   r   r  r  rf   rn   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   TrS  )r   r  r.   r  rP   rT  )r   r  rR   r.   r<  r  r8   rU  )r   r  r8  r.   r   D)r  r8  rE  rR   r.   r      E)r   r  r8  rE  r.   r  r  r  F)rE  r   r  r8  r.   r   r     r   G)rE  r   r  r.   r  r  r  r  //H)r   r  r8  rE  r  r.   r   r>   )rf   r;  rz  r  copyr  r%   r   r  r   r  rG   )r0   r1   ynr+   r    s        r!   test_stairs_optionsr    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  rf   rn   r8  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 )Nrx  r  T)r   r  r  )r   r  	set_color)r   r   r  r  sts        r!   test_stairs_edge_handlingr  	  sR     ""$GNN9EN5   "F	yt	,BLLr#   c                      t        j                  ddd      } t        j                  ddd      }t        j                  |       t        j                  |d d t         j                  f         z   }| ||fS )Nr  r      r,  )rf   r   rS  r   rQ  )r0   r1   r[  s      r!   contour_datr  	  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 )Nr7  )r  \r  r  grayr   r   )rM  r   extendrc  )r  r%   r   contourfr   r7  )r0   r1   r[  r+   r    s        r!   test_contour_hatchingr  	  sK    mGAq!llnGCKK1a$:]]6*S  *r#   contour_colorbarc            
         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   RdBug333333rt  r   )levelsr   r  r  r
  gg^I+r1   r   r8   )r  r?  
linestylesr  r  r;   )r  r?  r  r  F)erase)r  r%   r   r  rf   rn   r   r7  r  rH   	add_lines)	r0   r1   r[  r+   r    cscs1cs2rK   s	            r!   test_contour_colorbarr  '	  s    mGAq!llnGC	Q1RYYtUC%@--/"	 
 
$B
 **Q1RYYtVS%A E ' !  #C **Q1RYYsC%= E !  #C <<r<"DNN3NN3eN$r#   hist2dc                     dt         j                  d<   t        j                  j	                  d       t        j                  j                  d      dz  dz   } t        j                  j                  d      dz
  }t        j                         \  }}|j                  | |dd	       | |d
}t        j                         \  }}|j                  ddd|d       y )NFr  r   r   r8   r   r   Tr{  
rasterizedr  r0   r1   )r{  r  r  )r%   r   rf   rg   rh   rj  r   r  )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   Tr  )	r%   r   rf   rg   rh   r;  rj  r   r  r  s       r!   test_hist2d_transposer  O	  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  )rf   rg   r%   r   r   r  )r0   r1   r    objs       r!   test_hist2d_densityr"  ]	  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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  r0  )r;   r  r  )rf   r;  r%   r   r9   )re  r  r+   r    s       r!   test_scatter_plotzTestScatter.test_scatter_plote	  s    XXl+"((<2H,3C24 ,,.R


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


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


3sc
5r#   zscatter_marker.pngr  c                 F   t        j                  d      \  }\  }}}|j                  g dg dg dg dg dd	       |j                  g dg dg dg dg dt        j                  d
d      	       d\  }}||z  t
        j                  z  }t        j                  ddt
        j                  z  d      }t        j                  t        j                  |      |z  |z  t        j                  |      |z  |z  g      }	|j                  g dg dg dg dg d|		       y )Nr   r  r&  r'  )r7   r   r   r1   r  r)  )r   r  r  r   )r  r!  gr  r  )r;   r  r  r{   r   r=   	fillstyler  r   r8   ra  )r%   r   r9   r  r  rf   r   r   column_stackrS  r   )
re  r+   r[  r  r  rxryarear  r  s
             r!   test_scatter_markerzTestScatter.test_scatter_markerp	  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  r  )rf   rn   rX  r%   r   r9   )re  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  r(  r*  r1  )rf   r;  r   r   r9   )re  r   r   r  r  r/  r0   r1   r;   r  r    s              r!   test_scatter_decimalz TestScatter.test_scatter_decimal	  s    XX*+XX*+HH"-Qgaj-.HH"-Qgaj-.# 


1a1
"


2rQ!
$ .-s   C.Cc                 4   t        j                  t              5  t        j                  ddgddgddg       d d d        t        j                  t              5  t        j                  g dg dg d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr7   r8   r   r   r"  rx  )r   r   r  r%   r9   re  s    r!   test_scatter_colorzTestScatter.test_scatter_color	  su    ]]:& 	:KKAAsCj9	:]]:& 	?KK	9I>	? 	?	: 	:	? 	?s   BBBBr  r   r	  r  r  r   r  c                    d}t        j                  t        |      5  t        j                  g g fi | d d d        t        j                  t        |      5  t        j                  ddgddgfdg i| d d d        t        j                  g g fdg i| t        j                  ddgddgfdddgi| y # 1 sw Y   xY w# 1 sw Y   NxY w)	Nz"No data for colormapping provided r^  r7   r8   r   r  r;   r   )r   r  Warningr%   r9   )re  r  
warn_matchs      r!   test_scatter_color_warningz&TestScatter.test_scatter_color_warning	  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 )Nr3  r7   r   r8   z0.1z0.3r-  r   r  r7  r  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re  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 )
Nr3  rL  rM  r0   rN  rP  rQ  rR  rS  )r%   r9   r   rT  rU  rV  rW  s     r!   test_scatter_unfillablez#TestScatter.test_scatter_unfillable	  ss    {{9i3H"%&57 	4..0$2E2E2GH4..03E3E3E3G 	H 	4..0/Br#   c                    t        j                  d      }t        j                  t        d      5  t        j                  |||dd         d d d        t        j                  t        d      5  t        j                  |dd  |dd  |       d d d        t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr  zsame size as x and yr^  r7   zfloat array-liker  )rf   rn   r   r   r  r%   r9   )re  r0   s     r!   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size	  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 )Nrx  r7   r5  r   r  r7   r   r   r7   )r%   r9   rf   r  r  
same_colorr  rW  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 )Nr4  r5  r  r7   r  r8   r  Tr;   r  r   plotnonfiniter   r   r;   r  r   )r  r   	r   r   r7  r8  set_badr9   r   rf   r  re  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 )Nr4  r5  r  r7   r  r8   r  Frd  r   r   rf  rg  ri  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  rx  r  r^  r  r   r   r   )r;   r  r  r  N)r%   rU  r   r   r  r9   r  r  )re  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   )re  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  )rf   rn   r   r9   r   )re  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#   )r-  Nrgby
conversion)r  N)r  N)NN)r!  r6  r  r  N)jaunert  ru  r  r   r   r   r  )r-  z0.4r.  r/  )r-  r  r.  C5)r-  r   r.  rv  r5  r7   r   r   r   r  z0.0rv  r   r7   r   zc_case, re_keyc                 <   d }d}ddd}|/t         j                  j                  j                  |di ||       y t	        j
                  t        ||         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_colorG
  s    r#   r  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  rt  r  )r;   r  r  xsizeget_next_color_funcr^  )r   rU  r   _parse_scatter_color_argsr   r   r  )re  c_casere_keyr|  r}  REGEXPs         r!   test_scatter_czTestScatter.test_scatter_cE
  s    	  99
 >HHMM33WRu$2 4 4 z@ 8775(6 8 88 8 8s   /BB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   rf   r   r   )re  r   r   rgbrgbars   rr   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   rU  r0   r   r7   )r;   r{   r  r  C3lines.linewidth)rf   rn   r%   r   r   r9   rb   rV  r   r   r   )re  r0   r+   r    r/  pcs         r!   test_scatter_linewidthsz#TestScatter.test_scatter_linewidthsk
  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#   ) rg  rh  ri  r   r2  r=  rA  r   rC  rF  r   markparametrizer  r  rJ  rY  r   r   contextr[  r]  rb  rj  rl  rn  rp  rr  params_test_scatter_cr  r  r  r   r#   r!   r$  r$  d	  sP   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8 F8* 	YYy!UG,8 - "8Lr#   r$  )r  c                    | ||||fS i |fS r	  r   )r;   r}  r  r  s       r!   _paramsr  z
  s     zV%76GGRGGr#   _resultz	c, colorszparams, expected_resultr  r4  )r;   r?  r!  r  r`  r"  r6  )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_color
      r#   r~  )r   rU  r   r  r;   r   r?  )paramsexpected_resultr|  r;   r?  _edgecolorss         r!   test_parse_scatter_color_argsr  
  sW     !XX]]DD	5%35Av{!!!!!FO223r#   zkwargs, expected_edgecolorsr_  r@  r  )r   r  )r;   r   r  )r   r   c                     d }| j                  dd       }| j                  dd       }t        j                  j                  j	                  ||| d|      \  }}}||k(  sJ y )Nc                       yr{  r   r   r#   r!   r|  z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color
  r  r#   r;   r  r8   )r}  r~  )popr   rU  r   r  )r  expected_edgecolorsr|  r;   r  r  result_edgecolorss          r!   (test_parse_scatter_color_args_edgecolorsr  
  sm     	

3AL$/J//z6 	0 	P Aq
  3333r#   c                      d } t        j                  t        d      5  t        j                  g dg dg      }t
        j                  j                  j                  |d i d|        d d d        y # 1 sw Y   y xY w)Nc                       yr{  r   r   r#   r!   r|  z;test_parse_scatter_color_args_error.<locals>.get_next_color
  r  r#   z&RGBA values should be within 0-1 ranger^  )r   r   ru  )r   r  gffffff?r8   )r  r}  r~  )	r   r   r  rf   r;  r   rU  r   r  )r|  r;   s     r!   #test_parse_scatter_color_args_errorr  
  sn     
zE
G MHHo78//tBa^ 	0 	MM M Ms   A
A22A;c                      G d d      }  |        } |        }t         j                  |_        t        j                  g d|      }t        |      t        k(  sJ t        j                          t        j                  d|      }t        |      t        j                  j                  j                  t              k(  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_offsetrE  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  rE  s    r!   _as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes
  s    ~t/@/@AAAr#   N)rg  rh  ri  r  r  r   r#   r!   Polarr  
  s    	"	Br#   r  r4  rT  y   )rf   r   r  r%   rU  typer   rY  rW  r   	_subplotssubplot_class_factory)r  prjprj2r    s       r!   test_as_mpl_axes_apir  
  s    B B 'C7DD 
,3	/B8y   IIK 
SS	)B8sxx))??	JJJJ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   scarP  gcfrY  )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        @)rW  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   rf   r  r   r  r  r
  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-positiver^  r   r   )	r%   r   r
  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  r?  y3r0   r  r?  r  )r  C1C2)r  r?  )	r%   r   rf   r   r   	stackplotr  r  r   )r+   r0   r  r?  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   )rf   rf  r   rg   exprn   )r  r  r   r/  jr0   r1   r[  s           r!   layersz'test_stackplot_baseline.<locals>.layers9  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   r  r8   r  zeror  r  symr7   r   wigglerI  weighted_wiggle)rf   rg   rh   r%   r   r  r   rd  )r  rX  r+   r  s       r!   test_stackplot_baseliner  5  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  O  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  r  r   )r  r  )meansigmarx  vertTr  patch_artistFr  boxplot.boxprops.linewidth)rf   rg   rh   r   cbookboxplot_stats	lognormalr%   r   getr  r
  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr+   r    s         r!   _bxp_test_helperr  N  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r  r  rY  r   r#   r!   test_bxp_rangewhisr  g  s     $QH"56r#   zbxp_percentilewhis.pngc                  4    t        t        ddg             y )Nr   _   r  r  r  r   r#   r!   test_bxp_percentilewhisr  n  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!   r  z(test_bxp_with_xlabels.<locals>.transformy  .    E4<0 	HAuAgJ	r#   )r  r  r  s    r!   test_bxp_with_xlabelsr	  u  s    
 Y/r#   zbxp_horizontal.pngr   )r  r  r   r  c                  0    t        t        d             y )NFr  r  r  r   r#   r!   test_bxp_horizontalr    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 r  r  r  s      r!   r  z(test_bxp_with_ylabels.<locals>.transform  r  r#   Fr  r  r  r  r  s    r!   test_bxp_with_ylabelsr    s    

 Y4U;KLr#   zbxp_patchartist.png)r  r  r   c                  0    t        t        d             y )NT)r  r  r  r   r#   r!   test_bxp_patchartistr    s    
 $ 78r#   zbxp_custompatchartist.pngr   c            
      J    t        t        dt        ddd                   y )NTr  r   :)r  r   r  )r  boxpropsr  r  r   r#   r!   test_bxp_custompatchartistr    s$    
 GD!F Gr#   zbxp_customoutlier.pngc            	      H    t        t        t        ddd                   y )Nr  rX  r6  r   r{   mfc)
flierpropsr  r  r   r#   r!   test_bxp_customoutlierr    s!    
 &#>!@ Ar#   zbxp_withmean_custompoint.pngc            
      J    t        t        dt        ddd                   y )NTr  rX  r   r  )	showmeans	meanpropsr  r  r   r#   r!   test_bxp_showcustommeanr     s"    
 A! r#   zbxp_custombox.pngc            	      H    t        t        t        ddd                   y )Nr  r  r   r   r   r8  )r  r  r  r   r#   r!   test_bxp_customboxr#        
 CA6!8 9r#   zbxp_custommedian.pngc            	      H    t        t        t        ddd                   y )Nr  r  r   r"  )medianpropsr  r  r   r#   r!   test_bxp_custommedianr'    s    
 4sq9!; <r#   zbxp_customcap.pngc            	      H    t        t        t        ddd                   y )Nr  r6  r   r"  )cappropsr  r  r   r#   r!   test_bxp_customcapr*    r$  r#   zbxp_customwhisker.pngc            	      H    t        t        t        ddd                   y )Nr  r  r   r"  )whiskerpropsr  r  r   r#   r!   test_bxp_customwhiskerr-    s    
 Csq9!; <r#   zbxp_withnotch.pngc                  0    t        t        d             y )NT)shownotchesr  r  r   r#   r!   test_bxp_shownotchesr0    s    
  67r#   zbxp_nocaps.pngc                  0    t        t        d             y )NF)showcapsr  r  r   r#   r!   test_bxp_nocapsr3    s    
 e 45r#   zbxp_nobox.pngc                  0    t        t        d             y )NF)showboxr  r  r   r#   r!   test_bxp_noboxr6    s    
 U 34r#   zbxp_no_flier_stats.pngc                  8    d } t        | t        d             y )Nc                 8    | D ]  }|j                  dd         | S )Nfliers)r  )r  r  s     r!   r  z*test_bxp_no_flier_stats.<locals>.transform  s$     	"AEE(D!	"r#   F)
showfliersr  r  r  s    r!   test_bxp_no_flier_statsr;    s    

 Y $ 68r#   zbxp_withmean_point.pngc                  2    t        t        dd             y )NTFr  meanliner  r  r   r#   r!   test_bxp_showmeanr?    s    
 te DEr#   zbxp_withmean_line.pngc                  2    t        t        dd             y )NTr=  r  r  r   r#   r!   test_bxp_showmeanaslinerA    s    
 td CDr#   zbxp_scalarwidth.pngc                  0    t        t        d             y )Nrb  r%  r  r  r   r#   r!   test_bxp_scalarwidthrC    s    
 C 01r#   zbxp_customwidths.pngc                  4    t        t        g d             y )N)r   rb  g?g333333?r%  r  r  r   r#   r!   test_bxp_customwidthsrE    s    
 ,D EFr#   zbxp_custompositions.pngc                  4    t        t        g d             y )N)r7   r   r  r7  r  r  r  r   r#   r!   test_bxp_custompositionsrG  '  s    
 | <=r#   c                      t        j                  t              5  t        t	        dg             d d d        y # 1 sw Y   y xY w)Nr7   r%  r  r   r   r  r  rY  r   r#   r!   test_bxp_bad_widthsrJ  /  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  r  rI  r   r#   r!   test_bxp_bad_positionsrM  4  s4    	z	" <DAq6$:;< < <s	   <Azbxp_custom_capwidths.pngc                  4    t        t        g d             y )N)r  r   r   r   r$  r  r  r   r#   r!   test_bxp_custom_capwidthsrO  9  s     /C DEr#   zbxp_custom_capwidth.pngc                  0    t        t        d             y )Nrt  r$  r  r  r   r#   r!   test_bxp_custom_capwidthrQ  @  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   r$  r  rI  r   r#   r!   test_bxp_bad_capwidthsrS  G  s2    	z	" 9DA3$789 9 9rK  r  g{Gz?)r  r   c                     t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdd	       |j                  d
       d| | gi}t        j                         \  }}|j                  ddd|       |j                  d
       y )Nr  r6  r7     r  '  r7   	bootstrapnotchr  r   r0   )rY  rZ  r  	rf   rg   rh   r   hstackr%   r   r  r  )r0   r+   r    r  s       r!   test_boxplotr^  L  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 )
Nr6  r7  rU  rV  r  r7   r  r   )rZ  r"  )rf   r   r]  r%   r   r  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  r6  r7  rU  rV  r  r7   r8   rW  ^)rY  r  r[  r6  r\  )r0   r+   r  r  s       r!   test_boxplot_sym2rc  j  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 )	Nr6  r7  rU  rV  r  r  r  r[  )rf   r   r]  r%   r   r  r  r  s      r!   test_boxplot_symrf  z  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  rU  r   r8   rW  r7   rX  )r  r   T)rY  rZ  	autorange)	rf   rg   rh   r   r]  r%   r   r  r  )r0   r  r  r  r  s        r!   test_boxplot_autorange_whiskersri    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)Nr6  r7  rU  rV  r  )rf   r   r]  rU   r
   r  )r    rc_dictr0   s      r!   _rc_test_bxp_helperrl    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   r  zboxplot.bootstraprW  zboxplot.flierprops.colorr  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr6  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestyler  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorr!  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr;   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalro  zboxplot.patchartist-.)ro  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   )rf   rg   rh   r%   r   r  rl  rU   r'  r(  get_childrenr  )	r+   r    rc_axis0rc_axis1rc_axis2	dict_listr  rc_axisr  s	            r!   test_boxplot_rc_parametersrx    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  r6  r7  rU  rV  r  r  r  r        @rW  r   r7   )rY  usermediansconf_intervalsrZ  r[  )
rf   rg   rh   r   r]  r%   r   r;  r  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(#  r  X   i^  i@ ix  i  r  r  Fminorwhich)
rf   r;  r^  r%   rU  r  r  r\   rZ  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)	Nr6  r7  rU  rV  r  r7   r8   )r{  	rf   r   r]  r%   r   r   r   r  r  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)	Nr6  r7  rU  rV  r  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   r6  )rf   rn   r%   r   r  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  r0  r   rp  rb  zboxplot.meanprops.markerr   r  r   T)r  )whiskerscapsr  mediansr   r9  r   means)r%   r   r   rf   rn   r  
get_marker)r+   r    	test_data
bxp_handle	bxp_lines	each_lines         r!   test_boxplot_marker_behaviorr    s    #&CLL 03CLL,-/2CLL+,llnGC		#IIbMI6J= 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)rC  r  rA  rA  Q?gQ?gQr   re  r   )r%   r   r  r   )r0   r+   r    bpkeyr!  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   rw  r   r  r  showextremashowmediansrX  )r  r  r  r  r  )	rf   rg   rh   r   ri   r%   rU  
violinplotr   )r  r  r    r+   s       r!   test_vert_violinplot_baseliner  9  s     IINN905a91BII#&9D9	BMM$%(aQ  ! ;DllnGCMM#qQAd  , :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   rw  r7   r   r  r%   rU  rf   rg   rh   r   ri   r  r    r  r  s      r!   test_vert_violinplot_showmeansr  J  k    	BIINN905a91BII#&9D9MM$%(aQ  ! :   '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   rw  r   r7   r  r  r  s      r!    test_vert_violinplot_showextremar  T  r  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   rw  r   r7   r  r  r  s      r!    test_vert_violinplot_showmediansr  ^  r  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   rw  r7   r   ?r   r  r   ru  r  rt  )r  r  r  r  	quantilesr  r  s      r!   test_vert_violinplot_showallr  h  s    	BIINN905a91BII#&9D9MM$%(aQ!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   rw  r   r   r  r  r  r  pointsr  r  s      r!   $test_vert_violinplot_custompoints_10r  s  sm    	BIINN905a91BII#&9D9MM$%(aQ  , :   '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   rw  r   r~  r  r  r  s      r!   %test_vert_violinplot_custompoints_200r  }  sm    	BIINN905a91BII#&9D9MM$%(aQ  - :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   rw  Fr   r  r  r  r  r  r  r  s      r!   test_horiz_violinplot_baseliner    m    	BIINN905a91BII#&9D9MM$%(!Q  0 :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   rw  Fr   r7   r  r  r  s      r!   !test_horiz_violinplot_showmediansr    r  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   rw  Fr7   r   r  r  r  s      r!   test_horiz_violinplot_showmeansr    r  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   rw  Fr   r7   r  r  r  s      r!   !test_horiz_violinplot_showextremar    r  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   rw  Fr7   r   r  r   r  r   ru  r  rt  )r  r  r  r  r  r  r  r  s      r!   test_horiz_violinplot_showallr    s    	BIINN805a91BII#&9D9MM$%(!Q!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   rw  Fr   r   r  r  r  r  r  r  r  r  s      r!   %test_horiz_violinplot_custompoints_10r    so    	BIINN905a91BII#&9D9MM$%(!Qr  ; :   '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   rw  Fr   r~  r  r  r  s      r!   &test_horiz_violinplot_custompoints_200r    so    	BIINN905a91BII#&9D9MM$%(!Qs  < :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   rw  r   r  r%   rU  rf   rg   rh   r   ri   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   rw  rx  )r  r#  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   rw  r   r   r   ru  r  
r%   rU  rf   rg   rh   ri   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   rw  )r   r   r   ?r  )gr   r   r  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   rw  )r   r   r  r  )rf   rg   rh   ri   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  r7  rw  )rB  rQ  r7  r  r   r  r   rI  rB  	ABCDEFGHIr  )	rf   rg   rh   r`  ri   r  r   r  r  )r   r   r  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   rP  r7   r8   F)r  manage_ticks)
r%   r   r  r   rf   rg   rh   ri   r  r   )r  r    old_xlimr  r?  new_xlims         r!   test_manage_xticksr    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   r  rf   rg   r   r0  r
  r   r  
get_xticksrS  r  r  s      r!   test_boxplot_not_singler     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  r'  z&Simplest errorbars, 0.2 in x, 0.4 in yr8   T)r  r  r  r  r   r)  r   zVert. symmetricnbinsr  )r(  r   rc  zHor. symmetric w/ alphar  z--or)  r(  r   zH, V asymmetricrI  r  r  r6  )r)  r(  r   ecolorcapthickzMixed sym., log yr  zVariable errorbarsr  r0   r1   r(  r)  r  )rf   rn   
longdoubler  r  r%   r   rP  r$  r3   r   locator_paramsr  maximumr  suptitle)
r0   r1   r)  r(  r+   r    r  ylower
yerr_lowerr  s
             r!   test_errorbarr  3  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#   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   rf   rn   r$  r   r  to_rgba	get_color)r  r    r0   r1   r  r  r  ln1s           r!   test_errorbar_colorcycler	  j  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  rb  r  r   r  )r)  r   r{   r  )r)  r   r{   r   r  )rf   rn   r   r  r   r  r$  )	r   r   r0   r  r1   axtaxryir   s	            r!   test_errorbar_cycle_ecolorr  y  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   r  )r(  r   r  )r%   r   rP  rf   rn   r  r  vstackrd  r   r   r  r$  )r+   r    r0   r1   yerr1r)  r(  s          r!   test_errorbar_shaper    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   )r(  r)  r  r   T)r7   r   rB  r   )r(  r)  uplimsr  r   )r8   r  rQ  r   r  )r(  r)  lolimsr  r   r   r   rQ  magenta)r{   r  r(  r)  r  r  r  r   r   r   r   @r  r   cyan)r{   r  r(  r)  xlolimsxuplimsr  r  r  r  capsizer   )r   r  zErrorbar upper and lower limits)
rf   rn   r  r%   r   r$  
zeros_like	full_liker  r3   )r0   r1   r(  r)  r  r+   r    r  r  r  r  s              r!   test_errorbar_limitsr     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  )r(  r)  r   r  )rf   rn   r%   r$  r  r  r  r  )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  rb   z	steps-midroundr  r  bevel)
r(  r)  r  r{   r8  r  dash_capstyledash_joinstyler  r  )rf   rn   r%   r$  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   r3  r   r  r  r  )r0   r1   r)  r  r{   r  r8   r   r  z	tab:greenr  r1   )r0   r1   r)  r   r  r{   r  r  r   r  ztab:bluerq  r   r;   )r0   r1   r)  r   r  r{   r  r7   r  )r  r  rq  )r  r  r   )r  r1   r;   )r  r6  r!  )r  r{   r  r   rU  )
prop_cycler0   r1   r)  )r0   r1   r)  r   )r0   r1   r)  r   )r   r$  r  r	   r%   rc)r   r   r    _cycles       r!   test_errorbar_with_prop_cycler6    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 integersr^  rx  )
errorevery)rO  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rf   r   r%   r   r   r   r   r  r$  )r0   r1   r)  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 valuesr^  r   r  r7   )r0   r1   r(  r)  )r0   r1   r(  z''yerr' must not contain negative valuesr3  r   r+  rB  r8   r  rG  )r%   r   r   r   r   r  r$  rf   rn   r  rO  )r    r0   r/  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   r7  rl  r  )r8  r  r;   r  )r;   r6  r  )r  r;   r   r   )r7   r  r   )r  r  r   r  )r  r   r   r8   r   r  )r8  r  r  r;   r   )FTFr   r  )rf   r   r   r  r$  r   r  )	r   r   r0   r1   r)  rs   rr   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#   
elinewidthrx  c                 B    t        j                  g dg dg d|        y )Nrx  )r)  rA  )r%   r$  )rA  s    r!   test_errorbar_linewidth_typerC  L  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   rf   r;  r  r$  )r   r   r    xsysess         r!   test_errorbar_nanrI  S  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   rP  r   r   r  rj  Tr  r0   )rl  r  r  rf   r   r%   r   re  )d1d2r+   r    r  s        r!   test_hist_stacked_stepfilledrO  _  s     
Q2	B	QB	BllnGCGGRH|TG: "b?DllnGCGGC,4G@r#   hist_offsetc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | d       |j	                  |d	       y )
Nr   r   r  r7   r   rP  r   r  r   rL  rM  rN  r+   r    s       r!   test_hist_offsetrS  m  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   rP  ri  rk  r   r   r   r   )rf   r   r%   r   re  r  r  rM  r+   r    s      r!   test_hist_steprV  w  sQ     
Q2	BllnGCGGBG KK2KKAr#   zhist_step_horiz.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       y )
Nr   r   r  r7   r   rP  ri  rP   )rl  rR   rL  rR  s       r!   test_hist_step_horizrX    sM     
QB	B	Q2	BllnGCGGRHv<G@r#   hist_stacked_weightsc                     t        j                  ddd      } t        j                  ddd      }t        j                  ddd      }t        j                  d	d
d      }t        j                         \  }}|j	                  | |f||fdd       y )Nr   r   r  r7   r   rP  r  rz  r  r   rj  T)weightsrl  r  rL  )rM  rN  w1w2r+   r    s         r!   test_hist_stacked_weightedr^    sw     
QB	B	Q2	B	T3	#B	T2r	"BllnGCGGRHr2htGLr#   use_line_collectionzw/ line collectionzw/o line collectionzstem.pngc           
         t        j                  ddt         j                  z  d      }t        j                         \  }}| r+|j                  |t        j                  |      dddd       nOt        j                  t        d	
      5  |j                  |t        j                  |      ddddd       d d d        |j                          y # 1 sw Y   xY w)Nr   r8   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr.   
deprecatedr^  F)rd  re  rf  r.   r_  )rf   r   r   r%   r   stemrS  r   r  r   rG   r_  r0   r+   r    s       r!   	test_stemrj    s     	CRUUC(AllnGC 
266!9$c 	 	K \\6lK 	/GGArvvay"dF#(-  /	/ IIK		/ 	/s   ,CC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   rB  rQ  r7  r3  )rq  r9  rd  zb--)rd  rf  Nr%   r   rh  rr  r+   r    r0   r1   s        r!   test_stem_argsrx    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  ra  	stemlinesr  ro  r  get_linestyle)rp  	linecolormarkercolorr{   s       r!   rr  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#   rs  rt  r  r   )r~  r{   r0   )re  r:  r!  )r}  r~  r{   r6  gxrc  r'  r   ru  )rd  re  )NNNrv  rw  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parserh  )r+   r    rF  rG  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                         \  }}| r+|j                  |t        j                  |      dddd       y t        j                  t        d	
      5  |j                  |t        j                  |      ddddd       d d d        y # 1 sw Y   y xY w)Nr   r8   r  ra  kxrb  rP   )rd  re  rf  rR   rg  r^  F)rd  re  rf  r_  rR   )
rf   r   r   r%   r   rh  rS  r   r  r   ri  s       r!   test_stem_orientationr    s     	C255"%AllnGC
266!9$( 	 	* \\6lK 	.GGArvvay"dF(- ,  .	. 	. 	.s   ,B==Chist_stacked_stepfilled_alphac                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fddd	
       y )Nr7   r   rP  r   r   r  rj  Tr   )rl  r  rc  rL  rR  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   rP  r   r   r  ri  Tr  rL  rR  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   rP  r   r   r  T)r  r  rL  rR  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   rP  r   rj  )rN   rl  )rf   r   r%   r   re  rn   rU  s      r!   test_hist_step_bottomr  6  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   rj  r{  rl  r   r8   r7   r   r%   re  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  ri  r  r   r8   r7   r   r  r  s        r!   test_hist_step_geometryr  I  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   rj  r{  rN   rl  r   r7   r   r   r8   r  r   r  r  s        r!   $test_hist_stepfilled_bottom_geometryr  S  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  ri  r  r   r7   r   r   r8   r  r   r  r  s        r!   test_hist_step_bottom_geometryr  _  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  r3  Trj  r{  r  rl  r8   r   r7   r   r  r%   re  r  r   r  r{  data_1data_2r  r'  r  r  s          r!   %test_hist_stacked_stepfilled_geometryr  j  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  r3  Tri  r  r8   r   r7   r   r  r  r  s          r!   test_hist_stacked_step_geometryr    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  r3  Tr  rj  r{  r  rN   rl  r8   r   r7   r   r   r  r   r  r  rz  r  r  s          r!   ,test_hist_stacked_stepfilled_bottom_geometryr    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  r3  Tr  ri  r  r8   r   r7   r   r   r  r   r  r  rz  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  r  rP  r  6  r  )rP     r  r  r   i  )r,  r,  r,  rU  rU  r     )r   r   r   r   r  r  r   r   r   r   r   r  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   r  )r  r   g `p?)r  r   gǟ?)r  gˢ`?r   )gC?r  r   )gK?r  r   )r   r<  z yellowr  r  r   ro  mid)r{  rl  r  r   r.   zupper right)r   r   r7   )r?   bbox_to_anchorr  )r%   r   re  rG   )rX  r?  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   rP  r   r7   r8   ro  )rl  rN   )rf   r;  r%   re  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   ri  rk  )r%   r   re  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  rQ  00)r%   r   re  rZ   )r+   r    r  rV  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   r  r  r  r   )r  r   rf   rg   rh   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   r4  r`  rw  r4  )r   r   r7   r   r   r   rP  )r  r  r7   r   )r  r  rc  r   r0   )r  rc  )r   r  r   r   )r%   r   rY  r  r   r  )r+   r  rcolorsbcolorsalphaskwr/  rc  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	mollweiderT  )r%   r   r   rZ  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      }t        j                  ||      \  }}t        j                  |j                         |j                         f      j                  }|j                  j                  |      }|j                  j                         j                  |      }t        j                  j                  ||d       y )Nr  rT  r|  r   r  r   )r%   r   r   rf   r   r   rX  r  r  rd  transProjectionr  invertedr   r   )r+   r    lonlatllr  ll2s          r!   &test_mollweide_forward_inverse_closurer    s     **,C	K	0B ++ruufbeeS
)C
++ruufslBEECK
5C{{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  rT  r   r7     r   )r%   r   r   rf   r   rX  r  r  rd  r  r  r  r   r   )r+   r    r0   r1   r  r  xy2s          r!   &test_mollweide_inverse_forward_closurer  %  s     **,C	K	0B 	Aq#A;;q!DAq	AIIK-	.	0	0B 
			$	$	&	0	0	4B 


&
&r
*C JJ((S!4r#   
test_alphac            	         t         j                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | dg dg ddd       |j                  | d	z   dg dg dddd
       |j                  | dz   dg dg dddd       |j                  | dz   dg dg ddd       |j                  | dz   dg dg ddd       y )Nr   r  z-Dr5  rw  rP  r   )r   r  r   r8  r8   r7   )r   r  r   r8  rc  r  r   r  rQ  r  r  s      r!   r  r  :  s    IINN199BDllnGC GGD$i]b  " GGD1Hd-]b  
 GGD1Hd)b  
 GGD1Hd-]b  " GGD1Hd-Yb  "r#   	eventplotc                  V   t         j                  j                  d       t         j                  j                  ddg      j                         } t         j                  j                  ddg      j                         }| |z   }t	        |      }g dgt	        |       z  }g dg dg dg d	g d
g dg}||z   }dt        j
                  dt	        |             dz  z   }g d}|j                         |z   }	dgt	        |       z  }
g d}|
|z   }t        j                         }|j                         }|j                  |||	|      }t	        |      }||k(  sJ |||	|d}t        j                         }|j                         }|j                  dddd|      }t	        |      }||k(  sJ y )Nr   rx   rP  r  )r   r7   ru  r5  rx  rp  )r7   r  r   )r7   r   r7   )r   r7   r7   r  Q?)ir  r7   r   r  r   )r   r8   r7   r7   r   r   )r?  lineoffsetslinelengths)r   r;   lor  r   r;   r  r  )r?  r  r  r  )
rf   rg   rh   r  r  rn   r%   r   r   r  )r;  data2r  num_datasetscolors1colors2r?  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r+   axobjcollsnum_collectionss                    r!   test_eventplotr  X  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   rx   rP  r  N)rf   rg   rh   r  r%   r   r   r  )r;  r  r  r+   r  s        r!   test_eventplot_defaultsr    s     IINN1IIb"X&--/EIIaW%,,.E5=D
**,COOE	OODr#   r?  ))r-  )z
tab:orangeztab:pinkztab:cyanbLacK)r  rx  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  r?  )r  rf   broadcast_tor  to_rgba_arrayr%   r   r  r  r   r  )	r?  r  r;   rq  r+   r    r  rX  r   s	            r!   test_eventplot_colorsr    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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   rP  r   r!  r  r;   r  r8   r7   r   dasheddashdotr  )r?  r   r  r!  r  r   r   c              3   P   K   | ]  }t        |j                  t                 y wr	  )
issubclasscategoryr   )r  wis     r!   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  s$      " "++'CD "s   $&N)
rf   rg   rh   r  r%   r   r   r  r  r  )recwarnr;  r  r  r+   r  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  r  r%   r   r  r
  r*   s     r!   test_empty_eventplotr
    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   r	  )r  rR   optsr+   r    s        r!   test_eventplot_orientationr    sE     $2=+*FDll1a GCBLLHHJr#   c                    t        j                   ddd      t        j                   ddd      t        j                   ddd      g}t        j                   ddd      t        j                   ddd      g}|j                         }|j                  |d       |j                  |d       | j                         }|j                  ||g       y )	Nr+  r7   r8   r   r   r5  r   )r  )r  r   r  )r   r   ts_1ts_2r    s        r!   test_eventplot_units_listr    s     dAq)8+<+<T1a+HdAq)+DdAr*H,=,=dAr,JKD				BLL1L%LL1L%				BLL$r#   zmarker_styles.pngc            
         t        j                         \  } }t        t        j                  j
                  j                  d       }|j                  d       dg|}t        |      D ]Z  \  }}|j                  |dz  dz  t        j                  d      dz  z   t        j                  d      dz  |z  d|d|dz  z   |       \ y )	Nc                 B    t        t        |             t        |       z   S r	  )r  r  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  rV  r  r   rf   rn   r   )r+   r    r  r1   r{   s        r!   test_marker_stylesr    s    llnGC
 Z''33;;68GNN6  Gw' @	6
Q	BIIbM",,bggbk"nQ.>""QqS& 	 	@@r#   zrc_markerfill.pngc                      t        j                         \  } }t        j                  d      }t	        g d      D ]1  \  }\  }}|t
        j                  d<   |j                  ||z   |       3 y )Nr7  ))r=   r  )rN   r   )r  rb  zmarkers.fillstyler  )r%   r   rf   rn   r  rU   r   r   )r+   r    r0   idxr   r{   s         r!   test_markers_fillstyle_rcparamsr    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>  rI  r?  r   r  r  r   r  )r  r   r%   r   r   r  r  )r  marker_as_tuplemarker_as_listr+   r    s        r!   test_vertex_markersr    sx    b	?D:O9NllnGCGGDBCG@GGD2J"^GEKKRKKRr#   vline_hline_zordererrorbar_zorderx86_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   )r8  r6  r7   r  )r   r8  r6  r   r7  r  r8   r  r   zaxvline and axhline zorder testr!  )r)  r6  r8  r   )r8  r   r6  zerrorbar zorder test)r  r   r%   r   rP  r   rp   axvliner3   rf   rf  r$  )r0   r+   r    r1   r)  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   rC  r   rt  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?  rC  r  rI  r  r  r"  )r   r   r7   r   r  )gffffffr  r   r  )sloper   )r7   r  r  C4)r  r7   infrv  r   r7   r   )r   r   r'  r  r   rp   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?  rC  r  r7   r+  r  r*  r  r+  r   r  r   r   r   r  )r   r   )r   r7   r  )r   r  r   r"  )r   r   r'  r+  r   r   s      r!   test_axline_transaxesr3  S  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?  rC  r  r7   r0  r2  r8   r  r1  r   r  )r   r   r  r   r   r   r"  )r   r   r'  r+  set_size_inchesr   r   s      r!   test_axline_transaxes_panzoomr6  d  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  NrI  r7   )r+  r  r	  )
r%   r   r   r   r   r'  r
  r  r  r
  r*   s     r!   test_axline_argsr8  x  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   r7  )r8   r   rQ  r8   r   r6  r   r?  r!  )r8   r   r  r   r  r7  r8   r>  r   rQ  )r  rQ  )r  rV  r!  r  )r?  r!  r   r  r   )r8   r  r  rQ  r   r  )r   r7   r   r   r8   r7   )r  r  r   r5     r  r  r   )	r%   r   ro   rf   r  r  r   r   masked_equal)r  r  r  r  r>  r?  r  r  r  r  x3r  x4y4r    fig3ax5x5ymin5ymax5s                       r!   test_vlinesrJ        
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
   ro   r?  ra  r  r+   r    r  s      r!   test_vlines_defaultrO    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   hlinesrf   r  r  r   r   rA  )r  r  r  r  r?  r>  r  r  r  r  r  rB  rD  rC  r    rE  rF  y5xmin5xmax5s                       r!   test_hlinesrZ    rK  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rM  )r%   r   r   r
   rV  r?  ra  r  rN  s      r!   test_hlines_defaultr\    rP  rQ  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   ro   rV  )r   r   r  test_colors	expect_xyexpect_colors         r!   test_lines_with_colorsra    s     ?KAq!((q!0;q ) JAq!((q!0;q ) J I5L1a ''	1a/;q ( J1a ''	1a/;q ( Jr#   step_linestylec            	         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  rq  r  r   pre)r8  r   r  r7   r  r  r   r7  )r[  Y0Y1Y2r[  re  )r8  r   r  r  rf  rg  )	rf   rn   r%   r   r  r  ri  r  r  )r0   r1   r+   ax_lst	ln_stylesr    r  r  s           r!   test_step_linestylerj    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)rQ  rQ  r  r  r   )radiusr  r   T)match_originalr   r   r7   r   r  ii)r   r   r   r   )r   r   r   r   r-  r5  )r%   r   r;  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  r   r  r  r  )r+   r    r;   r  r  s        r!   test_mixed_collectionrt    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%   rW  rf   int32int64r  get_subplotspecget_geometryr  s    r!   test_subplot_key_hashrz  4  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  rr  r  r  r   r  @ffffff@'@r   r   r7   r8   rK  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr	  )r  r  r  r  r  r  r  N)rU   r   intrf   r$  rn   rd  r   r   multiplyouterr  rg   rh   r  r   ceillog2r  r%   r   r   specgramr?  LogNorm)r  r  fstims
NFFT_freqsr0   y_freqs
NFFT_noisey_noise	all_sidesr1   r  r  r  r    r  s                  r!   test_specgramr  :  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"Ann
q255y2;;,,VQ778<<!<DFG R"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A 	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  rr  r  r  r   r  r}  r~  r  r   r   r7   r8   rK  Nr   r   r  r   	magnituder  r  r  r  r  rc   r	  )r  r  r  r  r  rc   r  r  )rU   r   r  rf   r$  rn   r   r   r  r  r  r]  rg   rh   rd  r  r   r  r  r  r%   r   r   r  r?  r  )r  r  r  r  r0   r1   r  r  r  r  r  r  r  r    r  s                  r!   test_specgram_magnituder  ^  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  rr  r  r  r   r  r}  r~  r  r   r   r7   r8   rK  Nr   r  )r  phaser   r  dB)r  r  r  r  r  rc   r  )rU   r   r  rf   r$  rn   r   r   r  r  r  r]  rg   rh   rd  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  rc   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  Nr	  )r  r  rx   `   )r%   r  rf   r   
get_extent)specfreqsr  r6  rd   re   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'.r  upperzimage.originrz   N)rf   rn   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.r  rz   r  N)rf   rn   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 )NrW        Y@r  r   r  r}  r~  r  rr  r   r7   r8   rK  r  r  r  F)r  return_liner  Tr   )r  r  r  r  r  r   xlabelylabel)r  rf   r$  rn   r   r   r  r  r  rg   rh   r  r   r  r  r  r%   r   r   psdrd  r  r  r   csd)r  r  r  r  r0   ys_freqsr  ys_noise
all_kwargsrG  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 )NrW  r  r  r   r  rr  r8   r   r7   r   r   rK  r   r  )r  r  r  r   r  r  r  )r  r$  rf   r  r  rn   r   r   r  r  rg   rh   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   rf   r  r  rf  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   rV  rY   tick_bottomr\   	tick_left)r   r   rr   ax_twinxax_twinyrs   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_invisible3  s6    

U#
		!  'r#   )r  r   r  r  )rA   )rU  r  Tr3  zb-)r   r   r8   zr-)r  r   r   zg-r   r8   r  r7   A   r   )rx  r  r1   )r  r?  r  r0   r   )r%   r   rN  r   r  r  rA   set_positionr   r   r  r  r\   r.   r   r  rY  tick_params)	r  r+   hostpar1par2r  r  p3tkws	            r!   test_twin_spinesr  0  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@r  r  r7   )rr  iL  i  i  )r  i-  r|  r  r   g     @@z#BEAED4r"  r  )r   rc  z#7FC97Fr   )r/  r  r/  r  )r   r  )r   rc  r  )
rU   r   r%   r   r   rf   r;  r  r   r  )r+   r  r  r  s       r!   test_twin_spines_on_topr  ]  s    -1J()-1J)*
**,C
//!Q
"C88-)+ ,D ))+CHHT!Wd1gckH3T!Wd1gck"EHHT!Wd1gckH3T!Wd1gck"E atAws{+D
**,C
//!Q
"C
))+CHHS#YTH2S#YbtDHHS#YTH2S#YbtDr#   z(grid_which, major_visible, minor_visible))r   TT)majorTF)r  FTc                 V   t         j                  j                  d| d       t        j                         \  }}|j
                  j                          t        fd|j                  j                  D              sJ t        fd|j                  j                  D              sJ y )NT)r1  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>  r  r  )r   r   r  r%   r   r0  r
  r  rY   
majorTicks
minorTicks)
grid_whichr  r  r+   r    s    ``  r!   test_rcparam_grid_minorr  |  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   rZ  r0  r
  rY   r  r  r  r*   s     r!   	test_gridr    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"  r1  )
r%   r   r  rY   r  r  r  rZ  r
   r}  r*   s     r!   test_reset_gridr    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   padr  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   rZ  r  draw_without_renderingrU  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   rP  r$  r   r   r   r*   s     r!   test_vline_limitr    s@    
**,C	BJJsOGG BKKM9-r#   zfv, fh, args)r7   rI  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 valuer^  )yminymaxz"ymax must be a single scalar valuez"xmin must be a single scalar value)rd   re   z"xmax must be a single scalar value)rU   rC  num2dater   r   r  )fvfhargsbad_lims       r!   test_axline_minmaxr	    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  rO  r   rx  )r8   r  r  r   r  )r%   r   r   r   r   )r+   r  r  r  r  r  s         r!   test_empty_shared_subplotsr		    s    ||!1T$GHCFKK	9%V__FBV__FB7N77N77N77N7r#   c                  d   dD ]  } t        j                  dd      \  }}|d   j                  d| d       |d   j                         dk(  sJ |d   j	                         | k(  sJ t        j                  dd      \  }}|d   j                  d|        |d   j                         d	k(  rJ  y )
Nboxdatalimr8   T)r  r  r   )
adjustablesharer7   r	  rc  )r%   r   
set_aspect
get_aspectget_adjustable)r	  r+   r  s      r!   test_shared_with_aspect_1r	    s    ( -
<<a5SA!
$?1v  "a'''1v$$&*444<<a5SA!
31v  "f,,,-r#   c                     t        j                  ddd      \  } }|d   j                  dd       |d   j                  ddgddg       |d   j                  ddgddg       t        j                          |d   j                         |d   j                         k(  sJ |d   j                         |d   j                         k(  sJ y )	Nr8   T)r  r  rO  r   )r	  r7   r   r  )r%   r   r	  r   r
  r   r   rq  s     r!   test_shared_with_aspect_2r	    s    ||!D>HCFat$FKKAAFKKAAHHJq6??A 1111q6??A 1111r#   c                  H   dD ]  } t        j                  dd      \  }}|d   j                  d|        |d   j                  d|        |d   j                  ddgd	d
g       |d   j                  d	d
gddg       t        j                          |d   j                         |d   j                         k7  sJ |d   j                         |d   j                         k(  sJ |j                  j                  |j                  j                  z  }|D ]  }|j                         }|j                  |j                  z  }|j                  j                  |j                  j                  z  }||z  |z  }t        |d
      t        |j                         d
      k(  rJ   y )Nr	  r8   T)r  rO  r   r	  r7   r   r   r  )r%   r   r	  r   r
  r   r   bbox_inchesr  r  get_positionviewLimr(  r	  )	r	  r+   r  
fig_aspectr    r   
box_aspect
lim_aspectrq  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  rO  r   r  zset_aspect\(..., adjustable=r^  )r%   r   r  r   r   RuntimeErrorr  )r+   rU  s     r!   test_shared_aspect_errorr"	    sZ    Q$t<ICGLL	|+J	K %""$% % %s   A&&A/zerr, args, kwargs, matchr  z;axis\(\) takes 0 or 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Nr^  )r   r   r%   r  )errr	  r  r_  s       r!   test_axis_errorsr&	    s8     
s%	( "$!&!" " "s	   7A c                     t        j                         } t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  dd       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d	
       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        y # 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzunknown value for which: 'foo'r^  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   rd   zCannot pass both 'right')rA   re   zCannot pass both 'bottom')rN   r 	  zCannot pass both 'top')r=   r	  )r%   rP  r   r   r  get_xaxis_transformget_yaxis_transformr   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                  |                    }|j	                  d       |j	                  d       t        |j                  j                  |j                  j                         y )Nztwin{}r   r8   )r%   r   r#  r  r	  r   bboxextents)r  r+   r    r.  s       r!   test_twin_with_aspectr2	  ?  sd    llnGC0gb(//$/02G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  )r4	  r  FT)visible_only)
rU   r   r   r   r   r   r   r   relimr   )r  r  r>  r?  r+   r    r  s          r!   test_relim_visible_onlyr7	  J  s   	B	B	B	B



"
"
$C		BGGBO;;=B;;=BGGBOED;;=B;;=BU;;=B;;=BHH$H;;=B;;=Br#   c                      t        j                         } | j                         }|j                  d       |j                  d       y)z
    tests for issue #1172
    large)r  outr  N)r%   r   rP  r  r*   s     r!   test_text_labelsizer<	  c  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   )rQ  r  r  %1.1f%%Tr  )exploder  r?  autopctshadow
startangle)r%   r   pie)r  sizesr?  rK	  r  r  s         r!   test_pie_defaultrQ	  m  sJ     -FEBFGV,ID#GGE76&dr  ;r#   )pie_linewidth_0rR	  rR	  )r   r   c                     d} g d}g d}d}t        j                  ||| |ddddd	i
       t        j                  d       | |||d}t        j                         }|j	                         }|j                  ddddddddd	i|	       |j                  d       t        j                          t        j                  ddddddddd	i|	       t        j                  d       y )Nr>	  rC	  rD	  rI	  rJ	  Tr  r!  r   rK	  r  r?  rL	  rM	  rN	  
wedgepropsr  )lr  r;   exr  rW	  rV	  r;   )rK	  r  r?  rL	  rM	  rN	  rU	  r  )r%   rO	  r  r   rP  )r  rP	  r?  rK	  r  r+   r    s          r!   test_pie_linewidth_0rX	  y  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>	  rC	  rD	  rI	  rJ	  Tr  r!  r   r  r   )	rK	  r  r?  rL	  rM	  rN	  rU	  rX   rm  zCenter point)r7   rO  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler  )r  r  r  r0	  r  )r%   rO	  r  rY  r  r  rP	  r?  rK	  s       r!   test_pie_center_radiusrb	    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>	  rC	  rD	  rI	  rJ	  Tr  r!  r8   rT	  r  r%   rO	  r  ra	  s       r!   test_pie_linewidth_2re	    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>	  rC	  rD	  rI	  rJ	  Tr  )rK	  r  r?  rL	  rM	  rN	  counterclockr  rd	  ra	  s       r!   test_pie_ccw_truerh	    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>	  rC	  rD	  rI	  rJ	  Tr  r!  r   rJ  )	rK	  r  r?  rL	  rM	  rN	  rU	  framerX   r   )r   r8   )r   r   r  rd	  ra	  s       r!   test_pie_frame_gridrk	    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?	  rA	  rB	  rC	  rD	  rI	  rJ	  Tr  )rK	  r  r?  rL	  rM	  rN	  rotatelabelsr  rd	  ra	  s       r!   test_pie_rotatelabels_truero	    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>	  rC	  rD	  rI	  rJ	  Tr  )rK	  r  r?  rL	  rM	  rN	  labeldistancern	  r  g333333r  )r%   rO	  r  r   rG   ra	  s       r!   test_pie_nolabel_but_legendrr	    s[    ,FEBFGGGE76&dr HHWHHT3JJLr#   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_moderx  r   %.2f)r  rL	  	textpropsrv	  rw	  r  rx	  rx  r   )
rY  r%   rP  rO	  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  r  rz	  r  textsrL	  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   )rK	  )r%   r   r   r   r  rO	  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   rO	  r+  r  )r+   r    r0   t1t2s        r!   test_normalize_kwarg_pier	  !  s    llnGCA	!t	$Br!uRy$&'$...	!u	%Br!uRy$&'$...r#   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   ri   zset_x/yticklabelsr   r   r7   r   r  r;   rX  r  r   )11121314)r%   r   r   rf   rn   r3   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksrS  get_yticklabels)r+   r    rD   s      r!   test_set_get_ticklabelsr	  *  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                    |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)
fontweightrs  r8   r  T)r  rS  rT  N)r   r	  r	  r	  r	  r   s      r!   test_set_ticks_with_labelsr	  D  s     
			BMM,+?MM)MM1a&M%Sz.				BMM, 4MHMM)MM1a&3*DM1r#   c                      t        j                  t        d      5  t        j                  d      \  } }|d   j                  ddgd       d d d        y # 1 sw Y   y xY w)Nzmust be a sequencer^  r8   r7   rB  g@)r   r   r   r%   r   r	  r*   s     r!   test_set_noniterable_ticklabelsr	  Z  sQ     
y(<	= &,,q/R
1!Q%& & &s   0AAc                  
   t        j                         \  } }|j                  t        j                  d             |j
                  j                  t        j                  d      dz          |j                  d       |j
                  j                  dD cg c]  }| c}       t        j                          |j
                  j                         D cg c]  }|j                          }}|g dk(  sJ y c c}w c c}w )Nr   r   r   r  
bcdefghijk)r  rX  r  r  r  )r%   r   r   rf   rn   rY   	set_ticksr  set_ticklabelsr
  get_ticklabelsr  )r+   r    r;   r  r  s        r!   test_subsampled_ticklabelsr	  c  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  rR  )r%   r   r   rf   rn   rY   r	  r   r   r  r	  r*   s     r!   test_mismatched_ticklabelsr	  o  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	  w  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 )	Nr3  )r   r   r  Fr  r1   r   r   r  r  r  )r%   r   r   setpr	  r  r*   s     r!   test_retain_tick_visibilityr	    sH    llnGCHHY
#HHR!51NN6!N4r#   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   r0  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   r  r   r  )r%   r   r=  r   r   rf   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   rI  r   r8   )r   r8   皙ɿr  )r	  r   )	r  r$  r'  r%   r   r   r=  r   r   )r  rd   re   r 	  r	  r  r  r  r  rE  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 yr9  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   r=  )r%	  r	  r  r_  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   re  r*   s     r!   test_length_one_histr	    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  )rz   )r  r  )	r%   r   r   r  
get_xboundr   r  
get_yboundr   r*   s     r!   test_set_xy_boundr	    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   rw  r  r  r  )mylistr+   r    s      r!   test_pathological_hexbinr	    sA    TCZFll1a GCIIffKK

r#   c                  b    t        j                         \  } }|j                  ddgddgd        y )Nr7   r8   r"  ry  r*   s     r!   test_color_Noner	  	  s+    llnGCGGQFQF$G'r#   c                      t        j                         \  } }|j                  ddgd      d   }d|j                         k(  sJ y )Nr   r7   r)  r  )r%   r   r   r  r+   r    r  s      r!   test_color_aliasr	    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   re  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   decodere  r   rG   )r+   r    r   r  r  s        r!   test_unicode_hist_labelr	    se    llnGC
@A+AhhwhhwF
 GGU2YK!O6G*IIKr#   c                     t         j                  j                  d      dz  } t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   kD  r|d   |d   k(  sJ |j                  j                  j                         dk(  sJ t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   k(  r|d   |d   kD  sJ |j                  j                  j                         dk(  sJ y )	Nr   g^ 9^;rO   r   r7   rA   r=   rN   )rf   rg   r%   r   r   r0  r
  r\   
offsetTextr	  r[   
tick_rightrY   get_verticalalignmentr   )r  r+   r    beforeafters        r!   test_move_offsetlabelr	  *  s   99B%'DllnGCGGDMJJOOXX  --/F88668FBBBHHJJOOHH,,.E8fQiE!Hq	$99988668GCCCllnGCGGDMJJOOXX  --/F88446%???HHJJOOHH,,.E8vay U1Xq	%99988446(BBBr#   zrc_spines.pngc                      ddddd} t        j                  |       5  t        j                          d d d        y # 1 sw Y   y xY w)NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rU   r
   r%   r   )rk  s    r!   test_rc_spinesr	  D  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   )r1  zaxes.grid.axisr0   r1   r7   r   )r%   r   r  rU   r
   r   )r+   rc_dict0rc_dict1rc_dict2rv  r/  rk  s          r!   test_rc_gridr	  O  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r4  r7   tick1Ontick2Onr%   r
   r   r   rY   r\   _major_tick_kw_minor_tick_kwrX  r+   r  xaxyaxs        r!   test_rc_tickr	  e  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)r	  r	  r	  r	  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr	  r7   r	  r	  r	  r	  s        r!   test_rc_major_minor_tickr	  y  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  )rf   rn   r;  r%   r   r   r  r   r   rk  r	  r   r	  r1	  )r0   r1   r+   r    r   r   s         r!   test_square_plotr	    s    
		!A
!"AllnGCGGAq$GGH$D774=BGGDM)))==?a
&..0FH
'//1KMr#   c                     t        j                  t              5  t        j                  d        d d d        t        j                  t              5  t        j                  d d        d d d        t        j                  t              5  t        j                  t        j                  d      t        j                  d             d d d        t        j                  t              5  t        j                  t        j                  d      j                  d      t        j                  d      j                  dd      f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrJ  r  r   r>  r   r7   )	r   r   r  r%   r   rf   rf  rn   r   r   r#   r!   test_bad_plot_argsr	    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   r7  )r8   r  )r7   r8   r  rQ  r5  r  )r  r   r  )r   r  c                 v    t        j                         \  }}t         |j                  g | |       |k(  sJ y r	  )r%   r   r  
pcolorfast)r  r  clsr+   r    s        r!   test_pcolorfastr	    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  rI  r	  )r%   r   r
  r  r  
get_yscale
get_xscaler+   r  r    s      r!   test_shared_scaler	    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  rN  )r   r   r   r%   rW  r   r#   r!   test_shared_boolr 
    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  rf   r;  r   r#   r!   test_violin_point_massr
    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   r(  r)  )r	   rf   rn   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%   rP  r$  rV  )r  r    ebs      r!   test_errorbar_inputs_shotgunr
    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  r8  r   )r%   r   rf   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  r  r>  g?r  zaxes.titlepadr  )r%   r   r3   titleOffsetTrans
get_matrixr  rU   r   )r+   r    r  s      r!   test_title_padr
    s     llnGCLLL%
&&(AU8	CGG+,,,LLL$
&&(AU8r>>LLL&
&&(AU8
++O<sBSWWLMMMr#   c                  R   t        j                         \  } }dt         j                  d<   |j                  d       |j                  dd       |j                  dd       d|j	                  d      k(  sJ d|j	                  d      k(  sJ d|j	                  d      k(  sJ t        j                  t              5  |j	                  d       d d d        t        j                  t              5  |j                  dd       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)	NrX   zaxes.titlelocationr
  rO   r>   rA   r  fail)r%   r   r   r3   	get_titler   r   r  r*   s     r!   test_title_location_roundtripr
    s    llnGC)1CLL%&LLLLVL$LLgL&R\\f\----bllwl////(3333	z	"  
 	z	" (
V'( (   ( (s    D4DDD&r  c                 R   t        j                  dd|       \  }}|d   j                  dd       |d   j                  dd       |j                          |d   j                  j                         \  }}|d   j                  j                         \  }}||cxk(  rd	k(  sJ  J y )
Nr8   r7   r  r   rS  ir
  rT  r   )r%   r   r3   r  r/   r	  )r  r+   r  r0   r  r?  s         r!   test_title_location_sharedr 
  #  s    ||Aq0HCFSc"FSc" FLL%%'EArFLL%%'EAr?s???r#   z
loglog.pngc                      t        j                         \  } }t        j                  dd      }|j	                  ||dz  d       |j                  dd       |j                  d	dd
       y )Nr7   r  r   r   r:  r  r8   )r  r  r   r  )r  r  r  )r%   r   rf   rn   r  r  )r+   r    r0   s      r!   test_loglogr"
  .  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      r7  r  r  )rb  ry  r   r8   )rP  )r8  nonpositiver:  r  )r$
  )
r%   r   rf   rn   r  r   r  r  r
  r  )r+   r  r0   r1   mcymcxr    s          r!   test_loglog_nonposr'
  7  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   r	  r  r  r	  r  rf   rf  r	  re  rn   r   r*   s     r!   test_axes_marginsr)
  M  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  rV  r  rY   get_major_locatorr    r  r!  s      r!   	_helper_xz&shared_axis_remover.<locals>._helper_xq  K    hhj


Ar(BHH&&(*urzzr#   c                     | j                         }|j                          | j                  dd        | j                  j	                                }|d   dkD  sJ y r,
  )r   rV  r  r\   r-
  r.
  s      r!   	_helper_yz&shared_axis_remover.<locals>._helper_yx  r0
  r#   r  )param)requestr/
  r2
  s      r!   shared_axis_removerr5
  o  s"     +GMM::r#   )rP  r   subplots_sharedr<  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 )
NrP  r   r6
  r8   r  r 	  r   r<  r   r   r  r  )r3
  r%   r   rP  r   r<  )r4
  r+   r    rh  s       r!   shared_axes_generatorr9
    s     }}jjlWWY 7N 
*	$,,.R 7N 
+	+ll1aeDVAYq\ 7N 
*	$jjl\\*+7Nr#   c                     | \  }} ||       y r	  r   )r9
  r5
  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   rV  r  r   )r+   rh  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 	  rr  )r@
  rr  )rf   rn   rg   random_samplerx  r%   r   r  r  r  rC  rE  r   r   )rV	  r  r+   r  r  s        r!   test_shared_axes_autoscalerB
    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 )Nrc  r  r   rr  r  r8   )r%   r   r\   r-
  
set_paramsr  r	  r0  r
  r  r  r*   s     r!   test_adjust_numtick_aspectrE
    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  r2  )r%   r   r   r  r  r	  r  s     r!   test_auto_numticksrG
    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@gؗҜ<r   ir  r  r  r   )r%   r   r   r   r  rf   log10r  rn   r  r	  r*   s     r!   test_auto_numticks_logrL
    s     llnGC*9CLL&'IIuclUBK(HHR]]_%3A)>>CCEEEHHR]]_%3A)>>CCEEEr#   c                  V    t        j                         \  } }|j                  g d       y )N)r   r   )r%   r   r  r*   s     r!   test_broken_barh_emptyrN
    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.r  r  rB  r   r7   r  r8   r  r8   r   gUUUUUU?N)	r%   r   r  r  rO  r  verticesr  r  )r+   r    d0pps       r!   test_broken_barh_timedeltarT
    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  rP  r+  rB  )r  rf   rn   rg   r   r%   r   r  )r  timedepthr  r+   r    s         r!   test_pandas_pcolormeshrX
    sT    ==r=2DIIbME99>>"a DllnGCMM$t$r#   c           	         t        j                  ddd      }t        j                  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  )rC  r  r8   r7   rC  r  r3  )rf   rn   r   r;  r   r  r=  r%   rP  r@  r  r   )r  rC  r  rA  r    without_zero_indexs         r!   test_pandas_indexing_datesr[
    s    IIi/BEVVBHHU3u:./0F	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  rw  )r0   r1   xeyer  )columnsr@  r0   r1   r]
  r^
  r  )r=  rf   rg   uniformr%   r   r$  rJ  s       r!   test_pandas_errorbar_indexingra
    sV    	bii''V'44+ 
 
-B llnGCKKSt$RK8r#   c                     | j                  g dg dd      }t        j                         \  }}|j                  |j                  |d          y )Nr1  )r7  r7   r8   )XXYYrd
  )r=  r%   r   r   r@  rJ  s       r!   test_pandas_index_shapere
    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   r3  r7   )r`  ilocr%   r   re  )r  ser_1ser_2r+   r    s        r!   test_pandas_indexing_histrj
     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   r2  r7   r   r  rX   r  )r=  r   r%   r   r  r?   r0  r
  rJ  s       r!   test_pandas_bar_align_centerrl
    s    	E!H584	5Bll1oGCFF266"S'Q,#$66"S'Q,#$   JJOOr#   c                     dd l m}  t        j                         }| j	                  |d      }t        j                  t        d      5  |j                  d       d d d        | j                  |d      }t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)Nr   z;The apply_tickdir function was deprecated in Matplotlib 3.5r^  r:	  )
matplotlib.axisr  r%   rU  XTickr   r  r   apply_tickdirYTick)maxisr    r  s      r!   #test_tick_apply_tickdir_deprecationrs
    s    #	B;;r1D	2-
. " 	5!"
 ;;r1D	2-
. " 	5!" "" "" "s   B*B6*B36B?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:	  )r  r  r  r   r  r  r  )
r%   rW  r\   set_tick_paramsr  _size	tick1liner  r  r	  )axis_1s    r!   .test_axis_set_tick_params_labelsize_labelcolorry
  &  s    [[]F
LL  2%+0 ! 2 <<""1%++s222<<""1%//99;sBBB<<""1%,,5574???<<""1%,,668EAAAr#   c                     t        j                         } | j                  dddd       | j                  | j                  fD ]  }|j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  rJ  y )Nr  r   r   r  )r  r  r  r  r   rq  )r%   rW  r  rY   r\   r  r  r  get_linewidth	get_alphar|  )r    r  s     r!   test_axes_tick_params_gridlinesr}
  3  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%   rW  r  r\   r  r  r  label2r  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%   rW  r  rY   r  r  r  r
  r  r  s    r!    test_axes_tick_params_xlabelsider
  M  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 )Nrx   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  rf   r;  uint8r  r'  r  )rF  r  r  r0   s       r!   test_bar_uint8r
  c  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rP  r  r  r7   )tzUTC	r   r  r  r
  gettzr%   r   rW  r9  r0   
time_indexs     r!   test_date_timezone_xr
  j  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   rW  r9  )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  rO  )Fr  Tr  r   r  r  r  r!  r"  r;   r  )r   r   r!  F)r=   rN   rO   rA   )r%   r   r   r  r   r;  ro  r:  rZ  r  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   r0  r
  get_rendererget_window_extentr  r  rf   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   rN  r   r&   r3   r/   r  r0  r
  _update_title_positionr	  )r+   r    r  r   r
  s        r!   test_titlesetposr
    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   r0  r
  r/   r	  r*   s     r!   test_title_xticks_topr
    sk    "&CLLllnGCHH&LLJJOO88  "1%,,,r#   c                     d t         j                  d<   t        j                         \  } }|j	                  ddddd       |j                  d       | j                  j                          |j                  j                         d   dkD  sJ y )Nr
  r0   Tr  rN   r=   r
  r
  r
  r7   r
  )
r   r   r%   r   r  r3   r0  r
  r/   r	  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 )Nr
  g   vH7BrO   r>   r7   r   )
r   r   r%   r   r  r3   r  _left_titler	  r/   )rO   rX   r+   r    yleftr  s         r!   test_title_above_offsetr
    s     #'CLLllnGCKKLL6L"LL F~~**,Q/#555fxx$$&q)S000++-a0(('')!,s{{%r#   c                  *   d t         j                  d<   t        j                         } | j	                  g d      }|j                  ddddd       |j                  d      }| j                  j                          |j                         d   dk(  sJ y )	Nr
  )r   r  r  r   r0   Tr
  Boor7   r   )
r   r   r%   r   r<  r  r3   r0  r
  r	  )r+   r    tts      r!   test_title_no_move_off_pager
    s     #'CLL
**,C	+	,BNNDdT  K	e	BJJOO??Q3&&&r#   c                      t        j                         \  } }|j                  g d       |j                  j	                  d       |j                  j                         j                         dk(  sJ y )Ng   @Ag   eAg   FAr  )r  )r%   r   r   r\   ru
  get_offset_textr  r*   s     r!   test_offset_label_colorr
    sW    llnGCGG$%HH.88##%//1U:::r#   c                  r   t        j                         \  } }|j                  g d       |j                  j	                  dd       |j                  j                         j                         sJ |j                  j	                  d       |j                  j                         j                         rJ y )Nr
  FT)label1Onlabel2On)r
  )r%   r   r   r\   ru
  r
  r  r*   s     r!   test_offset_text_visibler
    s    llnGCGG$%HHed;88##%11333HHe,xx'')557777r#   c                      t        j                         \  } }|j                  dt        j                  ddg      z   dz         | j
                  j                          y )Nr7   r   g-q=gqىE)r%   r   r   rf   r;  r0  r
  r*   s     r!   test_large_offsetr
  !  sB    llnGCGGQ1f+&&%/0JJOOr#   c            
      J   t        j                         \  } }t        ddd      D cg c]  }t        j                  dddd|       }}t	        j
                  ddt        |            }t	        j
                  dd	t        |            x}}|j                  ||||       y c c}w 
Nr   r   r   r  r7  r   r  r   r  )r%   r   r   r  rf   r   r  barbsr+   r    r/  rC  r1   uvs          r!   test_barb_unitsr
  '  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 r
  )r%   r   r   r  rf   r   r  quiverr
  s          r!   test_quiver_unitsr
  /  s    llnGC<A!R<LMqXtQB2MEM
Aq#e*%AKK2s5z**AIIeQ1 Nr
  c                  ^   t         j                  } t        j                         \  }}t	        d      D ]x  }|j                  t	        d            \  }|j                  t	        d      t	        d            }|D ]1  } | |j                                | |j                               k(  r1J  z y )Nr   r   )	r  to_rgbr%   r   r   r   r  r  r  )r
  r+   r    r  r
  brsbrs          r!   test_bar_color_cycler
  7  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  r  r1   r   )r  r  r  )
r%   r   r   rY   ru
  r\   rS  r}	  r	  r  )r  r    r  texts       r!   test_tick_param_label_rotationr
  A  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 ]  }|j                  t        d      t        d            }t	        j
                  dj                  |            }t        |j                         j                               t        |      k(  rJ  t        dd      D ]  }|j                  t        d      t        d            }t	        j
                  dj                  |            }t        |j                         j                               t        |      k(  rJ  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j                  |            }t        |j                         j                               t        |      k(  sJ t        |j                         j                               t        |      k(  rJ  y )	Nr   zC{}r  r  )r  
facecolorsr   r   r  )start)r%   r   r   r  r  r  r  tuplerT  squeezer  r  rU  )	r+   r    r  cctargetaledge_targetelface_targets	            r!   test_fillbetween_cycler
  T  s   llnGC1X E__U1XuQx0a1R&&(0023uV}DDDE
 1a[ EeAha1a1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=ooell1o6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  rJ
  r  r   r   )
r%   r   r   set_xmarginr  r   rY   r  r  r   )r+   r    marginxlim0xlim1r  xlim0txlim1tx0tx1tr  s              r!   test_log_marginsr
  p  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        d}|j                  |||       |j                  |||g| z         y # 1 sw Y   8xY w)Nr   r7   r  )r   r   r   )rf   rn   r%   r   r   r   r  r9   )r  r0   r1   r?  r+   r    c_rgbs          r!   test_color_length_mismatchr   ~  s    	A99Q<1qAYYqs^FllnGC	z	" #


1a6
"#EJJq!uJJJq!w{J#	# #s   5CC
c                  \    t        j                  dgd       t        j                          y )Nr   Labelr  )r%   r  rG   r   r#   r!   test_eventplot_legendr    s    MM3%w'JJLr#   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   r  r  )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rm  )
r%   r   r   r   r  r   rf   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  r  r  r  c                     t        j                         }|j                  g d       |j                  |        |j	                  |       |j                          y )Nr  )r%   rW  r   r
  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   re  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  r8  )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)r(  r.   zempty x)r)  r.   )r%   r   r$  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   r  r8   g\(\@      @)rf   rn   r   r   r   )r   r   r  r0   r  r/  r1   s          r!   test_plot_decimalr    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   )r  rc  r   )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_tightbboxr0  r
  r  r  r  r+   r    bbbb2s       r!   test_tick_padding_tightbboxr    s    &+CLL"#&+CLL"#llnGC			#**113	4BGGEN


3::224
5C55366>>55366>>r#   c                     d\  } }t         j                  t        dd|z   |      t        dd| z   |       f   \  }}t        j                  |      dz  t        j                  d||z  z         t        j                  |      z  z   }t        j                         \  }}|j                  |||ddddf          |j                  d       |j                          dd	g}d
dg}|d   |d   |d   |d   z
  |d   |d   z
  g}	|j                  |	      \  }
}|J |j                  j                          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   )rf   mgridr  r   rS  r%   r   r  r	  apply_aspectindicate_insetr0  r
  r;  r  get_bbox
get_points)dxdyr1   r0   r[  r+   r    r   r   r  rec
connectorsxxs                r!   
test_insetr.    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   )ru  ru  ffffff?r0  r   r"  r8   r  r  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rf   r$  r  r   rS  r%   r   r  r	  r%  
inset_axesr  r  r	  indicate_inset_zoomr  r0  r
  r;  r  r'  r(  r   r   r	  )r)  r*  r1   r0   r[  r+   r    axin1r+  r,  r-  s              r!   test_zoom_insetr6    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   r3  r   r   rf   rn   r   r   )r  r    axinsr!  r  s        r!   test_inset_polarr9  )  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   hammerrT  )r%   r   r3  r   r   r  r    r8  s      r!   test_inset_projectionr>  6  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   r3  AAr   r   r=  s      r!   test_inset_subclassrA  <  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   rf   rn   r   r  r  r&  r  )rB  rC  r+   r  r  r0   r  r#  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                 r!   test_indicate_inset_invertedrK  B  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   r	  rC  active)r%   r   r	  r  rf   r  r	  r  r*   s     r!   test_set_positionrN  \  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  r  r  r  Fgư>r1  )r%   r   r  rN   r
  r0  r
  _set_view_from_bboxrf   r   r   r(  r  s       r!   !test_spines_properbbox_after_zoomrQ  i  s    llnGC				+	+CJJ,C,C,E	FB//
))


,
,SZZ-D-D-F
GCJJr}}0@tLr#   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
  rf   re  r0  r
  r   r   r  r  )r+   r    r
  s      r!   test_gettightbbox_ignore_nanrS  s  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  rQ  rw  rI  )r7   r7   r7   r7   r7   r   r   r   )r   r`  rf   rg   r`
  r%   r9   )r  r  r0   r1   r;   s        r!   "test_scatter_series_non_zero_indexrU  {  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_datarW    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   r  r  rZ	  )r\	  )r  r  r  r  r  )rf   r   r  r   r%   r   r   r3  r	  rY   r   r\   r  	transDatar+  rY  )r0   r1   r+   r    r8  s        r!   test_annotate_across_transformsrZ    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)rV  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   rf   r  r  s    r!   invertz!test_secondary_xy.<locals>.invert  *    [[) 	q5	 	 	   &/r  r   r   	functionsr  c                     d| z  S Nr8   r   r  s    r!   r  z#test_secondary_xy.<locals>.<lambda>  s
    A r#   c                     | dz  S re  r   r  s    r!   r  z#test_secondary_xy.<locals>.<lambda>  s
    Q r#   rt  c                     | dz  S re  r   r  s    r!   r  z#test_secondary_xy.<locals>.<lambda>  s
    1 r#   c                     | dz  S )Nr   r   r  s    r!   r  z#test_secondary_xy.<locals>.<lambda>  s
    C r#   r  )r%   r   r  r   rf   rn   secondary_xaxissecondary_yaxis)r+   r  r_  nnr    secaxs         r!   test_secondary_xyrm    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 r	  r   r  s    r!   r  z%test_secondary_fail.<locals>.<lambda>  s
    QU r#   rb  rA   rN   )
r%   r   r   rf   rn   r   r   r  ri  rj  r*   s     r!   test_secondary_failrp    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^  r  s    r!   r_  z%test_secondary_resize.<locals>.invert  r`  ra  r=   rb  )r7  r  r	  )r%   r   r   rf   rn   ri  r0  r
  r5  r   r	  r1	  )r+   r    r_  s      r!   test_secondary_resizers    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^  r  s    r!   r_  z'test_secondary_minorloc.<locals>.invert  r`  ra  r=   rb  r  r	  )r%   r   r   rf   rn   ri  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr
  r
  
LogLocator)r+   r    r_  rl  s       r!   test_secondary_minorlocr{    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   r
  ri  rY   r   r   ScalarFormatterr0  r
  r   r   r+   r    rl  s      r!   test_secondary_formatterr    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   ri  r4   r~  s      r!   test_secondary_reprr    s4    llnGCu%E;----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
    ru  r1   r  Nr   )r  r  r!  r   r  r  r6  )rN   r=   rO   rA   r   r   r  r8   r  r7   )r0  r
  r
  r  rY   r\   r  r;  r<  r  r  r  r  r&  r  r
  )r+   r    r
  bbaxisrk  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  r  rV  )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   r0  r
  rY  r  r  r  Bboxfrom_boundsr   r#  r	  transformedtransFigurer
  )r+   r    r  r  r  r  r
  rk  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  atolr  )r        ^@r  r  )r
   r%   r   r0  r
  r   r  r  r  r  r  r   r#  )
r+   r    r  r  r  r  rk  r  r
  r  s
             r!   test_nodecoratorr  F  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  )rU  r  )r        8@r  gs~8&@r  r  r  r  r  r  )r  r  r  g     @)r
   r%   r   r   r  rN   r  r0  r
  r  r  r  r  r  r   r#  )
r+   r    r  r  r  r  targetsr
  bbspiner  s
             r!   test_displaced_spiner  d  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@r,  r  r  )r  gqq\@r  r  )g88b@r  r  r  )r  r:	  inoutr  Fr~  r  r  r;	  r   r8   r  r  N)r  r
   r%   r   r  r0  r
  r  r  r  r  r   r#  )r  dnumdirsr+   r    r  r  r  r  rk  r   r  s               r!   test_tickdirsr    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  r  )r  g88[@r  r  )gCiq\a@r  r  r  r8   r  r  r  r   r	  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@r  )r
   r%   r   r0  r
  r  r  r   r  r  r  r   r#  r  )	r+   r    r  r  r  r  r  r  r  s	            r!   test_minor_accountedforr    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 )NrL  Fr  rM  Ton)r   r  r   s      r!   test_axis_bool_argumentsr    su     ""5)!!%(			c	"BGGENGGDM!!$'r#   c                      t        j                         \  } }d}d}d}d}|j                  ||||g      }t        |      ||||fk(  sJ ||f|j	                         k(  sJ ||f|j                         k(  sJ y )Nr   r   r   rP  r%   r   r  r
  r   r   r+   r    rd   re   r 	  r	  rv  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   rP  )rd   re   r 	  r	  r  r  s          r!   test_axis_extent_arg2r    s    llnGCDDDDWW$T4W@F =T4t4444 $<2;;=((($<2;;=(((r#   c                  n    t        j                  g dg dgd      \  } }} |d   dk  sJ |d   dk\  sJ y )	Nrx  )r   r  r   r  rc  rz  r   r7   r   r  )r%   re  r  r{  s     r!   test_hist_auto_binsr    s=    9l3&AJAtQ7a<<8q==r#   c                     t        j                  d      \  } \  }}g d}|t        j                  gz   }|j	                  |      \  }}}t        j
                  d      5  |j	                  |      \  }}	}d d d        t        j                  j                  |       t        j                  j                  |	       y # 1 sw Y   JxY w)Nr8   rx  r  r`  )r%   r   rf   r  re  r  r   r   )
r+   r  r  r  nan_datar{  r  r  nanbinsnanedgess
             r!   test_hist_nan_datar    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   rc  r  T)r   r  r   r   r7   )r%   re  rf   rg   r   r  s     r!   test_hist_range_and_densityr    sL    "))..,f &6JAtQ7a<<8q==r#   c                  D   t        j                         \  } }g d}|j                  |||dd      }|j                  j                  \  }}}|j
                  D ]F  }|D ]  }|j                  |j                  kD  rJ  |D ]  }	|	j                  |j                  kD  rJ  H y )Nrx  r   r   )r0   r  r)  r  r6  )r%   r   r  r$  r  r'  r6  )
r+   r    r0   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r!   test_bar_errbar_zorderr    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   ru  r  r   r>  )r%   r   r  r	  r   r*   s     r!   test_set_ticks_invertedr    sa    llnGCOOMM2r(;;=F"""MM2$;;=G###r#   c                     t        j                  d      } | j                         }|j                  ddgddg       |j	                  ddddd	d
       |j                  d       | j                  j                  |j                               }|j                  |j                  z  t        j                  d      k(  sJ y )Nr
  r  r  rt  r  r  logit)F]tE?g'^P?r7   r	  r  r   r  r   r   r	  r   r8   )r%   r   r   r   r   r=  r  transform_bboxr	  r  r  r   approx)r+   r    r   s      r!   $test_aspect_nonlinear_adjustable_boxr    s    
**X
&C		BGGRHr2hFF%g  ' JJqM
//
(
():
;C::		!V]]1%5555r#   c                  p   t        j                  d      } | j                  g d      }|j                  ddgddg       |j	                  dddd	d
d       |j                  d       |j                          |j                         t        j                  ddg      k(  sJ |j                         d	k(  sJ y )Nr
  r  r8
  r  rt  r  )r7   r   r  )gbeF?r  r7   r	  r  r   gS[:XL	@g'In?@)r%   r   r<  r   r   r=  r%  r   r   r  r   r*   s     r!   (test_aspect_nonlinear_adjustable_datalimr  !  s    
**X
&C	&	'BGGRHr2hFF%h 1	  + JJqMOO;;=FMM;*FGGGG;;=----r#   c                     t        j                         \  } }|j                         }|j                  ddg       |j	                  d       |j                         dk(  sJ t        j                         \  }}|j                  d       |j                  ddgddg       |j                  d	d
       | j                  j                          |j                  j                          |j                         }|j                         }|j                         }t        |j                  |j                         t        |j                  |j                         y )Nr  iX  r7   r   r   r8   r  rQ  r  r	  r	  )r%   r   r  r   set_box_aspectget_box_aspectr=  r	  r0  r
  r	  r   r1	  )r  r  axtwinr  r  bb1bbtr  s           r!   test_box_aspectr  0  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   r  r0  r
  r  r	  r   r1	  )r  r  r  r  r  r  s         r!   test_box_aspect_custom_positionr  K  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)rW  r  r   )r%   r   rY  r0  r
  r
  r  r
  r
  r  r  r   )r+   r  r
  rP	  r    r  s         r!   test_bbox_aspect_axes_initr  b  s     ||AqTQ-?/35HCJJOOzz&&(HEhh ,!!(+bhh		*+, E58$r#   c                      t        j                  dd      \  } }|j                  g d       | j                  j	                          |j                          y )Nr7   rx  )r%   r   r   r0  r
  redraw_in_framer*   s     r!   test_redraw_in_framer  q  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   r0  inaxesr   r*   s     r!   test_invisible_axes_eventsr  x  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   rU  rY   get_major_ticksrw
  get_markeredgecolorr    ticksr  s      r!   "test_xtickcolor_is_not_markercolorr    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 r  )r%   r   rU  r\   r  rw
  r  r  s      r!   "test_ytickcolor_is_not_markercolorr    r  r#   r  rc  )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   )rc  )
r%   r   rf   rn   r   r9   r#  r0  r
  r   )
r  rc  r+   r    r0   r1   r  set_limget_lim	post_autos
             r!   test_unautoscaler    s     llnGC
		#A
CS!AJJq!r]4&#<=bDc*+GbDc*+G&*l "IKd#(****JJOOwy+.r#   c                 Z   | j                  d      j                  dt        j                  dz  gddg      \  }d|j	                         _        |j                  d      j                  t        j                  dt        j                  dz  d      t        j                  ddd             y )Nr  rT  r   r8   r7   r   e   )r   r   rf   r   get_path_interpolation_stepsr   )r   r   rV	  s      r!   )test_polar_interpolation_steps_variable_rr    s    					1	6	62557|aV	LBA(+AJJL%7+00
AruuQw$bkk!Q&<>r#   c                      t        j                         \  } }|j                  dd       | j                  j	                          |j                         dk(  sJ y )Nr   g&.>)r   g	>)r%   r   r  r0  r
  r   r*   s     r!   test_autoscale_tiny_stickyr    s@    llnGCFF1dOJJOO;;=L(((r#   c                  6   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j	                         }|D ]@  }|j
                  j                         dk(  sJ |j                  j                         dk(  r@J  y )Nr  zxtick.colorr   zxtick.labelcolor)r%   r   rU  rY   r  rw
  r  r  r  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  zytick.colorr   zytick.labelcolor)r%   r   rU  r\   r  rw
  r  r  r  s      r!   &test_ytickcolor_is_not_yticklabelcolorr    r  r#   rx  )rQ  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   r0  r
  r  rY   r\   r  r  r	  _get_tick_label_size)rx  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   rn  r   rf   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 )NrI  )rt  rt  r   r   r  r   rO   )r%   r   r   r<  r	  rN  r(  r  )r+   r[  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             |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      
       |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 )Nr   r   r   r7   r8   r   r  r   r   r"  r  r>  )
rf   r;  r   r   r   r9   ri  re  rn   r  )r   r   r   r  s       r!   test_2dcolor_plotr    s   HH_%E


A
CFKKAA%--"3K4FNNAq6Aq6U]]2%6N7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Jr#   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 	  )rf   rn   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   r	  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%   rP  r  	bar_labelr  r{	  r|	  r    rF  heightsr  r  s        r!    test_bar_label_location_verticalr(  "  s    	Ba&1b'BFF2wE\\% F!9<<BqE71:....!9)))!9)))!9<<BqE71:....!9)))!9&&&r#   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%   rP  r  r  r%  r  r{	  r|	  r&  s        r!   *test_bar_label_location_vertical_yinvertedr*  /  s    	BOOa&1b'BFF2wE\\% F!9<<BqE71:....!9)))!9&&&!9<<BqE71:....!9)))!9)))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#  r   rO   rX   rA   r%   rP  r  r%  r  r{	  r|	  r    rG  r#  r  r  s        r!   "test_bar_label_location_horizontalr/  =  s    	BQ!RBGGBE\\% F!9<<F1Ir!u----!9'''!9)))!9<<F1Ir!u----!9(((!9)))r#   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%   rP  r  r  r%  r  r{	  r|	  r.  s        r!   ,test_bar_label_location_horizontal_yinvertedr1  J  s    	BOOQ!RBGGBE\\% F!9<<F1Ir!u----!9'''!9)))!9<<F1Ir!u----!9(((!9)))r#   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%   rP  r  r  r%  r  r{	  r|	  r.  s        r!   ,test_bar_label_location_horizontal_xinvertedr4  X  s    	BOOQ!RBGGBE\\% F!9<<F1Ir!u----!9(((!9)))!9<<F1Ir!u----!9'''!9)))r#   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 r3  )	r%   rP  r  r  r  r%  r  r{	  r|	  r.  s        r!   -test_bar_label_location_horizontal_xyinvertedr6  f  s   	BOOOOQ!RBGGBE\\% F!9<<F1Ir!u----!9(((!9)))!9<<F1Ir!u----!9'''!9)))r#   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |d      }|d   j                  |d   dz  |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   dz  |d   f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.  s        r!   test_bar_label_location_centerr9  u  s    	BQ!RBGGBE\\%H\5F!9<<F1IM2a51111!9)))!9)))!9<<F1IM2a51111!9)))!9)))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#  r)  r   rX   rN   r=   r$  r&  s        r!   !test_bar_label_location_errorbarsr<    s    	Ba&1b'BFF2wQF'E\\% F!9<<BqE71:>2222!9)))!9)))!9<<BqE71:>2222!9)))!9&&&r#   c                      t        j                         } | j                  ddgddg      }| j                  |d      }|d   j	                         dk(  sJ |d   j	                         d	k(  sJ y )
Nr7   r8   r   r#  ry	  rE  r   z3.00z-4.00r%   rP  r  r%  r  r    r  r  s      r!   test_bar_label_fmtr@    sm    	BFFAq6Ar7#E\\%V\,F!96)))!97***r#   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#  rS  rT  )r  r   r>  r?  s      r!   test_bar_label_labelsrB    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   1r   rP
  rN   )	r%   rP  r  rf   r  r%  r  r  r|	  r    rV  r  rV	  s       r!   test_bar_label_nan_ydatarG    s    	B661a&2661+&D\\$F"()QAJJL)b#Y666!9<<6!!!!9))) *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 rD  )
r%   rP  rR  r  rf   r  r%  r  r  r|	  rF  s       r!   !test_bar_label_nan_ydata_invertedrI    s    	B661a&2661+&D\\$F"()QAJJL)b#Y666!9<<6!!!!9))) *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 )Nrx  r7   r8   rH  r;  )r   rE  2)r  r  r3  r   rt  )r  rE  rK  )r  r  )	r%   r   r  rf   r  r%  r  r  r   )r+   r    rV  r  rV	  s        r!   test_nan_barlabelsrL    s}   llnGC66)bffa^/6BD\\$F"()QAJJL)^;;;;;r{{}j111llnGC66)Yc2663-?6@D\\$F"()QAJJL)_<<<;;r{{}k222llnGC66)bffa^26626632G6HD\\$F"()QAJJL)^;;;;;r{{}j111 * * *s   G32G8+G=c            	         t        j                         \  } }|j                  t        j                  ddddd             dt        j                  dt
        j                  z  d	z        d
z  z  }t
        j                  j                  t        j                  d|dz    d|dz   f      |j                  j                  d       y )N)r   r   r  r   r,  r   r  gffffff?r   r  r8   gr  r5  )r%   r   r:  r;  Wedgerf   r   r   r   assert_array_almost_equal_nulpr;  dataLimr#  )r+   r    bots      r!   test_patch_boundsrR    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/edgecolorsr^  r   r  r  r!  r  )r{   r  r  r   )r   r  r#  r%   r9   r   r#   r!    test_warn_ignored_scatter_kwargsrT    sG    	k@
B OQC!SC3#NO O Os   AAc            
      j   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        t)        j0                  t2        d	      5  |j                   d= d d d        t)        j0                  t2        d	      5  |j                   dd = d d d        t)        j0                  t2        d	      5  |j                   d
d = d d d        t)        j0                  t2        d	      5  |j                   d= d d d        |j5                          |j                  rJ |j5                          |j                  rJ |j5                          |j"                  rJ |j5                          |j&                  rJ |j                   rJ |j$                  rJ t)        j0                  t2        d	      5  |j&                  j7                  |       d d d        t)        j0                  t2        d	      5  |j                  j7                  |       d d d        t)        j0                  t2        d	      5  |j                  j7                  |       d d d        t)        j0                  t2        d	      5  |j"                  j7                  |       d d d        t        |j                        |gk(  sJ t        |j                        |gk(  sJ t        |j"                        |gk(  sJ t        |j&                        |gk(  sJ t)        j0                  t2        d	      5  |j                   j7                  |d          d d d        t        |j                         |d   gk(  sJ t)        j0                  t2        d	      5  |j                   j7                  |d          d d d        t        |j                         |dd  k(  sJ t)        j0                  t2        d	      5  |j                   j9                  d|d          d d d        t        |j                         |d   |d   |d   gk(  sJ t)        j0                  t2        d	      5  |d   |j                   d<   d d d        t        |j                         |d   |d   |d   gk(  sJ t)        j0                  t2        d	      5  |d
d |j                   d
d
 d d d        t        |j                         |k(  sJ |j                   g dz   g |d
ddk(  sJ g d|j                   z   d
ddg|k(  sJ |j                   D ]  }|j5                           t/        |j                         dk(  sJ y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   ,xY w# 1 sw Y   xY w# 1 sw Y   8xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)Nr  r   r   )r   r   r  r  r   zout of ranger^  r7   z'modification of the Axes.lines propertyz'modification of the Axes.texts propertyz-modification of the Axes.collections propertyz(modification of the Axes.images propertyz)modification of the Axes.patches propertyr  rx  r8   r   )r%   r   r   r   rf   rn   r9   r   rf  r:  r;  r<  r
  r  r  imagesr  r'  tablesr	  r   r   
IndexErrorr  r  r   rV  r/  insert)	r+   r    r/  r  rF  r6  r  r
  r
  s	            r!   test_artist_sublistsrZ    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 ! 
2E
G HHRL 
2E
G HHRSM 
2E
G HHQRL 
2E
G HHQK
 JJL~~IIKyy=	LLNzz>KKMxx< xx<yy=	2E
G 
 
2K
M #
c"# 
2F
H 
		 
2G
I !


% ! C5(((		?rd"""

w&&&>dV### 
2E
G #
b	"# >eBi[(((	2E
G #
b	"# >U23Z'''	2E
G &
E!H%& >eAhb	59==== 
2E
G Ah >eAhb	59====	2E
G $a1$ >U""" 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444hh 
		rxx=AA @"! !    $ # # ! !# ## #& & $ $s   2[:	[?\9\,\&\3$] #]"]!]']4,^ ^4^^(?\	\\#&\03\= ]
]]$']14]>^^^%(^2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   )rf   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\Zr^  r^  r3  )r%   r   replacer   r   r  r   )r   r_  r  r+   r    s        r!   test_plot_format_errorsrb  H  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 )Nrx  z1.0r   )r   r   r   r   r'  rE  r7   r8   k3r   r  )	r%   r   r   r  r  r0  r
  r	  r  r	  s      r!   test_plot_formatre  X  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  rX  r8   r3  r   r;   )
r%   r   r   rG   r0  r
  	get_textsr  r	  rS  )r+   r    legs      r!   test_automatic_legendri  p  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 keywordr^  rx  r7   r  zplot\(\) with multiple groupsr0  rE  rK  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;   rX  r8   r3  )r   r   r   r%   r   r  rf   r   r   r#   r!   test_plot_errorsrk    s"   	y(H	I !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   )r7  rQ  )clim)r%   r   r   r   r9   r   r   r  r  r	  r  r  r  )r    plot_methodrm  r  s       r!   	test_climro    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  )mpathr%  r)  CURVE3	CLOSEPOLYr%   r   r:  r;  r(  rT  r   )r  codesr   r+   r    s        r!   test_bezier_autoscaleru    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=
rl  g(\g{Gz?gHzGg      rA  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr  g=
ףp=g)\(?g\(\rb  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?r  g(\?rC  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   )rf   r;  r$  r'  rq  r%  r%   r   r:  r;  r(  rT  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   rf   rn   r   rS  r  r	  )r+   r    r  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   rw  r   r  r  )rf   rn   r  r;  re  r%   r   r  r  isfiniter  any	get_widthr  )barx
barheights	barstartsr+   r    rV  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  rf   r  rV  r  s       r!   test_bar_all_nanr     s    IIMM'!GFKK266(#KKaS
JJsQC!
JJsQCr#   re  (_  r  r   r  r  r   	functoolsr   r  r  	itertoolsr   platformr  r   dateutil.tzr  numpyrf   r   r	   r   rU   r   r
   matplotlib._apir   matplotlib.colorsr?  r  matplotlib.datesrC  r  matplotlib.figurer   matplotlib.axesr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesr'  r;  matplotlib.pathr$  rq  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]   rv   r   r   r   r   r   r   r  r  r  r  r0  r@  rJ  r\  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r%  r-  r4  r<  rG  rM  r]  ri  ro  rx  r|  r  r  r  r  r  r  r  r  r  r  r  rf  rn   r  r  r  r  r  r  r  r  r+  r0  r@  r\  r^  rg  rm  rp  rr  ru  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&  r7  rF  rK  rN  rZ  r\  ra  rg  rm  rr  ru  r  r  r  r  r  r  r  r  r  Patchr6  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r$  r  r  r;  r  rY  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r   r#  r'  r*  r-  r0  r3  r6  r;  r?  rA  rC  rE  rG  rJ  rM  rO  rQ  rS  r^  r`  rc  rf  ri  rl  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r   r%  r.  r6  r:  r<  r@  rC  rI  rO  rS  rV  rX  r^  rj  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  machiner%  r(  r.  r3  r6  r8  rJ  rO  rZ  r\  r  rA  ra  rj  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  rp   re  rn  r	  r		  r	  r	  r	  r"	  r   r  r
  r&	  r.	  r2	  r7	  r<	  rQ	  rX	  rb	  re	  rh	  rk	  ro	  rr	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  image	AxesImager   PcolorImagerg   QuadMeshr   r   r	  r	  r 
  r
  r
  r
  r
  r
  r
  r 
  r"
  r'
  r)
  fixturer5
  r9
  r;
  r>
  rB
  rE
  rG
  rL
  rN
  rT
  rX
  r[
  ra
  re
  rj
  rl
  rs
  ry
  r}
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   r  r  r	  r  r  r  r  r  r  r  r.  r6  r9  r>  rA  rK  rN  rQ  rS  rU  rW  rZ  rm  rp  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  font_scalingsr  r  r  r  r  r  r!  r(  r*  r/  r1  r4  r6  r9  r<  r@  rB  rG  rI  rL  rR  rT  rZ  r\  rb  re  ri  rk  ro  ru  r|  r~  r  r  rw  s   0r!   <module>r     s-   "     	   !        ! 8 # ! $   / % %  1 2   # + $D DD D ( )
(M / /$ . .$ / /(F, (( )($ (, ),*3 (, ),   $$NJ4G2 234 50". ,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" N"' #$G4 5$ &'wDI	( J	($$4 %&' ( 9<>(
< )> 
< 8X&DH I( =/1& 2&4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1 41. %&E7; <( %&E5>"$F$FB 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'"+<3&% 9
%  
% A	a|nc*	,	,	(	,(@	!<	1	,	3V	=880
 :,D1( 2( (7 )72 '(d;  < + ()t<! =! )*=H >H$ %&'  ( -! *)),,+LN/	  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* %&g6% 7%* 8X&DH= I=" %&DH
. I
.'SL SLl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
 *+"!&!#<	#<
 &'"!&!#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,4, 234! 5! 456! 7! 456! 7! 012N 3N 89:, ;, 9:;- <- 2340 50 5670 80 3450 60 5670 80 123N 4N 9:;; <; :;<< =<0B@A (5 )5 (E )E	+F) HI3; J3;l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 .u24IJ  L:,g4@ AL">,>4B .u24IJ  L)*'tL. ML.  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* 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 #%56DI J: %&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? @ %&'
 (
8,0/ +,-3 .32 (2 )2*&	/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 
"$
B	C?? %  ()s31 41  ()*J +J" ./S9G :G  ?#6- 7-&!*--    
 
 &
';8H)& 9J J6B	$
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F$ 34T3232 %&g6 7(%G+0D.+(\$NN=<=6F,D> (( )() )"02$
6.161.%1?? ,!45/ 6 -/$ (> )> 9) )11 =3N3N "74%)%5 #' "79D"E F9M FM)L (K )K$ ( )5 :;/ </
'*
****
*
'+'**2(O 9O ObJ  (  $58(<!=>* ?*&05"
4.$*1$h@.0 (	 )	}"7s   A?BH
