
    (?e                    HT   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlZd dl	Z	d dl
mZ d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlZd d	lmZmZ d dlmZ d dlmZ d d
l m!Z! d dl"m#Z# d dl$m%Z& d dl'm(Z) d dl*m+Z, d dl-m.Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z6 d dl7m8Z9 d dl:m;Z< d dl=m>Z? d dl@mAZB d dlCmDZDmEZEmFZF d dlGmHZHmIZImJZJ  eIdg          d             ZKd ZLd ZM eI            d             ZN eI            d             ZO eI            d             ZPd ZQ eIdg          d             ZR eIdg          d             ZS eIdg          d             ZTd ZU eIdg          d             ZV eHg d          d             ZWd  ZXd! ZY eHd"g          d#             ZZd$ Z[ej\        ]                    d%d&          d'             Z^ej\        ]                    d%d&           eIdgd()          d*                         Z_ eHd+g          d,             Z`d- Zad. Zbd/ Zcd0 Zd eIdg          d1             Ze eHd2gd34          d5             Zfejg        h                    d6          d7             Ziejg        h                    d6          d8             Zjejg        h                    d6          d9             Zk eIdg          d:             Zld; Zmd< Znd= Zo eHd>gd34          d?             Zp eHd@gd34          dA             ZqdB ZrdC ZsdD ZtdE Zu eHdFgdGdHiI          dJ             ZvdK Zw eIdg          dL             Zx eHdMdMg          dN             Zy eHdOgdPQ          dR             Zz eIdg          dS             Z{dT Z| eHdUgdgd3dPV          dW             Z} eHdXg          dY             Z~ eHdZgd[\          d]             Z eHd^d^gd34          d_             Z eHd`d`gd34          da             Zdb Z eHdcgdPQ          dd             Z eHdegdPd3f          dg             Zdh Z eIdg          di             Zdj Z eHdkg          dl             Zejg        h                    d6          ej\        ]                    dmg dn           eIdg          do                                     Z eHdpdpgd3dPq          dr             Z eHdsgdP ej                    dtv rdund v          dw             Zdx Z eHdygd34          dz             Zej\        ]                    d{ ej        d|          d}d}f ej        d~dd[           ej        d|          d}f ej        d~dd[          d} ej        d|          fgg d          d             Zej\        ]                    d ej        d|          d}d}f ej        d~dd[           ej        d|          d}f ej        d~dd[          d} ej        d|          fgg d          d             Z eHdgd34          d             Z eHdgdPd3f          d             Z eHdgd34          d             Z eHdg          d             Z eHdgd34          d             Zd Z eHdgd34          d             Z eHdgdg          d             Z eHdgddgd3          d             Zej\        ]                    dddg           eIdg          d                         Z eHdgdPQ          d             Z eHdgdPQ          d             Zd Zd Z eIdg          d             Z eIdg          d             Zd Zd Zej\        ]                    ddd3g           eIdg          d                         Z eHdg          d             Z eHdgd3d6q          d             Z eHdgd34          d             Zd Z eHdgd34          d             Z eHdgd3d          d             Z eHdgd3d          d             Z eHdgd34          d             Z eHdgd34          d             Z eHdgd6d3f          d             Z eHdgd34          d             Z eHdgd34          dĄ             Z eHddg          dƄ             ZdǄ ZdȄ Z eHdg          dʄ             Z eHdg          d̄             Z eIdg          d̈́             Z eIdg          d΄             Z eIdg          dτ             Z eIdg          dЄ             Zdф Zd҄ Z eHdg          dԄ             ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Zdۄ Zejg        h                    d6           eI            d܄                         Zej\        ]                    dddddgdfg dg dg dg ddfg dg dg dg ddfg dg ddg ddfg          d             Zd Zd Z eHdgd34          d             Z eIdg          d             Zd Z eHdgd34          d             Zd Z eHdgd34          d             Z eHdgd34          d             Z eHdg          d             Zd Zd Zej\        ]                    dej        j        d d gg d          d             Zej\        ]                    dg dfg gdfg g gdfg          d             Zej\        ]                    d dej+        j        j        fdej        j        j        fdej+        j        j        fg          d             Z eIdg          d             Z eIdg          d             Z eIdg          d             Z eIdg          d             Zސd	 Zߐd
 Zd Zd Zd Z eHdgd34          d             Z eHdg          d             Z eIdg          d             Zd Z eHdgd3dPq          d             Z eHdgdP ej                    dtv rdnd v          d             Z eHddgd3dPq          d             Z eHdgd3dPq          d             Zd Z G d d          Zddd d!Z ed"d#          Zej\        ]                    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\        ]                    d/ e            df ed%)          df ed(           d(f ed(d,g           d(d,gf ed(0          d(f ed1           d1f ed2           d2f ed(d,3          d(f ed%d(d,4          d(f ed(+          d(f ed(d,5          d,fg          d6             Zd7 Zd8 Zd9 Zd: Zd; Zd< Z eHd=d=g          d>             Z eHd?gd34          d@             Zi dA i fdBZ eHdCgdGdDid6E          dF             Z eHdGgdGdDid6E          dH             Z eHdIgdGdDid6E          dJ             Z eHdKgdGdDid6E          dL             Z  eHdMgd3dGdDid6dNO          dP             Z eHdQgdGdDid6dNR          dS             Z eHdTgd3dGdDid6U          dV             Z eHdWgd3dGdXid6U          dY             Z eHdZgd3dGdDid6U          d[             Z eHd\gd3dGdDid6U          d]             Z eHd^gd3dGdDid6U          d_             Z eHd`gd3dGdDid6U          da             Z eHdbgd3dGdDid6U          dc             Z	 eHddgd3dGdDid6U          de             Z
 eI            df             Z eHdggd3dGdDid6U          dh             Z eHdigd3dGdDid6U          dj             Z eHdkgd3dGdDid6U          dl             Z eHdmgd3dGdDid6U          dn             Z eHdogd3dGdDid6U          dp             Z eHdqgd3dGdDid6U          dr             Z eHdsgd3dGdDid6U          dt             Z eHdugd3dGdDid6U          dv             Z eHdwgd3dGdDid6U          dx             Zdy Zdz Z eHd{gdGdDid6E          d|             Z eHd}gdGdDid6E          d~             Zd Z eHddgdd6          d             Z eHdgdGdDid6E          d             Z eHdgd3d6q          d             Z eHdgd3dGdDid6U          d             Z eHddgd6Q          d             Zd Z eHdgdGdXid3dd6          d             Z  eHdgd3dGdDid6U          d             Z! eHdgd3dGdDid6U          d             Z"d Z#d Z$d Z%d Z& eHdgd3dGdDid6U          d             Z' eHddg          d             Z( eHdg          d             Z) eHdg          d             Z* eHdg          d             Z+ eHdg          d             Z, eHdg          d             Z- eHdg          d             Z. eHdg          d             Z/ eHdg          d             Z0 eHdg          d             Z1 eHdg          d             Z2 eHdg          d             Z3 eHdg          d             Z4 eHdg          d             Z5d Z6d Z7d Z8d Z9 eIdg          d             Z: eIdg          d             Z;d Z<d Z=d Z> eHg d          d             Z? eHdgdgd3          dÄ             Z@dĄ ZA eI            dń             ZBdƄ ZC eHdg          dȄ             ZDdɄ ZEdʄ ZF eIdg          d˄             ZGd̄ ZHd̈́ ZI eI            d΄             ZJej\        ]                    dg dТ ej        g dТ          dg          dф             ZK eIdg          d҄             ZL eHdӐdg          dԄ             ZM eHdg          dք             ZN eHdgd34          d؄             ZO eHdg          dڄ             ZP eHdg          d܄             ZQ eHdgdPd3f          dބ             ZRd߄ ZSd ZTd ZU eHdgdPd3f          d             ZV eHdg          d             ZW eHdg          d             ZX eHdg          d             ZY eHdgd34          d             ZZd Z[d Z\d Z]d Z^d Z_d Z`d Zad Zb eHdg          d             Zcd Zdd Zed Zf eHdgd34          d             Zg eHdgd34          d             Zh eHdgd34          d             Zid Zjd  Zk eHdgd34          d             Zl eHddgd34          d             Zm eHdgd34          d             Znej\        ]                    dg d          d	             Zod
 Zp eHdgd34          d             Zqd Zrej\        ]                    dg gg d dggd dgg gg          ej\        ]                    dg d          d                         Zs eIdg          d             Zt eHdgd34          d             Zu eHdg          d             Zv eHdgd34          d             Zw eHddg ej                    dk    rd nd[\          d             Zx eI            d             Zy eI            d             Zz eI            d             Z{ eI            d              Z|d! Z} eHg d"dg          d#             Z~d$ Z eHg d%dg          d&             Zd' Zej\        ]                    dddd}ej        d(gej                            g d)d*          g           eIdg          d+                         Z eHd,gdgdP-          d.             Z eHd/d/gd3d0          d1             Z eHd2gd34          d3             Zd4 Z eHg d5d3d6d67          d8             Z eHg d9d3d6d67          d:             Z eHg d;d3d6d67          d<             Zd= Z eIdg          d>             Zd? Z eHg d@d3dA          dB             Z eHg dCd34          dD             ZdE Z eIdg          dF             Z eHdGgd34          dH             Z eHdIdIgd34          dJ             Zej\        ]                    dKg dL          dM             ZdN ZdO Z eIdg          dP             ZdQ Zej\        ]                    dRe6j        e6j        dSge6j        e6j        dTgg          dU             ZdV ZdW ZdX ZdY ZdZ Zej\        ]                    d[ed\i d]fed^i d_feddgfi d`fe e            dadidbff          dc             Zdd Zej\        ]                    d%d&          de             Zdf Zdg Z eHdhg          di             Z eHg djdgdP-          dk             Z eHdlgdPQ          dm             Z eHdngdPQ          do             Z eHdpgdPQ          dq             Z eHdrgdPQ          ds             Z eHdtgdPQ          du             Z eHdvg          dw             Z eHdxgdPQ          dy             Zdz Zd{ Zd| Z eI            d}             Z eI            d~             Z eHdg          d             Zd Z eIdg          d             Zd Zd Zd Zd Z eHdg          d             Zd Zd Z eHdgdGdiI          d             ZĐd ZŐd Zej\        ]                    d[edi dfedi dfe e            dސdidfe e            ddidfedSddd&dfedSddidfedi dff          d             Zǐd ZȐd Zɐd Zʐd Zːd Z̐d Z͐d Zΐd Z eHdgdGdDiI          d             Z eHdgdGdDiI          d             Zѐd ZҐd ZӐd ZԐd Zej\        ]                    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                            d          ej                            d          fej        j        fg          ej\        ]                    d ej        d                              d          ej                            d}d*d}          g          d                         Zސd Zߐd Zd Zd Zej\        ]                    d e                      d             Z eHdgd34          d             Zd Zd Zej\        ]                    dd3dg          d             Z eHdgd3d[          d             Z eHdgd3dPq          d             Zejg        h                    d6          d             Z ej        dސdgæ          dĄ             Z ej        g dŢæ          dƄ             ZdǄ ZdȄ ZdɄ Zdʄ Zejg        h                    d6          d˄             Zejg        h                    d6          d̄             Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Z dڄ Zdۄ Z eHdgdݬ\          dބ             Z eHdg          d             Z eHdgdݬ\          d             Z eHdgd34          d             Zd Zd Zd Z	d Z
ej\        ]                    dg dg d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zejg        h                    d6          d             Zd Zd Zd Zej\        ]                    d[edggdg idfedggdg idfedggdg idfedggdg id fedggdg idfedgi dfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddgid	ff          d
             Zd Zd Zej\        ]                    dddg          ej\        ]                    dddg          d                         Zd Zd Zd Z eIdg          d             Z eIdg          d             Z d Z!d Z"d Z# eHdgd3dPq          d             Z$d Z%d Z&ej\        ]                    ddd3g          ej\        ]                    ddd3g          d                          Z'd! Z(d" Z)d# Z*d$ Z+d% Z,d& Z- eHd'gdPd3f          d(             Z. eHd)gdPQ          d*             Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4 eHd0gd3dPq          d1             Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z; eIdg          d8             Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMej\        ]                    dJd&          ej\        ]                    dKdL          dM                         ZN eIdg          dN             ZOejg        h                    d6          dO             ZPdP ZQdQ ZRdR ZSdS ZTej\        ]                    dTdU e&jU        D             g dVz             ejg        h                    d6          dW                         ZVdX ZWdY ZX eIdg          dZ             ZY eIdg          d[             ZZd\ Z[ej\        ]                    d]g d^          d_             Z\d` Z]da Z^db Z_dc Z`dd Zade Zbdf Zc eHdgg          dh             Zddi Zedj Zfej\        ]                    dkdldmdmjg        g          dn             Zhdo Zidp Zjdq Zkdr Zlds Zmdt Znejg        h                    d6          du             Zodv Zpdw Zqej\        ]                    dxdy          ej\        ]                    dddz ed}          ig          d{                         Zrd| Zsd} Ztd~ Zud Zvd Zwd Zxd Zyd Zz eIdg          d             Z{ eHdgdPQ          d             Z|d Z}d Z~d Zd Z eHdgd3dPq          d             Zejg        h                    d6          d             Z eIdg          d             Zd Zd Zd Zd Zd ZdS (      N)
namedtupleDecimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)Figure)Axes)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titlespng
extensionsc                 X    |                                  }|                    d           d S NF)subplotsset_visiblefig_testfig_refaxs      :lib/python3.11/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr#   0   s+    					BNN5    c                      t          j                    \  } }|                    d           |                    d           |                                dk    sJ |                                dk    sJ d S )Nzx labelzy label)pltr   
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr!   s     r"   test_get_labelsr-   6   sm    lnnGCMM)MM)==??i''''==??i''''''r$   c                     t          j                    \  } }|                    d           |                    d           |                    d           |                    d           t          |          dk    sJ d S )NlabeltitlexyzH<Axes: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r&   r   	set_label	set_titler'   r(   reprr+   s     r"   	test_reprr6   >   s    lnnGCLLLLMM#MM#88	LM M M M M Mr$   c                    |                                  }|                    ddgddgddgd          }|                                 |                    dd           |                    dd	           |                     |          }|                    d
d           |                                 }|                    ddgddgddgd          }|                                 |                    ddd	           |                    ddd	           |                    |          }|                    d
dd	           d S )N      scattercr/   Y LabeltoplocX LabelrightZ Labelr2   har1   rE   r   r:   legendr(   r'   colorbarr3   r   r    r!   sccbars        r"   test_label_loc_verticalrM   I   s>   					B	QFQFq!fI	>	>BIIKKKMM)M'''MM)M)))R  DNN9%N(((					B	QFQFq!fI	>	>BIIKKKMM)qWM---MM)qWM---BDNN9gN.....r$   c                    |                                  }|                    ddgddgddgd          }|                                 |                    dd           |                    dd	           |                     |d
          }|                    dd	           |                                 }|                    ddgddgddgd          }|                                 |                    ddd	           |                    ddd	           |                    |d
          }|                    ddd	           d S )Nr8   r9   r:   r;   r=   bottomr?   rA   left
horizontalorientationrC   r   rD   rF   rG   rJ   s        r"   test_label_loc_horizontalrT   \   sH   					B	QFQFq!fI	>	>BIIKKKMM)M***MM)M(((R\::DNN9&N)))					B	QFQFq!fI	>	>BIIKKKMM)qVM,,,MM)qVM,,,BL99DNN9fN-----r$   c                    t          j        ddd          5  |                                 }|                    ddgddgddgd          }|                                 |                    d           |                    d	           |                     |d
          }|                    d           d d d            n# 1 swxY w Y   |                                }|                    ddgddgddgd          }|                                 |                    ddd           |                    d	dd           |                    |d
          }|                    ddd           d S )NrB   r>   )zxaxis.labellocationzyaxis.labellocationr8   r9   r:   r;   r=   rA   rQ   rR   rC   rD   rF   )	
matplotlibr   r   r:   rH   r(   r'   rI   r3   rJ   s        r"   test_label_loc_rcrW   o   s   		w7< >  > 
? 
? " "  ZZAA1a&	ZBB
		
i   
i      >>y!!!" " " " " " " " " " " " " " " 
				B	QFQFq!fI	>	>BIIKKKMM)qWM---MM)qWM---BL99DNN9gN.....s   BCC	Cc                     t          j                    \  } }|                    dd           |                    dd           |j                                                                        dk    sJ |                    dd           |j                                                                        dk    sJ |                    dd           |j                                                                        dk    sJ |                    dd           |                    dd           |j                                                                        dk    sJ |                    dd           |j                                                                        dk    sJ |                    dd           |j                                                                        dk    sJ d S )Nz
Test labelrP   r?   centerrB   r>   rO   )r&   r   r'   xaxis	get_labelget_horizontalalignmentr(   yaxisr+   s     r"   test_label_shiftr^      s   lnnGC MM,FM+++MM,HM---87799XEEEEMM,GM,,,87799WDDDDMM,HM---87799XEEEE MM,EM***MM,HM---87799XEEEEMM,HM---87799VCCCCMM,HM---87799XEEEEEEr$   c                 H   t           j                            d           d}t           j                            dd|                                          }|dz
  }|                                 }|                    ||           |                                }t          j        ||d          t          j        ||          z  }t          j	        | |dz             }||dz
  |z
  ||z            }|
                    |dg|           |                    ddd           d S )	N!N,   r   r8   maxlagsfullmoder2   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r   r    Nxr1   rc   ax_testax_refnorm_auto_corrlagss	            r"   
test_acorrr{      s   INN8	B
	Ar""))++AdG!!GMM!WM%%%F\!QV444RVAq\\AN9gXwqy))D#BqDLG$;<N
MM$^,,,
NNQQQN'''''r$   c                    t           j                            d           d}t           j                            |          dz                                  }t          j        |                              t           j                  }|dz
  }|                                 }|	                    ||           |                                }t          j
        ||d          t          j        ||          z  }t          j        | |dz             }||dz
  |z
  ||z            }|                    |dg|           |                    ddd	           d S )
Nr`   3   
   r8   rb   rd   re   r   rg   )rj   rk   rl   randrn   ceilastypeint64r   ro   rp   rq   rr   rs   rt   ru   s	            r"   test_acorr_integersr      s,   INN8	B			b	 ((**A	BH%%AdG!!GMM!WM%%%F \!QV444RVAq\\AN9gXwqy))D#BqDLG$;<N
MM$^,,,
NNQQQN'''''r$   c                 t   t           j                            d           t          j        d          }d|d d<   t           j                            |           |                    d          }|                     d          }|d                             |           |d                             |dd	
           |                    d          }|d                             |dd           |d         j	        
                                  |d         j        g t          j        |          d d d         dR ddi |d                             d|d                                         |d                                         d d d                    |D ]}|j	                            d           d S )Nr`   i   r   ra   )    r   r9   r8   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer~   )aspectxlimylimboth)rj   rk   rl   onesshufflereshaper   spyimshowrZ   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r   r    aaxs_testaxs_refr!   s         r"   test_spyr      s   INN8
AAhwhKIa			(A  ##HQKOOAQKOOAc'O222q!!GAJahi@@@AJGAJO=RZ]]44R4(=#==="===AJNNwqz**,,71:3F3F3H3H23N  P P P , ,
##F++++, ,r$   c                      t          j                    \  } }ddidddfD ]T}t          j        t                    5   |j        t          j        dd          fi | d d d            n# 1 swxY w Y   Ud S )Nr   r   osolid)r   	linestyle   )r&   r   pytestraises	TypeErrorr   rj   eye)r,   r!   unsupported_kws      r"   test_spy_invalid_kwargsr      s    lnnGC+Y7&)@@B 3 3]9%% 	3 	3BF26!Q<<22>222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	33 3s   "A))A-	0A-	c                    t           j                            d           t          j                            dd          }|                                                     |           |                                }|                    |           |j	        
                                 |j	                            d           d S )Nmpl20r   r   )mplstyleuserj   rk   r   add_subplotmatshowr   rZ   r   r   )r   r    r   rx   s       r"   test_matshowr      s    IMM'
	r2A""1%%%  ""F
MM!
L
L##F+++++r$   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005c                     dd l mc m                                  dt          j        d<   fdt          d          D             } fdt          d          D             }fdt          d          D             }t          j                    	                                }|
                    d           t          j                    	                                }|
                    d           |                    | |d	d
           t          j                    	                                }|
                    d           |                    | |d	d
           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           |                                 d S )Nr      zlines.markeredgewidthc                 $    g | ]}|j         z  S  )sec).0r1   unitss     r"   
<listcomp>z)test_formatter_ticker.<locals>.<listcomp>   s    ,,,QQuy[,,,r$   r~   c                 0    g | ]}d |z  dz
  j         z  S )      ?      ?kmr   r2   r   s     r"   r   z)test_formatter_ticker.<locals>.<listcomp>   s(    888s1us{EH$888r$   c                 0    g | ]}d |z  dz
  j         z  S )      ?      ?r   r   s     r"   r   z)test_formatter_ticker.<locals>.<listcomp>   s(    999!tAv|UX%999r$   zx-label 001bluer   )colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrV   rcParamsranger&   figurer   r'   r   autoscale_view)xdataydata1ydata2r!   r   s       @r"   test_formatter_tickerr      s4    100000000	NN 46J/0 -,,,%)),,,E8888eBii888F9999uRyy999F				 	 BMM-   				 	 BMM-   GGE6G666				 	 BMM-   GGE6G666MM-   				 	 BGGE6G666GGE6G888MM-    
			 	 BGGE6G666GGE6G888MM-   r$   c                  J   d } t          j                                                    }|j        j        sJ |j        j        sJ |j        j        sJ |j        j        sJ |j                            |            |j        j        rJ |j        j        sJ |j        j        sJ |j        j        sJ t          j	        |           }t          |j                                        t          j	                  sJ |j                                        j        |j        k    sJ d S )Nc                     dS )N r   r1   poss     r"   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    rr$   )r&   r   r   rZ   isDefault_majfmtisDefault_minfmtr]   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r!   targ_funcformatters      r"   !test_funcformatter_auto_formatterr     s9      
			 	 B8$$$$8$$$$8$$$$8$$$$H  +++x((((8$$$$8$$$$8$$$$ .y99bh2244+- - - - - 8'')).2D2IIIIIIIr$   c                  H   d} t          j                                                    }|j        j        sJ |j        j        sJ |j        j        sJ |j        j        sJ |j                            |            |j        j        sJ |j        j        sJ |j        j        sJ |j        j        rJ t          j	        |           }t          |j                                        t          j	                  sJ |j                                        j        |j        k    sJ d S )Nz	{x}_{pos})r&   r   r   rZ   r   r   r]   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr!   targ_strformatters      r"   &test_strmethodformatter_auto_formatterr   2  s-   G				 	 B8$$$$8$$$$8$$$$8$$$$H  )))8$$$$8$$$$8$$$$x((((27;;bh224402 2 2 2 2 8''))-1B1FFFFFFFr$   twin_axis_locators_formattersc                  ,   t          j        dddd          } t          j        t           j        | z  dz            }t	          j        |          }t	          j        g d          }t	          j                    }|                    ddd          }|                    dd	gddg           |j	        
                    |           |j	                            |           |j	                            t	          j        d
                     |j	                            t	          j        g d                     |j        
                    t	          j                               |j                            t	          j        g d                     |j                            t	          j        d                     |j                            t	          j        g d                     |                                 |                                 d S )Nr   r8      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r<   3pr   )rj   linspacesinpir&   FixedLocatorr   r   r   r]   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterrZ   LinearLocatortwinytwinx)valslocsmajlminlr,   ax1s         r"   "test_twin_axis_locators_formattersr  K  s   ;q!T222D6"%$,$%%DD!!DOOO,,D
*,,C
//!Q
"
"CHHc3Z!Q   I%%%I%%%I!!#"8"C"CDDDI!!#"4 6> 6> 6> #? #? @ @ @ I 1 3 3444I 01A1A1A B BCCCI!!#"8"C"CDDDI!!#"45I5I5I"J"JKKKIIKKKIIKKKKKr$   c                  J   t          j                    \  } }|                                }|                                }t          j                     |j                                        rJ |j                                        rJ |                                 |                                 |j                                        rJ |j                                        rJ |j	                                        sJ |j                                        sJ |j                                        rJ |j	                                        rJ |j                                        sJ |j                                        sJ |j	                                        sJ d S N)
r&   r   r  r  drawrZ   get_visiblepatchclar]   )r,   r!   ax2ax3s       r"   test_twinx_clar#  d  st   lnnGC
((**C
))++CHJJJy$$&&&&&y$$&&&&&GGIIIGGIIIy$$&&&&&y$$&&&&&9  """""9  """""y$$&&&&&y$$&&&&&8!!!!!8!!!!!8!!!!!!!r$   twinr1   r2   c                 ~   |  d}d|  }ddg}ddg}t                      }|                                }|                    ||           t          ||          j        J  t          ||                      }t          ||          j        J t          ||          j        t          ||          j        u sJ d S )Naxisr$  01r   b)r   r   r   getattrr   )r$  	axis_name	twin_funcr   r*  r,   r  r!  s           r"   test_twin_unitsr.  {  s    ItI	c
A	c
A
((C
,,..CHHQNNN3	""(444
!'#y
!
!
#
#C3	""(4443	""(GC,C,C,IIIIIIIr$   RQ?)r   tolc                    d| }d| d}t          j        dd          }|                     ddd          } t          ||                      } t          ||          d           |                    ||           |                     ddd          } t          ||          d            t          ||                      }|                    ||           dD ]}|                    dd|          }	 t          |	|          d           |	                    ||           t
          j        j        }
|                    t
          j	        
                     |
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j        |
j        gd
z            |	j        dt          j        d         t          j        d         d                     t!          |            t!          |           d S )Nr$  set_scaler8   r   r9   logr8   r9   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rj   rr   r   r+  r   rV   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r   r    r$  r-  	set_scaler1   rw   ax_twinirx   r@  s              r"   test_twin_logscalerJ    s&    tI"t"""I
	!SA ""1a++G)ggy))++GGGY&&&LLA ""1a++GGGY&&&)ggy))++GLLA ( ($$Q1--"	""5)))Aq #((q!fq!f!fq!f!fq!f!fq!f& k4;/!3	5 5
 !* ,'78,'78% ) 
' 
'	( 	( 	( 	( H%%%G$$$$$r$   ztwin_autoscale.pngc                     t          j        g d          } d| z  }t          j        g d          }d|z  }t          j                    }|                    ddd          }|                    | |dd	
           t          j        |          }|                    ||dd           |                    dd           |                    dd           d S )Nr   r   r8   r   r   r8   r9   r9   r   r   r8   r8   F)autoscalex_onautoscaley_onr   r~   r   lwr--r   rR  r   )rj   arrayr&   r   add_axesr   r  margins)r1   r2   x2y2r,   r!   r!  s          r"   test_twinx_axis_scalesrZ    s    
AaA	)))		B	
RB
*,,C	l%u	M	MBGGAq2G&&&
)B--CHHRUqH!!!JJq!KK1r$   c                     t          j                    \  } }|                                }|                    d           |                                }|                                sJ |                                rJ |                                }|                    d           |                                }|                                sJ |                                rJ d S r   )r&   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r,   r!   ax_x_onax_x_offax_y_onax_y_offs         r"   #test_twin_inherit_autoscale_settingrd    s    lnnGChhjjGxxzzH$$&&&&&))+++++hhjjGxxzzH$$&&&&&))+++++++r$   c                     t          j        d          } |                                 }|                                rJ |                                rJ t
          j                            d          }|                    |           |                                rJ |                                sJ |                                 t          j	        ddt
          j
        z  d          }|                    |t          j        |                     |                                rJ |                                rJ |                                 |                    |           t          j                     |                                rJ |                                sJ | j        D ]}|                                 t          j        d          }t          j        d|          }|j                            d           |                                sJ |                    |t          j        |                     |                                 |                                rJ |                                 |                    |           |                    |t          j        |                     |                                 |                                sJ t          j        |            d S )	Nr   )r   r   r9   r         shareyT)r&   r   gcaxaxis_invertedyaxis_invertedrj   rk   r   r   r
  r  r   cos	autoscaleaxesremovesubplotr]   set_invertedclose)r,   r!   imgr1   ax0r  s         r"   test_inverted_clarv    s    *Q--C	B  """""  """""
)

:
&
&CIIcNNN  """"" FFHHH
Aqw$$AGGArvayy  """""  """"" FFHHHIIcNNNMOOO  """""h  
		 +c

C
+c#
&
&
&CI4   HHQq		GGIII!!#####GGIIIJJsOOOHHQq		GGIII IcNNNNNr$   c                  B  	 t          j        t          d          5   G 	fddt                    } d d d            n# 1 swxY w Y   t          j        t          d          5   G 	fddt                    }d d d            n# 1 swxY w Y    G d d|           } G 	fd	d
t                    } G 	fddt                    } G d d|          }t	                      }| |||||fD ]0}d	 ||g d          }	sJ d	|                                 	sJ 1d S )NzOverriding `Axes.cla`matchc                       e Zd Z fdZdS )(test_subclass_clear_cla.<locals>.ClaAxesc                     dd S NTr   selfcalleds    r"   r   z,test_subclass_clear_cla.<locals>.ClaAxes.cla  s    r$   N)__name__
__module____qualname__r   r  s   r"   ClaAxesr{    s.              r$   r  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 L    dt                                                       d S r}  )superr   r  	__class__r  s    r"   r   z1test_subclass_clear_cla.<locals>.ClaSuperAxes.cla  s    r$   )r  r  r  r   __classcell__r  r  s   @r"   ClaSuperAxesr    s>                 r$   r  c                       e Zd ZdS )+test_subclass_clear_cla.<locals>.SubClaAxesNr  r  r  r   r$   r"   
SubClaAxesr  #          r$   r  c                       e Zd Z fdZdS )*test_subclass_clear_cla.<locals>.ClearAxesc                     dd S r}  r   r~  s    r"   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clear'  s    FFFr$   N)r  r  r  r  r  s   r"   	ClearAxesr  &  s.        	 	 	 	 	 	 	r$   r  c                   "     e Zd Z fdZ xZS )/test_subclass_clear_cla.<locals>.ClearSuperAxesc                 L    dt                                                       d S r}  )r  r  r  s    r"   r  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clear,  s    FGGMMOOOOOr$   )r  r  r  r  r  r  s   @r"   ClearSuperAxesr  +  s>        	 	 	 	 	 	 	 	 	 	r$   r  c                       e Zd ZdS )-test_subclass_clear_cla.<locals>.SubClearAxesNr  r   r$   r"   SubClearAxesr  1  r  r$   r  FrN  )r   warnsPendingDeprecationWarningr   r   r   )
r  r  r  r  r  r  r,   
axes_classr!   r  s
            @r"   test_subclass_clear_clar    s   
 
/3
5 
5 
5  	 	 	 	 	 	 	d 	 	 	               
/3
5 
5 
5  	 	 	 	 	 	 	4 	 	 	                  W         D   
             y    ((Cj .,@ 
 

Z\\\** 

 
s!   ?AA%BBBc                  Z    t          j                    D ]} d| j        vrd| j        vsJ d S )Nr  r   )r   __subclasses__r  __dict__)klasss    r"   !test_cla_not_redefined_internallyr  B  sH    $&& / / %E,>>>....	/ /r$   c                 D   t          j        ddd          5  |                                 }|                    ddgddg           d d d            n# 1 swxY w Y   |                                }|                    ddgddg           |                                 d S )NT)zxtick.minor.visiblezytick.minor.visibler   r8   )rV   r   r   r   minorticks_onr   r    rw   rx   s       r"    test_minorticks_on_rcParams_bothr  J  s    		t7; =  = 
> 
> % %##%%aVaV$$$% % % % % % % % % % % % % % % F
KKAA
s   /AAAautoscale_tiny_rangeTremove_textc                      t          j        dd          \  } }t          |j                  D ]*\  }}dd|z
  z  }|                    ddgdd|z   g           +d S )Nr9   r~   ir   r8   )r&   r   	enumerateflatr   )r,   axsrI  r!   y1s        r"   test_autoscale_tiny_ranger  U  sp     |Aq!!HC38$$ % %2#']
AAF$$$$% %r$   defaultc                     t          j        dd          \  } }|                    g d           |                    ddd           |                    ddd           t	          |                                d           t	          |                                d	           |                                sJ |                                sJ |	                                sJ |                    d 
           t	          |                                d           t	          |                                d	           |                                sJ |                                sJ |	                                sJ d S )Nr8   r8   r9   r   r6  Tr1   F)enabler'  tightr2   )g333333ÿg333333	@)r         @)r  )
r&   r   r   rn  r   r   r   r]  r_  get_autoscale_onr+   s     r"   test_autoscale_tightr  ^  si   l1a  GCGGLLLLL3eL444LL3dL333BKKMM=111BKKMM:... !!!!!!!!!!     LLLBKKMM=111BKKMM:...!!!!!!!!!!       r$   c                     t          j        dt                    } t          j        ddd          \  }\  }}|                    | |            |                    | |            |                    d           |                    d           t          j                     | d         | d         f}t          |
                                |           t          |                                |           t          |
                                |           t          |                                | d	         | d         f           d S )
Nr   dtyper9   r8   Tsharex)r  r   r   )rj   rr   floatr&   r   loglogsemilogxrn  r  r   r   r   )r1   r,   r  r!  limss        r"   test_autoscale_log_sharedr  v  s    		#U###Al1a555OC#sJJq!LLAMMMMMMHJJJaD!B%=DCLLNND)))CLLNND)))CLLNND)))CLLNNQqT1R5M22222r$   c                     t          j                    \  } }|                    ddgddggd           t          |                                d           t          |                                d           d|_        |                                 d	d|j        z  z
  d
d|j        z  z   f}d	d|j	        z  z
  d
d|j	        z  z   f}t          |                                |           t          |                                |           d|_        |                                 t          |                                d           t          |                                d           d S )Nr   r8   r9   r   r   r   )      r   Fr  r   T)
r&   r   r   r   r   r   use_sticky_edgesrn  _xmargin_ymargin)r,   r!   r   r   s       r"   test_use_sticky_edgesr    s4   lnnGCII1v1vwI///BKKMM;///BKKMM;///BLLNNN1r{?"C!bk/$9:D1r{?"C!bk/$9:DBKKMM4(((BKKMM4(((BLLNNNBKKMM;///BKKMM;/////r$   c                 Z   t          j        d                              dd          }|                     d          }|                     d|          }|                    |           |                    d          }|                    d|          }|                    |           d S )Nr  r   r   rf  rg  r  )rj   rr   r   r   
pcolormesh)r   r    Zru  r  s        r"   test_sticky_shared_axesr    s     		"a##A


s
#
#C


s3

/
/CNN1


c
"
"C


c#

.
.CNN1r$   c                      t          j        t          d          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nz0 were givenrx  )r   r   r   r&   stemr   r$   r"   test_nargs_stemr    s    	y	7	7	7  


                    =AAc                      t          j        t          d          5  t          j                    } |                     dgdgd           d d d            d S # 1 swxY w Y   d S )Nz3 were givenrx  FirstSecondr   )r   r   r   r&   rq  rH   r!   s    r"   test_nargs_legendr    s    	y	7	7	7 , ,[]]
		7)hZ+++, , , , , , , , , , , , , , , , , ,s   -AAAc                      t          j        t          d          5  t          j                    } |                     ddgg dg dg           d d d            d S # 1 swxY w Y   d S )Nz2 were givenrx  r   r8   )r   r9   r8   r9   r   )r   r   r   r&   rq  
pcolorfastr  s    r"   test_nargs_pcolorfastr    s    	y	7	7	7 @ @[]] 	vv&III(>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   2AA"Aoffset_pointsc                  :   t          j        ddd          } t          j        dt           j        z  | z            }t	          j                    }|                    ddd          }|                    | |d	d
          \  }|                    ddddd           d S )N              @{Gz?r   F)r   r   r   )autoscale_onr   r   r   purplerR  r   z	local maxr   r8   datar   r   zoffset points)xyxycoordsxytext
textcoords)	rj   rr   rm  r  r&   r   r   r   annotate)tsr,   r!   lines        r"   test_basic_annotater    s     		#sD!!A
s25y1}A *,,C	e'	H	HBGGAqQhG//EDKK/  ; ; ; ; ;r$   zarrow_simple.pngc                     d} d}d}t          | ||          }t          j        dd          \  }}t          t	          |j        |                    D ]\  }\  }}|                    dd           |                    dd           |\  } }}dt          j	        z  |z  dz  }	|
                    ddt          j        |	          t          j        |	          |	d	z  | |||	d
z  |	d
z  
  
         d S )N)TF)rd   rP   rB   r   r6  r9      r   r   r~   )widthlength_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r&   r   r  zipr  set_xlimset_ylimrj   r  arrowr  rm  )
r  r  r  kwargsr,   r  rI  r!   kwargthetas
             r"   test_arrow_simpler    s    )%E')52EFFF|Aq!!HC#C&$9$9:: ) );B
B
B=B:	u&9BE	A"
Arve}}bfUmmSy&:%8!BJ"RZ 	 	) 	) 	) 	)) )r$   c                  f    t          j                    \  } }|                    ddddd           d S )Nr   )r  )r&   r   r  _r!   s     r"   test_arrow_emptyr    s3    LNNEArHHQ1aQH'''''r$   c                      t          j                    \  } }|                    dddd           |                                dk    sJ |                                dk    sJ d S )Nr8   )皙?皙@)r&   r   r  r   r   r	  s     r"   test_arrow_in_viewr    sa    LNNEArHHQ1a;;==J&&&&;;==J&&&&&&r$   c                      t          j                    \  } }|                    ddd          }|j        J |                    dddi           }|j        J d S )Nfoor  r9   r   )r  )r  
arrowprops)r&   r   r  arrow_patch)r,   r!   anns      r"   test_annotate_default_arrowr    sc    lnnGC
++eVF+
3
3C?"""
++eVFr+
B
BC?&&&&&r$   c                     t          j                    \  } }t          j        |j                  j        }t          j        t          j                  j        }t          |	                                          t          |	                                          k    sJ t          |                                |                                          D ]\  }}||k    sJ dS )z?Check that the signature of Axes.annotate() matches Annotation.N)r&   r   inspect	signaturer  
parametersmtext
Annotationlistkeysr   values)r,   r!   annotate_paramsannotation_paramsp1p2s         r"   test_annotate_signaturer$    s    lnnGC'44?O)%*:;;F$$&&''40A0F0F0H0H+I+IIIIIo,,..0A0H0H0J0JKK  BRxxxxx r$   zfill_units.pngdpi<   )savefig_kwargc                     dd l mc m}  |                                  |                     dt          j        ddd                    }d| j        z  }|                     dd          }t          j	        d	d
d          }t          j        |          }t          j        dd          \  }\  \  }}\  }	}
|                    |g|gdd           g d}|                    ||         g dd           |                    |g|gdd           |                    ||||z   ||z   gg dd           |	                    |g|gdd           |	                    ||         d| j        z  d| j        z  d| j        z  d| j        z  gd           |
                    |g|gdd           |
                    ||||z   ||z   gd| j        z  d| j        z  d| j        z  d| j        z  gd           |                                 d S )Nr   ET  r6     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r9   degred)yunitsr   rN  )r  r  g     V@r  r*  Z   r   )r;  )r   r   r   r   Epochdatetimer0  Durationrj   rr   mdatesdate2numr&   r   r   fillautofmt_xdate)r   r  valuedayr-  dtnr,   r  r!  r"  ax4inds               r"   test_fill_unitsr@    sG   000000000	NN 	DX.tQ;;<<A59E
..1
2
2C	<_	E	E	EB
/"

C$'LA$6$6!C	!*3jsCHHaS5'%uH555
,,CHHSX,,,c222HHaS5'%uH555HHaAGQW%"""C) ) ) HHaS5'%uH555HHSX%)mQ]BNA	MJ   HHaS5'%uH555HHaAGQW%%)mQ]BNA	MJ     r$   c                     t          j        t          d          5  t          j        dgdgdd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        dgdgdd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        dgdgdd           d d d            n# 1 swxY w Y   t          j        dgdgdd           d S )Nzmarker .* redundantly definedrx  r   r   r1   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r7  )r   r   )r   r  UserWarningr&   r   errorbarr   r$   r"    test_plot_format_kwarg_redundantrJ  -  s   	k)H	I	I	I , ,!qc3s++++, , , , , , , , , , , , , , ,	k)K	L	L	L 0 0!qc3$////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	k)G	H	H	H . .!qc3f----. . . . . . . . . . . . . . . L!qcvV444444s5   AA
A)BBB6CC!$C!c                    g d}t          j        |          }|                                }|                                 }|                    ||t          j        |          t          j        |                    ^}}|                    ddg           |                    ||t          j        |          t          j        |          ddg           d S )Nr  xerryerrr9   )rM  rN  dashes)rj   r  rj  rI  abs
set_dashes)r   r    r1   r2   rx   rw   r  r
  s           r"   test_errorbar_dashesrR  8  s    A
q		A[[]]FllnnGq!"&))"&))DDHD1OOQFQq		q		1a&IIIIIr$   single_pointc                     dt           j        d<   dt           j        d<   t          j        d          \  } \  }}|                    dgdgd           |                    dgdgd           dgdgd}t          j        d          \  } \  }}|                    d	d	d|
           |                    ddd|
           d S )Nr   lines.markerT	axes.gridr9   r   r8   r   r*  r   r  r*  )rV   r   r&   r   r   )r,   r  r!  r  s       r"   test_single_pointrY  F  s     +.J''+J$l1ooOC#sHHaS1#sHHaS1#s A3Dl1ooOC#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                             || z   |d	d
           |d                             ||d	d
           d S )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr9   r8   r   r   rF  rG  )	r&   r   r7  r8  rj   
datetime64r   	plot_dater   )r-  time1data1r,   r!   s        r"   test_single_datera  X  s     -2CL()	|44	5	5BJEHEl1a  GCqEOOEBJs#O666qEJJueSJ,,,,,r$   c                    t          j        d                              d          }t          j        ddd                              d          }|                     d          }|d                             |           |d                             |           |                    d          }|d                             dd	
           |d                             |                                           d S )Nr~   r8   r   r   r   r   r8   r9   r8   gQQ?)r   	   r   r   )rj   rr   r   r   r   r   ravel)r   r    rowcolr  s        r"   test_shaped_datarl  g  s    
)B--


(
(C
)AsB


'
'
0
0C


A

CFKKFKK


1

CFJJKfJ---FKK		r$   c                     t          j        ddgdt          fdt          fg          } t          j                                        d          }|d                             dd|            |d	                             ddd
|            d S )Nr8   r8   r9   r9   r   twosr  r9   r   rX  r8   rF  )rj   rU  r  r&   r   r   r   )ptsr  s     r"   test_structured_datarr  v  s    
(FF#VUOfe_+M
N
N
NC *,,


"
"CFKKSK)))FKK#K.....r$   aitoff_proj)r   r  r   c                     t          j        t           j         t           j        d          } t          j        t           j         dz  t           j        dz  d          }t          j        | |          \  }}t	          j        dt          d                    \  }}|                                 |                    |j	        |j	        dd	           d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r9   )   @aitoff
projection)figsize
subplot_kwr   r6  )r   N)
rj   r
  r  meshgridr&   r   dictgridr   r  )r1   r2   XYr,   r!   s         r"   test_aitoff_projr    s     	RUFBE2&&A
RUFQJ	2..A;q!DAql8&*h&?&?&?A A AGCGGIIIGGAFAFCAG.....r$   axvspan_epochc                     dd l mc m}  |                                  |                     dt          j        ddd                    }|                     dt          j        ddd                    }|                     d| j                            d                    }t          j
                    }|                    ||d	d
           |                    |d|z  z
  |d|z  z              d S Nr   r)  r*  r8   ru  r,     r   r         ?)r;  alphar  )r   r   r   r   r4  r5  r6  r<  convertr&   rj  axvspanr  r   t0tfr-  r!   s        r"   test_axvspan_epochr        000000000	NN 
Th/a<<	=	=B	Th/a<<	=	=B	ei//66	7	7B	BJJr2tJ444KKSVR#b&[)))))r$   axhspan_epoch{Gz?)r0  c                     dd l mc m}  |                                  |                     dt          j        ddd                    }|                     dt          j        ddd                    }|                     d| j                            d                    }t          j
                    }|                    ||d	d
           |                    |d|z  z
  |d|z  z              d S r  )r   r   r   r   r4  r5  r6  r<  r  r&   rj  axhspanr  r  s        r"   test_axhspan_epochr    r  r$   zhexbin_extent.pngc                  0   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g d           ||d}t          j                    \  } }|                    ddg d|           d S )	N  )r9     r   r   333333?ffffff?)extentr%  r1   r2   )r  r  )r&   r   rj   rr   r   hexbin)r,   r!   r  r1   r2   s        r"   test_hexbin_extentr    s     lnnGCIdOOd"++I66DDAqIIa+++I,,, DlnnGCIIc3///dI;;;;;r$   zhexbin_empty.pngc                      t          j                    \  } }|                    g g            t          j                    \  } }|                    g g d           d S )Nr4  bins)r&   r   r  r+   s     r"   test_hexbin_emptyr    sV     lnnGCIIb"lnnGC IIb"5I!!!!!r$   c                  "   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g dd          }t          dd          }|                    |          d	         sJ d S )
N   r9   r   r  r   )r  picker  ,  r%  r   )r&   r   rj   rr   r   r  r   contains)r,   r!   r  r1   r2   hbmouse_events          r"   test_hexbin_pickabler    s    lnnGCIcNNS ))(33DDAq	1a 0 0 0	<	<B!C3///K;;{##A&&&&&&r$   zhexbin_log.pngc                     dt           j        d<   t          j                            d           d} t          j                            |           }dd|z  z   dt          j                            |           z  z   }t          j        d|d	z            }t          j                    \  }}|                    ||d
d
dt          j	                  }t          j
        |           d S )NFpcolormesh.snapr`   順 r         @r  r9   r   r4  T)yscaler  	marginalsreduce_C_function)r&   r   rj   rk   rl   standard_normalpowerr   r  sumrI   )nr1   r2   r,   r!   hs         r"   test_hexbin_logr    s    
 ',CL"#INN8A
	!!!$$AcAgbi77::::A
AGAlnnGC
		!Qu5 BF 	 	< 	<ALOOOOOr$   zhexbin_linear.pngr   r  c                  P   t           j                            d           d} t           j                            |           }dd|z  z   dt           j                            |           z  z   }t	          j                    \  }}|                    ||ddt           j                   d S )	Nr`   r  r   r  r  r~   r   T)gridsizer  r  )rj   rk   rl   r  r&   r   r  r  )r  r1   r2   r,   r!   s        r"   test_hexbin_linearr    s     INN8A
	!!!$$AcAgbi77::::AlnnGCIIaW "  ( ( ( ( (r$   c                      t          j        d                              d          \  } }t          j                    \  }}|                    | |ddd          }|                                dk    sJ d S )Nr  r  r4  r9   r   )r  vminvmax)rj   rr   r   r&   r   r  get_clim)r1   r2   r,   r!   r  s        r"   test_hexbin_log_climr    sj    9S>>!!(++DAqlnnGC
		!QU	55A::<<8######r$   c           	         g d}t          | \  }}dgt          |          z  }g d}d}|                                 }|                                }	|	                    ||||d           |	                    d           |                    ||dgt          |          z  d d||           |                    d           d S )	N)r   r   r  )   r   )r   r  r8   )      $r~   r  r~   )r\  r\  )r  r  mincntr   c                      t          |           S r  )r  )vs    r"   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>  s    CFF r$   )Cr  r  r  r  )r   lenr   r  set_facecolor)
r   r    
datapointsr  r  r  r  r  rw   rx   s
             r"   ,test_hexbin_mincnt_behavior_upon_C_parameterr    s     J 
DAq	
c!ffA!!!FH!!GF MM	1	     !!! NN	1#A,**     '"""""r$   c                     t          j                    \  } }|                                 |                    g dg d           |                                dk    sJ |                                dk    sJ t          j                     t          j                    \  } }|                                 |                    g dg d           |                                dk    sJ |                                dk    sJ t          j                    \  } }|                    d           |	                    dd	           |                                d
k    sJ d S )N)r  r9   r6  )r8   r9   r  r   )r6  r  r  )r  r6  )r   r  r4  r~   r8   )r~   r8   )
r&   r   invert_xaxisr   r   r   rs  invert_yaxis
set_yscaler  r+   s     r"   test_inverted_limitsr  "  s?    lnnGCOOGGNNNMMM***;;==G####;;==G####IKKKlnnGCOOGGNNNMMM***;;==G####;;==G#### lnnGCMM%KKA;;==G######r$   nonfinite_limitsc                  ^   t          j        dt           j        d          } t          j        d          5  t          j        |           }d d d            n# 1 swxY w Y   t           j        | t          |           dz  <   t          j                    \  }}|	                    | |           d S )Nr  r  ignoredivider9   )
rj   rr   eerrstater4  nanr  r&   r   r   r1   r2   r,   r!   s       r"   test_nonfinite_limitsr  <  s    
	"bdD!!A	H	%	%	%  F1II              6Ac!ffaiLlnnGCGGAqMMMMMs   AAAplot_fun)r:   r   fill_betweenc           	      2   t          j        ddd          }|                                }|                                } t          ||           g g            ||fD ]8} t          ||           |t	          t          |                    d           9d S )Nz
2010-01-01z
2011-01-01r/  r  C0rG  )rj   rr   r   r+  r   r  )r  r   r    r1   rw   rx   r!   s          r"   test_limits_empty_datar  G  s     		,ODDDA!!GFGGXr2&&& < <Has1vvd;;;;;< <r$   r   )r  r   c                  x   dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    |           d|i}t          j                    \  }}|                    d|           d S )Nr   image.interpolationr   r9   rF  rX  )rV   r   rj   indicessqrtr&   r   r   )Nr1   r2   rF  r,   r!   r  s          r"   test_imshowr  X  s     2;J-.AZAFQAIAAIA
1QT	!A#A lnnGCIIaLLL 8DlnnGCIIcIr$   imshow_clip)aarch64ppc64les390xgףp=
?)r   r0  c                     dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    || dz  g          }t          j	        |
                                d         |                                          }|                    ||           d S )Nr   r  r   r9   r6  r   )	clip_path)rV   r   rj   r  r  r&   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r1   r2   rF  r,   r!   r<   r  s           r"   test_imshow_clipr  m  s     2;J-. 	AZAFQAIAAIA
1QT	!A#A lnnGC


1qseA+AKKMM!,<aoo>O>OPPI IIa9I%%%%%r$   c                      ddgddgg} t          j                    }t          j        t          d          5  |                    | t          j        dd          d	d
           ddd           dS # 1 swxY w Y   dS )4Parameters vmin, vmax should error if norm is given.r8   r9   r   r6  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.rx  r~   r   r   )normr  r  N)r&   ro  r   r   
ValueErrorr   mcolors	Normalize)r   r!   s     r"   test_imshow_norm_vminvmaxr    s    
Q!QA	B	z@
A 
A 
A F F 			!'+C4411	EEEF F F F F F F F F F F F F F F F F Fs   -A11A58A5polycollection_joinstylec                  8   t          j                    \  } }t          j        ddgddgddgddgg          }t          j                            |gd          }|                    |           |                    dd           |	                    dd           d S )Nr8   r9   (   )
linewidthsr   r   )
r&   r   rj   rU  r   collectionsPolyCollectionadd_collection
set_xbound
set_ybound)r,   r!   vertsr<   s       r"   test_polycollection_joinstyler
    s     lnnGCHq!fq!fq!fq!f566E&&w2&>>AaMM!QMM!Qr$   z	x, y1, y2ro  r   r  r9   )
2d_x_input2d_y1_input2d_y2_input)idsc                     t          j                    \  }}t          j        t                    5  |                    | ||           d d d            d S # 1 swxY w Y   d S r  )r&   r   r   r   r  r  r1   r  rY  r,   r!   s        r"   test_fill_between_inputr    s     lnnGC	z	"	" # #
2r"""# # # # # # # # # # # # # # # # # #   AAAz	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                     t          j                    \  }}t          j        t                    5  |                    | ||           d d d            d S # 1 swxY w Y   d S r  )r&   r   r   r   r  fill_betweenx)r2   x1rX  r,   r!   s        r"   test_fill_betweenx_inputr    s     lnnGC	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          \  }\  }}|                    | || |d	
           |                    | ||||k    ddd           |                    | ||||k    dd           t           j        	                    |d          }t           j        j
        |d<   |                    | || |d	
           |                    | ||||k    dd           |                    | ||||k    dd           d S )Nr  r9   r  333333?r6  r8   Tr  blackrG  white/)wherer;  hatchinterpolater1  )r   r;  r"  r   r   r   )rj   rr   r  r  r&   r   r   r  r	   masked_greatermasked)r1   r  rY  r,   r  r!  s         r"   test_fill_between_interpolater%    s   
	#q$A	"%			B	RVAbeGAI	Bl1a555OC#sHHQArH)))QBbBh'!%  ' ' 'QBbBh%!%  ' ' ' 
		b#	&	&BELBqEHHQArH)))QBbBh'!%  ' ' 'QBbBh%!%  ' ' ' ' 'r$   #fill_between_interpolate_decreasingc            	         t          j        g d          } t          j        g d          }t          j        g d          }t          j        d          \  }}|                    || d           |                    || d           |                    | ||||k     dd	d
           |                    | ||||k    dd	d
           |                    dd           |                    dd           d S )N)gfffff@i  i  )g"@r\  r  )g@gffffff@gffffff@)rg  rg  r{  ztab:redkr   T皙?r   r;  r"  r  r1  r   r      X  )rj   rU  r&   r   r   r  r  r  )r	  r  profr,   r!   s        r"   (test_fill_between_interpolate_decreasingr/    s    	"""##A
A8OOO$$Dl6***GCGGAq)GGD!SQ4tax%4s  D D DQ4tax$$c  C C C KK2KKSr$   fill_between_interpolate_nanc                     t          j        d          } t          j        ddt           j        dddddddg
          }t          j        ddddddddt           j        t           j        g
          }t	          j                    \  }}|                    | |d	
           |                    | |d
           |                    | ||||k    ddd           |                    | ||||k    ddd           d S )Nr~   rv              r   r   r)  r<   r*  r   Tr   r+  r1  )rj   rr   asarrayr  r&   r   r   r  r  s        r"   !test_fill_between_interpolate_nanr8    s    		"A	QBFB2r2q"=	>	>B	RQBBBFBFC	D	DBlnnGCGGArSGGGArSGOOAr2R2X $C  1 1 1OOAr2R2X $C  1 1 1 1 1r$   z
symlog.pdfc                  6   t          j        g d          } t          j        g d          }t          j                    \  }}|                    | |           |                    d           |                    d           |                    dd           d S )N)r   r8   r9   r6  r  rg  r  r3  )i@B i  r  r   r   r   r   r   symloglinearr   i )rj   rU  r&   r   r   r  
set_xscaler  r  s       r"   test_symlogr=    s    
+++,,A
;;;<<AlnnGCGGAqMMMMM(MM(KKHr$   zsymlog2.pdfc                  N   t          j        ddd          } t          j        dd          \  }}t	          |g d          D ]G\  }}|                    | |            |                    d|           |                    d	           H|d
                             dd           d S )N2   MbP?r   r8   )      4@r   r   r   r  r:  )	linthreshTr   皙r   )	rj   rr   r&   r   r   r   r<  r  r  )r1   r,   r  r!   rC  s        r"   test_symlog2rE  
  s     		#r5!!A|Aq!!HCS":":":;;  I
1
h)444
GT3r$   c            
      |   g d} g d}t          j        | |          \  }}t          j        ||          }t          j        |           t          j        t          |                     t          j        | ||d dd df                    t          j        ||t          |d dd df                              d S )N)            r  r  r   r   r   )rG  g      rH        r        пr   r  r         ?r         ?r   r   )rj   r}  hypotr&   pcolorr  )r1   r2   r  r  r  s        r"   test_pcolorargs_5205rO    s    ...A	* 	* 	*A;q!DAq
AAJqMMMJtAwwJq!QssCRCx[!!!Jq!T!CRC"H+&&'''''r$   r  c                  r   dt           j        d<   d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }|dz   }t          j        ||          dz  }||                                z
  t          j	        |          z  }t          j        t          j        |          d	t          j        |          z  k     |          }t          j        d
d          \  }	\  }
}}|
                    |||d dd df         d	d           |                    |||d dd df         dddg           |                    |||d           d S )NFr  r  rG  r   r9   皙?r   r   r8   r   r   r)  rR  
edgecolorsr*  wgouraudshading)r&   r   rj   r
  r}  rm  r  rM  minptpr	   masked_whererP  maxr   r  )r  r1   r2   r  r  QxQzr  Zmr
  r  r!  r"  s                r"   test_pcolormeshr_  %  s    ',CL"#
A
D#q!!A
D#qs##A;q!DAq	RVAYY	B	RVAYY	B
s(B
AA	
QUUWWq		!A 
cBF2JJ&66	:	:Ba++AS#NN2r2crc3B3h<CCN@@@NN2r2crc3B3h<A3*NEEENN2r2yN11111r$   pcolormesh_smallepsc                  (   d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }|dz   }t          j        ||          dz  }||                                z
  t          j        |          z  }t          j	        t          j
        |          dt          j        |          z  k     |          }t          j	        |dt          j        |          z  k     |          }	t          j        dd          \  }
\  \  }}\  }}|                    |||d d	d d	f         dd
           |                    |||d d	d d	f         dddg           |                    |||d           |                    |||	d           |
j        D ]}|                                 d S )Nr   rG  r   r9   rQ  r   r   r  r   r)  rR  r*  rT  rU  rV  )rj   r
  r}  rm  r  rM  rX  rY  r	   rZ  rP  r[  r&   r   r  ro  set_axis_off)r  r1   r2   r  r  r\  r]  r  r^  Zm2r,   r  r!  r"  r>  r!   s                   r"   test_pcolormesh_smallre  =  s   	A
D#q!!A
D#qs##A;q!DAq	RVAYY	B	RVAYY	B
s(B
AA	
QUUWWq		!A	cBF2JJ&66	:	:B
/"tbfRjj00!
4
4C$'LA$6$6!C	!*3jsCNN2r2crc3B3h<CCN@@@NN2r2crc3B3h<A3*NEEENN2r2yN111NN2r3	N222h  
 r$   pcolormesh_alphapdf)r   r  c            
      6   dt           j        d<   d} t          j        t          j        dd|           t          j        dd| dz                      \  }}|}|t          j        |          z   }t          j        ||          dz  }||                                z
  t          j        |          z  }t          j
        d                             d	          } |t          j        d	                    }d
d
t          j        t          j        d	                    z  z   |d d df<   t          j        |          }t          j        dd          \  }	\  \  }
}\  }}|
|||fD ]0}|                    t#          j        dddg dd                     1|
                    |||d dd df         |ddd           |                    ||||ddd           |                    |||d dd df         |dd           |                    ||||dd           d S )NFr  r  rG  r   r9   r   viridis   r   r   )r   rG  )r  r   r   r   r   )r;  zorderr   r*  r  r8   )r   r  rW  rk  rU  )r   rW  rk  )r&   r   rj   r}  r
  r  rM  rX  rY  r   	colormaps	resampledrr   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  r\  Qyr  vircolorsr   r,   r  r!  r"  r>  r!   s                  r"   test_pcolormesh_alpharu  W  s3    ',CL"#
A;
D#q!!
D#qs## DAq 
B	
RVAYYB
AA	
QUUWWq		!A
-	
"
,
,R
0
0CS2FRVBIbMM2222F111a4L!&))D$'LA$6$6!C	!*3jsC3S   
X'sA)9)9)9!
 
 
 	 	 	 	 NN2r1SbS#2#X;S!!  - - -NN2r13c9QNOOONN2r1SbS#2#X;T6!NLLLNN2r141NEEEEEr$   z
dims,alphar  )r6  r   c                    |                                  }t          j        dd|ft                    dz  }|                    |           |                                 }|                    |d         ddd|	           d S )
Nr   r  r  r9   ).r   grayr   r8   )r   r  r  r  )r   rj   r   r  r  )r   r    dimsr  r!   r<   s         r"   test_pcolormesh_rgbary  z  s}     
				B
AtE***Q.AMM!					BMM!F)&qqMFFFFFr$   zpcolormesh_datetime_axis.pngc                     dt           j        d<   t          j                    } |                     ddd           t	          j        ddd          t          j        fd	t          d
          D                       }t          j        d
          }t          j	        t          j        d          t          j        d                    \  }}||z  }t          j
        d           t          j        |d d         |d d         |d dd df                    t          j
        d           t          j        |||           t          j        |t
          j                 d
d          }t          j        |d d t
          j        f         d
d          }t          j
        d           t          j        |d dd df         |d dd df         |d dd df                    t          j
        d           t          j        |||           |                                 D ]C}|                                D ],}|                    d           |                    d           -Dd S )NFr  r*  \(\?333333?hspacer>   rO     r8   c                 @    g | ]}t          j        |           z   S daysr5  	timedeltar   dbases     r"   r   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>  ,    GGG$+3333GGGr$   r  ru     r      r   r'        rB   r   )r&   r   r   subplots_adjustr5  rj   rU  r   rr   r}  rq  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation	r,   r1   r2   z1z2zr!   r/   r  s	           @r"   test_pcolormesh_datetime_axisr    s<    ',CL"#
*,,CsS999T1a((D
GGGGU2YYGGGHHA
	"A[2	"66FB
RAKN1SbS61SbS61SbS#2#X;///KN1a
	!BJ-!,,,A
	!AAArzM"BQ///AKN1SbS#2#X;#2#ss(QssCRCx[999KN1allnn # #'')) 	# 	#ELL!!!r""""	## #r$   zpcolor_datetime_axis.pngc                     t          j                    } |                     ddd           t          j        ddd          t	          j        fdt          d          D                       }t	          j        d          }t	          j        t	          j        d	          t	          j        d	                    \  }}||z  }t          j	        d
           t          j
        |d d         |d d         |d dd df                    t          j	        d           t          j
        |||           t	          j        |t          j                 dd          }t	          j        |d d t          j        f         dd          }t          j	        d           t          j
        |d dd df         |d dd df         |d dd df                    t          j	        d           t          j
        |||           |                                 D ]C}|                                D ],}|                    d           |                    d           -Dd S )Nr*  r{  r|  r}  r  r8   c                 @    g | ]}t          j        |           z   S r  r  r  s     r"   r   z-test_pcolor_datetime_axis.<locals>.<listcomp>  r  r$   r  ru  r  r   r  r   r  r  r  rB   r   )r&   r   r  r5  rj   rU  r   rr   r}  rq  rN  r  r  r  r  r  r  r  s	           @r"   test_pcolor_datetime_axisr    s-   
*,,CsS999T1a((D
GGGGU2YYGGGHHA
	"A[2	"66FB
RAKJq"vq"vq"crc{+++KJq!Q
	!BJ-!,,,A
	!AAArzM"BQ///AKJq"crc{Acrc3B3hK3B38555KJq!Qllnn # #'')) 	# 	#ELL!!!r""""	## #r$   c            	         d} t          j        dd|           }t          j        dd| dz            }t          j        ||          \  }}t          j        ||          dz  }t	          j                    \  }}t          j        t                    5  |	                    |||           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||j
                   d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df         d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df         d           d d d            n# 1 swxY w Y   t           j        |d	<   t          j        t                    5  |	                    |||d dd df                    d d d            n# 1 swxY w Y   t          j        d
          5  t           j                            ||d	k               }d d d            n# 1 swxY w Y   t          j        t                    5  |	                    |||d dd df                    d d d            n# 1 swxY w Y   g d}ddg}t          j        ||          \  }}t          j        |j                  }t          j        t&          d          5  |	                    |||d           d d d            d S # 1 swxY w Y   d S )Nr  rG  r   r9   r   r   rU  rV  r   r  invalidmask)ig  r   r8   r  r~   z.are not monotonically increasing or decreasingrx  auto)rj   r
  r}  rM  r&   r   r   r   r   r  Tr  r  r  r	   rU  zerosr  r  rH  )r  r1   r2   r  r  r  r
  r!   s           r"   test_pcolorargsr    s   
A
D#q!!A
D#qs##A;q!DAq
AALNNEAr	y	!	!  
aA              	y	!	! ! !
aAC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	y	!	! < <
aAcrc3B3hK;;;< < < < < < < < < < < < < < <	y	!	! < <
aAcrc3B3hK;;;< < < < < < < < < < < < < < <6AaD	z	"	" ) )
aAcrc3B3hK((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	X	&	&	& ) )EKKQK(() ) ) ) ) ) ) ) ) ) ) ) ) ) )	z	"	" ) )
aAcrc3B3hK((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 	A	b	A;q!DAq
A	kL
N 
N 
N / /
aAv.../ / / / / / / / / / / / / / / / / /s   B55B9<B9DD	D&&EEE<&F..F25F2!$HHH1&I##I'*I'$J77J;>J;L==MMc                     t          j        d                              dd          } t          j        g d| j                  }|j        j        du sJ t           j                            | |          }t          j
        |           t          j        ddd	          } t          j        ddd	          }t          j        | |          \  }}t          j        dt           j        z  |z            t          j        dt           j        z  |z            z  }t          j        d	t"          
          }d|d<   t          j        ||j                  }|j        j        du sJ t           j                            ||          }t          j
        |||           t           j                            ||          }	t           j                            ||          }
t          j        |	|
|           d S )Nr  r9   r   FTFFr  r   r8   r~   r  Tr   )rj   rr   r   broadcast_tor  flags	writeabler	   rU  r&   r  r
  r}  r  r  rm  r  boolrN  )r1   xmaskmasked_xr2   r  r  r  r  masked_Zmasked_Xmasked_Ys              r"   test_pcolorargs_with_read_onlyr    s   
	!Q""AO000!'::E; E))))u{{15{))HN8
Aq"A
Aq"A;q!DAq
q25y1}q25y1} 5 55A8Bd###DDH?4))D:5((((u{{14{((HN1a"""u{{14{((Hu{{14{((HJx8,,,,,r$   c                    |                                  }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }|                    |||d           |                                 }|d d	         t          j        |          dz  z   }|d d	         t          j        |          dz  z   }|                    |||d
           d S )Nr   r~   r   r`   r9   rg  r  rV  r   r   r   rj   rr   rk   rl   randnr  diffr   r    r!   r1   r2   r  rX  rY  s           r"   test_pcolornearestr    s    					B
	!RA
	!QAINN8
	1AMM!Q6M***					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!YM/////r$   c                 
   |                                  }d t          d          D             }t          j        dd          }t          j                            d           t          j                            dd          }|                    |||d	           |                                 }d
 t          d          D             }|d d         t          j        |          dz  z   }|                    |||d	           d S )Nc                 R    g | ]$}t           j                             |d z            %S )  r5  fromtimestampr   r1   s     r"   r   z+test_pcolornearestunits.<locals>.<listcomp>  s-    FFFq		(	(T	2	2FFFr$   r~   r   r   r`   r9   rg  r  rV  c                 X    g | ]'}t           j                             |d z   dz            (S )r   r  r  r  s     r"   r   z+test_pcolornearestunits.<locals>.<listcomp>  s2    	N	N	N(

)
)1s7d*:
;
;	N	N	Nr$   r   r   )	r   r   rj   rr   rk   rl   r  r  r  r  s           r"   test_pcolornearestunitsr    s    					BFFE"IIFFFA
	!QAINN8
	1AMM!Q6M***					B	N	NU1XX	N	N	NB	
3B3"'!**q.	 BMM"b!YM/////r$   c                     t          j                    \  } }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }t          j        t          d          5  |
                    |||d           d d d            d S # 1 swxY w Y   d S )	Nr   rg  r   r`   zDimensions of Crx  r  rV  )r&   r   rj   rr   rk   rl   r  r   r   r   r  r,   r!   r1   r2   r  s        r"   test_pcolorflaterrorr    s    lnnGC
	!QA
	!QAINN8
	1A	y(9	:	:	: / /
aAv.../ / / / / / / / / / / / / / / / / /s   CC	Cc                  N   t          j                    \  } }t          j        t          j        d          t          j        d                    \  }}||z   }t          j        t          d          5  |                    |||d           d d d            d S # 1 swxY w Y   d S )Nr   r   z.*one smaller than Xrx  r  rV  )	r&   r   rj   r}  rr   r   r   r   r  r  s        r"   test_samesizepcolorflaterrorr    s    lnnGC;ry||RYq\\22DAq	AA	y(?	@	@	@ / /
aAv.../ / / / / / / / / / / / / / / / / /s   3BB!BsnapFc                    |                                  }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }|                    ||||           |                                 }|d d         t          j        |          d	z  z   }|d d         t          j        |          d	z  z   }|                    ||||           d S )
Nr   r~   r6  r`   r   rg  )r  r   r9   r  )	r   r    r  r!   r1   r2   r  rX  rY  s	            r"   test_pcolorautor  $  s     
				B
	!RA
	!QAINN8
	1AMM!QM%%%					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!$M'''''r$   	canonicalc                  `    t          j                    \  } }|                    g d           d S )Nr  r&   r   r   r+   s     r"   test_canonicalr  7  s-    lnnGCGGIIIr$   zarc_angles.pngc                     d} d}d}d}t          j        dd          \  }}t          |j                  D ]\  }}|dz  dz  }|dz
  }	|                    t          j        || |d	                     |                    t          j        || ||	|
                     |                    |t          j
        t          j        |	                    z  |d         z   |d         |t          j
        t          j        |                    z  |d         z   g|t          j        t          j        |	                    z  |d         z   |d         |t          j        t          j        |                    z  |d         z   g           |                    | |           |                    | |           | dz  } |dz  }|d         dz  |d         dz  f}|dz  }d S )Nr9   r8   )r   r   r   h  rg  -   r   r  )theta1theta2r   r~   )r&   r   r  r  ro  rp  EllipseArcr   rj   rm  deg2radr  r  r  )
rT  r  centrer3  r,   r  rI  r!   r  r  s
             r"   test_arc_anglesr  =  s    	
A	AFE|Aq!!HC38$$  2S1"
X%fa#>>>???
X\&!QvfMMMNNN

6 2 2333fQi?
6 2 2333fQi?A 
6 2 2333fQi?
6 2 2333fQi?A	B 	B 	B 	UFE"""
UFE""" 	
R	R)b.&)b.1- r$   arc_ellipsec            	         d\  } }d\  }}d}t          j        t          j        d                    }|dz  t          j        |          z  }|dz  t          j        |          z  }t          j        |          }t          j        t          j        |          t          j        |           gt          j        |          t          j        |          gg          }	t          j        |	||g          \  }}|| z  }||z  }t          j                    }
|
	                    dd          }|
                    ||d	d
d
dd           t          j        | |f|||ddd          }|                    |           |
	                    dd          }|
                    ||d	ddd           t          j        | |f|||ddd          }|                    |           d S )N)gRQ?gp=
ף?)r   r   r  r   rf  r  )r   r   yellowr8   )r  r;  r<  r=  rk  r9   F)angler=  r9  rk  rg  equalr   )r  r;  r<  rk  )rj   r  rr   rm  r  rU  rq   r&   r   r   r9  rp  r  ro  )xcenterycenterr  heightr  r  r1   r2   rthetaRr,   r!   e1e2s                 r"   test_arc_ellipser  _  s   !GWME6EJry~~&&E
RVE]]"AbfUmm#AZF
	"&..)	(* 	+ 	+A 6!aVDAqLALA
*,,C	V	,	,BGGAqx8  # # # 
w(%!QU1
F 
F 
FB LL	W	-	-BGGAqw'!GLLL	w(%!QU1
F 
F 
FB LLr$   c                     t          j                    \  } }t          j        d          }|                    g dg d|           |                    g dg d|           |                    g dg d|           d S )Nr   r  r   r9   r8   rB  )r6  r   r9   )r   r6  r   )r&   r   mmarkersMarkerStyler   r:   rI  )fixr!   ms      r"   test_marker_as_markerstyler    s    lnnGCS!!AGGIIIyyyG+++JJyyy)))AJ...KK			999QK/////r$   	markeveryc                     t          j        ddd          } t          j        |           t          j        | dz  dz             z  }t	          j                    \  }}|                    | |dd           |                    | |dd d	
           |                    | |ddd
           |                    | |ddd
           |                                 d S )Nr   r~   r   r   r   r  r/   r  mark allr  r/   r  mark every 10+r   ru  mark every 5 starting at 10rj   r
  r  r  r&   r   r   rH   r  s       r"   test_markeveryr    s    
Ar3A
q		BGAbD3J'''A lnnGCGGAq#YG'''GGAq#ZG888GGAq#?G;;;GGAq#0MGNNNIIKKKKKr$   markevery_lineg{Gzt?)r  r0  c                     t          j        ddd          } t          j        |           t          j        | dz  dz             z  }t	          j                    \  }}|                    | |dd           |                    | |dd d	
           |                    | |ddd
           |                    | |ddd
           |                                 d S )Nr   r~   r   r   z-or  r  z-dr  r  z-sr  z-+r  r  r  r  s       r"   test_markevery_liner    s     	Ar3A
q		BGAbD3J'''A lnnGCGGAq$iG(((GGAq$$jG999GGAq$"OG<<<GGAq$'1NGOOOIIKKKKKr$   markevery_linear_scalesrA  c                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]i\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nrv  r   rv  rj  r3  r   r   r   r   r  r   r   r   r   r  r   ?r   r8   )\(?r~   r9   r   markevery=%sr   rC  r6  lsmsr  )slicerV   gridspecGridSpecr  rj   r
  r  r  r&   rq  r0   strr   
casescolsgsdeltar1   r2   rI  caserj  rk  s
             r"   test_markevery_linear_scalesr    s.   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU## ; ;4Dy$hBsCxL!!!	.3t99,---AssqT:::::; ;r$   markevery_linear_scales_zoomedc                  h   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        ||ddd|           t          j        d           t          j        d           d S )Nrv  r  r  r   r   r   r  r   r   r   r   r  r   r8   r  r~   r9   r   r  r   rC  r6  r  )r  g@)rQ  g333333?)r  rV   r  r	  r  rj   r
  r  r  r&   rq  r0   r
  r   r   r   r  s
             r"   #test_markevery_linear_scales_zoomedr    sN   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU##  4Dy$hBsCxL!!!	.3t99,---AssqT:::: r$   markevery_log_scalesc                  h   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        d           t          j        d           t          j        ||ddd|           d S )Nrv  r  r  r   r   r   r  r   r   r   r   r  r   r8   r  r~   r9   r   r  r4  r   rC  r6  r  )r  rV   r  r	  r  rj   r
  r  r  r&   rq  r0   r
  xscaler  r   r  s
             r"   test_markevery_log_scalesr    sN   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU## ; ;4Dy$hBsCxL!!!	.3t99,---
5
5AssqT:::::; ;r$   markevery_polarc                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }t          j        ddd          }dt
          j        z  |z  }t          |           D ]k\  }}||z  }||z  }t          j
        |||f         d           t          j        dt          |          z             t          j        ||ddd|           ld S )Nrv  r  r  r   r   r   r  r   r   r   r   r  r   r8   r  r9   Tpolarr  r   rC  r6  r  )r  rV   r  r	  r  rj   r
  r  r  r&   rq  r0   r
  r   )	r  r  r  rF  r  rI  r  rj  rk  s	            r"   test_markevery_polarr    s   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CB
AsC  AIMEU## ? ?4Dy$hBsCxL----	.3t99,---331>>>>>? ?r$   markevery_linear_scales_nansc                  V   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t
          j        x|d d<   x|dd <   |dd<   t          |           D ]i\  }}||z  }||z  }	t          j        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nrv  r  r  r   r   r   r  r   r   r   r   r  r   r8   r  r~   r9   r   r@  F   r  r   rC  r6  r  )r  rV   r  r	  r  rj   r
  r  r  r  r&   rq  r0   r
  r   r  s
             r"   !test_markevery_linear_scales_nansr"    sW   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%A"$&(AcrcF(QsttWqBxU## ; ;4Dy$hBsCxL!!!	.3t99,---AssqT:::::; ;r$   marker_edgesc                  x   t          j        ddd          } t          j                    \  }}|                    | t          j        |           dddd           |                    | dz   t          j        |           dddd           |                    | d	z   t          j        |           ddd
d           d S )Nr   r8   r~   zy.      >@rF  )r  mewmecr   r   r9   r*  )rj   r
  r&   r   r   r  r1   r,   r!   s      r"   test_marker_edgesr)  -  s    
Aq"AlnnGCGGArvayy$4QCG888GGAcE26!99dtG<<<GGAcE26!99dtG<<<<<r$   zbar_tick_label_single.pngc                      t          j                    } |                     dddd           ddd}t          j                    \  }} t          j                    } |                     dddd|	           d S )
Nr   r8   edger(  )align
tick_labelrW  r   r*  )r,  r-  r  )r&   rj  barr   )r!   r  r,   s      r"   test_bar_tick_label_singler/  6  st     
BFF1av#F... DlnnGC	BFF36cF=====r$   c                  z    t          j                    \  } }|                    ddgt          j        dg           d S )Nr   r8   r6  )r&   r   r.  rj   r  r+   s     r"   test_nan_bar_valuesr1  C  s5    lnnGCFFAq6BFA;r$   c                  ^    t          j                    \  } }|                    g g            d S r  )r&   r   r.  r+   s     r"   test_bar_ticklabel_failr3  H  s&    lnnGCFF2rNNNNNr$   zbar_tick_label_multiple.pngc                  p    t          j                    } |                     ddgddgddgddgd	           d S )
Nr8         @r9   r   r   r   r*  rY   r  r-  r,  )r&   rj  r.  r  s    r"   test_bar_tick_label_multipler7  M  sO     
BFFAs8aVC:3*      r$   z/bar_tick_label_multiple_old_label_alignment.pngc                      dt           j        d<   t          j                    } |                     ddgddgddgdd	gd
           d S )NrY   zytick.alignmentr8   r5  r9   r   r   r   r*  r6  )rV   r   r&   rj  r.  r  s    r"   *test_bar_tick_label_multiple_old_alignmentr9  U  s]     .6J)*	BFFAs8aVC:3*      r$   c                     |                                  }g d}g d}d |D             }d |D             }|                    ||d           |                                 }|                    ||d           d S )Nr   g @g333333@rw  rQ  r  gffffff
@g@c                 ,    g | ]}t          |          S r   r   r  s     r"   r   z+test_bar_decimal_center.<locals>.<listcomp>c            r$   c                 ,    g | ]}t          |          S r   r   r   r2   s     r"   r   z+test_bar_decimal_center.<locals>.<listcomp>d  r>  r$   rY   r,  r   r.  r   r    r!   x0y0r1   r2   s          r"   test_bar_decimal_centerrF  ^  s    					B			B			B  R   A  R   AFF1axF   					BFF2rF"""""r$   c                    |                                  }g d}g d}d |D             }d |D             }|                    ||g dd           |                                 }|                    ||g dd           d S )Nr;  r<  c                 ,    g | ]}t          |          S r   r   r  s     r"   r   z,test_barh_decimal_center.<locals>.<listcomp>q  r>  r$   c                 ,    g | ]}t          |          S r   r   r@  s     r"   r   z,test_barh_decimal_center.<locals>.<listcomp>r  r>  r$   )r   r   r8   r8   rY   r  r,  r   barhrC  s          r"   test_barh_decimal_centerrM  l  s    					B			B			B  R   A  R   AGGAq)))G:::					BGGB+++8G<<<<<r$   c                     g d}g d}g d}d |D             }|                                  }|                    |||d           |                                 }|                    |||d           d S )Nr;  r<  r  g333333?r8   r9   c                 ,    g | ]}t          |          S r   r   r   rI  s     r"   r   z*test_bar_decimal_width.<locals>.<listcomp>  r>  r$   rY   r  r,  rB  )r   r    r1   r2   w0rT  r!   s          r"   test_bar_decimal_widthrT  z  s    AA			B  R   A					BFF1aqF)))					BFF1arF*****r$   c                     g d}g d}g d}d |D             }|                                  }|                    |||d           |                                 }|                    |||d           d S )Nr;  r<  rO  c                 ,    g | ]}t          |          S r   r   rQ  s     r"   r   z,test_barh_decimal_height.<locals>.<listcomp>  r>  r$   rY   rJ  rK  )r   r    r1   r2   h0r  r!   s          r"   test_barh_decimal_heightrX    s    AA			B  R   A					BGGAq(G+++					BGGAq8G,,,,,r$   c                      t          j                    } |                     ddgddgddd          }|D ]6}|                                dk    sJ |                                d	k    sJ 7d S )
Nr8   r9   r6  r   r7  rF  r  r   r<  r   r   r   r   r8   r   r   r   r&   rj  r.  get_facecolorget_edgecolorr!   rectsrects      r"   test_bar_color_none_alpharc    s    	BFFAq6Aq6FcFJJE 6 6!!##|3333!!##~555556 6r$   c                      t          j                    } |                     ddgddgddd          }|D ]6}|                                dk    sJ |                                d	k    sJ 7d S )
Nr8   r9   r6  r   rF  r7  rZ  r\  r[  r]  r`  s      r"   test_bar_edgecolor_none_alphare    s    	BFFAq6Aq6C6FJJE 4 4!!##~5555!!##|333334 4r$   zbarh_tick_label.pngc                  p    t          j                    } |                     ddgddgddgddgd	           d S )
Nr8   r5  r9   r   r   r   r*  rY   )r  r-  r,  )r&   rj  rL  r  s    r"   test_barh_tick_labelrg    sO     
BGGQHq!fc3ZS#J      r$   c                     t          j                    \  } }|                    t          j        ddd          dt          j        d                     |                    t          j        ddd          dt          j        d          t          j        d                     t          j                    \  } }|                    t          j        ddd          dt          j        d          	           |                    t          j        ddd          dt          j        d          t          j        d          
           t          j                    \  } }|                    t          j        ddd          t          j        ddd          gt          j        ddg          t          j        d          	           |                    t          j        ddd          t          j        ddd          gt          j        ddg          d dD             	           |                    t          j        ddd          t          j        d          fgd           dS )z>Smoketest that bar can handle width and height in delta units.  r8   r   r   hoursr  r9   )rM  r  )r  )r  rN  r   c                 8    g | ]}t          j        |           S )rj  r  r   r  s     r"   r   z&test_bar_timedelta.<locals>.<listcomp>  s&    @@@AH&Q///@@@r$   r5  r~   ru  N)	r&   r   r.  r5  r  rL  rj   rU  broken_barhr+   s     r"   test_bar_timedeltarq    sk   lnnGCFF8T1a(("#!,,,  . . .FF8T1a((""+++#!,,,  . . . lnnGCGGHdAq))1%A...  0 0 0GGHdAq))1%A...#!,,,  . . . lnnGCGGXtQ**H,=dAq,I,IJHaX%A...  0 0 0 GGXtQ**H,=dAq,I,IJHaX@@@@@  B B B NNX&tQ22'a0002 3    r$   c                     t          j        t          j        d          t          j        d          t          j        d          g          } t          j        t          j        d          t          j        d          t          j        d          g          }t          j                    \  }}|                    g d|| z
  |            t          |j                                        t          j
                  sJ t          j                    \  }}|                    g d|| z
  | 	           t          |j                                        t          j
                  sJ d
S )z+test that tickers are correct for datetimesz
2012-01-01z
2012-02-01z
2012-01-15z
2012-02-07z
2012-02-13z
2012-02-12)r   r8   r   )r  rO   )r  rP   N)rj   rU  r]  r&   r   r.  r   r]   r   r7  AutoDateFormatterrL  rZ   )startstopr,   r!   s       r"   test_bar_datetime_startrv    s,   HbmL112=3N3NmL113 4 4E8R]<00"-2M2M]<002 3 3D lnnGCFF999T%ZF666bh2244f6NOOOOOlnnGCGGIIIT%ZeG444bh2244f6NOOOOOOOr$   c                     t           j                            dd          }|                     dd|                     d                    j        }t          j                     t          j        ||           d S )Nr   r9   z1/1/2000r8   )years)periodsfreq	positions)	rj   rk   r   
date_range
DateOffsetyearr&   r   boxplot)pdr  rx  s      r"   test_boxplot_dates_pandasr    sr    9>>!QDMM*"#"--a-*@*@  B BBF 
JLLLK&&&&&&r$   c                     t           j                            dd          } t          j        d          \  }}|d                             | g dg d           |d                             | g dd	           |d
                             | g d           |d                             | dg d           |d                             | dd	           |d                             | d           |d                             | g d           |d                             | d	           |d                             |            d S )Nr   r   rg  r   )r   r   r   r   )	capwidthswidthsr8   r   r9   r  r   r6  r  r  r\  rv  )rj   rk   r   r&   r   r  )r  r,   r  s      r"   test_boxplot_capwidthsr    s4   9>>!QD|AHCFNN4??????NKKKFNN4???3N???FNN4???N333FNN43N???FNN43sN333FNN43N'''FNN4N000FNN4N$$$FNN4r$   c                    ddl m}m} t          j                    }|                    d          }t          j        ddd          g}t          |          dk     rD|                    |d         t          j	        d	          z              t          |          dk     Dt          j        d
          }t          j        ||          \  }}t          |          dz
  t          |          dz
  f}	t          j        |	d         |	d         z            }
|	|
_        	  |             |                    |||
          }|j                                          |             d S #  |             w xY w)Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r8   r\  r   x   )secondsr   )pandas.plottingr  r  r&   r   r   r5  r  appendr  rj   rr   r}  r  r  canvasr  )r  r  r  r,   r!   timesy_vals	time_axisy_axisr  z_dataims               r"   test_pcolor_regressionr    st          
 *,,C			BtQ**+E
e**q..U2Y!3C!@!@!@@AAA e**q.. Yq\\FE622Iv[[1_c%jj1n-EYuQx%(*++FFL+&&(((]]9ff55
((*****((****s   :E   E,c                    |                      g dg dg dg dd          }|                     |g d                   |d<   |ddg                             dg                                          }|j        }|d         }|d         }t          j                    \  }}|                    ||dd	
           |                    ||dd           d S )N)ri  ri  ri  r8   r8   r8   r  )r  monthr<  r;  )r  r  r<  dater;  r~   rY   rR  oranger6  rQ  )		DataFrameto_datetimegroupbyr  indexr&   r   r.  r   )r  dfmonthlydatesforecastbaseliner,   r!   s           r"   test_bar_pandasr    s    	###))		))	 	
 
B
 #;#;#; <==BvJ&'"#++VH5599;;GMEwHwHlnnGCFF5("HF555GGE88G22222r$   c                     |                      g dg ddg d          }t          j                    \  }}|                    |j        d|j                   d S )N)r   r   r  r   r*  r  )r1   r  r  r  r   rl  )r  r&   r   r.  r1   r  r  r  r,   r!   s       r"   test_bar_pandas_indexedr  #  sd    	LLL<<<@@%II 
 
' 
'BlnnGCFF2428F$$$$$r$   c                    |                                  }|                                 }ddg}ddg}ddg}t          d          D ]-}|                    ||         ||         d||                    .|                    |||           d S )	Nr8   r9   r   r1   r   r  )r   r!  r!  )r   r   r.  )r   r    rw   rx   r1   r2   hatchesrI  s           r"   test_bar_hatchesr  +  s     !!GF	
AA	
AACjG1XX = =

1Q41T
<<<<KK1GK$$$$$r$   )r1   r  r/   expected_labelscontainer_labelr1   r8   
_nolegend_r   r*  r<   )r~   ru  r  )ABr  )r  r  r  bars)r  r  r  c                     t          j                    \  }}|                    | ||          }d |D             }||k    sJ |                                |k    sJ d S )Nr  c                 6    g | ]}|                                 S r   )r[   )r   r.  s     r"   r   z#test_bar_labels.<locals>.<listcomp>I  s     ;;;c#--//;;;r$   )r&   r   r.  r[   )	r1   r  r/   r  r  r
  r!   bar_container
bar_labelss	            r"   test_bar_labelsr  :  sq     LNNEArFF1e5F11M;;];;;Jj((((""$$777777r$   c                     t          j                    \  } }t          j        t                    5  |                    ddgddgg d           d d d            n# 1 swxY w Y   t          j                    \  } }t          j        t                    5  |                    ddgddgdg           d d d            d S # 1 swxY w Y   d S )Nr1   r2   r8   r9   )r  r  r  r  r  )r&   r   r   r   r  r.  r	  s     r"   test_bar_labels_lengthr  N  s?   LNNEAr	z	"	" : :
SzAq6999: : : : : : : : : : : : : : :LNNEAr	z	"	" 0 0
SzAq6#///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s#   AA"AC  CCc                    |                      ddgd          |                      ddgd          fD ]^}t          j        ||           t          j        |j        |           t          j        |           t          j        |j                   _|                     dg di          }t          j        |           t          j        ||           d S )Nr8   r9   float64r  Float64rk  r  )Seriesr&   r   r  r  )r  r1   r  s      r"   test_pandas_minimal_plotr  W  s    iiAii00iiAii002  A!	uiii(	)	)BHRLLLHRr$   hist_logc                      t          j        ddd          dz  } t          j        d| z
  d| z   g          }t          j                    \  }}|                    |dd           d S )Nr   r8   r  r   FT)r9  r4  )rj   r
  concatenater&   r   hist)data0r  r,   r!   s       r"   test_hist_logr  d  sc    K1c""A%E>1u9a%i011DlnnGCGGDu$G'''''r$   c                    |                      dd          }|                     dd          }t          g d          D ]\  }}|d|f                             d           |d|f                             dd|           |d|f                             dd|           |d|f                             d           |d d |f         D ]}|                    ddd|	           d S )
Nr9   r   )r.  step
stepfilledr   r4  r8   histtypeT)r4  r  )r   r  r  r  )r   r    r   r   rI  r  r!   s          r"   test_hist_log_2r  l  s     A&&Hq!$$G !>!>!>?? 	7 	78A!!%(((AAq8444AAq8444A!!%(((!!!Q$- 	7 	7BGGAqdXG6666	7	7 	7r$   c                     t          j        d          \  } }|d                             dgddggdd           |d                             d           |d                             g ddd           |d                             d           | j                                         |d                                         |d                                         k    sJ d S )Nr9   r   r8   
barstackedr  r4  r   r   r8   )r&   r   r  r  r  r  r   r,   r  s     r"   test_hist_log_barstackedr  |  s    |AHCFKK!q!fq<K888FeFKK			1|K444FeJOOq6??A 1 1111111r$   zhist_bar_empty.pngc                  Z    t          j                    } |                     g d           d S )Nr.  r  r&   rj  r  r  s    r"   test_hist_bar_emptyr    s+     
BGGBGr$   c                     t           j                            d           t          j        t           j                            ddd          dd                              t           j                  } t          j        | dd	          }|d
         }t          dt          |                    D ]Y}||dz
                                           }||                                         }|d         d         |d         d         k    sJ Zd S )Nr`   r   r   r  sizer   r8   r   )r  r  r9   )rj   rk   rl   cliprm   r   float16r&   r  r   r  get_corners)r  r  bcrF  rleftrrights         r"   test_hist_float16r    s    INN8W
	c--q!5 55;VBJ5G5G as+++A	
1B1c"gg + +1Q3##%%A""$$ Qx{fQil*****+ +r$   zhist_step_empty.pngc                  Z    t          j                    } |                     g d           d S )Nr  r  r  r  s    r"   test_hist_step_emptyr    s+     
BGGBG     r$   zhist_step_filled.pngc                      t           j                            d           t           j                            dd          } d}ddiddidd ii gdz  }d	gd
z  dgd
z  z   }t	          j        dd
          \  }}t          |||j                  D ]H\  }}} |j        | |f|dd| |	                    | d|            |
                    d           I|d         j        }	t          d |	D                       sJ d S )Nr   r  r   r~   r9  TFr9   r  r6  r  )nrowsncolsr  stackedr  r?  rO   r  c              3   j   K   | ].}|                                 |                                k    V  /d S r  )r^  r_  )r   r	  s     r"   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>  s;      GG!q  AOO$5$55GGGGGGr$   )rj   rk   rl   r  r&   r   r   r  r  r4   r  rB  all)
r1   n_binsr  typesr,   r  kg_typer!   rB  s
             r"   test_hist_step_filledr    s,   INN1
	a  AFtnvuo~rB1DFHQJ~a''E|!1---HCVUCH55    E26>E4>>2>>>
__U__%%%
3$iGGGwGGGGGGGGGGr$   zhist_density.pngc                      t           j                            d           t           j                            d          } t	          j                    \  }}|                    | d           d S )Nr`   r  Tdensity)rj   rk   rl   r  r&   r   r  r  r,   r!   s      r"   test_hist_densityr    sV    INN89$$T**DlnnGCGGD$Gr$   c                      t           j                            d          } |                     d          }g d}t	          j        ||d          \  }}}t          j        ||d          \  }}t          ||           d S )Ni  r   )r  r   r  r   r8   r   T)r  r  )rj   rk   RandomStater  r&   r  	histogramr   )rngr  r  mpl_heightsr
  
np_heightss         r"   test_hist_unequal_bins_densityr    s     )


&
&C		#A"""Dt<<<KALt<<<MJK,,,,,r$   c                  >   t          j         ddd          t          j         ddd          gt          j         ddd          t          j         ddd          gg} t          j                    \  }}|                    | d           |                    | d           d S )N  r8   r9   T)r  F)r5  r&   r   r  r  s      r"   test_hist_datetime_datasetsr    s    tQ**H,=dAq,I,IJtQ**H,=dAq,I,IJLDlnnGCGGD$GGGD%G     r$   bins_preprocessc                     | S r  r   r  s    r"   r  r    s    t r$   c                 ,    t          j        | d          S )Nr]  )rj   r7  r  s    r"   r  r    s    rz$'E'E r$   )r8  zdatetime.datetimeznp.datetime64c           	         t          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gt          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gg}t          j         ddd          t          j         ddd          t          j         ddd          g}t          j                    \  }}|                    | | |          d	          \  }}}t          j                            |t          j        	                    |                     |                    | | |          d
	          \  }}}t          j                            |t          j        	                    |                     d S )Ni  r8   r   r4  r9   r   r2  T)r  r  F)
r5  r&   r   r  rj   r   r   r   r  r8  )r  r  
date_edgesr,   r!   r
  r  s          r"    test_hist_datetime_datasets_binsr    s    tQ**H,=dAr,J,JtQ**H,=dAq,I,IKtQ++X->tQ-J-JtQ++X->tQ-J-JLMD
 #D!Q//1B4A1N1N#D!Q//1J lnnGCOOJ$?$?NNJAtQJtSY%7%7
%C%CDDDOOJ$?$?OOJAtQJtSY%7%7
%C%CDDDDDr$   zdata, expected_number_of_histsc                     t          j        |           \  }}}t          j        |          }|j        dk    r
d|k    sJ d S |j        d         |k    sJ d S )Nr8   r   )r&   r  rj   r7  ndimr  )r  expected_number_of_histshistsr
  s       r"   test_hist_with_empty_inputr    sg    
 (4..KE1aJuEzQ,,,,,,,{1~!9999999r$   zhisttype, zorderr.  r  r  c                     t          j                                                    }|                    ddg|            |j        sJ |j        D ]}|                                |k    sJ d S )Nr8   r9   r  )r&   r   r   r  rB  
get_zorder)r  rk  r!   r  s       r"   test_hist_zorderr    s~    
 
	!	!	#	#BGGQFXG&&&: , ,!!V+++++, ,r$   c                 	   dd l m} t          j        g d          }t          j        g d          }|                     dd                                          }|d                             ||d            |d                             ||d d	           |d                             ||           |d                             ||d
           |d                             ||           |d                                          |d                             ||d
           |d                                          ddd}|                    dd                                          } |d         j	        |t          j
        ||d                   fddi|  |d         j	        t          j
        |d         |          |fddi|  |d         j	        |t          j
        ||d                   fddi| |d                              |j        |d         |d         gd|d         gfi |           |d                              |j        |d         |d         gd|d         gfi |           |d                             dd             |d         j	        t          j
        |d         |          |fddi| |d                              |j        d|d         g|d         |d         gfi |           |d                              |j        d|d         g|d         |d         gfi |           |d                             dd             |d         j	        |t          j
        ||d                   fddi| |d                              |j        |d         |d         gd|d         gfi |           |d                              |j        |d         |d         gd|d         gfi |           |d                                           |d         j	        t          j
        |d         |          |fddi| |d                              |j        d|d         g|d         |d         gfi |           |d                              |j        d|d         g|d         |d         gfi |           |d                                          d S )Nr   )r     r   %   0   r   r  r6  )	r   r   r  r  r        @      @       @      "@r   r9   r  r8   rQ   )r  rS   rR   r6  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrj   rU  r   flattenstairssemilogyr  r   r  add_lineLine2Dr  r  )r   r    mlinesr2   r1   	test_axesr   ref_axess           r"   test_stairsr*  	  s)   %%%%%%
00011A
55566A!!!Q''//11IaL1t,,,aL1tFFFaL1aL1,777aL1aLaL1,777aL !(6BBE1%%--//HHQKQ	!QrU++MM|MuMMMHQKRYqtQ''LLlLeLLLHQKQ	!QrU++MM|MuMMMQK!ad|a1YHH%HHIIIQK"qu~1R5zKKUKKLLLQKD!!!HQKRYqtQ''LLlLeLLLQK1Q4y1Q41,HH%HHIIIQK1R5zAbE1R5>KKUKKLLLQKD!!!HQKQ	!QrU++MM|MuMMMQK!ad|a1YHH%HHIIIQK"qu~1R5zKKUKKLLLQKHQKRYqtQ''LLlLeLLLQK1Q4y1Q41,HH%HHIIIQK1R5zAbE1R5>KKUKKLLLQKr$   c           	         g dg d}}d}|                      dd                                          }|d                             ||d           |d                             ||d	d
           |d                             |||d           |d                             |||d	d           |                     dd                                          }|d                             |t	          j        ||d                   dd           |d                             dd            |d                             |t	          j        ||d                   dd           |d                             dd            |d                             |t	          j        ||d                   t	          j	        t          |          dz             |z  dd           |d                             |d            |d                             |t	          j        ||d                   t	          j	        t          |          dz             |z  dd           |d                             |d            d S )N)r8   r9   r   r6  r9   )r   r8   r9   r   r6  r   r  r9   r   Tr9  r8   rQ   )rS   r9  )r  r9  r   )r  rS   r9  r   post)r  rR  )r   r"  r#  r  rj   r  r  r  r  r   r  )r   r    r  r  bsr(  r)  s          r"   test_stairs_fillr/  .	  sl   oo111tA	B!!!Q''//11IaL4d+++aL4\EEEaL4"4888aL4",!  # # # 1%%--//HQKT29Q"#6#6VJJJQKD!!!QKdBIa2$7$7fKKKQKD!!!QKT29Q"#6#6WSVVAX..r11  F F FQKT"""QKdBIa2$7$7 gc!ffQh//2A  G G GQKT"""""r$   c                    d}|                                  }|                    g d          }|                    |           |                    g d           |                    t	          j        d          dz              |                    g dt	          j        d          dz             |                    g d           |                    d t	          j        d                     t	          j        |                                d         t	          j        d	d                    sJ t	          j        |                                d	         t	          j        d                    sJ |                    d
           |                                j        d
k    sJ |                                 }|                    g dd
          }|                    |           d S )N)r  r6  r  r  r6  r9   edges)r8   r9   r8   r   r8   r  r  )	r   r#  r  set_datarj   rr   allcloseget_datar  )r   r    r   test_axr  ref_axs         r"   test_stairs_updater8  H	  s    D""$$Gyyy!!ATJJyyyJJRYq\\!^J$$$JJyyy")A,,q.)))JJyyyJJtRYq\\""";qzz||A	!Q88888;qzz||A	!55555JJJ::<< B&&&&   ""Fiii"--A
OODr$   c                     |                                  }|                    g dd            |                                 }ddd} |j        t          d          g dfdd	i| |                    d
d            d S )N)r   r  r\  r  r  r  r  r6  )r   r  r\  r\  r  r  r   )r   r#  r   r   r  )r   r    r6  r7  r   s        r"   test_stairs_baseline_0r:  `	  s     ""$$GNN999tN,,,   ""F '6BBEFKa,,,HH,H%HHH
OOAtr$   c                      t          j                                                    } |                     g dg           |                                 dk    sJ |                                 dk    sJ d S )N*   )'   r  re  )r&   r   r   r#  r   r   r  s    r"   test_stairs_emptyr>  m	  sg    		!	!	#	#BIIb2$;;==H$$$$;;==M))))))r$   c                      t          j        t          d          5  t          j        ddgdt
          j        dg           d d d            d S # 1 swxY w Y   d S )NNan values in "edges"rx  r8   r9   r   )r   r   r  r&   r#  rj   r  r   r$   r"   test_stairs_invalid_nanrA  t	  s    	z)@	A	A	A + +
Aq6Arvq>***+ + + + + + + + + + + + + + + + + +s   %AAAc                      t          j        t          d          5  t          j        ddgddg           d d d            d S # 1 swxY w Y   d S )NSize mismatchrx  r8   r9   r   )r   r   r  r&   r#  r   r$   r"   test_stairs_invalid_mismatchrD  y	  s    	z	9	9	9 # #
Aq6Aq6"""# # # # # # # # # # # # # # # # # #s   AA
Ac                      t          j        ddgg d          } t          j        t          d          5  |                     dt          j        dg           d d d            d S # 1 swxY w Y   d S )Nr8   r9   rM  r@  rx  r1  )r&   r#  r   r   r  r3  rj   r  r  s    r"   test_stairs_invalid_updaterG  ~	  s    
Aq6999%%A	z)@	A	A	A ) )	

!RVQ
((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   $A&&A*-A*c                      t          j        ddgg d          } t          j        t          d          5  |                     t          j        d                     d d d            d S # 1 swxY w Y   d S )Nr8   r9   rM  rC  rx  r   r1  )r&   r#  r   r   r  r3  rj   rr   rF  s    r"   test_stairs_invalid_update2rI  	  s    
Aq6999%%A	z	9	9	9 ' '	

1
&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   )A++A/2A/ztest_stairs_options.pngc                     t          j        g d          t          j        g d                              t                    }} |                                }t           j        |d<   t          j                    \  }}|                    |dz  | ddd           |                    || dz  dz
  d	dd
d           |                    || dddd           |                    |dz  | dz  dz
  dddd
d           |                    |d d d         dz  dz   | dz
  d	ddd d           |                    |d d d         dz  dz   | ddddd           |                    |d d d         dz  dz   | dz   t          j	        dd t          |                    d!dd"d#           |                    |d d         d d d         dz  d$z   | d d         dz   d%ddd&d'd()           |                    d*+           d S ),Nr8   r9   r   r6  r   r  r8   r   r   Tr  )r   r9  r/   r1  rQ   r  )r   r9  rS   r/   r  rD  r9   r  )r   r  rR  r/   r   D)r  rR  r  rS   r/   r      E)r   r  rR  r  r/   r  r5  r  F)r  r   r  rR  r/   r  r+     r   G)r  r   r  r/   r9  r4  r  r  //H)r   r  rR  r  r!  r/   r   r?   )rj   rU  r   r  copyr  r&   r   r#  r
  r  rH   )r1   r2   ynr,   r!   s        r"   test_stairs_optionsrV  	  s=   8OOO$$bh|||&<&<&C&CE&J&JqA	
BFBqElnnGCIIac1G$cI:::IIa1Qe$&c  3 3 3IIb!8#I>>>IIbdAaCEdq3&c  3 3 3IIa"gailAaCu!d    IIa"gailA!3  8 8 8IIb2hqjmQqS2;r2s1vv+F+Ft3T  ; ; ;IIafTTrTl1nR3B37tS  2 2 2II!Ir$   ztest_stairs_datetime.pngc            	         t          j        d          \  } }|                    t          j        d          t          j        t          j        d          t          j        d                               t          j        d           d S )NT)constrained_layout$   z
2001-12-27z
2002-02-02r   )rotation)r&   r   r#  rj   rr   r]  xticks)fr!   s     r"   test_stairs_datetimer]  	  s{    LD111EArIIbimmil33l335 56 6 6 Jr$   c                     |                                  }|                    g ddd           |                                 }|                    g dd          }|                    d           d S )Nr  r1  T)r   r9  r,  )r   r#  	set_color)r   r    r6  r7  sts        r"   test_stairs_edge_handlingra  	  su     ""$$GNN999EN555   ""F	yyyt	,	,BLLr$   c                      t          j        ddd          } t          j        ddd          }t          j        |           t          j        |d d t           j        f                   z   }| ||fS )Nr  r      r  )rj   r
  rm  r  r  )r1   r2   r  s      r"   contour_datrd  	  s^    
B3A
B3A
q		BF1QQQ
]+,,,Aa7Nr$   contour_hatchingc            
          t                      \  } }}t          j                    \  }}|                    | ||dg dt          j        d         dd           d S )Nr\  )r  \rR  rC  rw  r   r   )r  r   extendr  )rd  r&   r   contourfr   rl  )r1   r2   r  r,   r!   s        r"   test_contour_hatchingrj  	  se    mmGAq!lnnGCKK1a$:$:$:]6*S  * * * * *r$   contour_colorbargHzG?c            
          t                      \  } }}t          j                    \  }}|                    | ||t	          j        ddd          t          j        d         ddd          }|                    | ||t	          j        d	d
d          dgdd          }|                    | ||t	          j        ddd          dgd          }|	                    ||          }|
                    |           |
                    |d           d S )Ngg7A`?r   RdBug333333r  r   )levelsr   r  r  rh  gg^I+r2   r   r9   )rn  rt  
linestylesr  r  r<   )rn  rt  r  r  F)erase)rd  r&   r   ri  rj   rr   r   rl  r  rI   	add_lines)	r1   r2   r  r,   r!   cscs1cs2rL   s	            r"   test_contour_colorbarru  	  s    mmGAq!lnnGC	Q1RYtUC%@%@-/"	 
 
$ 
$B
 **Q1RYtVS%A%A E ' !  # #C **Q1RYsC%=%= E !  # #C <<r<""DNN3NN3eN$$$$$r$   hist2dc                     dt           j        d<   t          j                            d           t          j                            d          dz  dz   } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           | |d
}t          j                    \  }}|                    ddd|d           d S )NFr  r   r   r9   r   r~   Tr  
rasterizedr%  r1   r2   )r  r  ry  )r&   r   rj   rk   rl   r  r   rv  )r1   r2   r,   r!   r  s        r"   test_hist2drz  	  s     ',CL"#INN1
	Qq A
	QAlnnGCIIaI--- DlnnGCIIc3RdtI<<<<<r$   hist2d_transposec                  4   dt           j        d<   t          j                            d           t          j        dgdz            } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           d S )
NFr  r   r   r   r9   r~   Trx  )	r&   r   rj   rk   rl   rU  r  r   rv  r  s       r"   test_hist2d_transposer}  	  s     ',CL"#INN1 	!SA
	QAlnnGCIIaI-----r$   c                      t           j                            d          \  } }t          j                                                    }|t          fD ]}|                    | |d           d S )Nr  Tr  )rj   rk   r&   r   r   rv  )r1   r2   r!   objs       r"   test_hist2d_densityr  	  sj    9H%%DAq				 	 BCy ' '

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


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


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


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


1a1
77777r$   r   c                    t          j        g d          }t          j        g d          }t          j        d |D                       }t          j        d |D                       }g d}g d}|                                }	|	                    ||||           |                                }	|	                    ||||           d S )Nr;  r<  c                 ,    g | ]}t          |          S r   r   rQ  s     r"   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>8
      ---Qgajj---r$   c                 ,    g | ]}t          |          S r   r   rQ  s     r"   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>9
  r  r$   r  r  r  )rj   rU  r   r:   )
r  r   r    rD  rE  r1   r2   r<   r  r!   s
             r"   test_scatter_decimalz TestScatter.test_scatter_decimal4
  s    X***++X***++H--"---..H--"---..###  


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


2rQ!
$$$$$r$   c                 @   t          j        t                    5  t          j        ddgddgddg           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        g dg dg d           d d d            d S # 1 swxY w Y   d S )Nr8   r9   r   r   rG  r  )r   r   r  r&   r:   r  s    r"   test_scatter_colorzTestScatter.test_scatter_colorC
  s!   ]:&& 	: 	:KAAsCj9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:]:&& 	? 	?K			999III>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s#   AAA(BBBr  r   rw  r  r  r   r  c                    d}t          j        t          |          5  t          j        g g fi | d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddgddgfdg i| d d d            n# 1 swxY w Y   t          j        g g fdg i| t          j        ddgddgfdddgi| d S )	Nz"No data for colormapping provided rx  r8   r9   r   r6  r<   r   )r   r  Warningr&   r:   )r  r  
warn_matchs      r"   test_scatter_color_warningz&TestScatter.test_scatter_color_warningJ
  sr    :
 \'444 	* 	*KB))&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*\'444 	8 	8KAA77"7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	B++b+F+++QFQF77q!f777777s!   >AA$B

BBc           	      L   t          j        g dg dg dt          j        dd          g d          }|                                j        d	k    sJ t          |                                g d
g dg dg           t          |                                g d           d S )NrM  r8   r   r9   0.1z0.3r  r   r7  r  rQ  r  ?r<   r   r  )r   r6  r   r   r   r8   r   r   r   r8   r   r   r   r8   )	r&   r:   r  r  get_facecolorsr  r   get_edgecolorsget_linewidthsr  colls     r"   test_scatter_unfilledz!TestScatter.test_scatter_unfilled]
  s    {999iii3H3H3H"*"6sf"M"M"M&5oo7 7 7 ""$$*f44444..003E3E3E3E3E3E3E3E3E3G 	H 	H 	H 	4..00///BBBBBr$   r  c                 N   t          j        g dg dg ddg d          }t          |                                |                                           t          |                                g dg dg d	g           t          |                                g d           d S )
NrM  r  r  r1   r  r  r  r  r  )r&   r:   r   r  r  r  r  s     r"   test_scatter_unfillablez#TestScatter.test_scatter_unfillableg
  s    {999iii3H3H3H"%&5oo7 7 7 	4..00$2E2E2G2GHHH4..003E3E3E3E3E3E3E3E3E3G 	H 	H 	H 	4..00///BBBBBr$   c                    t          j        d          }t          j        t          d          5  t          j        |||dd                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |dd          |dd          |           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr6  zsame size as x and yrx  r8   zfloat array-liker  )rj   rr   r   r   r  r&   r:   )r  r1   s     r"   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_sizer
  s   IaLL]:-CDDD 	% 	%K1ae$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:-CDDD 	) 	)K!""qua(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)]:-?@@@ 	% 	%K1e$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s5   AA"A'B44B8;B8C>>DDc                 l   t          j        g ddt          j        t          j        gd          }t	          j        |                                d          sJ t          j        g ddt          j        t          j        dgd          }t	          j        |                                d          sJ d S )Nr  r8   r  r<  r  r8   r   r   r8   )r&   r:   rj   r  r  
same_colorr_  r  s     r"   test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB{
  s    {999q"&"&&9&/1 1 1!$"4"4"6"6	BBBBB{<<<!RVRVQ)?&24 4 4!$"4"4"6"6EEEEEEEr$   c                 6   |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|d	           |                                 }t          j        d                             d          }|                    d
dgd
dgddgddg|           |                    ddgddgddgd           d S )Nri  rj  r)  r8   r6  r9   r  Tr<   r  r   plotnonfiniter   r   r<   r  r   )r  r   	r   r   rl  rm  set_badr:   r   rj   r  r  r   r    r!   r   s        r"   test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color
  s     }Y'11"55S! 	

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


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


Aq6Aq6aV3
77777r$   c                    |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|d	           |                                 }|                    d
dgd
dgddgddg|           d S )Nri  rj  r)  r8   r6  r9   r  Fr  r   r   r  r  r  s        r"   test_scatter_no_invalid_colorz)TestScatter.test_scatter_no_invalid_color
  s       }Y'11"55S!


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


Aq6Aq6aV1vD
AAAAAr$   c           
          g d}t          j                    }t          j        t          d          5  |                    |||t          j        dd          dd           d	d	d	           d	S # 1 swxY w Y   d	S )
r  r  r  rx  r  r~   r   r   )r<   r  r  r  N)r&   ro  r   r   r  r:   r  r  )r  r1   r!   s      r"   test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax
  s    IIXZZ]:"DE E E 	' 	' JJq!qw'8b'A'AA  ' ' '	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   /A//A36A3c                     |                                 }|                    ddd           |                                 }|                    dgdgdg           d S )Nr8   r6  )r   r:   )r  r   r    r!   s       r"   test_scatter_single_pointz%TestScatter.test_scatter_single_point
  s`      


1a1



A3s
#####r$   c                 ~   t          j        d          }|                                }|                    ||                    dd          |                    dd                     |                                }|                    |                    dd          ||                    dd                     d S )Nr~   r9   r   r6  )rj   rr   r   r:   r   )r  r   r    r1   r!   s        r"   test_scatter_different_shapesz)TestScatter.test_scatter_different_shapes
  s    IbMM  


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


199Q??A1a
99999r$   )r  Nrgby
conversion)r1  N)r7  N)NN)rF  r  r*  r7  N)jauner  r  r6  r   r   r   r  )r  z0.4r  r  )r  r1  r  C5)r  r   r  r  r  r8   r   r   r   r1  z0.0r  r   r8   r   zc_case, re_keyc                    d }d}ddd}|!t          j        t          ||                   nOt          |t                    r(t          |          dk    rt          j        d          nt          j                    }|5  t          j
        j                            |d	i ||
           d d d            d S # 1 swxY w Y   d S )Nc                      dS Nr   r   r   r$   r"   get_next_colorz2TestScatter.test_scatter_c.<locals>.get_next_color
  s    6r$   r6  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  rx  r   (argument looks like a single numeric RGBr  )r<   rS  r  xsizeget_next_color_func)r   r   r  r   r  r  r  
contextlibnullcontextr   ro  r   _parse_scatter_color_args)r  c_casere_keyr  r  REGEXPassert_contexts          r"   test_scatter_czTestScatter.test_scatter_c
  s4   	 	 	  99  ! M*F6N;;;; &$''*,/KK1,<,< $NOOOO')) 	  	4 	4HM33WRu$2 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s    *B77B;>B;c                 .   g dg}g dg}|                                 }|                    t          j        d          t	          d          |           |                    t          j        d          dz  t	          d          |           |                                 }|                    t          j        d          t	          d          |           |                    t          j        d          dz  t	          d          |           d S )N)r8   r   皙?)r8   r   r  r   r   rG  r6  r9   r6  )r   r:   rj   r   r   )r  r   r    rgbrgbarx   rw   s          r"   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_c
  s     ~~"""# !!##rwqzz5883777rwqzz!|U1XXT::: ##%%

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

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

3AL$//J//z6 	0 	P 	P Aq
  3333333r$   c                      d } t          j        t          d          5  t          j        g dg dg          }t
          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r$   r"   r  z;test_parse_scatter_color_args_error.<locals>.get_next_colorn  r  r$   z&RGBA values should be within 0-1 rangerx  )r   r   r  )r   r*  gffffff?r9   r  r  r  )	r   r   r  rj   rU  r   ro  r   r  )r  r<   s     r"   #test_parse_scatter_color_args_errorr  m  s       
zE
G 
G 
G M MHooo788//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   AA00A47A4c                  n    G d d          }  |             } |             }t           j        |_        t          j        d|          }t          |          t          u sJ t          j                     t          j        d|          }t          |          t          u sJ t          j                     d S )Nc                       e Zd Zd Zd ZdS )#test_as_mpl_axes_api.<locals>.Polarc                     d| _         d S )Nr   )theta_offsetr  s    r"   __init__z,test_as_mpl_axes_api.<locals>.Polar.__init__{  s     !Dr$   c                 "    t           d| j        ifS )Nr  )r   r  r  s    r"   _as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes~  s    ~t/@AAAr$   N)r  r  r  r  r  r   r$   r"   Polarr  z  s7        	" 	" 	"	B 	B 	B 	B 	Br$   r  rN  ry  y   )	rj   r  r  r&   ro  typer   rs  rq  )r  prjprj2r!   s       r"   test_as_mpl_axes_apir  x  s    B B B B B B B B %''C577DD 
,3	/	/	/B88y    IKKK 
SS	)	)	)B88y    IKKKKKr$   c                  2   t          j                    \  } }t          j                    \  }}t          j        |           |t          j                    u sJ | t          j                    u sJ t          j        |            t          j        |           d S r  )r&   r   scarj  gcfrs  )fig1r  fig2r!  s       r"   test_pyplot_axesr#    sy    ID#ID#GCLLL#'))3799IdOOOIdOOOOOr$   c                     t          j                    \  } }|                    t          j        t          j        dd                               |                    dd           |                                 |                    dd           d |j	        |j
        fD             \  }}|g dk    sJ |g d	k    sJ d S )
Nr   r   r4        @)r  r  c                 J    g | ] }d  |                                 D             !S )c                 h    g | ]/}|                                 |j                                        f0S r   )get_loclabel1get_textrn  s     r"   r   z.test_log_scales.<locals>.<listcomp>.<listcomp>  s3    JJJ!))++qx((**	+JJJr$   )_update_ticks)r   r'  s     r"   r   z#test_log_scales.<locals>.<listcomp>  sC        	KJT5G5G5I5IJJJ  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   rj   r4  r
  r  r  r<  rZ   r]   )r,   r!   r[  ytickss       r"   test_log_scalesr2    s    lnnGCGGBF2;sC(())***MM%cM"""OOMM%cM""" Xrx(  NFF        &          r$   c                  "   t          j                    \  } }|                    dd           |j                            t          j        d                     |                                |                                cxk    rdk    sn J d S )Nr4  )r  r  r8   r8   r~   )	r&   r   r   rZ   r  r   MultipleLocatorr   r   r	  s     r"   test_log_scales_no_datar6    s    LNNEArFF%F&&&Hw6q99:::;;==BKKMM4444W44444444r$   c                     t          j                    \  } }|                    d           t          j        t
          d          5  |                    dd           d d d            n# 1 swxY w Y   |                    d           t          j        t
          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr4  zAttempt to set non-positiverx  r   r~   )	r&   r   r<  r   r  rH  r  r  r  r+   s     r"   test_log_scales_invalidr8    sB   lnnGCMM%	k)F	G	G	G  
B              MM%	k)F	G	G	G  
B                 s$   A**A.1A.%C		CCstackplot_test_imagec            	         t          j                    } t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                     ddd          }|                    ||||           |                    d           |                    d	           ||||d
}t          j                    \  } }|                    dddd|g d           |                    d           |                    d	           d S )Nr   r~   r   r   r8   r  r9   r   r~   )r   r!  )r1   r  rY  y3r1   r  rY  r<  )r  C1C2)r  rt  )	r&   r   rj   r
  r   	stackplotr  r  r   )r,   r1   r  rY  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11DlnnGCLLdD$T:L:L:LLMMMKKKKr$   stackplot_test_baselinec                  $   t           j                            d           d }  | dd          }d|dd d f<   t          j        dd          \  }}|d                             t          d          |j        d	           |d
                             t          d          |j        d	           |d                             t          d          |j        d	           |d                             t          d          |j        d	           d S )Nr   c                    t          j        || f          }t          |           D ]}t          d          D ]}ddt           j                                        z   z  }dt           j                                        z  dz
  }ddt           j                                        z   z  }|d d |fxx         |t          j        t          j        |          |z  |z
  |z  dz             z  z  cc<   |S )Nr   r8   r   r9   r   r~   )rj   r  r   rk   exprr   )r  r  r   rI  jr1   r2   r  s           r"   layersz'test_stackplot_baseline.<locals>.layers  s    HaVq 	J 	JA1XX J Jbi..0001	((***R/"ry//1112!!!Q$1rv1)9A)=(Bq'H&HIIII	J
 r$   r   r   r@  r9   r  zeror  r  symr8   r   wigglern  weighted_wiggle)rj   rk   rl   r&   r   r?  r   r  )rF  r  r,   r  s       r"   test_stackplot_baselinerL    s    INN1   	q#AAb!!!eH|Aq!!HCIc

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

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

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

AC2CDDDDDr$   c                     | S r  r   )r  s    r"   r  r    s    1 r$   c                    t           j                            d           t          j        j        t           j                            ddd          fi | }t          j                    \  }}|	                    dd          r|
                    d           n|                    d           |	                    d	d
          st          j        d         t          j        d<    |j         ||          fi | d S )N  rL  r   )r  r6  )meansigmar  vertTr4  patch_artistFr  boxplot.boxprops.linewidth)rj   rk   rl   r   cbookboxplot_stats	lognormalr&   r   getr  r<  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr,   r!   s         r"   _bxp_test_helperr^    s    INN3y&
	Rg>>P PBNP PHlnnGC~~fd## 
e
e >>.%00 ,L*+ 	12
BF??8$$33
33333r$   zbxp_baseline.pngr  )r'  r   c                  "    t                       d S r  r^  r   r$   r"   test_bxp_baselinera    s     r$   zbxp_rangewhis.pngc                  F    t          t          ddg                     d S )Nr   r   whisrZ  r^  r~  r   r$   r"   test_bxp_rangewhisrg     s*     $QH"5"5"5666666r$   zbxp_percentilewhis.pngc                  F    t          t          ddg                     d S )Nr   _   rc  re  rf  r   r$   r"   test_bxp_percentilewhisrj  '  s*     $QG"4"4"4555555r$   zbxp_with_xlabels.pngc                  ,    d } t          |            d S )Nc                 V    t          | t          d                    D ]
\  }}||d<   | S NABCDr/   r   r  statsr  r/   s      r"   r:  z(test_bxp_with_xlabels.<locals>.transform2  5    E4<<00 	 	HAuAgJJr$   )r[  r`  r:  s    r"   test_bxp_with_xlabelsrt  .  s*      
 Y//////r$   zbxp_horizontal.pngr   )r  r'  r   r0  c                  B    t          t          d                     d S )NFrR  r\  rf  r   r$   r"   test_bxp_horizontalrx  :  s&     % 0 0 0111111r$   zbxp_with_ylabels.png)r'  r   r0  c                  J    d } t          | t          d                     d S )Nc                 V    t          | t          d                    D ]
\  }}||d<   | S rm  ro  rp  s      r"   r:  z(test_bxp_with_ylabels.<locals>.transformH  rr  r$   Frv  r[  r\  rf  rs  s    r"   test_bxp_with_ylabelsr|  C  s7    
  
 Y4U;K;K;KLLLLLLr$   zbxp_patchartist.png)r  r'  r   c                  B    t          t          d                     d S )NT)rS  rw  rf  r   r$   r"   test_bxp_patchartistr~  P  s&    
 $ 7 7 7888888r$   zbxp_custompatchartist.pngr   c            
      d    t          t          dt          ddd                               d S )NTr  r   :)r;  r<  r  )rS  boxpropsrw  rf  r   r$   r"   test_bxp_custompatchartistr  X  sT    
 GDDD!F !F !F G G G G G Gr$   zbxp_customoutlier.pngc            	      b    t          t          t          ddd                               d S )Nr7  r  r  r   r   mfc)
flierpropsrw  rf  r   r$   r"   test_bxp_customoutlierr  b  sQ    
 &#>>>!@ !@ !@ A A A A A Ar$   zbxp_withmean_custompoint.pngc            
      d    t          t          dt          ddd                               d S )NTr7  r  r   r  )	showmeans	meanpropsrw  rf  r   r$   r"   test_bxp_showcustommeanr  k  sK    
 AAA! ! !      r$   zbxp_custombox.pngc            	      b    t          t          t          ddd                               d S )NrD  r*  r   r   r   rR  )r  rw  rf  r   r$   r"   test_bxp_customboxr  v  H    
 CA666!8 !8 !8 9 9 9 9 9 9r$   zbxp_custommedian.pngc            	      b    t          t          t          ddd                               d S )NrD  r*  r   r  medianpropsrw  rf  r   r$   r"   test_bxp_custommedianr    sH    
 4sq999!; !; !; < < < < < <r$   zbxp_customcap.pngc            	      b    t          t          t          ddd                               d S )NrD  r  r   r  )cappropsrw  rf  r   r$   r"   test_bxp_customcapr    r  r$   zbxp_customwhisker.pngc            	      b    t          t          t          ddd                               d S )NrC  r  r   r  )whiskerpropsrw  rf  r   r$   r"   test_bxp_customwhiskerr    sH    
 Csq999!; !; !; < < < < < <r$   c                     t          j        d          }ddi}i |ddi}|                                                     ||           |                                                    ||           d S )Nr   r=  r  r  r  r  )rj   rr   r   r  )r   r    r  medianprops_testmedianprops_refs        r"    test_boxplot_median_bound_by_boxr    s    9Q<<D#R(D)D+;VDDO3CDDDtAAAAAr$   zbxp_withnotch.pngc                  B    t          t          d                     d S )NT)shownotchesrw  rf  r   r$   r"   test_bxp_shownotchesr    s&    
  6 6 6777777r$   zbxp_nocaps.pngc                  B    t          t          d                     d S )NF)showcapsrw  rf  r   r$   r"   test_bxp_nocapsr    s&    
 e 4 4 4555555r$   zbxp_nobox.pngc                  B    t          t          d                     d S )NF)showboxrw  rf  r   r$   r"   test_bxp_noboxr    s&    
 U 3 3 3444444r$   zbxp_no_flier_stats.pngc                  J    d } t          | t          d                     d S )Nc                 <    | D ]}|                     dd            | S )Nfliers)r  )rq  r  s     r"   r:  z*test_bxp_no_flier_stats.<locals>.transform  s-     	" 	"AEE(D!!!!r$   F)
showfliersr{  rf  rs  s    r"   test_bxp_no_flier_statsr    sD    
  
 Y $ 6 6 68 8 8 8 8 8r$   zbxp_withmean_point.pngc                  D    t          t          dd                     d S )NTFr  meanlinerw  rf  r   r$   r"   test_bxp_showmeanr    s(    
 te D D DEEEEEEr$   zbxp_withmean_line.pngc                  D    t          t          dd                     d S )NTr  rw  rf  r   r$   r"   test_bxp_showmeanasliner    s(    
 td C C CDDDDDDr$   zbxp_scalarwidth.pngc                  B    t          t          d                     d S )Nr  r  rw  rf  r   r$   r"   test_bxp_scalarwidthr    s&    
 C 0 0 0111111r$   zbxp_customwidths.pngc                  F    t          t          g d                     d S )N)r   r  g?g333333?r  rw  rf  r   r$   r"   test_bxp_customwidthsr    s-    
 ,D,D,D E E EFFFFFFr$   zbxp_custompositions.pngc                  F    t          t          g d                     d S )N)r8   r   r  r\  r{  rw  rf  r   r$   r"   test_bxp_custompositionsr    s*    
 ||| < < <======r$   c                      t          j        t                    5  t          t	          dg                     d d d            d S # 1 swxY w Y   d S )Nr8   r  rw  r   r   r  r^  r~  r   r$   r"   test_bxp_bad_widthsr    s    	z	"	" 6 6D$4$4$455556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6    AAAc                      t          j        t                    5  t          t	          ddg                     d d d            d S # 1 swxY w Y   d S )Nr9   r   r{  rw  r  r   r$   r"   test_bxp_bad_positionsr    s    	z	"	" < <DAq6$:$:$:;;;;< < < < < < < < < < < < < < < < < <s   !AAAzbxp_custom_capwidths.pngc                  F    t          t          g d                     d S )N)r  r   r   r   r  rw  rf  r   r$   r"   test_bxp_custom_capwidthsr    s-     /C/C/C D D DEEEEEEr$   zbxp_custom_capwidth.pngc                  B    t          t          d                     d S )Nr  r  rw  rf  r   r$   r"   test_bxp_custom_capwidthr    s&     s 3 3 3444444r$   c                      t          j        t                    5  t          t	          dg                     d d d            d S # 1 swxY w Y   d S )Nr8   r  rw  r  r   r$   r"   test_bxp_bad_capwidthsr  	  s    	z	"	" 9 9DA3$7$7$788889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9r  r  g{Gz?)r0  r   c                     t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdd	           |                    d
           d| | gi}t          j                    \  }}|                    ddd|           |                    d
           d S )NrO  r[  r\     rP  '  r8   	bootstrapnotchr  r   r1   )r  r  r  	rj   rk   rl   r
  hstackr&   r   r  r  )r1   r,   r!   r  s       r"   test_boxplotr    s     INN3
B3A
	32,AlnnGCJJ1vaJ000KK	 !Q=DlnnGCJJse14J888KK	r$   zboxplot_custom_capwidths.pngc                      t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdddg	           d S )
Nr[  r\  r  r  rP  r8   r  r   )r  r  )rj   r
  r  r&   r   r  r(  s      r"   test_boxplot_custom_capwidthsr  !  sa     	B3A
	32,AlnnGCJJ1vQ4+J66666r$   zboxplot_sym2.pngc                     t           j                            d           t          j        ddd          } t          j        d| dg          } t          j        dd          \  }\  }}|                    | | gd	d
           |                    d           |                    | | gd	d           |                    d           d S )NrO  r[  r\  r  r  rP  r8   r9   r  ^)r  rH  r  r  r  )r1   r,   r  r!  s       r"   test_boxplot_sym2r  ,  s     INN3
B3A
	32,Al1a((OC#sKKA%SK111LLKKA%SK111LLr$   zboxplot_sym.pngc                      t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gd           |                    d           d S )	Nr[  r\  r  r  rP  r  rH  r  )rj   r
  r  r&   r   r  r  r(  s      r"   test_boxplot_symr  <  sm    
 	B3A
	32,AlnnGCJJ1v4J   KK	r$   z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                     t           j                            d           t          j        d          } t          j        d| dg          } t          j                    \  }}|                    | | gdd           |                    d           t          j                    \  }}|                    | | gddd	
           |                    d           d S )NrO  r  r   r9   r  r8   r  )r  r   T)r  r  	autorange)	rj   rk   rl   r   r  r&   r   r  r  )r1   r!  r  r"  r!  s        r"   test_boxplot_autorange_whiskersr  I  s    
 INN3
A
	1a)AID#KKA%qK111LLID#KKA%qDKAAALLr$   c                     t          j        ddd          }t          j        d|dg          }t          j        |          5  |                     ||g           d d d            n# 1 swxY w Y   | S )Nr[  r\  r  r  rP  )rj   r
  r  rV   r   r  )r!   rc_dictr1   s      r"   _rc_test_bxp_helperr  \  s    
B3A
	32,A		w	'	'  


Aq6              Is   A&&A*-A*boxplot_rc_parameters)r'  r  r0  r   c                     t           j                            d           t          j        d          \  } }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"d#gdd$}dd!d!d!dddddddd%d&}|||g}t          ||          D ]\  }}t          ||           t          j        j	        d' |d(         
                                D             v sJ d S ))NrO  r   zboxplot.notchTboxplot.whiskersr   ri  zboxplot.bootstrapr  zboxplot.flierprops.colorr*  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylerD  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrF  rT  zboxplot.boxprops.linestylezboxplot.capprops.colorr<   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorr)  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyleFr   r   )zboxplot.verticalr  zboxplot.patchartist-.)r  zboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.showmeanszboxplot.meanlinezboxplot.meanprops.colorzboxplot.meanprops.linewidthzboxplot.meanprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylec                 ,    g | ]}t          |          S r   )r  rn  s     r"   r   z.test_boxplot_rc_parameters.<locals>.<listcomp>  s    333T!WW333r$   r8   )rj   rk   rl   r&   r   r   r  rV   rB  rC  get_children)r,   r!   rc_axis0rc_axis1rc_axis2	dict_listr'  rc_axiss           r"   test_boxplot_rc_parametersr  d  s   
 INN3l1ooGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/  H6 "H# H  ! #! #&'*'+&)*-*. H  8X.IR++ + +gD'****(33be00223334 4 4 4 4 4r$   zboxplot_with_CIarray.pngc                  d   t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        ddgd	d
gg          }|                    | | gdd dg|d           |	                    d           d S )NrO  r[  r\  r  r  rP  rG  r  rH        @r  r   r8   )r  usermediansconf_intervalsr  r  )
rj   rk   rl   r
  r  r&   r   rU  r  r  )r1   r,   r!   CIss       r"   test_boxplot_with_CIarrayr    s     INN3
B3A
	32,AlnnGC
(T2Jc
+
,
,C JJ1vT3K!  , , ,KK	r$   zboxplot_no_inverted_whisker.pngc                  0   t          j        g dt           j                  } t          j                    }|                    |            |                    d           |j                            dd           |j	                            d           d S )N)r   i(#  rc  X   i^  i@ ix  i  r  r4  Fminorwhich)
rj   rU  r  r&   ro  r  r  r]   r  rZ   )r1   r  s     r"   test_boxplot_no_weird_whiskerr    s     	;;;z	# 	# 	#A
(**CKKNNNNN5INN5N(((INN5r$   c                     t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        t                    5  |                    | ddg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    | | gddgddgg           d d d            d S # 1 swxY w Y   d S )	Nr[  r\  r  r  rP  r8   r9   )r  	rj   r
  r  r&   r   r   r   r  r  r(  s      r"   test_boxplot_bad_mediansr    sS   
B3A
	32,AlnnGC	z	"	" * *


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


Aq6AA'7
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   BB
B' CCCc                     t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        t                    5  |                    | | gddgg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    | | gddgdgg           d d d            d S # 1 swxY w Y   d S )	Nr[  r\  r  r  rP  r8   r9   )r  r  r(  s      r"   test_boxplot_bad_cir    sV   
B3A
	32,AlnnGC	z	"	" 4 4


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


Aq6Aq6A3-
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   BB
B
*CCCc                  B   t          j        d          } t          j                    \  }}|                    |           d         d                                         dk    sJ |                    | d          d         d                                         dk    sJ d S )Nr~   boxesr   r9   rk  )rj   rr   r&   r   r  r  )r1   r  r!   s      r"   test_boxplot_zorderr    s    
	"AlnnGC::a==!!$//11Q6666::a:##G,Q/::<<BBBBBBr$   c                     dt           j        d<   dt           j        d<   dt           j        d<   t          j                    \  } }t          j        d          }d|d	<   |                    |d
          }dD ]'}||         D ]}|                                dk    sJ (|d         d                                         dk    sJ |d         d                                         dk    sJ d S )Nr  rU  r   r  r  zboxplot.meanprops.markerr   rc  r   T)r  )whiskerscapsr  mediansr   r  r   means)r&   r   r   rj   rr   r  
get_marker)r,   r!   	test_data
bxp_handle	bxp_lines	each_lines         r"   test_boxplot_marker_behaviorr	    s    #&CL 03CL,-/2CL+,lnnGC	#IIbMI66J= 0 0	#I. 	0 	0I''))R/////	0
 h"--//36666gq!,,..#555555r$   z&boxplot_mod_artists_after_plotting.pngc                      g d} t          j                    \  }}|                    | d          }|D ]"}||         D ]}|                    d           #d S )N)r|  r  rf  rf  Q?gQ?gQr   r  r   )r&   r   r  r_  )r1   r,   r!   bpkeyr  s         r"   &test_boxplot_mod_artist_after_plottingr    sy     	433AlnnGC	A3		B # #c7 	# 	#CMM'""""	## #r$   zviolinplot_vert_baseline.pngc                  n   t           j                            d           d t          d          D             } t	          j                    }|                    | t          d          ddd           d| i} t	          j                    \  }}|                    dt          d          ddd|            d S )Niec                 N    g | ]"}t           j                            d           #S r   r  rj   rk   rm   r   r
  s     r"   r   z1test_vert_violinplot_baseline.<locals>.<listcomp>   +    9991BI#&&999r$   r6  Fr|  r  showextremashowmediansr  )r|  r  r  r  r  )rj   rk   rl   r   r&   ro  
violinplotr   )r  r!   r,   s      r"   test_vert_violinplot_baseliner    s     INN999a999D	BMM$%((e#  % % % ;DlnnGCMM#qU#$  0 0 0 0 0r$   zviolinplot_vert_showmeans.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Niw5+c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>  r  r$   r6  TFr  r&   ro  rj   rk   rl   r   r  r!   r  s     r"   test_vert_violinplot_showmeansr    sp    	BINN999a999DMM$%((d#  % % % % %r$   zviolinplot_vert_showextrema.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Nic                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>  r  r$   r6  FTr  r  r  s     r"    test_vert_violinplot_showextremar!    sp    	BINN999a999DMM$%((e#  % % % % %r$   zviolinplot_vert_showmedians.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddd           d S )Nib}&c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>%  r  r$   r6  FTr  r  r  s     r"    test_vert_violinplot_showmediansr$     sp    	BINN999a999DMM$%((e"  $ $ $ $ $r$   zviolinplot_vert_showall.pngc                     t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddddgddgd	d
gddgg           d S )NiOc                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z0test_vert_violinplot_showall.<locals>.<listcomp>/  r  r$   r6  Tr   ?r   r  r   r  r*  r  )r|  r  r  r  	quantilesr  r  s     r"   test_vert_violinplot_showallr)  *  s    	BINN999a999DMM$%((d"!3Z#sc3Z#sL  N N N N Nr$   z#violinplot_vert_custompoints_10.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni$c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>:  r  r$   r6  Fr~   r|  r  r  r  pointsr  r  s     r"   $test_vert_violinplot_custompoints_10r.  5  sr    	BINN999a999DMM$%((e#B  0 0 0 0 0r$   z$violinplot_vert_custompoints_200.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )NiYqVc                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>D  r  r$   r6  Fr  r,  r  r  s     r"   %test_vert_violinplot_custompoints_200r1  ?  sr    	BINN999a999DMM$%((e#C  1 1 1 1 1r$   zviolinplot_horiz_baseline.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni\dc                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>N  r  r$   r6  Fr|  rR  r  r  r  r  r  s     r"   test_horiz_violinplot_baseliner5  I  sr    	BINN999a999DMM$%((%#  8 8 8 8 8r$   z violinplot_horiz_showmedians.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Nilo/c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>X  r  r$   r6  FTr4  r  r  s     r"   !test_horiz_violinplot_showmediansr8  S  sr    	BINN999a999DMM$%((%#  7 7 7 7 7r$   zviolinplot_horiz_showmeans.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Ni&c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>b  r  r$   r6  FTr4  r  r  s     r"   test_horiz_violinplot_showmeansr;  ]  sr    	BINN999a999DMM$%(($#  8 8 8 8 8r$   z violinplot_horiz_showextrema.pngc                      t          j                    } t          j                            d           d t          d          D             }|                     |t          d          dddd           d S )Nie!c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>l  r  r$   r6  FTr4  r  r  s     r"   !test_horiz_violinplot_showextremar>  g  sr    	BINN999a999DMM$%((%"  7 7 7 7 7r$   zviolinplot_horiz_showall.pngc                     t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddddgdd	gd
dgddgg           d S )Ni"c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z1test_horiz_violinplot_showall.<locals>.<listcomp>v  r  r$   r6  FTr   r'  r   r  r   r  r*  r  )r|  rR  r  r  r  r(  r  r  s     r"   test_horiz_violinplot_showallrA  q  s    	BINN899a999DMM$%(($"!3Z#sc3Z#sL  N N N N Nr$   z$violinplot_horiz_custompoints_10.pngc            	          t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddd           d S )Ni0c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>  r  r$   r6  Fr~   r|  rR  r  r  r  r-  r  r  s     r"   %test_horiz_violinplot_custompoints_10rE  |  sy    	BINN999a999DMM$%((%#r  C C C C Cr$   z%violinplot_horiz_custompoints_200.pngc            	          t          j                    } t          j                            d           d t          d          D             }|                     |t          d          ddddd           d S )Ni<9!c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>  r  r$   r6  Fr  rD  r  r  s     r"   &test_horiz_violinplot_custompoints_200rH    sy    	BINN999a999DMM$%((%#s  D D D D Dr$   c                  H   t          j                    } t          j                            d           d t          d          D             }t          j        t                    5  | 	                    |t          d                     d d d            d S # 1 swxY w Y   d S )Ni@ 3c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z1test_violinplot_bad_positions.<locals>.<listcomp>  r  r$   r6  r   r{  
r&   ro  rj   rk   rl   r   r   r   r  r  r  s     r"   test_violinplot_bad_positionsrL    s    	BINN999a999D	z	"	" 0 0
deAhh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   %%BBBc                  N   t          j                    } t          j                            d           d t          d          D             }t          j        t                    5  | 	                    |t          d          g d           d d d            d S # 1 swxY w Y   d S )NiA#c                 N    g | ]"}t           j                            d           #S r  r  r  s     r"   r   z.test_violinplot_bad_widths.<locals>.<listcomp>  r  r$   r6  r  )r|  r  rK  r  s     r"   test_violinplot_bad_widthsrO    s    	BINN999a999D	z	"	" B B
deAhhyyyAAAB B B B B B B B B B B B B B B B B Bs   %(BB!Bc                  J   t          j                    } t          j                            d           t          j                            d          g}t          j        t                    5  | 	                    |ddgddgg           d d d            d S # 1 swxY w Y   d S )	Nil r   r  r   r   r   r  r(  
r&   ro  rj   rk   rl   rm   r   r   r  r  r  s     r"   test_violinplot_bad_quantilesrS    s    	BINN9I#&&'D 
z	"	" @ @
dSzC:&>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   -BBBc                     t          j                    } t          j                            d           t          j                            d          g}t          j        t                    5  | 	                    |g dg           d d d            n# 1 swxY w Y   t          j        t                    5  | 	                    |g dg           d d d            d S # 1 swxY w Y   d S )Niq4r   r  )r   r   r   ?rQ  )皙r   r   rK  rR  r  s     r"   $test_violinplot_outofrange_quantilesrW    sm   	BINN9I#&&'D 
z	"	" ? ?
d'<'<'<&=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
z	"	" A A
d'>'>'>&?@@@A A A A A A A A A A A A A A A A A As$   -BBB8C  C$'C$c                 <   t           j                            d           t           j                            d          g}|                                 }|                    |g d           |                                }|                    |g dg           d S )N+r   r  )r   r   r'  rQ  )rj   rk   rl   rm   r   r  )r   r    r  r!   s       r"   %test_violinplot_single_list_quantilesrZ    s     INN9I#&&'D 
				BMM$///M222 
				BMM$???"3M44444r$   c                 b   t           j                            d           |                    t           j                            d          g d          }|                    t           j                            d          t          d                    }|                    t           j                            d                    }|                                                     |||g           |                                                    |j        |j        |j        g           d S )	NrY  r\  r  )rg  rv  r\  r  r   r6  r   r  rg  	ABCDEFGHIr4  )	rj   rk   rl   r  rm   r  r   r  r  )r   r    r  s1s2s3s         r"   test_violinplot_pandas_seriesr`    s    INN9	29###++3H3H3H	I	IB	29###++43D3D	E	EB	29###,,	-	-B""BB<000!!29bi"CDDDDDr$   c                     t          j                    \  } }|                    dd           |                                }t          j                            d           t          j                            ddd          }t          j                            ddd          }|                    ||gddgd	           |                                }t          ||           d S )
Nr   r6  r~   r   ru  r8   r9   F)r|  manage_ticks)
r&   r   r  r   rj   rk   rl   rm   r  r   )r
  r!   old_xlimr  rY  new_xlims         r"   test_manage_xticksre    s    LNNEArKK1{{}}HINN1			"a	$	$B			!Q	#	#BJJBxAq6J>>>{{}}Hx*****r$   c                  
   t          j                    \  } }|                    t          j                            d          dg           |                    t          j                            d          dg           | j                                         |                                dk    sJ t          |
                                          ddgk    sJ d |                                D             ddgk    sJ d S )	Nr   r   r{  r   )r5  r%  c                 6    g | ]}|                                 S r   r*  rn  s     r"   r   z+test_boxplot_not_single.<locals>.<listcomp>  s     777QAJJLL777r$   r  5)r&   r   r  rj   rk   r   r  r  r   r  
get_xticksr  r+   s     r"   test_boxplot_not_singlerk    s    lnnGCJJry~~c""qcJ222JJry~~c""qcJ222JOO;;==J&&&&  QF****77""4"4"6"6777C:EEEEEEr$   c                      t          j        ddgddg           t          j                            ddi           t          j                    } t          j        | dd           d S )Nr   r8   z	font.sizeP   raw)r%  format)r&   r   rV   r   updateioBytesIOsavefigr*  s    r"   test_tick_space_size_0ru    sb     HaVaVQ/000

AKr%((((((r$   )errorbar_basicerrorbar_mixedrv  c            	         t          j        dddt           j                  } t          j        |            }ddt          j        |           z  z   }d|z   }t          j                    }|                                }|                    | |dd           |	                    d           t          j
        d	d	d
          \  }}|d         }|                    | ||d           |	                    d           |                    d           |d         }|                    | ||dd           |	                    d           |d         }|                    | ||d	|z  g|d	|z  gd           |	                    d           |d         }|                    d           t          j        d||z
            }||z
  }|                    | ||d	|z  g|ddd	           |	                    d           |                    dd           |                    d           | |d }	t          j                    }|                                }|                    d!d"dd|	#           |	                    d           d S )$Nr   r6  r   r  r   r*  rL  z&Simplest errorbars, 0.2 in x, 0.4 in yr9   T)r  r  r  r  r   rN  r   zVert. symmetricnbinsr  )rM  r   r  zHor. symmetric w/ alpharI  z--orN  rM  r   zH, V asymmetricrn  r4  r  r  )rN  rM  r   ecolorcapthickzMixed sym., log yr.  zVariable errorbarsr%  r1   r2   rM  rN  r  )rj   rr   
longdoublerD  r  r&   r   rj  rI  r4   r   locator_paramsr  maximumr  suptitle)
r1   r2   rN  rM  r,   r!   r  ylower
yerr_lowerr  s
             r"   test_errorbarr    s    		#q#R]333A
r

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

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

A#bgajj. E9eQuW%&&(D:D	z	"	" . .
Aqt---. . . . . . . . . . . . . . .	z	"	" . .
Aqt---. . . . . . . . . . . . . . .	z	"	" 9 9
Aqt$C8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s6   )CCC3DD D=E%%E),E)errorbar_limitsc                  B   t          j        ddd          } t          j        |            }d}d}d}t          j                    \  }}|                    | ||||d           t          j        |           }d|g d	<   |                    | |dz   ||||d
           t          j        |           }d|g d<   |                    | |dz   ||||d           |                    | |dz   dd|||||d
  
         d}t          j        | d          }d|ddg<   |}	|}
t          j        |           }t          j        |           }d|dg<   d|dg<   |                    | |dz   dd|||	|
||dddd           |                    d           |	                    d           d S )Nr   r%  r   r   dottedr   )rM  rN  r  r   T)r8   r   rg  r   )rM  rN  uplimsr  r   )r9   r6  rv  r   r1  )rM  rN  lolimsr  r   r   r   rv  magenta)r   r  rM  rN  r  r  r  r   r   r   r  r  r7  r   cyan)r   r  rM  rN  xlolimsxuplimsr  r  r  r'  capsizer   )r   r%  zErrorbar upper and lower limits)
rj   rr   rD  r&   r   rI  
zeros_like	full_liker  r4   )r1   r2   rM  rN  r  r,   r!   r  r  r  r  s              r"   test_errorbar_limitsr    s   
	#sC  A
r

ADD	BlnnGC KK14drK@@@ ]1FF999KK1S5t$v"     ]1FF999KK1S5t$v"     KK1S5Df9  F F F D<3DD!QLGG]1F]1FFA3KFA3KKK1S5D&fa     KKLL233333r$   c                     t          j        d          } t          j        d          }t          j        | |ddd          \  }}}|J |D ]@}t          j        |                                t          j        d          k              sJ Ad S )Nr   r8   r7  r  r  )rj   rr   r&   rI  r  r  r  r  )r1   r2   plotliner
  barlineserrbars         r"   test_errorbar_nonefmtr    s    
	!A
	!ALAAA6JJJHa C Cvf&&((GOD,A,AABBBBBBC Cr$   c                     t          j        d          } t          j        d          }t          j        | |ddddddddd	d
          \  }}}|                                dk    sJ |                                dk    sJ d S )Nr   r8   Noner  rd   z	steps-midroundr  r  bevel)
rM  rN  r  r   r  r  dash_capstyledash_joinstyler  r  )rj   rr   r&   rI  get_fillstyleget_drawstyle)r1   r2   r  r
  s       r"   "test_errorbar_line_specific_kwargsr    s     		!A
	!A\!QQQ6),,707181729; ; ;NHa !!##v----!!##{222222r$   c           	      z   |                                 }|                    g dg ddddd           |                    g dg ddd	d
dd           |                    g dg dddddd           |                    dd           t          g dg dg dg d          }t	          j        d|           |                                  }|                    g dg dd           |                    g dg ddd	           |                    g dg ddd           |                    dd           d S )N)r9   r6  r~   rM  r   rD  r  r)  )r1   r2   rN  r  r   r  r9   r   r6  z	tab:greenr  r2   )r1   r2   rN  r   r  r   r  r6  r   r  ztab:bluer  r   r<   )r1   r2   rN  r   r  r   r  r8   r4  )rD  r  r  )r  r  r   )r)  r2   r<   )r*  r  rF  )r  r   r  r   ro  )
prop_cycler1   r2   rN  )r1   r2   rN  r   )r1   r2   rN  r   )r   rI  r  r
   r&   rc)r   r    r!   _cycles       r"   test_errorbar_with_prop_cycler    s   					BKK***			  . . .KK***			;s  - - -KK***			  . . .KK2((('@ @ @FF6f%%%%					BKK***			K444KK***			;KGGGKK***			KDDDKK2r$   c                     t          j        ddd          } | d| z
  z  }|dz  }t          j                                                    }t          j        t          d          5  |                    | ||d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    | ||d	           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    | ||ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    | ||d           d d d            d S # 1 swxY w Y   d S )Nr   r8   r  r  znot a tuple of two integersrx  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rj   r
  r&   r   r   r   r   r  rI  )r1   r2   rN  r!   s       r"   test_errorbar_every_invalidr    si   
Aq"A	QqS	AQ3D				 	 B	z)F	G	G	G 6 6
Aq$95556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	z)F	G	G	G 5 5
Aq$84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	z)H	I	I	I : :
Aq$E4=999: : : : : : : : : : : : : : :	z)A	B	B	B 5 5
Aq$84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5sH   $B

BB0CCC<D$$D(+D(
E11E58E5c                  >   t          j                                                    } t          j        t
          d          5  |                     dgdgdgdggdgdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgdgdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgdgdgg	           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        d
          }d |D             }|                     ||t          j
        d          	           d d d            d S # 1 swxY w Y   d S )Nz''xerr' must not contain negative valuesrx  r   r  r8   )r1   r2   rM  rN  )r1   r2   rM  z''yerr' must not contain negative valuesr  r   c                 F    g | ]}t          j         d d|dz  dz             S )r  rg  r9   r8   r5  rQ  s     r"   r   z/test_xerr_yerr_not_negative.<locals>.<listcomp>  s/    >>>qXtQA	22>>>r$   r  r  )r&   r   r   r   r   r  rI  rj   rr   r5  r  )r!   r1   r2   s      r"   test_xerr_yerr_not_negativer    s   				 	 B	zF
H 
H 
H J J
qcaS}TFQC=IIIJ J J J J J J J J J J J J J J 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 7 7IaLL>>A>>>
a!+555 	 	7 	7 	7	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sI   $A11A58A5CC	C(DDD9AFFFc                    t          j        ddd          }|d|z
  z  }|dz  }|                                }|                                 }t          dg d          D ]v\  }}|dz  }|                    ||||dfd|	           |                    |||d
           |                    ||d d         ||d d         ||d d         d|d           w|                    ||dz   |ddd           |                    |dd d         |dd d         dz   dd
           |                    ||dz   |dd           |                    ||dz   |t          dd d          t          dd d          ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           |                    ||dz   |g ddz  g ddz  ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           d S )Nr   r8   r  r  rgbk)r   r   r9   r\  r  r6  )r  r  r<   r  )r<   rk  r7  )r  r<   r   r   )r8   r6  r   )r  r  r   r  )r  r   r   r9   r   r  )r  r  r  r<   r   r  r   r=  )rj   r
  r   r   rI  r   r  )	r   r    r1   r2   rN  rx   rw   r   shifts	            r"   test_errorbar_everyr    s*   
Aq"A	QqS	AQ3DF!!GFLLL11 8 8u	S 	At
!"e 	 	- 	- 	-
 	AqE#...%((Quxax[$uxax. !U 	 	8 	8 	8 	8 QCLLL
KK!$Q$14a43CK888
OOAq3waVO<<< QC%42C2C$Qa00$C  1 1 1 KK!$Q$14a43tCK@@@
OOAaddGQqt!tWs]DAJ6  3 3 3 QC2F2F2F2J333a7$C  1 1 1 KK!$Q$14a43tCK@@@
OOAaddGQqt!tWs]DAJ6  3 3 3 3 3r$   
elinewidthr  c                 B    t          j        g dg dg d|            d S )Nr  )rN  r  )r&   rI  )r  s    r"   test_errorbar_linewidth_typer  1  s/     LIIIIII*MMMMMMr$   c                    |                                  }t          d          }t          j        ddt          j        t          j        dg          }t          j        ddt          j        t          j        dg          }|                    |||           |                                 }|                    ddgddgddg           |                    dgdgdgd	           d S )
Nr   r8   r9   r   r6  r  r   r  r   )r   r   rj   rU  r  rI  )r   r    r!   xsysess         r"   test_errorbar_nanr  8  s    					B	qB	1a+	,	,B	1a+	,	,BKKB					BKKAAA'''KKaS1#4K(((((r$   hist_stacked_stepfilledc                  (   t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d
| |fi}t          j                    \  }}|                    d
dd|           d S )Nr8   r   ru  r   r~   r@  r  Tr  r1   )r  r  r  rj   r
  r&   r   r  )d1d2r,   r!   r  s        r"   test_hist_stacked_stepfilledr  D  s     
Q2		B	QB		BlnnGCGGRH|TG::: "b?DlnnGCGGC,4G@@@@@r$   hist_offsetc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | d           |                    |d	           d S )
Nr   r~   r@  r8   r   ru  r   r  r  r  r  r  r,   r!   s       r"   test_hist_offsetr  R  sk     
QB		B	Q2		BlnnGCGGBqGGGBrGr$   zhist_step.pngc                      t          j        ddd          } t          j                    \  }}|                    | d           |                    dd           |                    dd	           d S )
Nr8   r   ru  r  r  r   r~   r   r   )rj   r
  r&   r   r  r  r  r  r,   r!   s      r"   test_hist_stepr  \  sj     
Q2		BlnnGCGGBG   KK2KKAr$   zhist_step_horiz.pngc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d S )
Nr   r~   r@  r8   r   ru  r  rQ   )r  rS   r  r  s       r"   test_hist_step_horizr  f  s[     
QB		B	Q2		BlnnGCGGRHv<G@@@@@r$   hist_stacked_weightsc                     t          j        ddd          } t          j        ddd          }t          j        ddd          }t          j        d	d
d          }t          j                    \  }}|                    | |f||fdd           d S )Nr   r~   r@  r8   r   ru  r  r  r  r   r  T)weightsr  r  r  )r  r  w1w2r,   r!   s         r"   test_hist_stacked_weightedr  o  s     
QB		B	Q2		B	T3	#	#B	T2r	"	"BlnnGCGGRHr2htGLLLLLr$   zstem.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           |                                 d S )	Nr   r9   r   C2-.zk+C1-. )linefmt	markerfmtbasefmtr/   )rj   r
  r  r&   r   r  rm  rH   r(  s      r"   	test_stemr  z  sp    
CRUC((AlnnGC GGArvayydF#  G G GIIKKKKKr$   c                  J   d } t          j                    \  }}g d}g d} | |                    |          g d|f            | |                    ||          ||f            | |                    ||d          ||f            | |                    ||d          ||f            | |                    ||dd	          ||f            | |                    |d          g d|f            | |                    |d          g d|f           d
S )z5Test that stem() correctly identifies x and y values.c                     t          t          | j                                                  \  }}||d         k    sJ ||d         k    sJ d S Nr   r8   )mapr  
markerliner5  )stem_containerexpectedr1   r2   s       r"   _assert_equalz%test_stem_args.<locals>._assert_equal  sT    42;;==>>1HQKHQKr$   r8   r   r   rg  rv  r\  rM  )r   rS  r  zb--)r  r  Nr&   r   r  r  r,   r!   r1   r2   s        r"   test_stem_argsr    sa        
 lnnGC		A		A M"''!**			1~6666M"''!Q--1a&1111M"''!Q'..!Q@@@@M"''!Q&&!Q8888M"''!Qu'==AOOOOM"''!U'++yyy!nEEEEM"''!U##yyy!n======r$   c                     	 	 dd} t          j                    \  }}g d}g d} | |                    ||          dd            | |                    ||d	          dd            | |                    ||d
	          dd            | |                    ||d          ddd            | |                    ||d
          ddd            | |                    ||dd	          ddd            | |                    ||dd	          ddd            | |                    ||dd	          ddd            | |                    ||dd	          ddd            | |                    ||dd	          ddd            | |                    ||d          ddd            | |                    ||dd          ddd            | |                    ||dd          ddd           dS )zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 F   |.t          j        | j                                        |          sJ |.t          j        | j                                        |          sJ || j                                        |k    sJ | j                                        dk    sJ dS )zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        Nr  )r  r  	stemlinesr  r  r  get_linestyle)r  	linecolormarkercolorr   s       r"   r  z*test_stem_markerfmt.<locals>._assert_equal  s      %(2244     "%)3355     !,7799VCCCC(6688FBBBBBBr$   r  r  r  r   )r  r   r1   )r  r  rF  )r  r  r   r  gxr  r  r   r  )r  r  )NNNr  r  s        r"   test_stem_markerfmtr    s   BF!C C C C$ lnnGC		A		A M"''!Q--T#>>>>M"''!Q#'..DMMMMM"''!Q$'//SMMMM M
1c3s4 4 4 4 M
1d3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cT**3s4 4 4 4 M
1cS))3v7 7 7 7 M
1cR((3v7 7 7 7
 M
1c""3s4 4 4 4 M
1cS113s4 4 4 4 M
1cT223s4 4 4 4 4 4r$   c                      t          j        dd          \  } }t          j                            d          t          j                            d          g}ddg}|                    ||           d S )Nr8   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r&   r   dateutilparserparser  )r,   r!   r  r  s       r"   test_stem_datesr    sd    l1a  GC
/

 4
5
5
/

 4
5
5
7B
sBGGBOOOOOr$   zstem_orientation.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           d S )	Nr   r9   r@  r  kxr  rQ   )r  r  r  rS   )rj   r
  r  r&   r   r  rm  r(  s      r"   test_stem_orientationr    se    
C25"%%AlnnGCGGArvayydF$  & & & & &r$   hist_stacked_stepfilled_alphac                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fddd	
           d S )Nr8   r   ru  r   r~   r@  r  Tr   )r  r  r  r  r  s       r"   "test_hist_stacked_stepfilled_alphar    s]     
Q2		B	QB		BlnnGCGGRH|TGEEEEEr$   hist_stacked_stepc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d S )
Nr8   r   ru  r   r~   r@  r  Tr  r  r  s       r"   test_hist_stacked_stepr    s[     
Q2		B	QB		BlnnGCGGRHvtG44444r$   hist_stacked_normedc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd           d S )	Nr8   r   ru  r   r~   r@  T)r  r  r  r  s       r"   test_hist_stacked_densityr     s[     
Q2		B	QB		BlnnGCGGRHdDG11111r$   zhist_step_bottom.pngc                      t          j        ddd          } t          j                    \  }}|                    | t          j        d          d           d S )Nr8   r   ru  r~   r  )rO   r  )rj   r
  r&   r   r  rr   r  s      r"   test_hist_step_bottomr"  
  sL     
Q2		BlnnGCGGBry}}|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          |                                |           d S )	Nr   r8   r9   r   r   r   r8   r8   r8   r9   r  r  r  r   r9   r8   r   r&   r  r   get_xyr  r  r
  polygonr  s        r"   test_hist_stepfilled_geometryr+    s    <<DD&**68 8 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          |                                |           d S )	Nr$  r%  r  r&  r   r9   r8   r   r'  r)  s        r"   test_hist_step_geometryr-    s    <<DD&**02 2 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          |                                |           d S )Nr$  r%  r8   r9   r   r  r  rO   r  r   r8   r   r   r9   r5  r   r'  r)  s        r"   $test_hist_stepfilled_bottom_geometryr1  '  s    <<DD&*(3*68 8 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          |                                |           d S )Nr$  r%  r/  r  r0  r   r8   r   r   r9   r5  r   r'  r)  s        r"   test_hist_step_bottom_geometryr3  3  s    <<DD&*(3*02 2 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          |                                |           |d	         \  }ddgdd
gd	d
gd	dgddgddgd
dgd
d	gdd	gdd
gd	d
gd	dgddgg}t          |                                |           d S )Nr$  r%  rM  Tr  r  r  r  r9   r   r8   r   r6  r&   r  r  r   r(  r  data_1data_2r
  rB  r*  r  s          r"   %test_hist_stacked_stepfilled_geometryr:  >  sb   <<DFYYFHff-"&%)&24 4 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            	         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          |                                |           |d	         \  }ddgdd
gd	d
gd	dgddgddgd
dgd
d	gg}t          |                                |           d S )Nr$  r%  rM  Tr  r5  r9   r   r8   r   r6  r6  r7  s          r"   test_hist_stacked_step_geometryr<  T  s    <<DFYYFHff-"&%)&,. . .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          |                                |           |d
         \  }d	dgd	dgd
dgd
dgddgddgddgddgddgddgd
dgd
dgd	dgg}t          |                                |           d S )Nr$  r%  rM  Tr/  r  r  r  rO   r  r9   r   r8   r   r   r5  r   r6  r  r  r6  r7  s          r"   ,test_hist_stacked_stepfilled_bottom_geometryr?  h  si   <<DFYYFHff-"&%)$/KK&2	4 4 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            	         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          |                                |           |d
         \  }d	dgd	dgd
dgd
dgddgddgddgddgg}t          |                                |           d S )Nr$  r%  rM  Tr/  r  r>  r9   r   r8   r   r   r5  r   r6  r  r  r6  r7  s          r"   &test_hist_stacked_step_bottom_geometryrA    s'   <<DFYYFHff-"&%)$/KK&,	. . .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                    \  }}|                    | d	d
d||           |                    ddd           d S )N)r   r   r   r   r  @  i  rm  ru  r-  6  r,  )ru     r@  r4  r   i  )r  r  r  r  r  rc     )r&  r&  r&  r&  r  r  r   r   r   r   r~   r  )+  rH  rH  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   r  )r  r   g `p?)r  r   gǟ?)r  gˢ`?r   )gC?r  r   )gK?r  r   )r   r  z yellowr  r  r~   r  mid)r  r  r,  r   r/   zupper right)r   r   r8   )r@   bbox_to_anchorr  )r&   r   r  rH   )r  rt  labelsr,   r!   s        r"   test_hist_stacked_barrL    s     
D	C	C	#	#	#%H%H%H	8	8	8	H	H	H	A	A	A		CA
O O OF @??FlnnGCGGABU&    II-
!IDDDDDr$   c                      t          j        ddg          } t          j        ddgddggdd|            |                                 ddgk    sJ d S )Nr~   ru  r   r8   r9   r  )r  rO   )rj   rU  r&   r  tolistrt  s    r"   %test_hist_barstacked_bottom_unchangedrO    s^    
"bAHq!fq!fq<BBBB88::"b!!!!!!r$   c                      t          j                    \  } }|                    g t          d          t          d          gd           d S )Nr~   r  r  )r&   r   r  r   r+   s     r"   test_hist_emptydatarQ    s@    lnnGCGGRrE"II&G88888r$   c                     t          j                    \  } }|                    ddgd          \  }}}|d                                         dk    sJ |                    ddgdg          \  }}}|d                                         dk    sJ |                    ddgd           \  }}}|d                                         dk    sJ |                    ddgd          \  }}}|d                                         dk    sJ |                    ddgd          \  }}}|d                                         dk    sJ d S )Nr   r8   r  r(  r  00)r&   r   r  r[   )r,   r!   r
  r  s       r"   test_hist_labelsrT    sY   lnnGC!Qq))JAq$7#%%%%!Qs++JAq$7#%%%%!Qt,,JAq$7,....!Qs++JAq$7#%%%%!Qt,,JAq$7$&&&&&&r$   transparent_markersc                      t           j                            d           t           j                            d          } t          j                    \  }}|                    | ddd           d S )Nr   r@  rL  r7  r   )r  r   rj   rk   rl   r&   r   r   r  s      r"   test_transparent_markersrX    sZ    INN19BDlnnGCGGD#6cG22222r$   rgba_markersc            
         t          j        d          \  } }ddg}ddg}d dg}t          dd	
          }t          |          D ]n\  }}t          |          D ]Y\  }}	t          |          D ]D\  }
} ||         j        |dz   |
dz   df||	|d|  ||         j        |dz   |
dz   df|	|d| EZo|D ]}|                    g d           d S )Nr9   r  r  r  rN  )r   r   r8   r   r   r   ru  )r  r&  r8   r   )r  r'  r  r   r1   )r'  r  )r   r6  r   r   )r&   r   r~  r  r   r'  )r,   r  rcolorsbcolorsalphaskwrI  r  rE  rcolorr)  bcolorr!   s                r"   test_rgba_markersra    sS   |!$$$HC^,G^,GC[F	"			Bf%% J J5"7++ 	J 	JIAv&w// J J	6AAaC1c /v6"'/ /+-/ / /AAaC1cIvUIIbIIIIJ	J
   
 r$   mollweide_gridc                      t          j                    } |                     d          }|                                 d S )N	mollweidery  )r&   r   r   r  r+   s     r"   test_mollweide_gridre    s3     *,,C	K	0	0BGGIIIIIr$   c                     t          j                    } |                     d          }t          j        t          j         t          j        d          }t          j        t          j         dz  t          j        dz  d          dd         }t          j        ||          \  }}t          j        |                                |                                f          j	        }|j
                            |          }|j
                                                            |          }t          j                            ||d           d S )	Nrd  ry  r  r   rG  r8   r   r   )r&   r   r   rj   r
  r  r}  r  r"  r  transProjectionr:  invertedr   r   )r,   r!   lonlatllr  ll2s          r"   &test_mollweide_forward_inverse_closurerm    s    *,,C	K	0	0B +rufbeS
)
)C
+rufslBECK
5
5ad
;C{3$$HC	CKKMM3;;==1	2	2	4B 
		%	%b	)	)B 

%
%
'
'
1
1"
5
5C J((S!44444r$   c                      t          j                    } |                     d          }t          j        ddd          }t          j        ||          \  }}t          j        |                                |                                f          j        }|j	        
                                                    |          }|j	                            |          }t          j                            ||d           d S )Nrd  ry  r   r8     r   )r&   r   r   rj   r
  r}  r  r"  r  rg  rh  r:  r   r   )r,   r!   r1   r2   r  rk  xy2s          r"   &test_mollweide_inverse_forward_closurerq    s     *,,C	K	0	0B 	Aq#A;q!DAq	AIIKK-	.	.	0B 
		$	$	&	&	0	0	4	4B 

&
&r
*
*C J((S!44444r$   
test_alphac            	          t           j                            d           t           j                            d          } t          j                    \  }}|                    | dg dg ddd           |                    | d	z   dg dg dddd
           |                    | dz   dg dg dddd           |                    | dz   dg dg ddd           |                    | dz   dg dg ddd           d S )Nr   r@  z-Dr  r  ru  r~   )r   r  r   rR  r9   r8   )r   r  r   rR  r  r6  r   r  rv  rW  r  s      r"   rr  rr    sT   INN19BDlnnGC GGD$iii]]]b  " " " GGD1Hd---]]]b    
 GGD1Hd)))b    
 GGD1Hd---]]]b  " " " GGD1Hd---YYYb  " " " " "r$   	eventplotc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          |          }g dgt	          |           z  }g dg dg dg d	g d
g dg}||z   }dt          j        dt	          |                     dz  z   }g d}|                                |z   }	dgt	          |           z  }
g d}|
|z   }t          j                    }|                                }|	                    |||	|          }t	          |          }||k    sJ |||	|d}t          j                    }|                                }|	                    dddd|          }t	          |          }||k    sJ d S )Nr   r   ru  r  )r   r8   r  r  r  r  )r8   rK  r   )r8   r   r8   )r   r8   r8   r  Q?)ir  r8   r   r  r~   )r   r9   r8   r8   r   r   )rt  lineoffsetslinelengths)r   r<   lork  r   r<   ry  rk  )rt  rw  rx  r  )
rj   rk   rl   rN  r  rr   r&   r   r   rt  )r`  data2r  num_datasetscolors1colors2rt  lineoffsets1lineoffsets2rw  linelengths1linelengths2rx  r,   axobjcollsnum_collectionss                    r"   test_eventplotr  -  s   INN1Ib"X&&--//EIaW%%,,..E5=Dt99LzzlSZZ'Gyyyyyy{{yyyyG wF	!SZZ00366L+++L%%'',6K53u::%L'''L-K
*,,COOEOOD[(3  5 5E %jjOl**** fK{KKD
*,,COOEOOE#4(,4  9 9E%jjOl******r$   ztest_eventplot_defaults.pngc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          j                    }|                                }|                    |           dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r   ru  r  N)rj   rk   rl   rN  r&   r   r   rt  )r`  rz  r  r,   r  s        r"   test_eventplot_defaultsr  Y  s     INN1Ib"X&&--//EIaW%%,,..E5=D
*,,COOE	OODr$   rt  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r1  r  N)r8   r   r8   r   c                    dgdgdgdgg}d | D             }t          |          dk    r|d         }t          j        t          j        |          t          |          df          }t          j                    \  }}t          |           dk    r| d         } |                    ||           }t          ||          D ]'\  }}t          |
                                |           (dS )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r8   r9   r   c                     g | ]}||nd	S )Nr  r   r   r<   s     r"   r   z)test_eventplot_colors.<locals>.<listcomp>t  s     ===Q]===r$   r6  rt  N)r  rj   r  r  to_rgba_arrayr&   r   rt  r   r   r  )rt  r  r   r,   r!   r  r  r   s           r"   test_eventplot_colorsr  j  s     C!qcA3D >=f===H 8}}A;w4X>>TAOOHlnnGC
6{{a,,tF,33K;11 1 1e((%00001 1r$   c                     t          j                    \  } }|                    g dg dgd          }|d                                         dk    sJ |d                                         dk    sJ |                    g dg dgddg          }|d                                         dk    sJ |d                                         dk    sJ t	          j        t          d	          5  |                    g dg dgg d
           d d d            n# 1 swxY w Y   t	          j        t          d	          5  |                    g dddg           d d d            d S # 1 swxY w Y   d S )N)r   r9   r6  )r8   r   r   r\  r  r  r   r8   r   zalpha and positions are unequalrx  )r   r  r'  )r&   r   rt  	get_alphar   r   r  )r,   r!   r  s      r"   test_eventplot_alphar    s   lnnGC ,,			<<<8,DDKq>##%%,,,,q>##%%,,,, ,,			<<<8c
,KKKq>##%%,,,,q>##%%,,,,	z)J	K	K	K G G
iii.oooFFFG G G G G G G G G G G G G G G 
z)J	K	K	K 2 2
YYYsCj1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s$   . DD!D E))E-0E-z!test_eventplot_problem_kwargs.pngc           
         t           j                            d           t           j                            dg                                          }t           j                            dg                                          }||g}t	          j                    }|                                }|                    |ddgddgdd	gd	dgd
dgddg           t          |           dk    sJ t          d | D                       sJ dS )z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   ru  r~   rF  r*  r<   r  r9   r8   r   dasheddashdotr  )rt  r   r  r=  ro  r   r   c              3   T   K   | ]#}t          |j        t          j                  V  $d S r  )
issubclasscategoryr   MatplotlibDeprecationWarning)r   wis     r"   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  sE       " " "+s'GHH " " " " " "r$   N)
rj   rk   rl   rN  r&   r   r   rt  r  r  )recwarnr`  rz  r  r,   r  s         r"   test_eventplot_problem_kwargsr    s%    INN1IbT""))++EIbT""))++E5>D
*,,COOE	OOD:* !1v !f '2((3  5 5 5 w<<1 " " " " " " " " " " " "r$   c                      t          j        dd          \  } }|                    g gdg           t          j                     d S )Nr8   )r  r  r  r  r  r&   r   rt  r  r+   s     r"   test_empty_eventplotr    sB    l1a  GCLL"34L555HJJJJJr$   r  rS   )NverticalrQ   c                     |i nd|i}t          j        dd          \  }} |j        | fi | t          j                     dS )z#Introduced when fixing issue #6412.NrS   r8   r  )r  rS   optsr,   r!   s        r"   test_eventplot_orientationr    sU     $22=+*FDl1a  GCBLHJJJJJr$   c                    t          j         ddd          t          j         ddd          t          j         ddd          g}t          j         ddd          t          j         ddd          g}|                                }|                    |d           |                    |d           |                                 }|                    ||g           d S )	Nr  r8   r9   r   r  rj  r   )rw  )r5  r   rt  )r   r    ts_1ts_2r!   s        r"   test_eventplot_units_listr    s     dAq))8+<T1a+H+HdAq))+DdAr**H,=dAr,J,JKD					BLL1L%%%LL1L%%%					BLL$r$   zmarker_styles.pngc            
         t          j                    \  } }t          t          j        j        j        d           }|                    d           dg|}t          |          D ]\\  }}|                    |dz  dz  t          j
        d          dz  z   t          j        d          dz  |z  d|d|dz  z   |           ]d S )	Nc                 Z    t          t          |                     t          |           z   S r  )r
  r  r1   s    r"   r  z$test_marker_styles.<locals>.<lambda>  s    3tAww<<A#6 r$   )r  r7  r9   r   r~   r   )r   r   r   r/   )r&   r   sortedrV   markersr  rp  r  r   rj   rr   r   )r,   r!   r  r2   r   s        r"   test_marker_stylesr    s    lnnGC
 Z'3;668 8 8GNN6  Gw'' @ @	6
Q	BIbMM",,bgbkk"nQ.>""QqS& 	 	@ 	@ 	@ 	@@ @r$   zrc_markerfill.pngc                      t          j                    \  } }t          j        d          }t	          g d          D ]1\  }\  }}|t
          j        d<   |                    ||z   |           2d S )Nr\  ))r>   r  )rO   r   )r7  r  zmarkers.fillstylerB  )r&   r   rj   rr   r  rV   r   r   )r,   r!   r1   idxr   r   s         r"   test_markers_fillstyle_rcparamsr    s~    lnnGC
	!A ):::!< !< & &_eV38
/0
#f%%%%& &r$   zvertex_markers.pngc                  H   t          t          d                    } d}g d}t          j                    \  }}|                    | d|d           |                    | d d d         d|d           |                    ddg           |                    ddg           d S )Nr~   ))r   r   rc  rn  rd  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    s    b		??D:O999NlnnGCGGDBCG@@@GGD2J"^GEEEKKRKKRr$   vline_hline_zordererrorbar_zorderx86_64c                  ~   t          t          d                    } t          j                    }|                                }|                    | dd           |                    dddd           |                    dddd           |                    dd	dd           |                    d
ddd           |                    d           t          j                    }|                                }t          t          d                    } t          j
        d          }t          t          d                    }|                    | ||ddd           t          d          D ]5}|                    |dd|           |                    | dd|           6|                    d           d S )Nr~   r   )rR  rk  r8   r1  )r   rR  rk  r   r\  r  r9   r)  r   zaxvline and axhline zorder testrF  )rN  rk  rR  r   )rR  r   rk  zerrorbar zorder test)r  r   r&   r   rj  r   rt   axvliner4   rj   r  rI  )r1   r,   r!   r2   rN  rE  s         r"   test_eb_line_zorderr    s    	U2YYA *,,C	BGGA"QGJJq"QJ///JJqBrJ222JJq1J---JJq1J---LL2333 *,,C	BU2YYA
Ab		??DKK14asK;;;2YY 2 2


1#a
000


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


                 sY   AAA6BB"BC88C<?C<E**E.1E.#*GG!G)vlines_basicvlines_with_nanvlines_maskedc                     g d} g d}t          j                    \  }}|                    | d|dd           g d}dd	d
dt          j        dg}t          j        d
d          \  }\  }}}	|                    |d|dd           g d}
t          j        dd	d
ddg}|                    |
d|dd
d           g d}t          j        dd	d
dt          j        g}|	                    |d|dd           ||||	fD ]}|                    dd           |                                |                                k    sJ |                                |                                k    sJ |                                |	                                k    sJ t          j                    \  }}t          j                            g dd          }t          j                            g dd          }t          j                            g dd          }|                    |||dd           |                    dd           d S N)r9   r   r6  r   r\  )r9   r   rv  r9   r   r  r   rt  r=  )r9   r   r6  r   r  r\  r9   r  r   rv  )r6  rv  )r  r{  rF  rD  )rt  r=  r   r)  r~   )r9   r6  r  rv  r~   r  )r   r8   r   r   r9   r8   )rM  r  r  rj     r2  r2  r  )	r&   r   rs   rj   r  r  r   r	   masked_equal)r  r  r!  r  rX  rY  r"  r!  r"  r>  x3r<  x4y4r!   fig3ax5x5ymin5ymax5s                       r"   test_vlinesr  u  N    
B			BID#JJr1bJ222 
		B
RArvq	!BLq&AAAD/3SJJr1bJ222			B
&!RAq	!BJJr1bTJBBB			B
&!RArv	&BJJr1bJ222 Cc"  
Ar <<>>S\\^^++++<<>>S\\^^++++<<>>S\\^^++++ID#			000!	4	4BE222A66EE777<<EJJr5%qJ999LLBr$   c                  (   t          j                    \  } }t          j        ddi          5  |                    ddd          }t          j                            |                                d          sJ 	 d d d            d S # 1 swxY w Y   d S Nzlines.colorr1  r   r   r8   )r&   r   r   r   rs   rt  r  r  r,   r!   r!  s      r"   test_vlines_defaultr        lnnGC	.	/	/ ? ?		#q!$$z$$U__%6%6>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?   ABBB)hlines_basichlines_with_nanhlines_maskedc                     g d} g d}t          j                    \  }}|                    | d|dd           g d}dd	d
dt          j        dg}t          j        d
d          \  }\  }}}	|                    |d|dd           g d}
t          j        dd	d
ddg}|                    |
d|dd
d           g d}t          j        dd	d
dt          j        g}|	                    |d|dd           ||||	fD ]}|                    dd           |                                |                                k    sJ |                                |                                k    sJ |                                |	                                k    sJ t          j                    \  }}t          j                            g dd          }t          j                            g dd          }t          j                            g dd          }|                    |||dd           |                    dd           d S r  )	r&   r   hlinesrj   r  r  r   r	   r  )r  r  r!  r  rY  rX  r"  r!  r"  r>  r<  r  r  r  r!   r  r  y5xmin5xmax5s                       r"   test_hlinesr    r  r$   c                  (   t          j                    \  } }t          j        ddi          5  |                    ddd          }t          j                            |                                d          sJ 	 d d d            d S # 1 swxY w Y   d S r  )r&   r   r   r   r  rt  r  r  r  s      r"   test_hlines_defaultr    r  r  r   rK  r6  c                    g d}|                      ddd                              |dd|d           |                      ddd                              |dd|d           g d}g d}|                     ddd                              |dd|d           |                     ddd                              |dd|d           d S )	N)r1  r   r   r  r  r9   r8   r   r   r  )r8   r9   r   r   )r1  r   r   r  )r   rs   r  )r   r    r  test_colors	expect_xyexpect_colors         r"   test_lines_with_colorsr    s%    ?>>KAq!!((q!0;q ) J J JAq!!((q!0;q ) J J J I555L1a  ''	1a/;q ( J J J1a  ''	1a/;q ( J J J J Jr$   vlines_hlines_blended_transform)r   r   c                     t          j        ddd          } t          j        |            t          j        dt           j        z  | z            z   dz   }t          j        ddd          \  }\  }}|                    | |d	           |                    dd
gdd|	                                d           |                    | |d	           |
                    ddgdd|                                d           d S )Nr  r.  r   r9   r~   r8   r  r  r(  r  rg  r   r   rF  )rh   ri   r:  rt  r  r\  r|  )yminymaxr:  rt  )rj   rr   rD  r  r  r&   r   r   r  get_yaxis_transformrs   get_xaxis_transform)r  r  r,   haxvaxs        r"   $test_vlines_hlines_blended_transformr    s    		#tS!!A
r

RVAIM***R/Al1a888OC#sHHQ3JJAwQS00223  @ @ @HHQ3JJ1vADC4K4K4M4M      r$   step_linestyler   c            	      f   t          j        d          x} }t          j        dd          \  }}|                                }g d}t          ||          D ]\  }}|                    | |d|d           |                    | |dz   d|d           |                    | |dz   d|d	           |                    d
dg           |                    d
dg           | ||dz   |dz   d}t          j        dd          \  }}|                                }g d}t          ||          D ]\  }}|                    ddd|d|           |                    ddd|d|           |                    ddd|d	|           |                    d
dg           |                    d
dg           d S )Nr~   r9   )rC  rD  r  r  r   pre)rR  r   r   r8   rI  r-  r   r\  )r  Y0Y1Y2r  r	  )rR  r   r   r  r	  r	  )	rj   rr   r&   r   r"  r   r  r  r  )r1   r2   r,   ax_lst	ln_stylesr!   r  r  s           r"   test_step_linestyler	    s   
 IbMMA ,q!$$KC^^F&&&Ifi((  B
1b666
1q5Q"E:::
1q5Q"F;;;
RG
RG !1Q3ac22D,q!$$KC^^F&&&Ifi((  B
Ta2UFFF
Ta2UFFF
Ta2V$GGG
RG
RG r$   mixed_collectionc                     t          j                    \  } }t          j        dddd          }t          j                            |gd          }|                    ddgd	d	gg           |                    d
dg           t          j                            |gd          }|                    ddgddgg           |                    d
dg           |	                    g dg dg           |j
                            d           |                    |           |                    |           |                    dd           |                    dd           d S )N)rv  rv  r6  r7  r   radiusr;  r<  T)match_originalr   r3  r8   r   r  ii)r   r   r   r   )r   r   r   r   r  rj  )r&   r   rp  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr  r_  r  r  r  )r,   r!   r<   r"  r#  s        r"   test_mixed_collectionr	    sh    lnnGCqFgNNNA 
	(	(!T	(	B	BBNNQFRH%&&&q!f 
	(	(!T	(	B	BBNNRGc3Z()))q!f''')9)9)9:;;;HubbKK2KK2r$   c                      t          j        t          j        d          t          j        d          d          } |                                  |                                                                 dk    sJ d S )Nr   r8   )r   r8   r   r   )r&   rq  rj   int32r   r  get_subplotspecget_geometryr  s    r"   test_subplot_key_hashr	  .  sa    	RXa[["(1++q	1	1BHHJJJ,,..,>>>>>>r$   )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r0  r   c                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        t          j        dt          j        z  t          j	        
                    ||          z                                d                    }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}||f||ffD ]	\  }	}
|
dz  }t          dt          j        t          j        |
                    z            }t%          t'          j                                        d          |          D ] \  }}|                    |	|
||||           !t%          t'          j                                        d          |          D ]>\  }}|                    |	|
||||dt           j                                                   ?dS )z)Test axes.specgram in default (psd) mode.r   r  r  r.  r6  r   r4  @ffffff@'@r~   r   r8   r9   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesr;  )r!	  r"	  r#	  r$	  r%	  r3  r  N)rV   r   intrj   rX  rr   r  r  r  multiplyouterr  rk   rl   r  r   r   log2r   r&   r   r   specgramrt  LogNorm)r  r"	  fstims
NFFT_freqsr1   y_freqs
NFFT_noisey_noise	all_sidesr2   r!	  r#	  r$	  r!   r%	  s                  r"   test_specgramr2	  4  sp    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvf~~-..J
	!Q"An
q25y2;,,VQ77788<<!<DDF FG R"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 	J 	J419Q"'"'$--00011SZ\\22155yAA 	4 	4IBKKh%U  4 4 4 4SZ\\22155yAA 	J 	JIBKKh%U&Z->-F-F-H-H  J J J J	J	J 	Jr$   )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        dt          j        z  t          j        	                    ||          z            
                    d          }d|dddf<   t          j        |          }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}	||f||ffD ]\  }}
|
dz  }t          dt          j        t          j        |
                    z            }t'          t)          j                                        d          |	          D ]!\  }}|                    ||
||||d           "t'          t)          j                                        d          |	          D ]?\  }}|                    ||
||||ddt           j                                        	  	         @dS )z%Test axes.specgram in magnitude mode.r   r  r  r.  r6  r   r4  r	  r	  r	  r   r   r8   r9   r  Nr   r~   r	  r   	magnituder!	  r"	  r#	  r$	  r%	  rf   r;  )r!	  r"	  r#	  r$	  r%	  rf   r3  r  )rV   r   r&	  rj   rX  rr   r  r  r'	  r(	  r  r  rk   rl   r  r  r   r   r)	  r   r&   r   r   r*	  rt  r+	  )r  r"	  r,	  r-	  r1   r2   r.	  r/	  r0	  r1	  r!	  r#	  r$	  r!   r%	  s                  r"   test_specgram_magnituder6	  X  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FS2Xv.//J
	!Q"A
q25y2;,,VQ77788<<!<DDAAaaaeHillGR"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 	J 	J419Q"'"'$--00011SZ\\22155yAA 	F 	FIBKKh%U  F F F FSZ\\22155yAA 	J 	JIBKKh%U&Z->-F-F-H-H  J J J J	J	J 	Jr$   )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        dt          j        z  t          j        	                    ||          z            
                    d          }d|dddf<   t          j        |          }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}	||f||ffD ]\  }}
|
dz  }t          dt          j        t          j        |
                    z            }dD ]}t'          t)          j                                        d          |	          D ]o\  }}|                    ||
|||||           t1          j        t4                    5  |                    ||
|||||d           ddd           n# 1 swxY w Y   pdS )z,Test axes.specgram in angle and phase modes.r   r  r  r.  r6  r   r4  r	  r	  r	  r~   r   r8   r9   r  Nr   r	  )r  phaser   r5	  dB)r!	  r"	  r#	  r$	  r%	  rf   r3  )rV   r   r&	  rj   rX  rr   r  r  r'	  r(	  r  r  rk   rl   r  r  r   r   r)	  r   r&   r   r   r*	  r   r   r  )r  r"	  r,	  r-	  r1   r2   r.	  r/	  r0	  r1	  r!	  r#	  r$	  rf   r!   r%	  s                   r"   test_specgram_angler:	  }  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvf~~-..J
	!Q"A
q25y2;,,VQ77788<<!<DDAAaaaeHillGR"Wr\""JINN1nbi77::BINN1<M<MNOOG333Ij)GZ+@A 
, 
,419Q"'"'$--00011& 	, 	,D !6!6q!9!99EE , ,	EADR(#)T  C C C]:.. , ,KKh'-U&*   , , ,, , , , , , , , , , , , , , ,,	,
, 
,s   %I	IIc                      t          j        t          j        d          dd          \  } }}}|                                \  }}}}|dk    r|dk    sJ dS )z;Test axes.specgram when Fs is None, should not throw error.r  Nr;  )r"	  r3  r   `   )r&   r*	  rj   r   
get_extent)specfreqsr  r  rh   ri   freq0freq1s           r"   test_specgram_fs_nonerB	    sX    bgcllt8LLLD%B!}}D$u2::$"******r$   c                 .   t          j        d          }t          j        |          }dt          j        d<   |                                                    |           dt          j        d<   |                                                     |           dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.ro  upperzimage.originr   N)rj   rr   r  r&   r   r   r*	  )r   r    r  signals       r"   test_specgram_origin_rcparamrF	    s     		#AVAYYF#*CL  ''' $+CL    (((((r$   c                      t          j        d          } t          j        |           }t          j        t
                    5  t          j        |d           ddd           dS # 1 swxY w Y   dS )z4Ensure passing origin as a kwarg raises a TypeError.ro  r   r  N)rj   rr   r  r   r   r   r&   r*	  )r  rE	  s     r"   test_specgram_origin_kwargrH	    s    
	#AVAYYF	y	!	! - -VG,,,,- - - - - - - - - - - - - - - - - -s   A&&A*-A*)zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c            
      h   d} d}|dz  |dz  |dz  g|dz  |dz  |dz  gg}t          d	|z  t          j        |          z            }t          j        d
| d|z            }t          j        dt          j        z  t          j                            ||          z                                d          }t          d	|z  dz            }t          j	        
                    d
           t          j	                            |           t          j	                            |           g}ddiddddddg}||f||ffD ]r\  }	}
|
dz  }t          dt          j        t          j        |
                    z            }t          t!          j                                        d          |          D ]m\  }} |j        t          j        |	          f|
|||d|}t+          |          d|                    dd          z   k    sJ |                    dd           nt          t!          j                                        d          |          D ]Z\  }} |j        |	|
|||d|}t+          |          d|                    dd          z   k    sJ |                    dd           [td S )Nr        Y@r6  r   r4  r	  r	  r	  r  r   r8   r9   r  r%	  r  r	  F)r%	  return_liner 	  Tr   )r!	  r"	  r#	  r$	  rK	  r   xlabelylabel)r&	  rj   rX  rr   r  r  r'	  r(	  r  rk   rl   r  r   r   r)	  r   r&   r   r   psdr  r  rX  r   csd)r  r"	  r,	  r-	  r1   ys_freqsr/	  ys_noise
all_kwargsr  r!	  r#	  r$	  r!   r  rets                   r"   test_psd_csdrU	    s    	A	B!tRT2b5!BsFBsFBtG#<=FTBY/00J
	!Q"Ava"%i"+"3"3FA">">>??CCCKKHTBY^$$JINN1	))!,,binnQ.?.?@HI&&u==&t<<>J 
+h
-CD ) )D19Q"'"'$--00011cjll33A66
CC 	) 	)JB"&++ E$2"*6E E=CE ECs88q6::mU#C#CCCCCCFF"RF((((cjll33A66
CC 	) 	)JB"&"4B"*6E E=CE ECs88q6::mU#C#CCCCCCFF"RF((((		)) )r$   )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                  
   d} d}|dz  |dz  |dz  g}t          d|z  t          |          z            }t          dt          j        t          j        |                    z            }t          j        d| d	|z            }t          j        dt          j        z  t          j        ||          z            d
t          j        d          z  z  	                    d	          }t          j
                            d           t          j        t          j
                            |           t          j
                            |           g          dz
  }g d}||d}	||fD ]}
t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1t          t!          j                                        d          |          D ]4\  }} |j        |
fd|i|	ddi\  }}}|                    dd           5t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1t          t!          j                                        d          |          D ]0\  }} |j        |
fd|i|	\  }}}|                    dd           1d S )Nr  rJ	  r6  r   r4  r  r9   r   r8   r~   r   r  r   r	  )r"	  r$	  r%	  r   rL	  r3  r9	  )r&	  rX  rj   r   r)	  rr   r  r  r(	  r  rk   rl   r  r  r   r   r&   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  r"	  fstims1r!	  r$	  r1   r.	  r0	  r1	  r  r2   r!   r%	  r>	  r?	  r  s                   r"   test_spectrumr[	    s/    	A	B!tRT2b5!Gtby3w<<'((Dbgbgdmm,,,--F
	!Q"Aq25y28Aw#7#77882ry||;KK INN1i22155ry~~a7H7HIJJROG333I&))Fw ) )SZ\\22155yAA 	) 	)IB 5 5a O Ou O O OD%FF"RF((((SZ\\22155yAA 	) 	)IB 5 5a !B !Bu !B !B !B<@!B !B !BD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((	)) )r$   c                     t          j                                        d          } | D ]}|j                            d           t          j        d          5  | d                             t          j        d                     | d         	                    t          j        d          t          j        d                     d d d            d S # 1 swxY w Y   d S )	Nr9   T)rh  r  r  r   r   r8   )
r&   r   r   r]   r   rj   r  rO	  r  rP	  r  r!   s     r"   test_psd_csd_edge_casesr^	    s    
*,,


"
"C $ $
d####	H	%	%	% - -A

28A;;A

28A;;,,,- - - - - - - - - - - - - - - - - -s   A.CCCc                 Z   |                                  }|                                }|                                }|                                 |                                 |                                 }|j                                         |j                                         d S r  )r   r  r  rp  rZ   tick_bottomr]   	tick_left)r   r    rw   ax_twinxax_twinyrx   s         r"   test_twin_removerd	    s    ""$$G}}H}}HOOOO  ""F L
Lr$   ztwin_spines.pngc                     d } t          j        d          }|                    d           |                                }|                                }|                                }|j        j                            d            | |           |j        j                            d           |	                    g dg dd	          \  }|	                    g dg d
d          \  }|	                    g dg dd          \  }|
                    dd           |                    dd           |                    dd           |                    dd           |j        j                            |                                           |j        j                            |                                           |j        j                            |                                           t!          dd          } |j        dd|                                d|  |j        dd|                                d|  |j        dd|                                d|  |j        dddi| d S )Nc                     |                      d           | j                            d           | j        d d                              d           d S )NTF)set_frame_onr  r   spinesr  s    r"   make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisible-  sN    

U###
	!!!  '''''r$   )r6  r   r(  rK  )rB   )ro  r  TrM  zb-)r   r   r9   zr-)r@  r   r  zg-r   r9   r6  r8   A   r   )r  r  r2   )r'  rt  r'  r1   r   )r&   r   r  r   r  rh	  rB   set_positionr   r   r  r  r]   r/   r_  r  r~  tick_params)	ri	  r,   hostpar1par2r"  r#  p3tkws	            r"   test_twin_spinesrr	  *  sj   ( ( (
 *V
$
$
$Cd###??D::<<D::<<D 	K""=111  %%%K!!$'''
))IIIyyy$
/
/CB
))IIIyyy$
/
/CB
))III|||T
2
2CBMM!QMM!QMM!QMM!RJr||~~...Jr||~~...Jr||~~...
AS
!
!
!CD<#bllnn<<<<<D<#bllnn<<<<<D<#bllnn<<<<<D%%#%%%%%%r$   ztwin_spines_on_top.pngc                     dt           j        d<   dt           j        d<   t          j                    } |                     ddd          }t          j        g dg dg          }|                                }|                    |d         |d         dz  d	
           |	                    |d         |d         dz  d	d           |                    |d         |d         dz  d
           |	                    |d         |d         dz  dd           |d         |d         dz  d}t          j                    } |                     ddd          }|                                }|                    ddd	|           |	                    ddd	d|           |                    ddd|           |	                    dddd|           d S )Ng      H@r8  r  r8   )r  iL  i  i  )rE  i-  r  r  r   g     @@z#BEAED4rG  r  )r   r  z#7FC97Fr   )rI  rE  rI  rE  )r   r  )r   r  r  )
rV   r   r&   r   r   rj   rU  r  r   r  )r,   r  r  r!  s       r"   test_twin_spines_on_toprt	  W  s    -1J()-1J)*
*,,C
//!Q
"
"C8---)))+ , ,D ))++CHHT!Wd1gckH333T!Wd1gck"EEEHHT!Wd1gckH333T!Wd1gck"EEE atAws{++D
*,,C
//!Q
"
"C
))++CHHS#YTH222S#YbtDDDHHS#YTH222S#YbtDDDDDr$   z(grid_which, major_visible, minor_visible))r   TT)majorTF)r  FTc                 H   t           j                            d| d           t          j                    \  }}|j                                         t          fd|j        j	        D                       sJ t          fd|j        j
        D                       sJ d S )NT)rV  zaxes.grid.whichc              3   R   K   | ]!}|j                                         k    V  "d S r  gridliner  )r   tickmajor_visibles     r"   r  z*test_rcparam_grid_minor.<locals>.<genexpr>  J       0 0 }((**m; 0 0 0 0 0 0r$   c              3   R   K   | ]!}|j                                         k    V  "d S r  rx	  )r   rz	  minor_visibles     r"   r  z*test_rcparam_grid_minor.<locals>.<genexpr>  r|	  r$   )r   r   rp  r&   r   r  r  r  rZ   
majorTicks
minorTicks)
grid_whichr{	  r~	  r,   r!   s    ``  r"   test_rcparam_grid_minorr	  v  s     LdzJJKKKlnnGCJOO 0 0 0 08.0 0 0 0 0 0 0 0 0 0 0 08.0 0 0 0 0 0 0 0 0 0r$   c                     t          j                    \  } }|                                 | j                                         |j        j        d         j                                        sJ |                    d           | j                                         |j        j        d         j                                        rJ |                    d           | j                                         |j        j        d         j                                        sJ |                                 | j                                         |j        j        d         j                                        rJ d S )Nr   FvisibleT)	r&   r   r  r  r  rZ   r	  ry	  r  r+   s     r"   	test_gridr	    s5   lnnGCGGIIIJOO8q!*6688888GGEGJOOx"1%.::<<<<<GGDGJOO8q!*6688888GGIIIJOOx"1%.::<<<<<<<r$   c                  H   t          j                    \  } }|                    ddd           |j        j        d         j                                        rJ |                    d           |j        j        d         j                                        sJ t          j        ddi          5  |	                                 |                    ddd           |j        j        d         j                                        sJ 	 d d d            d S # 1 swxY w Y   d S )	NTru	  r~   )resetr  	labelsizer   r1  rG  rV  )
r&   r   rl	  rZ   r	  ry	  r  r  r   r  r+   s     r"   test_reset_gridr	    sM   lnnGCNNWN;;;x"1%.::<<<<<GG%G8q!*6688888	d+	,	, = =




TB???x"1%.::<<<<<<= = = = = = = = = = = = = = = = = =s   1ADDDc                 H   || fD ]`}|                                 }|                    d           |                    dddddddd	d
ddd           |                                 a| j        D ]4}|j                                         |j                                         5d S )NTinr~   r   r  r  r  r=  r  r>  r  r   rD  )	directionlengthr  r   padr	  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  rl	  draw_without_renderingro  rZ   reset_ticksr]   )r   r    r,   r!   s       r"   test_reset_ticksr	    s    " % %__

2QdTA	 	 	! 	! 	!
 	""$$$$
 m  

 r$   c                      t          j                    } |                                 }|                    d           |                    g d           t          |                                d           d S )Nr   )rD  r   r   r   )rD  r   )r&   r   rj  r  r   r   r   r+   s     r"   test_vline_limitr	    s`    
*,,C	BJJsOOOGG   BKKMM9-----r$   zfv, fh, args)r8   rn  c                 &   t           j                            d          }t          j        t
          d          5   | ||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   | |d|d d d d            n# 1 swxY w Y   t          j        t
          d          5   |||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   ||d|d d d d            d S # 1 swxY w Y   d S )	Nr8   z"ymin must be a single scalar valuerx  r  r  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rh   ri   z"xmax must be a single scalar value)rV   r  num2dater   r   r  )fvfhargsbad_lims       r"   test_axline_minmaxr	    s3    ''**G	z)M	N	N	N ( (
DwQ''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z)M	N	N	N ( (
Dqw''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
z)M	N	N	N ( (
DwQ''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z)M	N	N	N ( (
Dqw''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sG   
AAA7
BBB3
C		CC/
DD
D
c                  0   t          j        dddd          \  } }|d                             g dg d           |d                                         \  }}|d                                         \  }}|dk    sJ |dk    sJ |dk    sJ |d	k    sJ d S )
Nr8   r9   T)r  r  r  ri  r   r  )r9   r6  r  r   r  )r&   r   r   r   r   )r,   r  rD  r  rE  r  s         r"   test_empty_shared_subplotsr	    s    |!1T$GGGHCFKK			999%%%V__FBV__FB777777777777777777r$   c                     dD ]} t          j        dd          \  }}|d                             d| d           |d                                         dk    sJ |d                                         | k    sJ t          j        dd          \  }}|d                             d|            |d                                         d	k    sJ d S )
Nboxdatalimr9   T)r  r  r   )
adjustablesharer8   r	  r  )r&   r   
set_aspect
get_aspectget_adjustable)r	  r,   r  s      r"   test_shared_with_aspect_1r	    s    ( - -
<a555SA!
$???1v  ""a''''1v$$&&*4444<a555SA!
3331v  ""f,,,,,- -r$   c                     t          j        ddd          \  } }|d                             dd           |d                             ddgddg           |d                             ddgddg           t          j                     |d                                         |d                                         k    sJ |d                                         |d                                         k    sJ d S )	Nr9   T)r  r  ri  r   )r	  r8   r   r6  )r&   r   r	  r   r  r   r   r  s     r"   test_shared_with_aspect_2r	    s    |!D>>>HCFat$$$FKKAAFKKAAHJJJq6??A 1 11111q6??A 1 1111111r$   c                  p   dD ]} t          j        dd          \  }}|d                             d|            |d                             d|            |d                             ddgd	d
g           |d                             d	d
gddg           t          j                     |d                                         |d                                         k    sJ |d                                         |d                                         k    sJ |j        j        |j        j	        z  }|D ]|}|
                                }|j        |j	        z  }|j        j        |j        j	        z  }||z  |z  }t          |d
          t          |                                d
          k    sJ }d S )Nr	  r9   T)r  ri  r   r	  r8   r   r   r6  )r&   r   r	  r   r  r   r   bbox_inchesr  r  get_positionviewLimr  r	  )	r	  r,   r  
fig_aspectr!   r	  
box_aspect
lim_aspectr   s	            r"   test_shared_with_aspect_3r	    s   ( C C
<a555SA!
333A#*555AQFQF###AQFQF###


1v  CFOO$5$555551v  CFOO$5$55555_+co.CC
 	C 	CB!!AAG+J*RZ-==J!J.;H1%%r}})B)BBBBBB	CC Cr$   c                     t          j        dddd          \  } }|d                             d           t          j        t
          d          5  |                                  d d d            d S # 1 swxY w Y   d S )	Nr8   r9   Tr  ri  r   r  zset_aspect\(..., adjustable=rx  )r&   r   r'  r   r   RuntimeErrorr	  )r,   ro  s     r"   test_shared_aspect_errorr	    s    Q$t<<<ICGLL	|+J	K	K	K % %""$$$% % % % % % % % % % % % % % % % % %s   A44A8;A8zerr, args, kwargs, matchr5  z@axis\(\) takes from 0 to 1 positional arguments but 2 were given)r  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zThe first argument to axis*r  z1axis\(\) got an unexpected keyword argument 'foo'c                     t          j        | |          5  t          j        |i | d d d            d S # 1 swxY w Y   d S Nrx  )r   r   r&   r'  errr	  r  ry  s       r"   test_axis_errorsr	    s     
s%	(	(	( " "$!&!!!" " " " " " " " " " " " " " " " " "   6::c                     t          j                    } t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd           d d d            n# 1 swxY w Y   t          j        t          d          5  | 	                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    d	
           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     ddd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     ddd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     dd	           d d d            d S # 1 swxY w Y   d S )Nzunknown value for which: 'foo'rx  r  z!Cannot supply both positional andr.  r  zargument must be amongzscilimits must be a sequencer8   )	scilimitszSpecifying 'loc' is disallowedrP   )r@   r1   r>   )r@   r2   zCannot pass both 'left'r   )rP   rh   zCannot pass both 'right')rB   ri   zCannot pass both 'bottom')rO   r  zCannot pass both 'top')r>   r  )r&   rj  r   r   r  r  r  r   set_prop_cycle
set_anchorticklabel_formatr'   r(   r  r  r  s    r"   test_axis_method_errorsr	    s   	B	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	y(K	L	L	L . .
%u---. . . . . . . . . . . . . . .	z)A	B	B	B  
e              	z)G	H	H	H ) )
a((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	y(H	I	I	I . .
e1---. . . . . . . . . . . . . . .	y(H	I	I	I - -
e!,,,- - - - - - - - - - - - - - -	y(A	B	B	B $ $
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	y(B	C	C	C % %
!!$$$% % % % % % % % % % % % % % %	y(C	D	D	D & &
11%%%& & & & & & & & & & & & & & &	y(@	A	A	A # #
"""# # # # # # # # # # # # # # # # # #s   AAA7BB B?C##C'*C'	D++D/2D/E44E8;E8F??GG%H

HH0III:JJ"%J"K((K,/K,L33L7:L7c                    t          j                    \  }} t          |d|                        }|                    d           |                    d           t	          |j        j        |j        j                   d S )Nr$  r   r9   )r&   r   r+  r	  r   bboxextents)r$  r,   r!   rH  s       r"   test_twin_with_aspectr	  9  s~    lnnGC(gb---((**GMM!qrw|+- - - - -r$   c                     d} d}d}d}t           j                                        }|                                }|                    | |           |                                | k    sJ |                                |k    sJ |                    ||          \  }|                                |k    sJ |                                |k    sJ |                    d           |                                |k    sJ |                                |k    sJ |                    d           |	                                 |                                | k    sJ |                                |k    sJ d S )N)r  r.  )r  rB  )r  r%  FT)visible_only)
rV   r   r   r   r   r   r   r   relimr   )r  r  rX  rY  r,   r!   r  s          r"   test_relim_visible_onlyr	  D  se   	B	B	B	B


"
"
$
$C			BGGBOOO;;==B;;==BGGBOOED;;==B;;==BU;;==B;;==BHH$H;;==B;;==Br$   c                      t          j                    } |                                 }|                    d           |                    d           dS )z
    tests for issue #1172
    large)r	  outr	  N)r&   r   rj  rl	  r+   s     r"   test_text_labelsizer	  ]  sJ     *,,C	BNNWN%%%NNUN#####r$   zpie_default.pngc            	          d} g d}g d}d}t          j        d          \  }}|                    ||| |ddd	
           d S )NFrogsHogsDogsLogsr  r   r  r~   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )rv  r  r(  %1.1f%%Tr3  )exploderK  rt  autopctshadow
startangler&   r   pie)rK  sizesrt  r	  r!  r  s         r"   test_pie_defaultr	  g  sn     -FEBBBFGV,,,ID#GGE76&dr  ; ; ; ; ;r$   )pie_linewidth_0r	  r	  c                     d} g d}g d}d}t          j        ||| |ddddd	i
           t          j        d           | |||d}t          j                    }|                                }|                    ddddddddd	i|	  	         |                    d           t          j                     t          j        ddddddddd	i|	  	         t          j        d           d S )Nr	  r	  r	  r	  r	  Tr3  r=  r   r	  rK  rt  r	  r	  r	  
wedgepropsr  )lr  r<   exr  r	  r	  r<   )r	  rK  rt  r	  r	  r	  r	  r  )r&   r	  r'  r   rj  )rK  r	  rt  r	  r  r,   r!   s          r"   test_pie_linewidth_0r	  s  s0    -FEBBBFGGE76&dr#Q') ) ) ) HW e&@@D
*,,C	BFF3STb"A&T  3 3 3 GGG JLLLGCc#dr#Q'd4 4 4 4 HWr$   zpie_center_radius.pngc                      d} g d}g d}d}t          j        ||| |ddddd	id
d
  
         t          j        dd
dt          dd          t          dd                     t          j        d           d S )Nr	  r	  r	  r	  r	  Tr3  r=  r   r5  r   )	r	  rK  rt  r	  r	  r	  r	  rY   r	  zCenter point)r8   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler;  )r  r  r  r	  r  )r&   r	  r  r~  r'  rK  r	  rt  r	  s       r"   test_pie_center_radiusr	    s     -FEBBBFGGE76&dr#Q'sD D D D LF8 D179 9 9HDDDF F F F
 HWr$   zpie_linewidth_2.pngc                      d} g d}g d}d}t          j        ||| |ddddd	i
           t          j        d           d S )Nr	  r	  r	  r	  r	  Tr3  r=  r9   r	  r  r&   r	  r'  r	  s       r"   test_pie_linewidth_2r 
    sl     -FEBBBFGGE76&dr#Q') ) ) ) HWr$   zpie_ccw_true.pngc            
      ~    d} g d}g d}d}t          j        ||| |dddd           t          j        d	           d S )
Nr	  r	  r	  r	  r	  Tr3  )r	  rK  rt  r	  r	  r	  counterclockr  r	  r	  s       r"   test_pie_ccw_truer
    sg     -FEBBBFGGE76&dr    HWr$   zpie_frame_grid.pngc                  *   d} g d}g d}d}t          j        ||| |ddddd	idd

  
         t          j        |d d d         || |ddddd	idd
  
         t          j        ||d d d         | |ddddd	idd
  
         t          j        d           d S )Nr	  r	  r	  r	  r	  Tr3  r=  r   ro  )	r	  rK  rt  r	  r	  r	  r	  framerY   r   )r   r9   )r   r   r  r	  r	  s       r"   test_pie_frame_gridr
    s     -FEBBBFGGE76&dr#Q'v' ' ' '
 GE$$B$Kdr#Q'v' ' ' '
 GE744R4=dr#Q'v' ' ' '
 HWr$   zpie_rotatelabels_true.pngc            
      ~    d} g d}g d}d}t          j        ||| |dddd           t          j        d	           d S )
N)Hogwartsr	  r	  r	  r	  r	  r	  r	  Tr3  )r	  rK  rt  r	  r	  r	  rotatelabelsr  r	  r	  s       r"   test_pie_rotatelabels_truer

    sg     1FEBBBFGGE76&dr    HWr$   zpie_no_label.pngc                      d} g d}g d}d}t          j        ||| |dddd d	  	         t          j        d	           t          j        d
d           t          j                     d S )Nr	  r	  r	  r	  r	  Tr3  )r	  rK  rt  r	  r	  r	  labeldistancer	
  r  g333333r  )r&   r	  r'  r   rH   r	  s       r"   test_pie_nolabel_but_legendr
    s    ,FEBBBFGGE76&dr    HWHT3JLLLLLr$   zpie_shadow.pngc            
         g d} g d}d}t          j        dd          \  }}|d         d                             | ||ddddi	           |d         d
                             | ||ddddi	           |d
         d                             | ||ddddddddi	           |d
         d
                             | ||dddddddi	           d S )Nr	  r	  r	  r9   r   Tr3  r=  )r	  rt  r	  r	  r	  r8   FrV  r'  r7  )oxoyshader<  r  r   )r
  r=  r
  r	  )r	  rt  r	  r
  ro  s        r"   test_pie_shadowr
    s3    EBBBFGl1a  GAtGAJNN5'&2*A.  0 0 0 	GAJNN5'&B*A.  0 0 0 	GAJNN5'&!&ecPVWW k1-=  ? ? ? 	GAJNN5'&!%ADD k1-=  ? ? ? ? ?r$   c                  4   g d} g d}t          dddddd	          }t          j                                        | |d
|          \  }}}||fD ]}|D ]}|                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |                                |d         k    sJ |	                                |d         k    sJ Ìd S )N)rF  "   r  )zLong name 1zLong name 2zLong name 3rY   r>   r3  anchorr  r1  )horizontalalignmentverticalalignmentrZ  rotation_moder  r   %.2f)rK  r	  	textpropsr
  r
  rZ  r
  r  r   )
r~  r&   rj  r	  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  rK  r
  r
  textsr	  txs          r"   test_pie_textpropsr"
    s[   <<D:::F', #+E	+ + +I 		d6609 & ; ;Aug'" 8 8 	8 	8B99;;),A"BBBBB99;;),?"@@@@@??$$	*(=====''))Y-GGGGG;;==If$55555<<>>Yw%777777	88 8r$   c                      t          j                    \  } }t          j        t                    5  |                    g dg d           d d d            d S # 1 swxY w Y   d S )N)r   r   r  )r   r   r   )r	  )r&   r   r   r   r  r	  r+   s     r"   test_pie_get_negative_valuesr$
  ,  s    lnnGC	z	"	" 0 0
zzz;;;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AA Ac                  :   t          j                    \  } }g d}|                    |d          }t          |d         d         j        dz
            dk     sJ |                    |d          }t          |d         d         j        dz
            dk    sJ d S )	Nr   r   r   T)r1   	normalizer   r   g     v@rA  F)r&   r   r	  rP  r  )r,   r!   r1   t1t2s        r"   test_normalize_kwarg_pier*
  3  s    lnnGCA	!t	$	$Br!uRy$&''$....	!u	%	%Br!uRy$&''$......r$   c                     g d}d|                                                      |           |                                                     |          \  }}fd|D              d S )Nr&
  r  r  c                 :    g | ]}|                               S r   	set_hatch)r   rT  r!  s     r"   r   z)test_pie_hatch_single.<locals>.<listcomp>B  s%    (((AQ[[(((r$   )r   r	  )r   r    r1   wedgesr
  r!  s        @r"   test_pie_hatch_singler0
  <  sy    AEAU+++  ""&&q))IFA((((((((((r$   c                     g d}g d}|                                                      ||           |                                                     |          \  }}d t          ||          D              d S )Nr&
  )r  r  r   r  c                 >    g | ]\  }}|                     |          S r   r-
  )r   rT  hps      r"   r   z(test_pie_hatch_multi.<locals>.<listcomp>K  s&    555BQ[[__555r$   )r   r	  r   )r   r    r1   r!  r/
  r
  s         r"   test_pie_hatch_multir4
  E  s    AOOEAU+++  ""&&q))IFA55#fe"4"4555555r$   zset_get_ticklabels.pngc                  <   t          j        d          \  } }ddg}|d                             t          j        d                     |d                             |d                    |d                             t          j        d                     |d                             |d                    |d                             t          d                     |d                             t          d                     |d         	                    g ddd	gz  z              |d         
                    g d
dd	gz  z              |d                             |d                                                    |d                             |d                                                    |d         	                    |d                                                    |d         
                    |d                                                    d S )Nr9   rm   zset_x/yticklabelsr   r~   r8   r   r*  r<   r  r  r   )11121314)r&   r   r   rj   rr   r4   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsrj  
get_yticksr  get_yticklabels)r,   r!   rE   s      r"   test_set_get_ticklabelsrA
  N  s    l1ooGC
'	(BqEJJry}}qEOOBqEqEJJry}}qEOOBqE qEU2YYqEU2YYqE...bT9:::qE222Q"X=>>> qERU%%''(((qERU%%''(((qE"Q%//11222qE"Q%//1122222r$   c                      t          j                    \  } }g d}t          j        t          d          5  |j                            |d           ddd           dS # 1 swxY w Y   dS )z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  z)Incorrect use of keyword argument 'alpha'rx  r   r  N)r&   r   r   r   r  rZ   	set_ticks)r,   r!   tickss      r"   0test_set_ticks_kwargs_raise_error_without_labelsrE
  h  s    
 lnnGCIIE	z)T	U	U	U - -
5,,,- - - - - - - - - - - - - - - - - -s   A  A$'A$c                    |                                 }|                    g d           |                    g dd           |                    g d           |                    ddgd	           |                    d
dgd	           |                                  }|                    g dg dd           |                    g d           |                    ddgd
dgd	           dS )z
    Test that these two are identical::

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

    )r8   r9   r6  r  r6
  bold)
fontweightr  r9   r6  T)r  r  r  N)r   r;
  r=
  r<
  r>
  r   s      r"   test_set_ticks_with_labelsrI
  s  s    
				BMM,,,+++???MM)))MM1a&M%%%Sz...					BMM,,, 4 4 4MHHHMM)))MM1a&3*DM11111r$   c                     t          j                                                    } t          j        t
          d          5  |                     ddgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d	                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d          t          d          
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        t          j
        d                              d	          t          d          
           d d d            d S # 1 swxY w Y   d S )Nzmust be a sequencerx  r9   rg  r  z
must be 1Dr6  rd  rc  rK  )r&   r   r   r   r   r   r;
  r  r[  rj   rr   r   r   r  s    r"   test_xticks_bad_argsrL
    s&   		!	!	#	#B	y(<	=	=	= # #
q!fc"""# # # # # # # # # # # # # # #	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C C C Cs\   A&&A*-A*:CCC8:D>>EE$A	F99F= F=A	H55H9<H9c                     t          j                    \  } }|                    t          j        d                     |j                            t          j        d          dz              |                    d           |j                            d dD                        t          j	                     d |j        
                                D             }|g dk    sJ d S )	Nr~   r   r   rz  c                     g | ]}|S r   r   r  s     r"   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s    5551Q555r$   
bcdefghijkc                 6    g | ]}|                                 S r   rh  rn  s     r"   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s     >>>qajjll>>>r$   )r*  r  r\  r  rE  )r&   r   r   rj   rr   rZ   rC
  r  set_ticklabelsr  get_ticklabels)r,   r!   rK  s      r"   test_subsampled_ticklabelsrS
    s    lnnGCGGBIbMMHry}}s*+++AH55555666HJJJ>>BH$;$;$=$=>>>F.........r$   c                  T   t          j                    \  } }|                    t          j        d                     |j                            ddg           t          j        t                    5  |j        
                    g d           d d d            d S # 1 swxY w Y   d S )Nr~   r   r5  r  )r&   r   r   rj   rr   rZ   rC
  r   r   r  rQ
  r+   s     r"   test_mismatched_ticklabelsrU
    s    lnnGCGGBIbMMHSz"""	z	"	" 1 1
0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   3BB!$B!c                      t          j                    \  } }|                    ddgddg           |                    ddg           |                    g            d S )Nr8   r9   )r&   r   r.  r;
  r=
  r+   s     r"   test_empty_ticks_fixed_locrW
    s]    lnnGCFFAq6Aq6MM1a&rr$   zretain_tick_visibility.pngc                      t          j                    \  } }t          j        g dg d           t          j        |                                d           |                    ddd           d S )	NrM  )r   r   r6  Fr	  r2   r   r   r'  r  r	  )r&   r   r   setpr@
  rl	  r+   s     r"   test_retain_tick_visibilityr[
    sj    lnnGCHYYY


###HR!!51111NN6!N44444r$   c                     t          j                    \  } }t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j                    \  } }|                    g d           t          j        t          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nz:set_ticklabels\(\) should only be used with a fixed numberrx  r(  r  rL  z$The number of FixedLocator locations)	r&   r   r   r  rH  r=
  r;
  r   r  r+   s     r"   test_warn_too_few_labelsr]
    sb   lnnGC	N
P 
P 
P ) ) 	C<((() ) ) ) ) ) ) ) ) ) ) ) ) ) )
 lnnGCMM+++	zC
E 
E 
E ) )
C<((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s#   AAA)CCCc                     t          j                    \  } }d }|j                            t          j        |                     |                    g d           |                    dd           |j        j        	                                 d |j        
                                D             }|g dk    sJ d S )Nc                     | dk    rdndS )Nr8   
unit valuer   r   r   s     r"   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Avv||2-r$   )r   r   r8   r9   r   r  r5  c                 6    g | ]}|                                 S r   rh  )r   rz	  s     r"   r   z*test_tick_label_update.<locals>.<listcomp>  s     HHHd$--//HHHr$   )r   r   r`
  r   r   )r&   r   rZ   r   r   r;
  r  r   r  r  rR
  )r,   r!   ra
  
tick_textss       r"   test_tick_label_updaterd
    s     lnnGC. . .H  !2>!B!BCCC MM"""###KKcIHHbh.E.E.G.GHHHJ777777777r$   zo_marker_path_snap.pngH   c                  t   t          j                    \  } }|                    d           t          dd          D ]2}|                    ddgt          j        d          |z   d|           3t          j        ddd          D ]2}|                    d	d
gt          j        d          |z   d|           3d S )Nr   r8   r  r9   r   )r  r~   rP  r   r6  )r&   r   rW  r   r   rj   r   r
  )r,   r!   r  s      r"   test_o_marker_path_snaprg
    s    lnnGCJJrNNNArll 7 7
A"'!**r/326666k!R$$ 7 7
A"'!**r/3266667 7r$   c                     ddg} d}t          |           dz
  }t          |           }t          |           }t          j        dd          \  }}|                    |            |                    d           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }}|                    |            |                    dd           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }	}
|
                    |            |
                    d	d
           |
                                dk    sJ |
                                |||z
  d	z  z
  |||z
  d	z  z   fk    sJ |
                                |||z
  dz  z
  |||z
  dz  z   fk    sJ d S )Nr8   r~   r  r   rn  r   r9   )r   r9   皙ɿr%  )ri
  r   )	r  rX  r[  r&   r   r   rW  r   r   )r  rh   ri   r  r  r!  r  r"  r!  r  r"  s              r"   test_marginsrj
    s   r7DDt99s?Dt99Dt99DQ""ID#HHTNNNKKNNN;;==F""""<<>>ddTkQ%66"dTkQ%668 8 8 8 8<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKKQ;;==H$$$$<<>>ddTkS%88"dTkS%88: : : : :<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKK$#K;;==K''''<<>>ddTkT%99"dTkT%99; ; ; ; ;<<>>ddTkS%88"dTkS%88: : : : : : :r$   c                     t           j                            d           t          j                    \  } }|                    ddgddg           |                    dd           |                                dk    sJ d S )Nr  r8   r9   r4  r   )r  xmarginr5  )r   r   r   r&   r   r   r   r   r+   s     r"   test_set_margin_updates_limitsrm
    sv    IMM)lnnGCGGQFQFFF%F###;;==F""""""r$   )r   z!margin must be greater than -0\.5rc  r   r2   z@Cannot pass both positional and keyword arguments for x and/or yr  z&Must pass a single positional argumentc                     t          j        | |          5  t          j                    }|                                } |j        |i | d d d            d S # 1 swxY w Y   d S r	  )r   r   r&   r   r   rW  )r	  r	  r  ry  r,   r!   s         r"   test_margins_errorsro
    s     
s%	(	(	( $ $jll__
D#F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   5AA Ac                      t          j                    \  } }|                    d           |                    dg           d S Nr8   )r&   r   r  r+   s     r"   test_length_one_histrr
  &  s5    lnnGCGGAJJJGGQCLLLLLr$   c                     t          j                    } |                                 }|                    dd           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    dd           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ |                    d           |                                dk    sJ |                                dk    sJ d S )	Nr   r  )r   r  r  )rD	  )r   r  )r   )r  r  )	r&   r   r   r  
get_xboundr   r  
get_yboundr   r+   s     r"   test_set_xy_boundrv
  ,  s   
*,,C			BMM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&&&r$   c                      dgdz  } t          j        dd          \  }}|                    | |            |                    t	          j                               d S )Nr~   r   r8   )r&   r   r  rs  rq  rr  )mylistr,   r!   s      r"   test_pathological_hexbinry
  D  sT    TCZFl1a  GCIIffKK
r$   c                  j    t          j                    \  } }|                    ddgddgd            d S )Nr8   r9   rG  r  r+   s     r"   test_color_Noner{
  L  s7    lnnGCGGQFQF$G'''''r$   c                      t          j                    \  } }|                    ddgd          d         }d|                                k    sJ d S )Nr   r8   r  r6  )r&   r   r   r  r,   r!   r  s      r"   test_color_aliasr~
  R  sP    lnnGC77Aq6V7$$Q'DT^^%%%%%%%%r$   c                      t          j                    \  } }|                    t          d          gdz  t          d                     |                                 d S )Nr  r   r  )r&   r   r  r   rH   r+   s     r"   test_numerical_hist_labelr
  Y  sJ    lnnGCGGU2YYK!O588G,,,IIKKKKKr$   c                     t          j                    \  } }d}d}|                    d          d|                    d          g}|                    t	          d          gdz  |           |                                 d S )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr  r   r  )r&   r   decoder  r   rH   )r,   r!   r   r*  rK  s        r"   test_unicode_hist_labelr
  _  s{    lnnGC
@A+AhhwhhwF
 GGU2YYK!O6G***IIKKKKKr$   c                     t           j                            d          dz  } t          j                    \  }}|                    |            |j                                         |j        j        	                                }|j        j        
                                dk    sJ |j                                         |j                                         |j        j        	                                }|d         |d         k    r|d         |d         k    sJ |j        j        
                                dk    sJ t          j                    \  }}|                    |            |j                                         |j        j        	                                }|j        j                                        dk    sJ |j                                         |j                                         |j        j        	                                }|d         |d         k    r|d         |d         k    sJ |j        j                                        dk    sJ d S )	Nr~   g^ 9^;rP   r   r8   rB   r>   rO   )rj   rk   r&   r   r   r  r  r]   
offsetTextr	  r\   
tick_rightrZ   get_verticalalignmentr   )r  r,   r!   beforeafters        r"   test_move_offsetlabelr
  m  s   9B%'DlnnGCGGDMMMJOOX --//F86688FBBBBHJOOH,,..E8fQiE!Hq	$9$9$9$986688GCCCClnnGCGGDMMMJOOX --//F84466%????HJOOH,,..E8vay  U1Xq	%9%9%9%984466(BBBBBBr$   zrc_spines.pngc                      ddddd} t          j        |           5  t          j                     d d d            d S # 1 swxY w Y   d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rV   r   r&   r   )r  s    r"   test_rc_spinesr
    s     "" #	% %G
 
	w	'	'                   r  zrc_grid.pngc                     t          j                    } ddd}ddd}ddd}|||g}t          |d          D ]H\  }}t          j        |          5  |                     dd|           d d d            n# 1 swxY w Y   Id S )NTr   )rV  zaxes.grid.axisr1   r2   r8   r   )r&   r   r  rV   r   r   )r,   rc_dict0rc_dict1rc_dict2r  rI  r  s          r"   test_rc_gridr
    s    
*,,C  H
  H
  H 8X.I	1-- % %
7"7++ 	% 	%OOAq!$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%% %s   A55A9	<A9	c                     ddddd} t          j        |           5  t          j                    }|                    ddd          }|j        }|j        }|j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ 	 d d d            d S # 1 swxY w Y   d S )NFT)xtick.bottom	xtick.top
ytick.leftytick.rightr  r8   tick1Ontick2Onr&   r   r   r   rZ   r]   _major_tick_kw_minor_tick_kwr  r,   r  xaxyaxs        r"   test_rc_tickr
    s`   TE	3 	3A	1			 1 1jllooaA&&ii%i0000!),,,,%i0000!),,,,!),,,,%i0000!),,,,%i000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   B1CC #C c            	         ddddddddd} t          j        |           5  t          j                    }|                    ddd          }|j        }|j        }|j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ |j        d         rJ |j        d         sJ 	 d d d            d S # 1 swxY w Y   d S )NTF)r
  r
  r
  r
  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftr
  r8   r
  r
  r
  r
  s        r"   test_rc_major_minor_tickr
    sl   4T$E"		? 	?A
 
1			 - -jllooaA&&ii%i0000!),,,,%i0000!),,,,%i0000!),,,,%i0000!),,,,,- - - - - - - - - - - - - - - - - -s   B1C  C$'C$c                  ^   t          j        d          } t          j        g d          }t          j                    \  }}|                    | |d           |                    d           |                                |                                }}t          j	        |          t          j	        |          k    sJ |
                                dk    sJ t          |                    d          j        d           t          |                    d	          j        d
           d S )Nr6  )r   r  r  r  mor	  r8   T)originalg      ?r   r'  r'  F)g333333?r   g      ?r'  )rj   rr   rU  r&   r   r   r'  r   r   r  r	  r   r	  r	  )r1   r2   r,   r!   r   r   s         r"   test_square_plotr
    s   
	!A
!!!""AlnnGCGGAq$GGH$D74==BGDMM))))==??a
&&.0FH H H
''/1KM M M M Mr$   c                     t          j        t                    5  t          j        d            d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d d            d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        d          t          j        d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        d                              d          t          j        d                              dd          f           d d d            d S # 1 swxY w Y   d S )Nro  r  r   rc  r   r8   )	r   r   r  r&   r   rj   r  rr   r   r   r$   r"   test_bad_plot_argsr
    sA   	z	"	"                	z	"	"  t              	z	"	" 5 5&!!28F#3#34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	z	"	" O O")A,,&&w//11E1Eb!1L1LMNNNO O O O O O O O O O O O O O O O O OsD   ;??BBB%:C++C/2C/A"E>>FFzxy, clsr   ))r   r\  )r9   r  )r8   r9   r6  rv  rj  r$  )r6  r   r  )r   r6  c                 v    t          j                    \  }}t           |j        g | |R            |k    sJ d S r  )r&   r   r  r  )r  r  clsr,   r!   s        r"   test_pcolorfastr
    sI     lnnGC(r(4((())S000000r$   c                     t          j        dddd          \  } }|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7d S )Nr9   Tr	  r  r4  rn  r;  )r&   r   r<  r  r  
get_yscale
get_xscaler,   r  r!   s      r"   test_shared_scaler
     s   |Aqd;;;HCIIh ( (}}%''''}}%'''''I"""I"""h + +}}(****}}(*****+ +r$   c                      t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )NTr  rh  )r   r   r   r&   rq  r   r$   r"   test_shared_boolr
    s   	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s!   <A A  BB
Bc                  V    t          j        t          j        ddg                     dS )z4Violin plot should handle point mass pdf gracefully.r   N)r&   r  rj   rU  r   r$   r"   test_violin_point_massr
    s&    N28QF##$$$$$r$   c            
         t          dt          j        d          g          t          dt          j        d          g          z   } t          ddg dg dg dgt          j        d          t          j        d          d g          }t          d|          }t          d	|          }t          dg g          t          dg g          z   t          dg d g          z  t          d	g d g          z  }| |z  }| |z  }| |z  |z  }g ||||S )
Nr1   r   r2   r	  r8   )r8   r8   r8   r8   r8   )r9   r   rM  rN  )r
   rj   rr   r   )base_xy
err_cyclerxerr_cyyerr_cyempty	xerr_only	yerr_onlyboth_errs           r"   generate_errorbar_inputsr
    s+   S29Q<<.))F3,E,EEG /!0!0!2 "

 " $ " # #J VZ((GVZ((GS2$&rd"3"33FRJ''(*0"d*D*DEE'!I'!I 7*H6Y66X666r$   r  c                 n    t          j                    } |j        di | }|                                 d S )Nr   )r&   rj  rI  rp  )r  r!   ebs      r"   test_errorbar_inputs_shotgunr
  4  s5    	B			v		BIIKKKKKr$   dash_offsetc                      t          j                    \  } }t          j        dd          }t          j        |          }t          ddd          D ]!}|                    |||z  |dfdd           "d S )	Nr   r~   r   r9   r~   r~   r   r)  )r  rR  r   )r&   r   rj   r
  	ones_liker   r   )r,   r!   r1   r2   rE  s        r"   test_dash_offsetr
  ;  s{    lnnGC
ArA
QA1c1 ; ;
1Q3Ax=Qc::::; ;r$   c                     t          j                    \  } }|                    dd           |j                                        }|d         d| j        z  k    sJ |                    dd           |j                                        }|d         dk    sJ |                    dd            |j                                        }|d         t          j        d         dz  | j        z  k    sJ d S )	Naardvarkr%  r	  rc  g?r  zaxes.titlepadr0  )r&   r   r4   titleOffsetTrans
get_matrixr%  rV   r   )r,   r!   r  s      r"   test_title_padr
  D  s     lnnGCLLL%%%
&&((AU8	CG+,,,,LLL$$$
&&((AU8r>>>>LLL&&&
&&((AU8
+O<sBSWLMMMMMMr$   c                     t          j                    \  } }dt           j        d<   |                    d           |                    dd           |                    dd           d|                    d          k    sJ d|                    d          k    sJ d|                    d          k    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dd           d d d            d S # 1 swxY w Y   d S )	NrY   zaxes.titlelocationr
  rP   r?   rB   r  fail)r&   r   r   r4   	get_titler   r   r  r+   s     r"   test_title_location_roundtripr
  T  s   lnnGC)1CL%&LLLLVL$$$LLgL&&&R\\f\------bllwl//////(333333	z	"	"    
                             	z	"	" ( (
V'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   C99C= C=EE	Er  c                    t          j        dd|           \  }}|d                             dd           |d                             dd           |                                 |d         j                                        \  }}|d         j                                        \  }}||cxk    rd	k    sn J d S )
Nr9   r8   r  r   r  ir
  r  r   )r&   r   r4   r	  r0   r	  )r  r,   r  r1   r  rY  s         r"   test_title_location_sharedr
  f  s    |Aq000HCFSc"""FSc"""   FL%%''EArFL%%''EAr????s????????r$   z
loglog.pngc                      t          j                    \  } }t          j        dd          }|                    ||dz  d           |                    dd           |                    d	dd
           d S )Nr8   r4  r   r   rT  rP  r9   )r	  r  r  r  )r	  r  r  )r&   r   rj   rr   r  rl	  )r,   r!   r1   s      r"   test_loglogr
  q  sr    lnnGC
	!RAIIaA!INN"AN&&&NN"AWN5555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    r;|r|                    ||dz  d	|           -|                    ||dz  d	           I|                    ||dz  d	           |r|                    d|           |r|	                    d|           d S )Nr   r8   r4  g      r\  r  r6  )r  r  r   r9   )r  )rR  nonpositiverT  r4  )r
  )
r&   r   rj   rr   r   r   r  r  r<  r  )r,   r  r1   r2   mcymcxr!   s          r"   test_loglog_nonposr
  z  s3   |Aq!!HC
	!RA	1AAaDAaDg&:&:&:1EEE!h( ( 6 6
cB#:: )		!QTaS	9999		!QTa	((((IIaA!I$$$ 6e555 6e5556 6r$   c                  @   t          j                    \  } }|                    g d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|
                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|                    t          j        d                     |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ d S )Nr$  r   )r8   r8   r8   r8   r
  r;  r~   )r  g      #@)r&   r   r   ru
  r.  rL  rt
  rN  rj   r  r  r  rr   r   r+   s     r"   test_axes_marginsr
    s;   lnnGCGGLLL==??1""""lnnGCFF<<<&&&==??1""""lnnGCGGLLL,,,'''==??1""""lnnGCIIbhx  !!!==??g%%%%==??g%%%%lnnGCMM"(8$$%%%==??g%%%%==??g%%%%lnnGCGGBIbMM==??1""""lnnGCIIbhx  !!!==??k))))==??k))))))r$   )r  c                 .    d }d }||d| j                  S )Nc                     |                                  }|                                 |                     dd            | j                                                    }|d         dk    sJ d S Nr   r  r   r  )r  rp  r  rZ   get_major_locatorr!   r!  rF  s      r"   	_helper_xz&shared_axis_remover.<locals>._helper_x  `    hhjj


Ar(BH&&((**urzzzzzzr$   c                     |                                  }|                                 |                     dd            | j                                                    }|d         dk    sJ d S r
  )r  rp  r  r]   r
  r
  s      r"   	_helper_yz&shared_axis_remover.<locals>._helper_y  r
  r$   r%  )param)requestr
  r
  s      r"   shared_axis_removerr
    s7         ++GM::r$   )rj  r   subplots_sharedrV  c                    | j         dk    r(t          j                    }|                                }n| j         dk    rt          j                    \  }}nj| j         dk    r*t          j        dddd          \  }}|d         d         }n5| j         dk    r*t          j                    }|                    g d	          }||fS )
Nrj  r   r
  r9   r  r	  r   rV  r   r   r  r  )r
  r&   r   rj  r   rV  )r
  r,   r!   r	  s       r"   shared_axes_generatorr
    s     }jllWWYY	*	$	$,..RR	+	+	+l1aeDDDVAYq\	*	$	$jll\\***++7Nr$   c                 &    | \  }} ||           d S r  r   )r
  r
  r,   r!   s       r"   test_remove_shared_axesr
    s"    #GCr$   c                  H   t          j        dddd          \  } }|d         d         }|d         d                                         }|                                 |                    dd           t          |d         d                                         |           d S )Nr9   r  r	  r   r8   r   )r&   r   r   rp  r  r   )r,   r	  r!   	orig_xlims       r"   test_remove_shared_axes_relimr
    s    ,q!E%@@@KC	1Bq	!%%''IIIKKKKK1vay|,,..	:::::r$   c                     t          j        ddd          } t           j                            | j        | j        f          }t          j        dddd          \  }\  }}|                    dd	           |                    dd	           |	                    | | |           |	                    | | |           |
                                s|
                                rJ |                                s|                                rJ |                                |                                cxk    rd
k    sn J |                                |                                cxk    rd
k    sn J d S )Nir3  r  r9   r8   Tr	  r  )r
  r  )rj   rr   rk   random_sampler  r&   r   r  r  r  r]  r_  r   r   )r	  r  r,   r  r!  s        r"   test_shared_axes_autoscaler
    si   
	#r2A
	 011Al1aTBBBOC#sLLLLKK1aKK1a$$&&Fs/D/D/F/FFFF$$&&Fs/D/D/F/FFFF<<>>S\\^^<<<<}<<<<<<<<>>S\\^^<<<<}<<<<<<<<r$   c                  B   t          j                    \  } }|j                                                            d           |                    dd           |                    d           | j                                         t           |j                                                              dk    sJ |
                    dd           | j                                         t           |j                                                              dk    sJ d S )Nr  rz  r   r  r  r9   )r&   r   r]   r
  
set_paramsr  r	  r  r  r  r  r+   s     r"   test_adjust_numtick_aspectr
    s    lnnGCH  ++&+999KK4MM'JOO+rx))++--..!3333KK4JOO+rx))++--..222222r$   c                      t          j                                        dd          } | j        D ]=}g |                                g |                                cxk    rg dk    sn J >d S )Nr6  rL  )r&   r   r   r  rj  r?
  r]	  s     r"   test_auto_numticksr
    s    
*,,

1
%
%Ch G G!!%7r}}%7FFFF;;;FFFFFFFG Gr$   c                     t          j                    \  } }dt          j        d<   |                    ddgddg           t          j        |                                          t          j        ddd	          k    	                                sJ t          j        |
                                          t          j        d
dd          k    	                                sJ d S )Nround_numbersaxes.autolimit_modeg#B;g     j@缉ؗҜ<r~   ir2  r6  r   r   )r&   r   r   r   r  rj   log10rj  rr   r  r?
  r+   s     r"   test_auto_numticks_logr   	  s     lnnGC*9CL&'IIuclUBK(((HR]]__%%3A)>)>>CCEEEEEHR]]__%%3A)>)>>CCEEEEEEEr$   c                  ^    t          j                    \  } }|                    g d           d S )N)r   r   )r&   r   rp  r+   s     r"   test_broken_barh_emptyr    s+    lnnGCNN2x     r$   c                     t          j                    \  } }t          j        dddddd          }|                    |t          j        d          fgddg          }|                                d         j        d         t          j        |          k    sJ |                                d         j        d	         t          j        |          d
z   k    sJ dS )z9Check that timedelta works as x, dx pair for this method.ri  r4  rg  r   r8   rj  r9   r  r9   r   gUUUUUU?N)	r&   r   r5  rp  r  r  verticesr7  r8  )r,   r!   d0pps       r"   test_broken_barh_timedeltar    s    lnnGC		4Q1a	0	0B	"h0q999:;aV	D	DB<<>>!%d+vr/B/BBBBB<<>>!%d+vr/B/BV/KKKKKKKr$   c                     |                      dd          }t          j        d          }t          j                            dd          }t          j                    \  }}|                    |||           d S )Nz
2000-01-01r~   )ry  ru  r  rg  )r}  rj   rr   rk   r   r&   r   r  )r  timedepthr  r,   r!   s         r"   test_pandas_pcolormeshr  !  sd    ==r=22DIbMME9>>"a  DlnnGCMM$t$$$$$r$   c                    t          j        ddd          }t          j        t          t	          |                              }|                     ||d          }t          j                    }|t          j        |j	                  dz  dk             
                                }|                    dd	|
           d S )Nz2005-02z2005-03r/  r  )r  r  r9   r8   r  r  rX  )rj   rr   r  r   r  r  r&   rj  rU  r  rT  r   )r  r  r  r  r!   without_zero_indexs         r"   test_pandas_indexing_datesr  *  s    Ii/BBBEVE#e**%%&&F	88	9	9B	BBHRX..2a78==??GGGX$6G77777r$   c                     |                      t          j                            d          g dg d          }t	          j                    \  }}|                    dddd	|
           d S )N)r   r6  r  )r1   r2   xeyerK  )columnsr  r1   r2   r  r  r  )r  rj   rk   uniformr&   r   rI  r  s       r"   test_pandas_errorbar_indexingr  5  sr    	bi''V'44444+OO 
 
- 
-B lnnGCKKSt$RK88888r$   c                     |                      g dg dd          }t          j                    \  }}|                    |j        |d                    d S )Nr  )r\  r8   r9   )XXYYr  )r  r&   r   r   r  r  s       r"   test_pandas_index_shaper  =  sR    	YYYiii88	9	9BlnnGCGGBHbhr$   c                     |                      g d          }|j        dd          }t          j                    \  }}|                    |           d S )N)
r8   r9   r9   r   r   r6  r6  r6  r6  r   rX  r8   )r  ilocr&   r   r  )r  ser_1ser_2r,   r!   s        r"   test_pandas_indexing_histr  C  sM    II999I::EJqrrNElnnGCGGENNNNNr$   c                 V   |                      t          d          t          d          d          }t          j        d          \  }}|                    |j        |d         dk    df         |j        |d         dk    df         d           |j                                         d S )Nr9   rW  r8   r   r*  rY   rA  )r  r   r&   r   r.  r@   r  r  r  s       r"   test_pandas_bar_align_centerr   J  s    	E!HH58844	5	5Bl1ooGCFF26"S'Q,#$6"S'Q,#$     JOOr$   c                  `   t          j                    j        } i |                     d          }i |                     d          }|                     | j        d          }|                     | j        d          }||k    sJ ||k    sJ |                     dddd	
           i |                     d          }i |                     d          }|                     |          }|                     |          }||k    sJ | j        |k    sJ ||k    sJ | j        |k    sJ d S )Nru	  r  r  T)reverser   r1  r	  r   )r	  r	  r	  r  )r&   rq  r]   get_tick_params_translate_tick_paramsr
  r
  set_tick_params)	r'  initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styles	            r"   test_axis_get_tick_paramsr.  W  s   ;==D%L(<(<7(<(K(K%L"%L(<(<7(<(K(K%L"55T 6   55T 6   "@@@@@"@@@@@2%#(  8 8 8 "ID$8$8w$8$G$G!H!HD$8$8w$8$G$G!H112LMMO112LMMO)-GGGGG/1111)-GGGGG/111111r$   c                     t          j                    } | j                            ddd           | j        j        d         j        dk    sJ | j        j        d         j                                        dk    sJ | j        j        d         j        	                                dk    sJ | j        j        d         j                                        dk    sJ d S )	Nr   r1  r	  )r	  r	  r	  r   r  r)  r%  )
r&   rq  r]   r%  r	  _size	tick1liner  r)  r
  )axis_1s    r"   .test_axis_set_tick_params_labelsize_labelcolorr3  r  s    []]F
L  2%+0 ! 2 2 2 <"1%+s2222<"1%/99;;sBBBB<"1%,55774????<"1%,6688EAAAAAAr$   c                     t          j                    } |                     dddd           | j        | j        fD ]}|j        d         j                                        dk    sJ |j        d         j                                        dk    sJ |j        d         j        	                                dk    sJ |j        d         j        
                                dk    sJ d S )Nr*  r   r   r  )r	  r	  r	  r	  r   r  )r&   rq  rl	  rZ   r]   r	  ry	  r  get_linewidthr  r  )r!   r'  s     r"   test_axes_tick_params_gridlinesr6    s    	BNNc!"+  - - -"(" C Cq!*4466#====q!*88::a????q!*4466#====q!*88::dBBBBB	C Cr$   c                     t          j                    } |                     ddd           |                     ddd           | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ d S )NFTru	  )	labelleft
labelrightr  r  r   )	r&   rq  rl	  r]   r	  r)  r  label2r	  r  s    r"    test_axes_tick_params_ylabelsider;    s   	BNNUt   " " "NNUt   " " " 8q!(4466%????8q!(4466$>>>>8q!(4466%????8q!(4466$>>>>>>r$   c                     t          j                    } |                     ddd           |                     ddd           | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ d S )NTFru	  )labeltoplabelbottomr  r  r   )	r&   rq  rl	  rZ   r	  r)  r  r:  r	  r  s    r"    test_axes_tick_params_xlabelsider?    s   	BNNDe   " " "NNDe   " " "
 8q!(4466%????8q!(4466$>>>>8q!(4466%????8q!(4466$>>>>>>r$   c                      t          j                                                    } |                     t	          d          d           \  }|                                dk    sJ d S )Nr   rE  rC  )r&   r   r   r   r   r  )r!   lns     r"   test_none_kwargsrB    sY    				 	 B
''%))t'
,
,CB$$$$$$r$   c                      g d} t          j        t          j        | t          j                  g dd          }t          |j        |           D ]\  }}|j        d         |k    sJ d S )Nr$  r  )r9   r   r6  r   r+  rA  r   )r&   r.  rj   rU  uint8r   rB  r  )r  r*  r  r1   s       r"   test_bar_uint8rE    sy    	B28,,,lll&IIIA!)R((    
x{a   r$   zdate_timezone_x.pngr   c                  &   d t          d          D             } t          j        d           t          j        ddd           t          j        | dgdz  d           t          j        ddd           t          j        | dgdz  d	           d S )
Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S   r9      Canada/Easternr   tzinfor5  r  tzgettzr  s     r"   r   z(test_date_timezone_x.<locals>.<listcomp>  Y     % % % #D!Ra+3;+<+<=M+N+NP P P % % %r$   r   ru  r  r(  r9   r8   rK  )rO  UTCr   r&   r   rq  r^  
time_indexs    r"   test_date_timezone_xrW    s    % % 88% % %J
 Jx    K1aM*qcAg*:;;;; K1aM*qcAg%000000r$   zdate_timezone_y.pngc                  .   d t          d          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	
           d S )Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S rH  rN  r  s     r"   r   z(test_date_timezone_y.<locals>.<listcomp>  rQ  r$   r   rR  r(  r9   r8   rK  FT)rO  xdateydaterS  rT  rU  s    r"   test_date_timezone_yr\    s    % % 88% % %J
 Jx    K1aM1#'!1dL L L L K1aM1#':%uDIIIIIIr$   zdate_timezone_x_and_y.pngc                  B   t           j        j        fdt          d          D             } t	          j        d           t	          j        ddd           t	          j        | | dd	           t	          j        ddd           t	          j        | | d
d	           d S )Nc           	      B    g | ]}t          j         d dd|          S )rI  r9   rJ  rL  r  )r   r1   rS  s     r"   r   z.test_date_timezone_x_and_y.<locals>.<listcomp>  s?     % % % #D!RaDDD % % %r$   r   rR  r(  r9   r8   rS  T)rO  r[  z
US/Eastern)r5  timezoneutcr   r&   r   rq  r^  )rV  rS  s    @r"   test_date_timezone_x_and_yra    s     

C% % % % 88% % %J Jx    K1aM*jU$???? K1aM*j\FFFFFFr$   zaxisbelow.pngc                     t          j                                        ddd          } d}t          | |          D ]\  }}|                    dddd           t          j        d	d
          }|                    |           |                    ddd           |	                    dddd           |j
        d d                              d           |                    |           |                                |k    sJ d S )Nr   T)r  r  ri  )Fr  Tr;  r~   r  r  r  rF  rG  r<   rC  )r   r   r=  F)r>   rO   rP   rB   )r&   r   r   r   r   rp  r	  ro  r  rl	  rh	  r   set_axisbelowget_axisbelow)r  settingsr!   settingcircs        r"   test_axisbelowrh    s   
 *,,

aT

B
BC$H3)) 	- 	-G
Rs333vS111
T
cSA666
5! 	 	0 	0 	0
	!!!  '''
!!!!!W,,,,,	- 	-r$   c                     t           j                            d           t          j        d          \  } }|                                }|                    d          }|                    d          }| j                                         | j        	                                }|
                    |          j        }|
                    |          j        }||z
  }t          j        |d          sJ d S )Nr   re
  )r%  Xlabel2Titler   )r&   r   r   r   r  r'   r4   r  r  get_rendererget_window_extentrE  r  rj   isclose)	r,   r!   r!  xlabel2r0   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r"   test_titletwinyrt    s    IMM'lr"""GC
((**CnnY''GLL!!EJOOz&&((H++H558M//99<O_,F:fa       r$   c                     t          j                    \  } }|                     d           |                                }|                    d           |                    d           |                    d           d}|j                            |           | j        	                                }|
                    |           |j                                        |k    sJ d S )Nr  )r>   Xlabelrj  rk  )r   g(\?)r&   r   r  r  r'   r4   r0   rk	  r  rl  _update_title_positionr	  )r,   r!   r!  r   rp  s        r"   test_titlesetposrx    s    lnnGCC   
((**CMM(NN9LL
CH#z&&((Hh'''8  ""c))))))r$   c                  *   d t           j        d<   t          j                    \  } }|j                            d           |                    d           | j                                         |j	        
                                d         dk    sJ d S )Naxes.titleyr>   
xlabel topr8   p=
ף?)r   r   r&   r   rZ   r   r4   r  r  r0   r	  r+   s     r"   test_title_xticks_topr}    s    "&CLlnnGCH&&&LLJOO8  ""1%,,,,,,r$   c                  *   d t           j        d<   t          j                    \  } }|                    ddddd           |                    d           | j                                         |j        	                                d         dk    sJ d S )Nrz  r1   Tr'  rO   r>   r>  r=  r{  r8   r|  )
r   r   r&   r   rl	  r4   r  r  r0   r	  r+   s     r"   test_title_xticks_top_bothr  &  s    "&CLlnnGCNNDdT  K K KLLJOO8  ""1%,,,,,,r$   zleft, center))rP   r   )r   rY   )rP   rY   )zleft title movedzcenter title keptzboth titles alignedc                 B   d t           j        d<   t          j                    \  }}|                    d           |                    | d           |                    |           |                                 | r)|s'|j                                        d         dk    sJ d S | s)|r'|j	                                        d         dk    sJ d S |j                                        d         }|j	                                        d         }|dk    sJ ||k    sJ d S )Nrz  g   vH7BrP   r?   r8   r   )
r   r   r&   r   r  r4   r	  _left_titler	  r0   )rP   rY   r,   r!   yleftr  s         r"   test_title_above_offsetr  1  s1    #'CLlnnGCKKLL6L"""LL     F  ~**,,Q/#555555  f  x$$&&q)S000000++--a0(''))!,s{{{{%r$   c                  H   d t           j        d<   t          j                    } |                     g d          }|                    ddddd           |                    d          }| j                                         |	                                d         dk    sJ d S )	Nrz  )r   r  r  r   r1   Tr  Boor8   r   )
r   r   r&   r   rV  rl	  r4   r  r  r	  )r,   r!   tts      r"   test_title_no_move_off_pager  O  s     #'CL
*,,C	+++	,	,BNNDdT  K K K	e		BJOO??Q3&&&&&&r$   c                      t          j                    \  } }|                    g d           |j                            d           |j                                                                        dk    sJ d S )Ng   @Ag   eAg   FAr1  )r	  )r&   r   r   r]   r%  get_offset_textr  r+   s     r"   test_offset_label_colorr  \  st    lnnGCGG$$$%%%H...8##%%//11U::::::r$   c                     t          j                    \  } }|                    g d           |j                            dd           |j                                                                        sJ |j                            d           |j                                                                        rJ d S )Nr  FT)label1Onlabel2On)r  )r&   r   r   r]   r%  r  r  r+   s     r"   test_offset_text_visibler  d  s    lnnGCGG$$$%%%Hed;;;8##%%1133333He,,,x''))557777777r$   c                      t          j                    \  } }|                    dt          j        ddg          z   dz             | j                                         d S )Nr8   r   g-q=gqىE)r&   r   r   rj   rU  r  r  r+   s     r"   test_large_offsetr  m  sS    lnnGCGGQ1f+&&&%/000JOOr$   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r   r\  r  r2  r  rQ  s     r"   r   z#test_barb_units.<locals>.<listcomp>u  +    MMMqXtQB22MMMr$   r   r&  r~   r   r@  )r&   r   r   rj   r
  r  barbsr,   r!   r  r2   ur  s         r"   test_barb_unitsr  s  s    lnnGCMME!R<L<LMMME
Aq#e**%%AK2s5zz***AHHUAq!r$   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r  r  rQ  s     r"   r   z%test_quiver_units.<locals>.<listcomp>}  r  r$   r   r&  r~   r   r@  )r&   r   r   rj   r
  r  quiverr  s         r"   test_quiver_unitsr  {  s    lnnGCMME!R<L<LMMME
Aq#e**%%AK2s5zz***AIIeQ1r$   c                     t           j        } t          j                    \  }}t	          d          D ]}|                    t	          d                    \  }|                    t	          d          t	          d                    }|D ]@} | |                                           | |                                          k    sJ Ad S )Nr   r   )	r  to_rgbr&   r   r   r   r.  r  r^  )r  r,   r!   rE  rA  brsbrs          r"   test_bar_color_cycler    s    ^FlnnGC1XX H HggeAhhffU1XXuQxx(( 	H 	HB6",,..))VVB4D4D4F4F-G-GGGGGG	HH Hr$   c                     t          j        dd          \  } \  }}|                    ddgddg           |                    ddgddg           |j                            dd           |j                            dd           |                    d          D ]}|                                dk    sJ |                    d          D ]}|                                dk    sJ |	                    d	d
           |	                    dd           |                    d          D ]}|                                d
k    sJ |                    d          D ]}|                                dk    sJ d S )Nr8   r9   r   r   r  )r  rZ  r3  r  r1   5   )r'  r	  r2   r  )r'  rZ  ru	  )
r&   r   r   rZ   r%  r]   r  r
  r@
  rl	  )r  r!   r!  texts       r"   test_tick_param_label_rotationr    s   \!Q''NC"cGGQFQFHHaVaVH6B777H6B777"""00 ) )  ""b((((("""00 ) )  ""b(((((OOBO///OOrO***##'#22 ) )  ""b(((((##'#22 ) )  ""b((((() )r$   c                     t          j                    \  } }t          d          D ]}|                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t          dd          D ]}|	                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t	          j        d          }dD ]s} |j        t          d          t          d          fi |di}t          |                                                                          t          |          k    sJ tt	          j        d          }t          ddgd          D ]\  }} |j        t          d          t          d          fi |di}t	          j        d|           }t          |                                                                          t          |          k    sJ t          |                                                                          t          |          k    sJ d S )	Nr   r  r  r)  )r;  r  r   r<  rS  )rt  )r&   r   r   r  r  r  tupler  squeezer  r  r  )	r,   r!   rE  cctargetaledge_targetelface_targets	            r"   test_fillbetween_cycler    s   lnnGC1XX E E__U1XXuQxx00Q))R&&((002233uV}}DDDDD1a[[ E EeAhha11Q))R&&((002233uV}}DDDDD_S!!F2 E ER_U1XXuQxx==B9==R&&((002233uV}}DDDDD/#&&KK6a@@@ J J2R_U1XXuQxx==B9==og!gg..R&&((002233u[7I7IIIIIR&&((002233u[7I7IIIIII	J Jr$   c                     dt           j        d<   t          j                    \  } }d}|                    |           |                    ddgddg           |                                \  }}|j                                        }|                    ||g          \  }}|                    ddg          \  }}	|	|z
  |z  }
t          ||
z   ||
z
  g||	g           d S )Nr  r
  r  r~   r   )
r&   r   r   set_xmarginr  r   rZ   r  r:  r   )r,   r!   marginxlim0xlim1r:  xlim0txlim1tx0tx1tr  s              r"   test_log_marginsr    s    *0CL&'lnnGCFNN6KKS	B9%%%;;==LE5&&((I((%88NFF""B9--HC3Y& EVe^Ve^4sCjAAAAAr$   c                     d} t          j        |           t          j        |           }}t          j        | dz             }t          j                    \  }}t	          j        t                    5  |                    |||           d d d            n# 1 swxY w Y   t	          j        d          5  |                    ||d           d d d            n# 1 swxY w Y   |                    ||dg| z             d S )Nr   r8   r6  r  rx  )r   r   r   )	rj   rr   r&   r   r   r   r  r:   r  )r  r1   r2   rt  r,   r!   s         r"   test_color_length_mismatchr    sd   	A9Q<<1qAYqs^^FlnnGC	z	"	" # #


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


1a?
+++, , , , , , , , , , , , , , ,JJq!(1,J-----s$   1BBB6CC"Cc                  Z    t          j        dgd           t          j                     d S )Nr   Labelr  )r&   rt  rH   r   r$   r"   test_eventplot_legendr    s(    M3%w''''JLLLLLr$   rw  zlineoffsets cannot be emptyrx  zlinelengths cannot be emptyr  zlinewidths cannot be emptyro  zlinestyles cannot be emptyr  zalpha cannot be emptyz!positions must be one-dimensionalz5lineoffsets and positions are unequal sized sequencesz5linelengths and positions are unequal sized sequencesz4linewidths and positions are unequal sized sequencesz4linestyles and positions are unequal sized sequencesz/alpha and positions are unequal sized sequencesz0colors and positions are unequal sized sequencesc                     t          j        | |          5  t          j        |i | d d d            d S # 1 swxY w Y   d S r	  )r   r   r&   rt  r	  s       r"   test_eventplot_errorsr    s    * 
s%	(	(	( ' 't&v&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r	  c                  l   t          j                    \  } }|                    t          d          d           |                    ddt          d          d           |                    ddgddgd          \  }}|                                |                                cxk    rdk    sn J d S )Nr6  r8   r   )rP   r  )r   r   r   r*  r  )r&   r   r.  r   rL  r_  )r,   r!   rect1rect2s       r"   test_bar_broadcast_argsr    s    lnnGCFF588QGGAquQxxG***661a&1a&4D6EELE5  E$7$7$9$9MMMM=MMMMMMMMMr$   c                     t          j        ddgddg           t          j        t                    5  t          j        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j	        t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  t          j	        t          j                   d d d            d S # 1 swxY w Y   d S r  )
r&   r   r   r   r  r   rj   r  r  r   r   r$   r"   test_invalid_axis_limitsr    s   HaVaV	z	"	"                	z	"	"                	z	"	"                	z	"	"                   sG   AA"%A"B--B14B1C<<D D  EEEr  r:  r4  r  c                     t          j                    }|                    g d           |                    |            |                    |           |                                 d S )Nr  )r&   rq  r   r<  r  r  )r  r  r!   s      r"   test_minorticks_onr    sa     
BGGLLLMM&MM&r$   c                     t          j                    \  } }|                    dd           |                                }|                    ddgddg           t          j                    \  }}|                    dd           |                    ddgddg           t          |j        j        |j        j                   d S )Nr8   r9   r   r   )r&   r   r  r  r   r   r	  	intervalx)r,   r!   xtwinr"  r!  s        r"   test_twinx_knows_limitsr    s    lnnGCJJq!HHJJE	JJ3x!Q   ID#KK1HHaX1vu}.0EFFFFFr$   c                  >    t          j        ddgddgdd           d S )Nr   r8   rD  )r  rR  )r&   r   r   r$   r"   test_zero_linewidthr  %  s)    HaVaV++++++r$   c                      t          j                    \  } }|                    g g g d           |                    g g g d           |                                 d S )Nzempty y)rM  r/   zempty x)rN  r/   )r&   r   rI  rH   r+   s     r"   test_empty_errorbar_legendr  *  sV    lnnGCKKBRyK111KKBRyK111IIKKKKKr$   c                    t          j        ddd          }d |D             }d |D             }d |D             }|                                                     ||           |                                                    ||           d S )Nr  r~   r   c                 B    g | ]}d |dz  z  d|dz  z  z
  d|z  z   dz   S )g@r   r  r9   g\(\@      @r   r  s     r"   r   z%test_plot_decimal.<locals>.<listcomp>4  s;    	C	C	C1#Q,qAv
%q
03
6	C	C	Cr$   c                 ,    g | ]}t          |          S r   r   rQ  s     r"   r   z%test_plot_decimal.<locals>.<listcomp>5  r>  r$   c                 ,    g | ]}t          |          S r   r   rQ  s     r"   r   z%test_plot_decimal.<locals>.<listcomp>6  r>  r$   )rj   rr   r   r   )r   r    rD  rE  r1   r2   s         r"   test_plot_decimalr  1  s    	3C	 	 B	C	C	C	C	CB  R   A  R   AQ"""B#####r$   c                     |                                                      dddd           |                                                     dddd           d S )Nr   r   r7  r   )r  r  rT  )r   r   )r   r    s     r"   test_markerfacecolor_none_alphar  >  sZ    Qr:::As266666r$   c                     dt           j        d<   dt           j        d<   t          j                    \  } }|                    | j                                                  }|                    d           |                    | j                                                  }|j        |j        k     sJ |j        |j        k     sJ dS )z5Test that tick padding gets turned off if axis is offr	  zxtick.directionzytick.directionoffN)	r&   r   r   get_tightbboxr  rl  r'  rD  rE  r,   r!   bbbb2s       r"   test_tick_padding_tightbboxr  D  s    &+CL"#&+CL"#lnnGC			#*1133	4	4BGGENNN


3:2244
5
5C536>>>>536>>>>>>r$   c                  d   d\  } }t           j        t          dd|z   |          t          dd| z   |           f         \  }}t          j        |          dz  t          j        d||z  z             t          j        |          z  z   }t          j                    \  }}|                    |||ddddf                    |                    d           |	                                 dd	g}d
dg}|d         |d         |d         |d         z
  |d         |d         z
  g}	|
                    |	          \  }
}|J |j                                         t          j        ddgd	dgg          }t          j        |
                                                                |k              sJ dS )z:
    Ensure that inset_ax argument is indeed optional
    r  r  r8   r   r~   Nr   r   r   333333@r9   r5  r   )boundsr   )rj   mgridr  r  rm  r&   r   r  r	  apply_aspectindicate_insetr  r  rU  r  get_bbox
get_points)dxdyr2   r1   r  r,   r!   r   r   rb  rec
connectorsxxs                r"   
test_insetr  P  s    FB8E!QVR((!QVR(() *DAq
q		R"&a!e,,rvayy88AlnnGCMM!Q#2#ss($$$MM"OO ;Ds8DGT!Wd1gQ/a471BCD''t'44OCJOO	C9#;  
! 
!B6#,,..++--34444444r$   c                     d\  } }t           j        t          dd|z   |          t          dd| z   |           f         \  }}t          j        |          dz  t          j        d||z  z             t          j        |          z  z   }t          j                    \  }}|                    |||d dd df                    |                    d           |	                                 |
                    g d          }|                    |||d dd df                    |                    dd	g           |                    d
dg           |                    |                                           |                    |          \  }}	t          |	          dk    sJ |j                                         t          j        ddgd	dgg          }
t          j        |                                                                |
k              sJ t          j        ddgddgg          }
t           j                            |                                                                |
d           d S )Nr  r8   r   r~   r   r   )r  r  r  r  r   r  r9   r5  r6  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rj   r  r  r  rm  r&   r   r  r	  r  
inset_axesr  r  r	  indicate_inset_zoomr  r  r  rU  r  r  r  r   r   r	  )r  r  r2   r1   r  r,   r!   axin1r  r  r  s              r"   test_zoom_insetr  m  sZ   FB8E!QVR((!QVR(() *DAq
q		2rAaCx((26!9944AlnnGCMM!Q#2#ss($$$MM"OO MM00011E	Q1SbS#2#X;'''	NNC;	NNAs8	R]]__%%%,,U33OCz??aJOO	C":#;  
! 
!B6#,,..++--344444	FH%H%' 
( 
(BJ''))2D  : : : : :r$   zinset_polar.pngc                  :   t          j                    \  } }|                    g dd          }t          |t                    sJ t          j        ddd          }dt
          j        z  |z  }|                    ||           |                    ||           d S )N)r   r   r  r  Tr  r   r9   r  )	r&   r   r  r   r   rj   rr   r  r   )r
  r!   axinsrF  r  s        r"   test_inset_polarr    s    LNNEArMM000M==EeY'''''
	!QAIMEGGE1	JJuar$   c                      t          j                    \  } }|                    g dd          }t          |t                    sJ d S )Nr   r   r   r   hammerry  )r&   r   r  r   r   r
  r!   r  s      r"   test_inset_projectionr    sI    LNNEArMM...8MDDEeZ(((((((r$   c                      t          j                    \  } }|                    g dt          j                  }t          |t          j                  sJ d S )Nr  )r  )r&   r   r  AAr   r   r  s      r"   test_inset_subclassr    sM    LNNEArMM...27MCCEeRW%%%%%%%r$   
x_inverted
y_invertedc                 f   t          j        dd          \  }\  }}t          j        d          }|                    ||d           | r|                                 |r|                                 |                    g d|          \  }}|\  }}	}
}| rdnd}|rdnd}||
j        d         |j        d         z
  z  dk    sJ ||j        d         |	j        d         z
  z  dk    sJ ||	j        d         |j        d         z
  z  dk    sJ ||j        d         |
j        d         z
  z  dk    sJ dS )	zR
    Test that the inset lines are correctly located with inverted data axes.
    r8   r9   r~   r   )r9   r9   r   r6  r   r   N)	r&   r   rj   rr   r   r  r  r  rp  )r  r  r,   r  r!  r1   rb  r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                 r"   test_indicate_inset_invertedr    se    l1a((OC#s
	"AHHQ3  %%lllC88LD&7=4J
K$RR1F$RR1F[_Q'*.*;;<q@@@@[_Q'*.*;;<q@@@@Z^A&)::;a????[_Q'+/!*<<=AAAAAAr$   c                  Z   t          j                    \  } }|                    d           |                    g dd           t	          j        |                                j        d          sJ |                    d           |                    g dd           t	          j        |                                j        d          sJ |                    d           |                    g dd	           t	          j        |                                j        d          sJ d S )
Nr  )r   r   r*  r*  r   r  r   r   r
  r|  active)r&   r   r	  rk	  rj   r4  r	  r  r+   s     r"   test_set_positionr    s   lnnGCMM"OO(((O777;r((.44444MM"OO(((
O;;;;r((.55555MM"OO(((O999;r((.4444444r$   c                     t          j                    \  } }|j        j                            | j                                                  }|                    ddd dd           |j        j                            | j                                                  }t          j	        
                    |                                |                                d           d S )N)rD  rD  ro  ro  r	  Fgư>r  )r&   r   rh	  rO   rm  r  rl  _set_view_from_bboxrj   r   r   r  r  s       r"   !test_spines_properbbox_after_zoomr    s    lnnGC			+	+CJ,C,C,E,E	F	FB// / /
)

,
,SZ-D-D-F-F
G
GCJr}}0@0@tLLLLLr$   c                  $   t          j                    \  } }d}d}|                    |           |                    |d         |d                    |                    d           t
          j                            ||                                d           t
          j                            ||	                                d           |                    d	           d
}d}|                                }|	                                }t
          j                            |d         |d         z
  d           t
          j                            |d         |d         z
  d           t
          j                            ||d           t
          j                            ||           |                    d           |                                }|	                                }t
          j                            |d         |d         z
  d           t
          j                            |d         |d         z
  d           t
          j                            ||d           t
          j                            ||d           d S )Nr  r   )r   r9   r   r8   r	  )r  r  r   r
  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r&   r   r  r  r  rj   r   r   r   r   )r,   r!   r   r   rd  new_ylimres_xlimres_ylims           r"   test_limits_after_scroll_zoomr    s   lnnGCDDKKKKT!W47K+++ >***JtR[[]]???JtR[[]]??? >***9H"H{{}}H{{}}HJx{Xa[8#>>>Jx{Xa[8#>>>Jx>>>Jx222 ?+++{{}}H{{}}HJx{Xa[8!<<<Jx{Xa[8!<<<JtXE:::JtXE:::::r$   c                  4   t          j                    \  } }t          |            |                    t          j        dd           | j                                        }t          j        	                    |
                    |          j        d           d S )Nr8   r  i  )r&   r   r   r  rj   r  r  rl  r   r   r  r  )r,   r!   rp  s      r"   test_gettightbbox_ignore_nanr    sy    lnnGCC   GGBFAuz&&((HJr//99?EEEEEr$   c                 X   t          dd          }|                     t          j                            d          |          }|                     t          j                            d          |          }|                     g d|          }t          j        |||           d S )Nr~   r2  rv  r  r  )r8   r8   r8   r8   r8   r   r   r   )r   r  rj   rk   r  r&   r:   )r  r  r1   r2   r<   s        r"   "test_scatter_series_non_zero_indexr    s    
B--C
		")###++3	77A
		")###++3	77A
		***#	66AK1ar$   c                  `    t          j        g g            t          j        g g g g            d S )N)r  r<   )r&   r:   r   r$   r"   test_scatter_empty_datar     s3    KBKB"######r$   zannotate_across_transforms.pngc            
      $   t          j        ddd          } t          j        |            t          j        |           z  }t	          j        d          \  }}|                    | |           |                    g d          }|                    d           |j	        
                    d           |j        
                    d           |                    d	| d
         |d
         f|j        d|j        t          d                     d S )Nr   r~   r  )gQ@r   r(  )r*  r   r   r   r   Fr   rc  rI  r	  )r	  )r  r  r  r  r  )rj   r
  rD  r  r&   r   r   r  r	  rZ   r   r]   r  	transDatarF  r~  )r1   r2   r,   r!   r  s        r"   test_annotate_across_transformsr#    s    	Ar3A
r

RVAYYAl9---GCGGAqMMMMM...//E	S	KE"""	KE"""KK##'",%/4000  2 2 2 2 2r$   zsecondary_xy.pngc                     t          j        dddd          \  } }d }t          |          D ]\  }}|                    t	          j        dd          t	          j        dd                     |dk    r|j        }n|j        } |d	||f
            |dd d f
            |dd d f
            |d           d S )Nr8   r9   r  T)r{  rX  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S Nr  r  r8   rj   r  r  s    r"   invertz!test_secondary_xy.<locals>.invert(      [))) 	 	q5	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   (,,r4  r   r   	functionsr*  c                     d| z  S Nr9   r   r  s    r"   r  z#test_secondary_xy.<locals>.<lambda>4  s
    A r$   c                     | dz  S r.  r   r  s    r"   r  z#test_secondary_xy.<locals>.<lambda>4  s
    Q r$   r  c                     | dz  S r.  r   r  s    r"   r  z#test_secondary_xy.<locals>.<lambda>5  s
    1 r$   c                     | dz  S )Nr   r   r  s    r"   r  z#test_secondary_xy.<locals>.<lambda>5  s
    C r$   r  )r&   r   r  r   rj   rr   secondary_xaxissecondary_yaxis)r,   r  r(  nnr!   secaxs         r"   test_secondary_xyr6  $  s    |Aq'dKKKHC   C.. 
 
B
	!R  ")Ar"2"233377&EE&Ecff-....coo?@@@@cnn.@.@ABBBBc




 
r$   c                  V   t          j                    \  } }|                    t          j        dd          t          j        dd                     t          j        t                    5  |                    dd            d d d            n# 1 swxY w Y   t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    d           d d d            d S # 1 swxY w Y   d S )Nr9   r4  r   c                     d| z  S rq
  r   r  s    r"   r  z%test_secondary_fail.<locals>.<lambda>=  s
    QU r$   r+  rB   rO   )
r&   r   r   rj   rr   r   r   r  r2  r3  r+   s     r"   test_secondary_failr9  9  s   lnnGCGGBIabi2..///	z	"	" = =
3??<<<= = = = = = = = = = = = = = =	z	"	" $ $
7###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	z	"	" % %
8$$$% % % % % % % % % % % % % % % % % %s6   ,BBB5CCC;DD"%D"c                     t          j        d          \  } }|                    t          j        dd          t          j        dd                     d }|                    d||f           | j                                         |                     d           t          |
                                j        g d	           d S )
Nr  r(  r9   r4  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S r&  r'  r  s    r"   r(  z%test_secondary_resize.<locals>.invertH  r)  r*  r>   r+  )r\  r6  r
  )r&   r   r   rj   rr   r2  r  r  r  r   r	  r	  )r,   r!   r(  s      r"   test_secondary_resizer<  D  s    l7+++GCGGBIabi2..///   u(8999JOOBOO%%-/E/E/EFFFFFr$   c                  F   t          j        d          \  } }|                    t          j        dd          t          j        dd                     d }|                    d||f          }t          |j                                        t          j
                  sJ |                                 t          |j                                        t          j                  sJ |                    d           t          j                     t          |j                                        t          j                  sJ |                    d	           t          j                     t          |j                                        t          j
                  sJ d S )
Nr  r(  r9   r4  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S r&  r'  r  s    r"   r(  z'test_secondary_minorloc.<locals>.invertV  r)  r*  r>   r+  r4  r;  )r&   r   r   rj   rr   r2  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorr<  r  
LogLocator)r,   r!   r(  r5  s       r"   test_secondary_minorlocrD  R  s   l7+++GCGGBIabi2..///   u0@AAEek3355)+ + + + +	ek3355.0 0 0 0 0MM%HJJJek3355(* * * * *MM(HJJJek3355)+ + + + + + +r$   c                  t   t          j                    \  } }|                    d           |                    d          }|j                            t          j                               | j        	                                 t          |j                                        t          j                  sJ d S )Nr4  r>   )r&   r   r<  r2  rZ   r   r   ScalarFormatterr  r  r   r   r,   r!   r5  s      r"   test_secondary_formatterrH  j  s    lnnGCMM%u%%E	K##G$;$=$=>>>JOO''))7+BD D D D D D Dr$   c                      t          j                    \  } }|                    d          }t          |          dk    sJ d S )Nr>   z<SecondaryAxis: >)r&   r   r2  r5   rG  s      r"   test_secondary_reprrJ  t  sB    lnnGCu%%E;;-------r$   zaxis_options.pngc            	         t          j        dd          \  } }t          d          D ]\  }}|d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     |d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     d S )Nr9   r   )scaledr  imager   r5  )r8   g	@)r   r   r   r7  r)  r	  r8   )r8   g      @)r8   r   )r   rL  r  )r&   r   r  r   r'  rA  rp  r	  )r,   ro  rI  options       r"   test_axis_optionsrO  z  s;   Q""IC;<< P P	6 	QT
)))QT
QT
hoj8>#O O O 	P 	P 	P 	QT
	9---QT
QT
hok$8>#O O O 	P 	P 	P 	PP Pr$   c                    | j                                          | j                                         }g }t          |j        |j        g          D ]i\  }}|                    |          }|rGt          j        |j	        |j
        f|j        |j        ddddd          }|                     |           ||gz  }jg }t          g d          D ]r\  }}	|j        |	                             |          }t          j        |j	        |j
        f|j        |j        ddddd          }
|                     |
           ||gz  }s|                                }t          j        |j	        |j
        f|j        |j        d	d
ddd          }|                     |           |}|                    |          }t          j        |j	        |j
        f|j        |j        ddddd          }|                     |           |}||||fS )zS
    Helper for the tests below that test the extents of various axes elements
    r  r2   r7  Nr   )r  r  r=  r<  r;  r:  rk  )rO   r>   rP   rB   r   r   r  r9   r1  r8   )r  r  rl  r  rZ   r]   r  rp  rq  rD  rE  r  r  rA  rh	  rm  )r,   r!   rp  bbaxisr4  axxr  axisrbbspinesr   spinerr  bbaxr  bbtbs                  r"   color_boxesrX    s.    JOOz&&((HFbh122  Cx(( 	"&bhry$  E NN5!!!2$H===>>  AYq\++H55#UBEN"(29W$   	vRD					B	bhryf  E NN5D


8
$
$C		#*u$  E NN5D8T4''r$   c                     t          ddi          5  t          j        dd          \  } }| j                                         t          j        |            t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d
g dg dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d}t          j	        j
        | }	t          |j        |	j        d	           g d}t          j	        j
        | }	t          |j        |	j        d	           |                                                    | j                  j        }
t          |
|                                j        d	           d S )N_internal.classic_modeFr  r  r%  r{  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r9   )decimal     b@-]@     @F8&@r^  g     @r`  r  r^  Nё\]@ra        @gR!@rd  ra  re  r^  g]@r`  re  )g+e`U@gbhR@g{G@g{Gȏ@)r   r&   r   r  r  rs  rX  r  r  Bboxfrom_boundsr   r  r	  transformedtransFigurerm  )r,   r!   rQ  rT  rV  rW  r  r4  r*  targetbbaxbbs              r"   test_normal_axesrn    sV   	-u5	6	6 < <,3777R
	#'23';';$$	< < < < < < < < < < < < < < < 	322===F 6"" H HA#/<!!(HOQGGGGG 	(''###(((,,,	F 8$$ H HA#/<!!(HOQGGGGG666F+V4Hdk8?AFFFF222F+V4Hdk8?AFFFF ??((99@DdB$8$8$:$:$A1MMMMMMs   AA::A>A>c                     t          ddi          5  t          j        dd          \  } }| j                                         |                    g g            t          | |          \  }}}}d d d            n# 1 swxY w Y   t          |          D ]	\  }}|J 
g dg dg d	g d
g}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d           ;g d}t          j	        j
        | }	t          |j        |	j        d           g d}t          j	        j
        | }	t          |j        |	j        d           d S )NrZ  Fr  r  r[  xticklabelsyticklabelsr]  rb  rc  rf  r  r  rg  )r^        ^@r`  re  )r   r&   r   r  r  r   rX  r  r  rh  ri  r   r  )
r,   r!   rQ  rT  rV  rW  r4  r*  r  rl  s
             r"   test_nodecoratorrt    s   	-u5	6	6 < <,3777R

22...'23';';$$	< < < < < < < < < < < < < < < 6""  Ayyyy 	(''###(((,,,	F 8$$ > >A#/<(/=====666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   AA==BBc                     t          ddi          5  t          j        dd          \  } }|                    g g            |j        j                            d           | j                                         t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg d	g d
g dg}t          ||          D ]4\  }}t          j        j        | }	t          |j        |	j        d           5g d}t          j        j        | }	t          |j        |	j        d           g d}t          j        j        | }	t          |j        |	j        d           d S )NrZ  Fr  r  r[  rp  )ro  rD  )r^        8@r`  gs~8&@rb  rc  rf  r  r  rg  )r^  rv  r`  g     @)r   r&   r   r   rh	  rO   rk	  r  r  rX  r   r  rh  ri  r   r  )
r,   r!   rQ  rT  rV  rW  targetsr  bbspinerl  s
             r"   test_displaced_spinery    s   	-u5	6	6 < <,3777R
22...
	%%n555
'23';';$$< < < < < < < < < < < < < < < 	%$$###(((,,,	G w11 D D#/8dCCCCC666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   A>BB #B c                      g dg dgg dg dgg dg dgg} t          g d          D ]\  }}t          dd	i          5  t          j        d
d          \  }}|                    |           |j                                         t          ||          \  }}}}t          ddg          D ]F\  }	}
t          j	        j
        | |         |	          }t          ||
         j        |j        d           G	 ddd           n# 1 swxY w Y   dS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r^  rs  r`  +e8&@)r^  rs  ra  re  )r^  gZӼ8[@r`  88&@)g r\a@r  ra  re  )r^  gqq\@r`  r|  )g88b@r_  ra  re  )r	  r	  inoutrZ  Fr  r  r[  r	  r   r9   r  r  N)r  r   r&   r   rl	  r  r  rX  r  rh  ri  r   r  )rw  dnumdirsr,   r!   rQ  rT  rV  rW  r4  r   rl  s               r"   test_tickdirsr    s    /..---/<<<---/FFF<<<>	?G   6 6 677 	F 	F
d159:: 	F 	FlsF;;;GCNNTN***JOO+6sB+?+?(FHdD$aV,, F FC&+7r9JKSM((/F F F F FF	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F	F 	Fs   B6DD		D	c                     t          ddi          5  t          j        dd          \  } }| j                                         |                    dd           t          | |          \  }}}}t          | |          \  }}}}g d	g d
g}t          d          D ]@}t          j	        j
        ||          }t          ||dz           j        |j        d           At          j        dd          \  } }| j                                         |                    dd           |                                 |                    ddd           | j                                         t          | |          \  }}}}g dg dg}t          d          D ]@}t          j	        j
        ||          }t          ||dz           j        |j        d           A	 d d d            d S # 1 swxY w Y   d S )NrZ  Fr  r  r[  r   r	  )r  r	  )r^  g88[@r`  r|  )gCiq\a@rd  r{  re  r9   r  r  r  r   rY
  )r^  gPUUUUUB@r`  gVUUUUT@)gz6P@rs  goTT@re  )r   r&   r   r  r  rl	  rX  r   r  rh  ri  r   r  r  )	r,   r!   rQ  rT  rV  rW  rw  r  rl  s	            r"   test_minor_accountedforr  0  s   	-u5	6	6 D D,3777R

Vu555'23';';$$'23';';$$III7779q 	D 	DA"'3WQZ@HQ&dD D D D D ,3777R

Vu555

F'"===
'23';';$$GGG3335 q 	D 	DA"'3WQZ@HQ&dD D D D D	D1D D D D D D D D D D D D D D D D D Ds   GG''G+.G+c                 t   |                      d                              d           |                     d                              d           |                      d          }|                    d           |                    d           |                     d                              d           d S )Nrf  Fr  rg  Ton)r   r'  r   s      r"   test_axis_bool_argumentsr  O  s     ""5)))!!%(((			c	"	"BGGENNNGGDMMM!!$'''''r$   c                     t          j                    \  } }d}d}d}d}|                    ||||g          }t          |          ||||fk    sJ ||f|                                k    sJ ||f|                                k    sJ d S )Nr   r~   r  ru  r&   r   r'  r  r   r   r,   r!   rh   ri   r  r  r  s          r"   test_axis_extent_argr  [  s    lnnGCDDDDWWdD$-..F ==T4t44444 $<2;;==(((($<2;;==((((((r$   c                     t          j                    \  } }d}d}d}d}|                    ||||          }t          |          ||||fk    sJ ||f|                                k    sJ ||f|                                k    sJ d S )Nr   r~   r  ru  )rh   ri   r  r  r  r  s          r"   test_axis_extent_arg2r  k  s    lnnGCDDDDWW$T4W@@F ==T4t44444 $<2;;==(((($<2;;==((((((r$   c                  ~    t          j        g dg dgd          \  } }} |d         dk    sJ |d         dk    sJ d S )	Nr  )r   r6  r   r  r  r  r   r8   r   r  )r&   r  r
  r  s     r"   test_hist_auto_binsr  |  sO    999lll3&AAAJAtQ7a<<<<8q======r$   c                     t          j        d          \  } \  }}g d}|t          j        gz   }|                    |          \  }}}t          j        d          5  |                    |          \  }}	}d d d            n# 1 swxY w Y   t          j                            ||           t          j                            ||	           d S )Nr9   r  r  r  )r&   r   rj   r  r  r  r   r   )
r,   r  r!  r  nan_datar  r2  r
  nanbinsnanedgess
             r"   test_hist_nan_datar    s    l1ooOC#s99DrvhHXXd^^ND%	X	&	&	& 2 2"xx1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 JtW---Juh/////s   BB
Bc                      t          j        t          j                            d          ddd          \  } }} |d         dk    sJ |d         dk    sJ d S )	Nr~   r  r  T)r   r  r   r   r8   )r&   r  rj   rk   r   r  s     r"   test_hist_range_and_densityr    s[    ")..,,f &6 6 6JAtQ7a<<<<8q======r$   c                      t          j                    \  } }g d}|                    |||dd          }|j        j        \  }}}|j        D ]0}|D ]}|j        |j        k    sJ |D ]}	|	j        |j        k    sJ 1d S )Nr  r   r   )r1   r  rN  r  rk  )r&   r   r.  rI  r!  rB  rk  )
r,   r!   r1   barcont	data_linecaplinesbarlinecolsr.  capline
barlinecols
             r"   test_bar_errbar_zorderr    s     lnnGC		AffqAaf@@G'.'7'=$Ix 2 2 	/ 	/G>CJ.....% 	2 	2J$sz11111	22 2r$   c                     t          j                    \  } }|                                 |                    ddg           |                                dk    sJ |                    dg           |                                dk    sJ d S )Nr   r  rI  r   rc  )r&   r   r  r;
  r   r+   s     r"   test_set_ticks_invertedr    s    lnnGCOOMM2r(;;==F""""MM2$;;==G######r$   c                     t          j        d          } |                                 }|                    ddgddg           |                    ddddd	d
           |                    d           | j                            |                                          }|j	        |j
        z  t          j        d          k    sJ d S )Nr
  r(  r*  r  r4  r4  logit)F]tE?g'^P?r8   r	  r  r   r  r   r   r	  r   r9   )r&   r   r   r   r   rW  rk  transform_bboxr	  r  r  r   approx)r,   r!   r   s      r"   $test_aspect_nonlinear_adjustable_boxr    s    
*X
&
&
&C			BGGRHr2hFF%g  ' ' ' JJqMMM
/
(
():):
;
;C:	!V]1%5%5555555r$   c                     t          j        d          } |                     g d          }|                    ddgddg           |                    dddd	d
d           |                    d           |                                 |                                t          j	        ddg          k    sJ |
                                d	k    sJ d S )Nr
  r(  r
  r*  r  r4  )r8   r   r  )gbeF?r  r8   r	  r  r   gS[:XL	@g'In?@)r&   r   rV  r   r   rW  r  r   r   r  r   r+   s     r"   (test_aspect_nonlinear_adjustable_datalimr    s    
*X
&
&
&C	&&&	'	'BGGRHr2hFF%h 1	  + + + JJqMMMOO;;==FM;*FGGGGGG;;==-------r$   c                     t          j                    \  } }|                                }|                    ddg           |                    d           |                                dk    sJ t          j                    \  }}|                    d           |                    ddgddg           |                    d	d
           | j        	                                 |j        	                                 |
                                }|
                                }|
                                }t          |j        |j                   t          |j        |j                   d S )Nr  iX  r8   r   r   r9   r  rv  r  r	  r	  )r&   r   r  r   set_box_aspectget_box_aspectrW  r	  r  r  r	  r   r	  )r!  r  axtwinr"  r!  bb1bbtr  s           r"   test_box_aspectr    s@    ID#YY[[F
KKS	q3&&&&ID#KKNNNHHaVaVNN7uN---KK




C




C




Cs{CK000s{CK00000r$   c                  Z   t          j                    \  } }|                    g d           | j                                         |                    d           t          j                    \  }}|                    d           |j                                         |                    g d           | j                                         |j                                         |                                }|                                }t          |j        |j                   d S )N)r   r   r'  r   r   )	r&   r   rk	  r  r  r  r	  r   r	  )r!  r  r"  r!  r  r  s         r"   test_box_aspect_custom_positionr    s    ID#)))***KrID#rK)))***KK




C




Cs{CK00000r$   c                  l   t          j        ddt          d          d          \  } }| j                                         | j                                        }g }|j        D ]8}|                    |          }|                    |j	        |j
        g           9t          ||d                    d S )Nr9   r   r8   )r	  T)r|  rX  r   )r&   r   r~  r  r  rl  r  rm  rh  r  r  r   )r,   r  rp  r	  r!   r  s         r"   test_bbox_aspect_axes_initr    s     |AqTQ-?-?-?/35 5 5HCJOOz&&((HEh , ,!!(++bh	*++++E58$$$$$r$   c                     t          j                    \  } }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    t          j                   d d d            n# 1 swxY w Y   t          j        t          d          5  |                    t          j                    d d d            d S # 1 swxY w Y   d S )Nzmust be finite and positiverx  r   r   )r&   r   r   r   r  r	  rj   r  r+   s     r"   test_set_aspect_negativer    s   lnnGC	z)F	G	G	G  
b              	z)F	G	G	G  
a              	z)F	G	G	G  
bf              	z)F	G	G	G  
rvg                 sG   AAA:BB #B  C..C25C2!EE	Ec                      t          j        dd          \  } }|                    g d           | j                                         |                                 d S )Nr8   r  )r&   r   r   r  r  redraw_in_framer+   s     r"   test_redraw_in_framer    sW    l1a  GCGGIIIJOOr$   c                      t          j                    \  } }| j                            d          J |                    d           | j                            d          J d S )N)r  r  F)r&   r   r  inaxesr   r+   s     r"   test_invisible_axes_eventsr    sa    lnnGC:Z((444NN5:Z((00000r$   c                      dt           j        d<   t          j                    } | j                                        }|D ]!}|j                                        dk    sJ "d S Nr  zlines.markeredgecolor)r&   r   ro  rZ   get_major_ticksr1  get_markeredgecolorr!   rD
  rz	  s      r"   "test_xtickcolor_is_not_markercolorr  '  h    ,3CL()	BH$$&&E ? ?~1133w>>>>>? ?r$   c                      dt           j        d<   t          j                    } | j                                        }|D ]!}|j                                        dk    sJ "d S r  )r&   r   ro  r]   r  r1  r  r  s      r"   "test_ytickcolor_is_not_markercolorr  /  r  r$   r'  r  )TFNc                    t          j                    \  }}t          j        d          }t          j        ddd          }|                    ||           t          |d|  d          }t          |d|  d          }t          |d|  d          }|
 |            n|}	 |d	|
           |	 |            k    sJ |j                                         t           |            d	           d S )Nr   rD  r   get_autoscale_onr2  limget_r  )r  )
r&   r   rj   rr   r
  r:   r+  r  r  r   )
r'  r  r,   r!   r1   r2   r  set_limget_lim	post_autos
             r"   test_unautoscaler  7  s    lnnGC
	#A
CS!!AJJq!r#<4#<#<#<==b****++Gb****++G&*l  """IGKd####((******JOOwwyy+.....r$   c                 p   |                      d                              dt          j        dz  gddg          \  }d|                                _        |                     d                              t          j        dt          j        dz  d          t          j        ddd                     d S )Nr  ry  r   r9   r8   r   e   )r   r   rj   r  get_path_interpolation_stepsr
  )r   r    r	  s      r"   )test_polar_interpolation_steps_variable_rr  K  s    					1	1	6	6257|aV	L	LBA(+AJJLL%7++00
AruQw$$bk!Q&<&<> > > > >r$   c                      t          j                    \  } }|                    dd           | j                                         |                                dk    sJ d S )Nr   g&.>)r   g	>)r&   r   r.  r  r  r   r+   s     r"   test_autoscale_tiny_stickyr  S  sS    lnnGCFF1dOOOJOO;;==L((((((r$   c                      dt           j        d<   dt           j        d<   t          j                    } | j                                        }|D ]@}|j                                        dk    sJ |j                                        dk    sJ Ad S )Nr  xtick.colorr   xtick.labelcolor)r&   r   ro  rZ   r  r1  r  r)  r  s      r"   &test_xtickcolor_is_not_xticklabelcolorr  [      "*CL'-CL#$	BH$$&&E 1 1~''))X5555{$$&&&000001 1r$   c                      dt           j        d<   dt           j        d<   t          j                    } | j                                        }|D ]@}|j                                        dk    sJ |j                                        dk    sJ Ad S )Nr  ytick.colorr   ytick.labelcolor)r&   r   ro  r]   r  r1  r  r)  r  s      r"   &test_ytickcolor_is_not_yticklabelcolorr  e  r  r$   c                  <   dt           j        d<   t          j                    } | j        j                                        dk    sJ dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ d S )Nr   r  r  r  inherit)r&   r   ro  rZ   r
  r  r  s    r"   test_xaxis_offsetText_colorr  o  s    '-CL#$	B8((**f4444"*CL'0CL#$	B8((**h666666r$   c                  <   dt           j        d<   t          j                    } | j        j                                        dk    sJ dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ d S )Nr   r  r1  r  r  )r&   r   ro  r]   r
  r  r  s    r"   test_yaxis_offsetText_colorr  z  s    '.CL#$	B8((**g5555"'CL'0CL#$	B8((**e333333r$   r  c                     g | ]}||S r  r   )r   r  s     r"   r   r     s'     "7 "7 "74%)%5 #'%5%5%5r$   )rv  r~   r  c                 z   | t           j        d<   | t           j        d<   t          j                    \  }}|j                                         t          ddg|j        |j        g          D ]N\  }}|	                                D ]4}|j
                                        |                    |          k    sJ 5Od S )Nzxtick.labelsizezytick.labelsizer1   r2   )r   r   r&   r   r  r  r   rZ   r]   r  r)  r
  _get_tick_label_size)r  r,   r!   namer'  rz	  s         r"   test_relative_ticklabel_sizesr    s     '+CL"#&*CL"#lnnGCJOO3*rx&:;; M M
d((** 	M 	MD;''))T-F-Ft-L-LLLLLL	MM Mr$   c                     t          j                    } |                     ddd          \  }}|                    g dg d           |                    dd           |                                }t          j        |d	d
g          sJ d S )Nr9   r8   r  r  r  )r9   r   r9   r   r  r   r   r  )r&   r   r   r:   r  r   rj   r4  )r,   r  r!  r   s       r"   test_multiplot_autoscaler    s    
*,,C||Aq|//HCKKlll+++KKA<<>>D;tc3Z(((((((r$   c                  |   t          j                    } |                     d          }|                     g d|          }|                                }|                     d           |                                                                |                                k                                    sJ d S )Nr  )r  r  r   r   r  r   rP   )r&   r   r   rV  r	  r  r  r  )r,   ru  r  init_poss       r"   $test_sharing_does_not_link_positionsr    s    
*,,C
//#

C
,,''',
4
4C!!HQ))++x/B/B/D/DDIIKKKKKKKr$   c                    t          j        g d          }|                     d          }|d                             ddgddg|                    d                     t          j        d	          5  |d                             ddgddg|                    d                     d d d            n# 1 swxY w Y   |d                             ddgddg|                    d                     |d
         	                    t          j
        d          |                    d                     |d                             t          j
        d          t          j
        d          |                    d                     |                    d          }|d                             ddgddg|                    d                     |d                             ddgddg|                    d                     |d                             ddgddg|                    d                     |d
         	                    t          j
        d          |                    d                     |d                             t          j
        d          t          j
        d          |                    d                     d S )Nr   r   r   r8   r9   r   r6  r  rx  r   r~   rG  r6  rc  )rj   rU  r   r   r   r   r  r:   r  r  rr   r.  )r   r    r   r  s       r"   test_2dcolor_plotr    s   H___%%E


A

CFKKAA%--"3"3K444	F	G	G	G < <A1v1vr):):;;;< < < < < < < < < < < < < < <FKKAA%--"3"3K444FKK	"U]]2%6%6K777FJJry}}bimm5==3D3DJEEE


1

CFKKAA%--"8"8K999FNNAq6Aq6U]]7%;%;N<<<FKKAA%--"8"8K999FKK	"U]]7%;%;K<<<FJJry}}bimm5==3I3IJJJJJJs   66B88B<?B<c                    t          j        ddt           j        z  d          }t          j        |          }|                    dddd          }|j        D ]}|                    ||           |                     dddd          }|j        D ],}|                                 |                    ||           -d S )Nr  r9   r  Tr	  )rj   rr   r  r  r   r  r   r  )r   r    r1   r2   r  r!   s         r"   test_shared_axes_clearr    s    
	#qw%%A
q		A


1aT

:
:Ch  
1


Aqd

;
;Ch  




1 r$   c                     t          j        dddd          \  } }|j        D ]}|                    ddgd           |d                             g d           |j        D ]4}|                                |d                                         k    sJ 5|d                             g d           |j        D ]4}|                                |d                                         k    sJ 5d S )	Nr9   r  r	  r   zo-r  )r  r   r8   r   )r  r   r9   r5  )r&   r   r  r   r;
  r   r<
  r   r
  s      r"   test_shared_axes_retickr    s   |Aqu===HCh  
AI***+++h 5 5{{}}D	 2 2 4 444444I***+++h 5 5{{}}D	 2 2 4 4444445 5r$   rE   )rP   rY   rB   c                    t                      }|                                }|                    dd|            |j                            d           |j                                                                        | k    sJ d S )Ntestr8   rD   rB   )r   r   r(   r]   set_label_positionr[   r
  )rE   r,   r!   s      r"   test_ylabel_ha_with_positionr    sw    
((C	BMM&A"M%%%H(((8&&((B......r$   c                     t          j                    } ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr8   r9   r   r   rY   rO   r>   r&   rj  r.  	bar_labelr  r\   r
  r!   r  heightsra  rK  s        r"    test_bar_label_location_verticalr    s   	Ba&1b'BFF2wE\\%  F!9<BqE71:.....!9,,..(::::!9**,,8888!9<BqE71:.....!9,,..(::::!9**,,555555r$   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr8   r9   r   r  r   rY   r>   rO   )r&   rj  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**,,5555!9<BqE71:.....!9,,..(::::!9**,,888888r$   c                     t          j                    } ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S 	Nr8   r9   r   r  r   rP   rY   rB   r&   rj  rL  r  r  r\   r
  r!   r  r  ra  rK  s        r"   "test_bar_label_location_horizontalr    s   	BQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..&8888!9**,,8888!9<F1Ir!u-----!9,,..'9999!9**,,888888r$   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S r  )r&   rj  r  rL  r  r  r\   r
  r  s        r"   ,test_bar_label_location_horizontal_yinvertedr     s$   	BOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..&8888!9**,,8888!9<F1Ir!u-----!9,,..'9999!9**,,888888r$   c                  >   t          j                    } |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S 	Nr8   r9   r   r  r   rB   rY   rP   )r&   rj  r  rL  r  r  r\   r
  r  s        r"   ,test_bar_label_location_horizontal_xinvertedr
     s$   	BOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..'9999!9**,,8888!9<F1Ir!u-----!9,,..&8888!9**,,888888r$   c                  f   t          j                    } |                                  |                                  ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S r	  )	r&   rj  r  r  rL  r  r  r\   r
  r  s        r"   -test_bar_label_location_horizontal_xyinvertedr  $   s4   	BOOOOQ!RBGGBE\\%  F!9<F1Ir!u-----!9,,..'9999!9**,,8888!9<F1Ir!u-----!9,,..&8888!9**,,888888r$   c                     t          j                    } ddgddg}}|                     ||          }|                     |d          }|d         j        dk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        dk    sJ |d                                         dk    sJ |d                                         dk    sJ d S )	Nr8   r9   r   r  rY   
label_typer   r  r  r  s        r"   test_bar_label_location_centerr  3   s    	BQ!RBGGBE\\%H\55F!9<:%%%%!9,,..(::::!9**,,8888!9<:%%%%!9,,..(::::!9**,,888888r$   z%test_centered_bar_label_nonlinear.svgc                     t          j                    \  } }|                    g dg d          }|                    d           |                    dd            |                    |d           |                                 d S )N)r<   r*  r   )r  i  iX  r4  r8   rY   r  )r&   r   rL  r<  r  r  rc  )r
  r!   r  s      r"   !test_centered_bar_label_nonlinearr  @   s    LNNEArGGOOO-B-B-BCCMMM%KK4LL8L444OOr$   c                  (   t          j                    \  } }d}t          g dg d          D ]:\  }}|                    d|||          }|                    |d           ||z  };|                    d d           |                                  d S )	Nr   r  )r~   ru  r@  rk  )r/   rP   rY   r  ru  )r&   r   r   rL  r  r  r	  )r,   r!   lastr/   r;  r  s         r"   +test_centered_bar_label_label_beyond_limitsr  J   s    lnnGCDOOO\\\::  uuEEE
]x888KKb     r$   c                  &   t          j                    } ddgddg}}|                     ||d          }|                     |          }|d         j        |d         |d         dz   fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         dz
  fk    sJ |d                                         dk    sJ |d                                         d	k    sJ d S )
Nr8   r9   r   r  rN  r   rY   rO   r>   r  r  s        r"   !test_bar_label_location_errorbarsr  W   s    	Ba&1b'BFF2wQF''E\\%  F!9<BqE71:>22222!9,,..(::::!9**,,8888!9<BqE71:>22222!9,,..(::::!9**,,555555r$   r   r
  z{:.2f}c                    t          j                    }|                    ddgddg          }|                    ||           }|d                                         dk    sJ |d                                         dk    sJ d S )	Nr8   r9   r   r  r  r   z3.00z-4.00r&   rj  r.  r  r*  )r   r!   ra  rK  s       r"   test_bar_label_fmtr  d   s     
BFFAq6Ar7##E\\%S\))F!96))))!97******r$   c                      t          j                    } |                     ddgddg          }t          j        t
          d          5  |                     |d          }d d d            d S # 1 swxY w Y   d S )	Nr8   r9   r   r  zstr or callablerx  r~   r  )r&   rj  r.  r   r   r   r  )r!   ra  r
  s      r"   test_bar_label_fmt_errorr  o   s    	BFFAq6Ar7##E	y(9	:	:	: ( (LLBL''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   	A..A25A2c                     t          j                    } |                     ddgddg          }|                     |ddg          }|d                                         dk    sJ |d                                         dk    sJ d S )	Nr8   r9   r   r  r  r  rK
  r   r  )r!   ra  rK  s      r"   test_bar_label_labelsr  v   s    	BFFAq6Ar7##E\\%c
\33F!93&&&&!93&&&&&&r$   c                  ,   t          j                    } |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr9   r   r8   c                 6    g | ]}|                                 S r   rh  r   r	  s     r"   r   z,test_bar_label_nan_ydata.<locals>.<listcomp>        )))QAJJLL)))r$   r   r)  r   r  rO   )r&   rj  r.  rj   r  r  r  r
  r!   r  rK  s      r"   test_bar_label_nan_ydatar%  ~   s    	B661a&261+&&D\\$F))&)))b#Y6666!9<6!!!!!9**,,888888r$   c                  T   t          j                    } |                                  |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr9   r   r8   c                 6    g | ]}|                                 S r   rh  r"  s     r"   r   z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>   r#  r$   r   r)  r   r  rO   )	r&   rj  rl  r.  rj   r  r  r  r
  r$  s      r"   !test_bar_label_nan_ydata_invertedr(     s    	B661a&261+&&D\\$F))&)))b#Y6666!9<6!!!!!9**,,888888r$   c                     t          j                    \  } }|                    g dt          j        ddgg d          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ t          j                    \  } }|                    g dg d	d
t          j        dg          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ t          j                    \  } }|                    g dt          j        ddgt          j        t          j        dg          }|                    |          }d |D             g dk    sJ t          j        |                                d          sJ d S )Nr  r8   r9   r  r  c                 6    g | ]}|                                 S r   rh  r"  s     r"   r   z&test_nan_barlabels.<locals>.<listcomp>   r#  r$   )r   r)  2)r  r  rM  r   r  c                 6    g | ]}|                                 S r   rh  r"  s     r"   r   z&test_nan_barlabels.<locals>.<listcomp>   r#  r$   )r(  r)  r+  )r  r  c                 6    g | ]}|                                 S r   rh  r"  s     r"   r   z&test_nan_barlabels.<locals>.<listcomp>   r#  r$   )r&   r   r.  rj   r  r  r4  r   )r,   r!   r  rK  s       r"   test_nan_barlabelsr.     s   lnnGC66)))bfa^///6BBD\\$F))&)))^^^;;;;;r{{}}j11111lnnGC66)))YYYc263-?6@@D\\$F))&)))___<<<<;r{{}}k22222lnnGC66)))bfa^262632G6HHD\\$F))&)))^^^;;;;;r{{}}j1111111r$   c            	      n   t          j                    \  } }|                    t          j        ddddd                     dt          j        dt
          j        z  d	z            d
z  z  }t
          j        	                    t          j
        d|dz    d|dz   f          |j        j        d           d S )N)r   r   rU  r&  r  r   rl  gffffff?r  rG  r9   gr  rj  )r&   r   ro  rp  Wedgerj   r  r  r   assert_array_almost_equal_nulprU  dataLimr  )r,   r!   bots      r"   test_patch_boundsr4     s    lnnGCLLr3cBBBCCC
bfRXc\""A%
%CJ--
&CH+tSW566
8I2O O O O Or$   c            	          t          j        t          d          5  t          j        dgdgdddd           d d d            d S # 1 swxY w Y   d S )	Nz!You passed a edgecolor/edgecolorsrx  r   r  ro  rF  r*  )r   r  r;  r<  )r   r  rH  r&   r:   r   r$   r"    test_warn_ignored_scatter_kwargsr6     s    	k@
B 
B 
B O OQC!SC3#NNNNO O O O O O O O O O O O O O O O O Os   AA
A
c                     t          j                    \  } fdt          d          D             }                    t	          j        d          t	          j        d                    }                    t	          j        d                    }                    t          j
        ddd                    }                    ddd          }t          j                  |gk    sJ t          j                  |gk    sJ t          j                  |k    sJ t          j                  |gk    sJ j        rJ t          j                  |gk    sJ j        d         |d         u sJ j        d         |d         u sJ t'          j        t*          d	
          5  j        t-          |          dz             d d d            n# 1 swxY w Y   j        g dz   g |dddk    sJ g dj        z   dddg|k    sJ j        dz   g |dddR k    sJ dj        z   dddg|R k    sJ |                                 j        rJ |                                 j        rJ |                                 j        rJ j        rJ |                                 j        rJ j        D ]}|                                 t-          j                  dk    sJ d S )Nc           	      r    g | ]3}                     t          j        ||d z                       d         4S )r   r   )r   rj   rr   )r   rI  r!   s     r"   r   z(test_artist_sublists.<locals>.<listcomp>   s:    ???RWWRYq!a%(())!,???r$   r  r   )r   r   r  r   r  r   zout of rangerx  r8   r  r9   r   )r&   r   r   r:   rj   rr   r   r  ro  rp  rq  r  r  r  imagesr!  rB  tablesr 
  r   r   
IndexErrorr  rp  )r,   r!  rk  r  r  r  rA  r!   s          @r"   test_artist_sublistsr<     se   lnnGC????eAhh???E
**RYq\\29Q<<
0
0C	28F##	$	$BLL+FAq99::E771aD C5((((	??rd"""">>U""""
w&&&&y>>dV#### 8A;%(""""8B<59$$$$	z	8	8	8 ! !
Ua  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 8iii#4U#4A#4q#4!#4444499rxAq!#4e#44444 8i#4U#4A#4q#4!#4#44444rxAq!#4e#4#44444 JJLLL~IIKKKy	LLNNNzyKKMMMxh  
		rx==As   ,GGGc                  Z   t          j        d          } t          j        d          }t          j                    \  }}|                    | |          }t          |          dk    sJ t          j                    \  }}|                    g g           }t          |          dk    sJ d S )Nr~   )r~   r   r   r8   )rj   r   r&   r   r   r  )r1   r2   r
  r!   r  s        r"   test_empty_line_plotsr>     s    
A
ALNNEAr771a==Dt99>>>> LNNEAr772r??Dt99>>>>>>r$   z
fmt, match))r\  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\)stringc                    t          j                    \  }}||                    dd          }t          j        t
          d|z   dz             5  |                    d| |           d d d            d S # 1 swxY w Y   d S )Nnotzneither a data key norz\Az\Zrx  r@  rX  )r&   r   replacer   r   r  r   )r   ry  r  r,   r!   s        r"   test_plot_format_errorsrD     s     lnnGCe%=>>	z)>	?	?	? * *
#D)))* * * * * * * * * * * * * * * * * *s   A66A:=A:c                     t          j                    \  } }|                    g dd          }|d                                         dk    sJ |d                                         dk    sJ t          j                    \  } }|                    g dd          }|d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    g dd	          }|d                                         d
k    sJ |d                                         dk    sJ d S )Nr  z1.0r   )r   r   r   r   r  r)  r8   r9   k3r  r)  )	r&   r   r   r  r  r  r  r@
  r*  r}
  s      r"   test_plot_formatrG   !  s?   lnnGC77999e$$D7"6666676))))lnnGC77999c""D73&&&&lnnGC77Aq6Aq65#..DJOO7"66666"++--4444lnnGC77Aq6Aq63..DJOO73&&&&"++--6666lnnGC77999d##D73&&&&7#%%%%%%r$   c                  p   t          j                    \  } }|                    ddddi           |                                }| j                                         |                                d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    dddddi           |                                }| j                                         |                                d                                         dk    sJ |	                                d                                         dk    sJ |                                d                                         dk    sJ d S )Nr   r*  r  r9   rX  r   r<   )
r&   r   r   rH   r  r  	get_textsr*  r@
  r  )r,   r!   legs      r"   test_automatic_legendrK  !  s|   lnnGCGGCC8G$$$
))++CJOO==??1&&((C////"++--4444lnnGCGGCcaG)))
))++CJOO==??1&&((C////"++--4444"++--444444r$   c            	      .   t          j        t          d          5  t          j        g dd           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g dg dg dg ddd	g
           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g ddg           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        t          j        d                     d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        ddddddi           d d d            d S # 1 swxY w Y   d S )Nz"plot\(\) got an unexpected keywordrx  r  r8   r  zplot\(\) with multiple groupsr  r)  r+  r  zx and y must have same firstzx and y can be no greater than)r9   r9   r9   zUsing arbitrary long args withr   r*  r<   r  r9   rX  )r   r   r   r&   r   r  rj   r   r   r$   r"   test_plot_errorsrM  )!  s   	y(M	N	N	N ! !a    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J O OIIIyyy)))C:NNNNO O O O O O O O O O O O O O O	z)G	H	H	H ! !QC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J % %##$$$% % % % % % % % % % % % % % %	z)I	J	J	J 4 4c33(33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4sY   AAA'$BBB=C""C&)C&'D;;D?D?!F

FFc            
         t          j                                                    } t          | j        t          d          t          d          t          d                    t          | j        ddgddgg          t          | j        ddgddgg          t          | j        ddgddgg          t          | j	        ddgddgg          fD ])}d} ||          j
        }|j        |j        f|k    sJ *d S )Nr   r6  r   r8   r9   )r\  rv  )clim)r&   r   r   r   r:   r   r   rN  r  r  r  r  r  )r!   plot_methodrO  r  s       r"   	test_climrQ  6!  s   		!	!	#	#BBJa%((eAhh???BIAA/00BI!Q!Q 011BMQFQF#344BMQFQF#344 	. 	. {%%%*	49%-----	. 	.r$   c                     ddgddgddgddgg} t           j        j        t           j        j        t           j        j        t           j        j        g}t          j        | |          }t          j                    \  }}|                    t          j	        |                     |
                                 |                                d         dk    sJ d S )Nr   r   r8   r  )mpathr@  rD  CURVE3	CLOSEPOLYr&   r   ro  rp  rC  rn  r   )r	  codesr	  r,   r!   s        r"   test_bezier_autoscalerW  D!  s     !WWVVE ZZZZ!#E 	
5%  AlnnGCLL#A&&'''LLNNN ;;==t######r$   c                     t          j        g ddgddgddgddgddgddgddgddgddgddgddgddgddgddgd	dgd	dgd
dgd
dgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd gd!d gd!d"gd#d"gd#d$gd%d$gd%d&gd'd&gd'd(gd)d(gd)d*gd+d*gd+d,gd-d,gd-d.gd/d.gd/d0gd1d0gd1d2gd3d2gd3d4gd5d4gd5d2gd6d2gd6d4gd.d4gd.d7gd8d7gd8d0gd9d0gd9d:gd;d:gd;d*gd<d*gd<d(gd=d(gd=d&gd>d&gd>d$gd?d$gd?d@gdAd@gdAd gdBd gdBdgdCdgdCdgdDdgdDdEgdFdEgdFdGgdHdGgdHdgdIdgdIdgdJdgdJdgdKdgdKdgdLdgdLdgdMdgdMdgdNdgdNdgdOdgdOdgdPdgdPdgdQdgdQdgdRdgdRdgdSdgdSdgdTdgdTdgdUdgdUdgdVdgdVdgdWdgdWdgdXdgdXdg          } t          j        | d d dYf                   }t          j        | d d dZf                   }t          j        | d d dYf                   }t          j        | d d dZf                   }t	          j        |           }t          j                    \  }}|                    t          j
        |                     |                                 |                                dY         |k    sJ |                                dZ         |k    sJ |                                dY         |k    sJ |                                dZ         |k    sJ d S )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r  gffffffgQgףp=
r  g(\g{Gz?gHzGg      rf  gQ g{Gz?gzGr   gRQr  g(\gQ?g333333g(\?gr/  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r   g(\տg{Gz?g
ףp=
ǿrv  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?rL  g(\?r|  gQ?gGz?g=
ףp=?gffffff @r	  gGz@r  g(\@g=
ףp=@gQ@g@gGz@g\(\	@gp=
ף
@gQ@g333333@g{Gz@g(\@gQ@g)\(@g@gq=
ףp@gGz@gQ@r   r8   )rj   rU  rX  r[  rS  r@  r&   r   ro  rp  rC  rn  r   r   )r	  minxminymaxxmaxyr	  r,   r!   s           r"   test_small_autoscaler^  Y!  s   H 	t}',dm6;T]	t}',dm6;T] 
 t} (-dm 7<T] 
	 t}	 (-dm	 7<T]	
 

 t}
 (-dm
 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T]  
!  t}!  (-dm!  7<T]!" 
#" t}#" (-dm#" 7<T]#$ 
%$ t}%$ (,Tl%$ 6:4L%$ DH,%& 
t'& Tl'& &*4L'& 48,'& BFt'( 
t)( Tl)( &*4L)( 48,)( BFt)* 
t+* Tl+* &*4L+* 48,+* BFt+, 
t-, Tl-, &*4L-, 48,-, BFt-. 
t/. Tl/. &*4L/. 48,/. BFt/0 
t10 Tl10 &*4L10 48,10 BFt12 
t32 Tl32 &*4L32 48,32 BFt34 
t54 Tl54 &*4L54 48,54 BFt56 
t76 Tl76 &*4L76 48,76 BFt78 
t98 Tl98 &*4L98 48,98 BFt9: 
t;: Tl;: &*4L;: 48,;: BFt;< 
t=< Tl=< &*4L=< 48,=  EB 6%1+D6%1+D6%1+D6%1+D
5AlnnGCLL#A&&'''LLNNN;;==t####;;==t####;;==t####;;==t######r$   c                  p   t          j                    \  } }|                    t          j        d                     t          d          D ]h}|                                |                                         | k    sJ |                                |                                         | k    sJ id S )Nr~   )	r&   r   r   rj   rr   r   r  r*  r@
  )r,   r!   r?  s      r"   test_get_xticklabelr`  !  s    lnnGCGGBIbMMRyy @ @!!##C(1133#x????!!##C(1133#x?????@ @r$   c                     t          j        dt                    } t          j        g d          }t          j        dgdz            }t           j        | d<   t          j                    \  }}|                    | ||          }|                    | ||          }||fD ]}|^}}	t          j	        |j
                                                   sJ t          j	        |                                          sJ |	D ]W}
t          j	        |
j
                                                  sJ t          j	        |
                                          sJ Xd S )Nr   r  )r   r   r   rY  r   r  r  )rj   rr   r  rU  r  r&   r   r.  rL  isfiniter  any	get_widthr  )barx
barheights	barstartsr,   r!   r  hbarsbar_setnanfulrestr*  s              r"   test_bar_leading_nanrl  !  sN   9Qe$$$D///**J$""IfDGlnnGC66$
9655DGGD*9G55E%= . .VY''',,.....{6++--..... 	. 	.A;qt$$((*****;q{{}}------	.. .r$   c                    t           j                            d           |                                 }|                                }|                    t
          j        gt
          j        g           |                    dgdg           |                    dgdg                                           |                    dgdg           d S )Nr   r8   )r   r   r   r   r.  rj   r  rp  r  s       r"   test_bar_all_nanrn  !  s    IMM'!!GFKK26(###KKaS
JJsQC!!!
JJsQCr$   zextent_units.pngc                  "   t          j        dd          \  } }t          j        dd          }t          j        dd          }d t	          d          D             }|d                             d           |d                             |d	d
d||gt          j        d                   }|d                             d           |d                             |d	||d
dgt          j        d                   }|d         j	        
                    t          j        d                     |d                             |d	||||gt          j        d                   }|d         j	        
                    t          j        d                     |d                             d           |d                             |d	t          j        d                   }|                    ||||g           |d         j	        
                    t          j        d                     |d                             d           t          j        t"          d          5  |                    dd||gd           d d d            d S # 1 swxY w Y   d S )Nr9   z
2020-01-01rL  z
2020-01-11c                 F    g | ]fd t          d          D             S )c                     g | ]}|z   S r   r   )r   rI  rE  s     r"   r   z0test_extent_units.<locals>.<listcomp>.<listcomp>!  s    ###AAaC###r$   r~   )r   )r   rE  s    @r"   r   z%test_extent_units.<locals>.<listcomp>!  s4    
7
7
7####r###
7
7
7r$   r~   r  zDate extents on y axisr   r8   r4  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%drI  zDay of Jan 2020)rM	  rn  )r   r   z set_extent\(\) got an unexpectedrx  r  Fr  )r&   r   rj   r]  r   r4   r   r   rl  rZ   r   r7  DateFormatterr   
set_extentr   r   r   )r
  r  
date_first	date_lastarrr  s         r"   test_extent_unitsry  !  s   \!QFAs|S11JlC00I
7
7U2YY
7
7
7CI0111	T		#g"#RY!?"}X6 
 
8 
8B IBCCC	T		#g",iB!?"}X6 
 
8 
8B IO''(<T(B(BCCC	T		#g",i",i"9"}X6 
 
8 
8B IO''(<T(B(BCCCIMM*M+++	T		#g"}X6 
 
8 
8BMM9j)Z@AAAIO''(<T(B(BCCCIMM*M+++	y(K	L	L	L B B
q"j)45AAAB B B B B B B B B B B B B B B B B Bs   JJJc                  ,   t          j                    \  } }|                    g g g g           }|                    dgg          }||gz   D ]}|j        |u sJ |j        | u sJ |                                 ||gz   D ]}|j        J |j        J d S rq
  )r&   r   r   r   ro  r   r  )r,   r!   r!  rt  arts        r"   %test_cla_clears_children_axes_and_figr|  !  s    lnnGCGGBB##E
))aSE

Cu} ! !x2~~~~zS     HHJJJu} " "xz!!!!" "r$   c                      t          j                    \  } }|                    g d|          }|                                }|                                 |                    dd           d S )N)r8   r   r   r8   rh  rd  ro  rh  )r&   r   r  r  rp  r   )r,   r!   marginalmarginal_twins       r"   test_child_axes_removalr  !  se    lnnGC}}]]]2}66HNN$$MOOFFhF'''''r$   c                      d } d}t          j        t          |          5  d}t          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r$   r"   r  z5test_scatter_color_repr_error.<locals>.get_next_color!  r  r$   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'rx  zred
r9   r  )r   r   r  r   ro  r   r  )r  msgr<   s      r"   test_scatter_color_repr_errorr  !  s      8  
z	-	-	- M M//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   ,AA!Ac                  0   t          j                    \  } }|                    d           |                    t	          d          dd          \  }t          j                    5 }|                     |d           d d d            d S # 1 swxY w Y   d S )Nr   Tr8   )ry  rk  rg  )ro  )r&   r   set_rasterization_zorderr   r   rq  rr  rs  )r,   r!   rA  r*  s       r"   &test_zorder_and_explicit_rasterizationr   "  s    lnnGC"""
''%((tA'
6
6CB	 %Ae$$$% % % % % % % % % % % % % % % % % %s   &BBBzpreset_clip_paths.pngc            	         t          j                    \  } }t          j                            ddgddgddgddggdddd          }|                    |           t          j                            d	d
d|          }|                    t          j
                    g           |                    |           t          j                            d	ddd|          }|                    |           t          j                            ddgddgddggddddd|          }|                    |           |                    dddddid|           t          j                            ddgddgddgddggddddd|          }|                     |d           |                    dd           |                    dd           d S )Nr8   r   r   z#ddffddz#00ff00r9   r   )r;  r<  r=  r  rd  r  T)clip_onr  )r  r  rF  )r   r  r  rJ  z#beefc0r   z#faded0)r;  r  r<  r=  r  r  r  )rI  rI  )r   rK  r   r)  )r  r  r  r  r  r2   )r;  r<  r=  r  r  r  rs  )r&   r   r   rB  Polygonro  r!  r&  set_path_effectsr   withTickedStrokerA  r  r  r  )r,   r!   polyr  poly2poly3s         r"   test_preset_clip_pathsr  "  s   lnnGC;
Q!Q"a1b'*iq  5 5D LL9GZNND;799:;;;MM$9G\d&*  , ,DMM$K
a1a&1e*%#q$$   H HE MM% KKn[#S>44  I I I K
Q!SC:Qx0C33   > >E NN5tN$$$KKAKKAr$   c                  ^   dt           j        d<   dt           j        d<   dt           j        d<   t          j                    } | j        j                                        dk    sJ | j        j                                        dk    sJ | j        j                                        dk    sJ d S )Nr1  zaxes.labelcolorru  zaxes.labelsizerG
  zaxes.labelweight)	r   r   r&   ro  rZ   r/   r  get_fontsizeget_fontweightr  s    r"   test_rc_axes_label_formattingr  -"  s    &+CL"#%'CL!"'-CL#$	B8>##%%....8>&&((B....8>((**f444444r$   c                 (   t          j        dt           j         t           j         t           j        dddg          }t          t	          |                    }|                     dd          }t          |ddg          D ]\  }}|                    ||          }|                    ddt           j                            |          |d	|d
d
d          }t	          |	                                          t          j
        |                                           dz   k    sJ t	          |	                                          t	          h |t          j
        |                              dz   k    sJ |                    dd          }	|	d                             t           j         t           j         t           j         ddddt           j        gt          j        d          dz  d           |	d                             t           j         dddt           j        t           j        gt          j        g d          dz  dd           |	d                             t          j        d          dz  t           j         t           j         t           j         ddddt           j        gd           |	d                             t          j        g d          dz  t           j         dddt           j        t           j        gdd           d S )Nr   r8   r9   r  rQ   rR   r  rT  )r  rT  Tr  )r  rS   complementarycompressr  rv  r\  r  )ds)r  ru  r2  r  r   r   r  z	steps-pre)r  r  )rj   rU  r  r   r  r   r   ecdfr	   	get_xdataisnanr  r   rr   )
r   r    r  r  r   r!   rS   l0l1r   s
             r"   	test_ecdfr  9"  s   8Q"&"&!Q:;;DCIIG  A&&Hx*l)CDD H HKWWT{W33WWS#"%++d*;*;'$J$J!,#'$3  @ @ 2<<>>""&;&;&=&=&AAAAA2<<>>""c*BD"(4..,A*B&C&Ca&GGGGGGq!$$GAJOObfWrvgw1aBFCIaLL1$  7 7 7AJOObfWaArvrv6H33344r9"s  , , , AJOOBIaLL1$fWrvgw1aBFC"  $ $ $ AJOOBH33344r9fWaArvrv6#  - - - - -r$   c                  z   t          j        t                    5  t          j        dt
          j        g           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t
          j                            ddgddg                     d d d            d S # 1 swxY w Y   d S )Nr8   r9   TFr  )	r   r   r  r&   r  rj   r  r	   rU  r   r$   r"   test_ecdf_invalidr  S"  s   	z	"	"  !RV              	z	"	" : :aV4-88999: : : : : : : : : : : : : : : : : :s#   !AAA+8B00B47B4c            
         t          j                    \  } }t          j        ddt          j        z  d          }dt          j        |          z  }d}|                    ||d           |                                |                                f}|	                    |dd	d
           |
                    |dd||k    dd|                                           |                                |                                f|k    sJ d S )Nr   r6  r  r   g333333?r  rG  r   r9   r  )r   rR  r  r8   r   )r   r   r  r:  )r&   r   rj   rr   r  r  r   r   r   rt   r  r  )r,   r!   r1   r2   	thresholdoriginal_limss         r"   test_fill_between_axes_limitsr  Z"  s    lnnGC
	!QY%%ABF1IIAIGGAqG   [[]]BKKMM2MJJyASJ999OOAq!1y=!8N8N8P8P  R R R KKMM2;;==)]::::::r$   c                     t          j                    \  } }|                    g dg d           |                    dd           |                    dd           |                    dd	           t          j        d
           |                                D ]"}|                                d         dk    sJ #d S )Nr  zX label in Impact fontImpact)fontnamezY label in Humor Sansz
Humor SansrF  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r&   r   r   r'   r(   rl	  r0   r  get_fontfamily)r,   r!   r  s      r"   test_tick_param_labelfontr  j"  s    lnnGCGGLLL,,,'''MM*XM>>>MM)LMAAANNkN:::I#$$$""$$ 7 7""$$Q';666667 7r$   c                  f   t          j                    \  } }|                    dd          }t          j        |j        d                                         d          sJ t          j        |j        d                                         d          sJ t          j        |j                                        d         d          sJ t          j        |j                                        d         d          sJ t          j        |j        j	        
                                d          sJ d S )Nr>   r1  rG  rO   r   r	  )r&   r   r2  r  r  rh	  r_  rZ   r#  r/   r  )r,   r!   saxs      r"   test_set_secondary_axis_colorr  u"  s   lnnGC


U%

0
0Ccj2@@BBEJJJJJcj/==??GGGGGci7799'BEJJJJJci7799,GOOOOOcio77995AAAAAAAr$   c                  D   t          j        ddd          \  } }g }|d         j                            d|j                   |d         j                            d|j                   |d                             ddgdd	g
           ||d         |d         gk    sJ d S )Nr9   Tr	  r8   xlim_changedylim_changedr   r   r6  rh  )r&   r   	callbacksconnectr  r   )r,   r  eventss      r"   test_xylim_changed_sharedr  "  s    |Ad4888HCFF^V];;;F^V];;;FJJQF!QJ(((c!fc!f%%%%%%%r$   r.  (  r  r  r   r5  r\  r   	functoolsr   r  rq  	itertoolsr   platformr  r   dateutil.tzr  numpyrj   r	   r
   r   rV   r   r   r   matplotlib.colorsrt  r  matplotlib.datesr  r7  matplotlib.figurer   matplotlib.axesr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesrB  rp  matplotlib.pathr?  rS  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-   r6   rM   rT   rW   r^   r{   r   r   r   r   r   r   r   r  r#  r  r  r.  rJ  rZ  rd  rv  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r@  rJ  rR  rY  ra  rl  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  machiner  r  r
  r  rr   r  r  r%  r/  r8  r=  rE  rO  r_  re  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r)  r/  r1  r3  r7  r9  rF  rM  rT  rX  rc  re  rg  rq  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8  r  r  Patchrk  r!  r&  r  r*  r/  r8  r:  r>  rA  rD  rG  rI  rV  r]  ra  rd  rj  ru  rz  r}  r  r  r  r  rU  r  r~  r  r  r  r#  r2  r6  r8  r@  rL  r^  ra  rg  rj  rt  rx  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r!  r$  r)  r.  r1  r5  r8  r;  r>  rA  rE  rH  rL  rO  rS  rW  rZ  r`  re  rk  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-  r1  r3  r:  r<  r?  rA  rL  rO  rQ  rT  rX  ra  re  rm  rq  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	  r2	  r6	  r:	  rB	  rF	  rH	  rU	  r[	  r^	  rd	  rr	  rt	  r	  r	  r	  r	  r	  r  rt   r  r  r	  r	  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
  r4
  rA
  rE
  rI
  rL
  rS
  rU
  rW
  r[
  r]
  rd
  rg
  rj
  rm
  ro
  rr
  rv
  ry
  r{
  r~
  r
  r
  r
  r
  r
  r
  r
  r
  r
  rM  	AxesImager   PcolorImagerk   QuadMeshr   r   r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  fixturer
  r
  r
  r
  r
  r
  r
  r   r  r  r  r  r  r  r  r   r.  r3  r6  r;  r?  rB  rE  rW  r\  ra  rh  rt  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r6  r9  r<  rD  rH  rJ  rO  rX  rn  rt  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  font_scalingsr  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r  ro  r  r  r  r%  r(  r.  r4  r6  r<  r>  rD  rG  rK  rM  rQ  rW  r^  r`  rl  rn  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r   r$   r"   <module>r     suR       " " " " " "               				        ! ! ! ! ! !                              . . . . . . . . # # # # # # ! ! ! ! ! ! $ $ $ $ $ $             / / / / / / % % % % % % % % % % % %       1 1 1 1 1 1 2 2 2 2 2 2             # # # # # # + + + + + + $ $ $ $ $ $D D D D D D D D D DD D D D D D D D D D (((  )(
( ( (M M M / / /$ . . .$ / / /(F F F, (((( ( )(($ (((( ( )((( (((, , )(,*3 3 3 (((, , )(,      $ $ $NJ J J4G G G2 2344  540" " ". ,,J J -,J  ,,T222'% '% 32 -,'%T '())  *)", , ,"1 1 1h0 0 0f/ / / (((  )( )*===% % >=% 9! ! !. 93 3 3" 90 0 0$ (((  )(  , , ,@ @ @ ?#666; ; 76; %&D999) ) :9)4( ( (' ' '' ' '   #$UBK@@@  A@B5 5 5 (((
J 
J )(
J >>233' ' 43'" $%W555- - 65- (((  )(/ / / =/ug"'3 3 3/ /3 3/ ?#$$* * %$* ?#...* * /.* &(;<$OOO< < PO< %'9:MMM" " NM"' ' ' #$G444  54$ &'wDIII	( 	( JI	($ $ $ (((## ## )(##L$ $ $4 %&''  (' 9<<<> >(((
< 
< )(> > 
< 8X&DHHH  IH( O7  ""&EEE1N N N& &N N&,F F F -.DAAA  BA 	&		1a 	34	 	 ("(6"2"2A6	34	 	 !XRXf%5%56    
 
# #
 
# 	&		1a 	34	 	 ("(6"2"2A6	34	 	 !XRXf%5%56    
 
$ $
 
$ -.DAAA' ' BA'. 89T3 3 3 3 3& 12EEE1 1 FE1& <.!!  "! =/t444	  	  54	 ( ( ( <.d3332 2 432. %&E7;;;  <;2 %&E5>"$ $ $F F$ $FB '9::(((G G )( ;:G 12'BBB# # CB#6 -.g>>># # ?>#0/ / /B- - -. (((0 0 )(0 (((0 0 )(0/ / // / / %//(((( ( )( 0/(" ;-    ! 
 #$$iHHH  IHB =/t444! ! 54!H0 0 0 ;-T222
 
 32
 #$$EBBB  CB" ,-4UKKK; ; LK;0 34$GGG  HG4 )*===; ; >=;4 $%YDIII? ? JI?. 12EEE; ; FE;2 >"555= = 65= .0KLMM	> 	> NM	>     
  
 0122  32 DEFF  GF (((
# 
# )(
# (((
= 
= )(
= (((
+ 
+ )(
+ (((
- 
- )(
-6 6 64 4 4 ()**  +*  4P P P ' ' '  "+ + +<3 3 3&% % % 9
% 
%  
% A	a|nc*	,,,	,	(	,,,(@(@(@	!	!	!<	1	,,,	3	3	3V	= 8 8 80 0 0
 
 
 :,D111( ( 21( (((7 7 )(72 2 2 '(d;;;    <; + + + ()t<<<! ! =<! )*===H H >=H$ %&''    (' - - -! ! ! *),++EEG/ / /	  0 0E E0 0E" 9q'4)8Q-)* *: :	* *: + #+"3":;!39#3#:;'):)ABDE E, ,	E E, (((( ( )((V (((# # )(#2 (((  )(. (((	 	 )(	* * *+ + +
# # #
) ) )' ' ' ,-4@@@  A@. -.//  0/ (((  )(   %&DHHH* * IH*   ""&EEE1N N N% %N N%* 8X&DHHH= = IH=" %&DHHH
. 
. IH
.' ' 'j1 j1 j1 j1 j1 j1 j1 j1Z	H4 H H H H H
*Y
,
, giigHBHlll^445557gnnngHBHlll^445557gC   gHBHlll^445557 gCgHBHlll^445557gS#Jgc
828\\\===,I#J#JKKKM 4 4 4  !
dffd^
dSkkk4
dcC 
dsCj!!!C:.
dS3
dfv&
dfv&
dSS)))3/
dSCC000#6
dooos
d$$$c* 	4 	4 	4M M M  2  ) ) )X5 5 5   )+ABCC  DC( ,-4@@@E E A@E2 4 4 4 4$ %&!&!# # # # # &'!&!# # #7 7# #7 +,!&!# # #6 6# #6 )*!&!# # #0 0# #0 '("!&!	  
2 2 
2 )*!&!  M M	 M ()"!&!# # #9 9	# #9 ./"!&!# # #G G	# #G *+"!&!# # #A A	# #A
 12"!&!# # # 	# # &'"!&!# # #9 9	# #9
 )*"!&!# # #< <	# #<
 &'"!&!# # #9 9	# #9
 *+"!&!# # #< <	# #<
 B B B &'"!&!# # #8 8	# #8 #$"!&!# # #6 6	# #6 ?#"!&!# # #5 5	# #5 +,"!&!# # #8 8	# #8 +,"!&!# # #F F	# #F *+"!&!# # #E E	# #E ()"!&!# # #2 2	# #2 )*"!&!# # #G G	# #G ,-"!&!# # #> >	# #>6 6 6
< < <
 -.!&!# # #F F# #F ,-!&!# # #5 5# #59 9 9
 9i(d)DDD  ED$ 12!&9> > >7 7> >7 %&D	JJJ  KJ $%"!&!# # # 	# # 98:!# # # # #    *+!&$y* * *;5 ;5* *;5| -."5"+YP P P P P  45"5"+YP P P P P9 9 99 9 9C C C6 6 6$ ;<"5"+YP P P# #P P# 113 4 40 04 40 2344% % 54% 4566% % 76% 4566$ $ 76$ 0122N N 32N 89::0 0 ;:0 9:;;1 1 <;1 23448 8 548 56777 7 877 34558 8 658 56777 7 877 1233N N 43N 9:;;C C <;C :;<<D D =<D0 0 0B B B@ @ @A A A (((5 5 )(5 (((E E )(E	+ 	+ 	+F F F) ) ) HHHII3; 3; JI3;l ./UG"$ $ $< <$ $<BE E E > > >9 9 9$ $%&&+4 +4 '&+4\C C C3 3 3" (((  )((5 5 5"7 7 7* (3 (3 (3V 			(0(;(;()(+ , ,N N, ,N ((() ) )() ,.GHII
A 
A JI
A =/""  #" ?#666  76 ()**A A +*A )*++M M ,+M :,g4@@@  A@> > >,>4 >4 >4B   )*'tLLL& & ML& 2344F F 54F &'((5 5 )(5 ()**2 2 +*2 )*==== = >==- - -- - -	- 	- 	-- - -- - -,- - -(- - -.- - -* %&''E E ('E"" " "9 9 9
' ' ' ()t<<<3 3 =<3 >"555  65  #$$777  875 5 5.5 5 5* <.d333" " 43": ;,$???(+ (+ @?(+V 01tDDD  ED  ( & & &  
1 1 
1*2 2 2( 67TJJJ" " KJ"8   2$aV1vrl!CDD(H(H(HII  JI ED (((  )( &'T:::@ @ ;:@ &'((& & )(& '(d;;;  <; '):;+8+--99aatE E E) )E E)8 	, 	, 	, ! ! !, ) ) )  ( ( (&  ( FFF#W& & &# #& &#L? ? ? FFF#W& & &# #& &#L? ? ? 1aBFA"6"$%"4"4___a"H"H"J K K(((J J )(K KJ 45#WG5 5 5	 	5 5	 #%56D    > %&D999  :92? ? ? 8 8 8$i1 1 1J J	1 1J@ L L L$i1 1 1J J	1 1JB = = =$i1 1 1, ,	1 1,D% % % ((() ) )()"- - - HHH%! ! !) )! !)> ! ! ! 	 	 	) )	 	)@- - - (((  )( $%4888)& )& 98)&X +-EF"$ $ $E E$ $E: C F F F  
0 0 
0= = = 
= 
= 
= (((  )(&. . . 3;T*J+.;V*L*N O O( (O O(	 	 	
- 
- 
-2 2 2C C C(% % % 3$fb./ &y"#$ %1vj"8:$eeggt}#$ " " "
# # #4 ,,- - -,-  2$ $ $ $%&&; ; '&; KKK#WG5 5 5 5 5> *+7;;;  <;& ()999  :9 %&g666  76 '(888  984 ./w???  @? %&''
 
 ('
 #$G444? ? 54?.8 8 8,0 0 0/ / / ) ) ) 6 6 6 +,--3 3 .-32- - - (((2 2 )(2*C C C	/ 	/ 	/1 1 1   /0115 5 215) ) )8 8 8& +,UBKHHH7 7 IH7!: !: !:H# # # 3	UB DE	Wb"FG	UUWWsBi)MN	UUWWsBi)MN	E++	K	M	EC8	K	M	Ir#KL
6 
 
$ $
 
$  ' ' '0  ( ( (& & &    C C C4 ?#E2;???  @? =/%===% % >=%*1 1 1(- - -.M M MO O O 	SY !	39./
%((EE!HH	sy23


LLL	)			 
)

6
"
"BI$4$4V$<$<	=		!	#
 
 
YRYr]]""6**BINN1a,C,CD 1 1 
 
1
+ + +$! ! !% % %
7 7 7, #;#;#=#=>>  ?> =/t444; ; 54;N N N ( ( ($ D%=11  21 <.d===6 6 >=6 +,$gNNN6 6 ON6* 9* * *B Sz"""; ; #";$ IIIJJJ  KJ   ; ; ;= = ="	3 	3 	3 9G G G 9F F F! ! !
L L L% % %8 8 89 9 9       
 
 
2 2 26
B 
B 
B	C 	C 	C? ? ?? ? ? % % %      ()s3331 1 431  ()**J J +*J" ./S999G G :9G  ?#666- - 76-&! ! !* * *- - -- - -        
 
   
 
 &
' 
' 
'; ; ;8 8 8      H H H) ) )& 9J J J6B B B	. 	. 	.  
 3	qcU]B/1NO	qcU]B/1NO	qcU\2.0LM	qcU\2.0LM	qcUWbM+BC	aS"AB	qcU]QF3	@	B	qcU]QF3	@	B	qcU\Aq62	?	A	qcU\Aq62	?	A	qcUWq!f-	:	<	qcUX1v.	;	=#6  (' ') ('
N N N	 	 	 He#455He#455  65 65G G G, , ,
   ((($ $ )($ (((7 7 )(7
	 	 	5 5 5:: : :B $%4wGGG	 	 HG	) ) )& & & t}55t}55B B 65 65B0
5 
5 
5M M M!; !; !;HF F F  $ $ $ 34T3 3 32 23 32 %&g666  76(% % %G G G+ + +0D D D. . . %&DHHHP P IHP"+( +( +(\$N $N $NN= = =<= = =6F F F,D D D> (((( ( )(() ) ) ) ) )"  0 0 0  2 2 2$ $ $
6 
6 
6. . .1 1 161 1 1.% % %	 	 	  1 1 1? ? ?? ? ? ,,!455/ / 65 -,/$ (((> > )(> 9) ) )1 1 11 1 17 7 74 4 4  "7 "7=3N "7 "7 "79D"E F F9M M F FM) ) )L L L (((K K )(K& (((  )(5 5 5 :::;;/ / <;/
6 
6 
69 9 9
9 
9 
99 9 99 9 99 9 9
9 
9 
9 :;<<  =<
! 
! 
!
6 
6 
6 
Hho!  + + +( ( (' ' '9 9 99 9 92 2 2(O O O 9O O O+ + +\    (   $5588(<!=>>* * ?> *& & &05 5 5"
4 
4 
4. . .$ $ $*1$ 1$ 1$h@ @ @. . .0 (((	 	 )(	 %&g666B B 76BD
" 
" 
"( ( (M M M% % % *+WMMM! ! NM!H 95 5 5 (((- - )(-2: : :; ; ; 7 7 7B B B& & & & &r$   