
    Rpfh                    X   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 d dlKmLZL  eIdg          d             ZMd ZNd ZO eI            d             ZP eI            d             ZQ eI            d             ZRd ZS eIdg          d             ZT eIdg          d             ZU eIdg          d             ZVd ZW eIdg          d             ZX eHg d ejY                    d k    rd!nd "          d#             ZZd$ Z[d% Z\ eHd&g          d'             Z]d( Z^ej_        `                    d)d*          d+             Zaej_        `                    d)d*           eIdgd,-          d.                         Zb eHd/g ejY                    d k    rd0nd "          d1             Zcd2 Zdd3 Zed4 Zfd5 Zg eIdg          d6             Zh eHd7gd89          d:             Ziejj        k                    d;          d<             Zlejj        k                    d;          d=             Zmejj        k                    d;          d>             Zn eIdg          d?             Zo eHd@gd8dAB          dC             ZpdD ZqdE ZrdF Zs eHdGgd89          dH             Zt eHdIgd89          dJ             ZudK ZvdL ZwdM ZxdN Zy eHdOgdPdQiR          dS             ZzdT Z{ eIdg          dU             Z|dV Z} eHdWdWg          dX             Z~ eHdYgdAZ          d[             Z eIdg          d\             Zd] Z eHd^gdgd8dA_          d`             Z eHdag          db             Z eHdcgdd"          de             Z eHdfdfgd89          dg             Zdh Z eHdigd89          dj             Zdk Z eHdlgdAZ          dm             Z eHdngdAd8o          dp             Zdq Z eIdg          dr             Zds Z eHdtg          du             Zejj        k                    d;          ej_        `                    dvg dw           eIdg          dx                                     Z eHdydygd8dAB          dz             Z eHd{gdA ejY                    d|v rd}nd ~          d             Zd Z eHdgd89          d             Zej_        `                    d ej        d          ddf ej        dddd           ej        d          df ej        dddd          d ej        d          fgg d          d             Zej_        `                    d ej        d          ddf ej        dddd           ej        d          df ej        dddd          d ej        d          fgg d          d             Z eHdgd8 ejY                    d k    rdnd           d             Z eHdgdAd8o          d             Z eHdgd89          d             Z eHdg          d             Z eHdgd89          d             Zd Z eHdgd89          d             Z eHdgdg          d             Z eHdgddgd8          d             Zej_        `                    dddg           eIdg          d                         Z eHdgdAZ          d             Z eHdgdAZ          d             Zd Zd Zd Z eIdg          d             Z eIdg          d             Zd Zd Zej_        `                    ddd8g           eIdg          d                         Z eHdg ejY                    d k    rddnd "          d             Z eHdgd8d;B          d             Z eHdgd89          d             Zd Z eHdgd89          d             Z eHdgd8d          d             Z eHdgd8dì          dĄ             Z eHdgd89          dƄ             Z eHdgd89          dȄ             Z eHdgd;d8o          dʄ             Z eHdgd89          d̄             Z eHdgd89          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jj        k                    d;           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d89          d             Z eIdg          d             Zd Z eHdgd89          d             Zd Z eHdgd89          d             Z eHdgd89          d             Z eHdg          d              Z֐d Zאd Zej_        `                    dej        j        d d gg d          d             Zej_        `                    dg dfg gdfg g gdf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d89          d             Z eHdg          d             Z eIdg          d             Zd Z eHdgd8dAB          d             Z eHd gdA ejY                    d|v rd!nd ~          d"             Z eHd#d#gd8dAB          d$             Z eHd%gd8dAB          d&             Zd' Z G d( d)          Zddd*d+Z ed,d-          Zej_        `                    d. e             ed/ ej        g d0g          1          f ed23           ed2 ej        g d4g          1          f ed2d/1           ed2 ej        g d4g          1          f ed/5           ed/ ej        g d0g          1          f ed/d6g5           ed/d6g ej        g d0g d7g          1          fg          d8             Z[[ej_        `                    d9 e            df ed/3          df ed2*          d2f ed2d6g*          d2d6gf ed2:          d2f ed;*          d;f ed<*          d<f ed2d6=          d2f ed/d2d6>          d2f ed25          d2f ed2d6?          d6fg          d@             ZdA ZdB ZdC ZdD ZdE ZdF Z eHdGdGg ejY                    d k    rd!nd "          dH             Z  eHdIgd89          dJ             Z eI            dK             Zi dL i fdMZ eHdNgdPdOid;P          dQ             Z eHdRgdPdOid;P          dS             Z eHdTgdPdOid;P          dU             Z eHdVgdPdOid;P          dW             Z eHdXgd8dPdOid;dYZ          d[             Z eHd\gdPdOid;dY]          d^             Z	 eHd_gd8dPdOid;`          da             Z
 eHdbgd8dPdcid;`          dd             Z eHdegd8dPdOid;`          df             Z eHdggd8dPdOid;`          dh             Z eHdigd8dPdOid;`          dj             Z eHdkgd8dPdOid;`          dl             Z eHdmgd8dPdOid;`          dn             Z eHdogd8dPdOid;`          dp             Z eI            dq             Z eHdrgd8dPdOid;`          ds             Z eHdtgd8dPdOid;`          du             Z eHdvgd8dPdOid;`          dw             Z eHdxgd8dPdOid;`          dy             Z eHdzgd8dPdOid;`          d{             Z eHd|gd8dPdOid;`          d}             Z eHd~gd8dPdOid;`          d             Z eHdgd8dPdOid;`          d             Z eHdgd8dPdOid;`          d             Zd Zd Z eHdgdPdOid;P          d             Z eHdgdPdOid;P          d             Zd Z  eHddgdd;          d             Z! eIdg          d             Z" eHdgdPdOid;P          d             Z# eHdgd8d;B          d             Z$ eHdgd8dPdOid;`          d             Z% eHddgd;Z          d             Z&d Z' eHdgdPdcid8dd;          d             Z( eHdgd8dPdOid;`          d             Z) eHdgd8dPdOid;`          d             Z*d Z+d Z,d Z-d Z. eHdgd8dPdOid;`          d             Z/ eHddg          d             Z0 eHdg          d             Z1 eHdg          d             Z2 eHdg          d             Z3 eHdg          d             Z4 eHdg          d             Z5 eHdg          d             Z6 eHdg          d             Z7 eHdg          d             Z8 eHdg          d             Z9 eHdg          d             Z: eHdg          d             Z; eHdg          d             Z< eHdg          d             Z= eHdgd8dAB          dĄ             Z>dń Z?dƄ Z@dǄ ZAdȄ ZB eIdg          dɄ             ZC eIdg          dʄ             ZDd˄ ZEd̄ ZFd̈́ ZG eHg d΢          dτ             ZH eHdgdgd8          dф             ZId҄ ZJ eI            dӄ             ZKdԄ ZL eHdg          dք             ZMdׄ ZNd؄ ZO eIdg          dل             ZPdڄ ZQdۄ ZRd܄ ZS eI            d݄             ZTej_        `                    dg dߢ ej        g dߢ          dg          d             ZU eIdg          d             ZV eHddg          d             ZW eHdg          d             ZX eHdgd89          d             ZY eHdg          d             ZZ eHdg          d             Z[ eHdgdAd8o          d             Z\d Z]d Z^d Z_ eHdgdAd8o          d             Z` eHdg          d             Za eHdg          d             Zb eHdg          d             Zc eHdgd89          d             Zdd Zed Zfd Zgd Zh eHdg          d              Zid Zjd Zkd Zl eHdgd89          d             Zm eHdgd89          d             Zn eHdgd89          d	             Zod
 Zpd Zq eHdgd89          d             Zr eHddgd89          d             Zs eHdgd89          d             Ztej_        `                    dg d          d             Zud Zv eHdgd89          d             Zwd Zxej_        `                    dg gg d dggd dgg gg          ej_        `                    dg d          d                         Zy eIdg          d             Zz eHdgd89          d             Z{ eHd g ejY                    d k    rd!nd "          d"             Z| eHd#gd89          d$             Z} eHd%d&g ejY                    d'k    rd nd("          d)             Z~ eI            d*             Z eI            d+             Z eI            d,             Z eI            d-             Zd. Z eHg d/dg          d0             Zd1 Z eHg d2dg          d3             Zd4 Zej_        `                    ddddej        d5gej                            g d6d7          g           eIdg          d8                         Z eHd9gdgdA:          d;             Z eHd<d<gd8d=          d>             Z eHd?gd89          d@             ZdA Z eHg dBd8dCd;D          dE             Z eHg dFd8dCd;D          dG             Z eHg dHd8dCd;D          dI             ZdJ Z eIdg          dK             ZdL Z eHg dMd8dN          dO             Z eHg dPd89          dQ             ZdR Z eIdg          dS             Z eHdTgd8 ejY                    d k    rdUnd           dV             Z eHdWdWgd89          dX             Zej_        `                    dYg dZ          d[             Zd\ Zd] Z eIdg          d^             Zd_ Zej_        `                    d`e6j        e6j        dage6j        e6j        dbgg          dc             Zdd Zde Zdf Zdg Zdh Zej_        `                    diedji dkfedli dmfeddgfi dnfe e            dodidpff          dq             Zdr Zej_        `                    d)d*          ds             Zdt Zdu Z eHdvgdw"          dx             Z eHg dydgdAdwz          d{             Z eHd|gdAdw~          d}             Z eHd~gdAdw~          d             Z eHdgdAdw~          d             Z eHdgdAdN~          d             Z eHdgdAd0~          d             Z eHdgdw"          d             Z eHdgdAdN~          d             Zd Zd Zd Z eI            d             Z eI            d             Z eHdg ejY                    d k    rdnd "          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dPdiR          d             Zʐd Zːd Z̐d Zej_        `                    diedi dfedi dfe e            ddidfe e            ddidfedaddd*dfedaddi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dPdOiR          d             Z eHdgdPdOiR          d             Zؐd Zِd Zڐd Zېd Zej_        `                    ddej        j        fdej        j        f eߐd5           eߐd7          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d7d          g          dÄ                         ZdĄ Zdń ZdƄ ZdǄ ZdȄ Zej_        `                    d e                      dʄ             Z eHdgd89          d̄             Zd̈́ Zd΄ Zej_        `                    dd8dg          dЄ             Z eHdgd8dd          d҄             Z eHdgd8dA ejY                    d k    rdnd զ          dք             Zejj        k                    d;          dׄ             Z ej        ddgئ          dل             Z ej        g dڢئ          dۄ             Zd܄ Zd݄ Zdބ Zd߄ Zejj        k                    d;          d             Zejj        k                    d;          d             Zd Zd Zd Zd Zd Z d Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
 eHdgd"          d             Z eHdg          d             Z eHdgd"          d             Z eHdgd89          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jj        k                    d;          d
             Zd Zd Zd Zej_        `                    diedggdg idfedggdg idfedggdg idfedggdg idfedggdg idfedgi dfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddgidfedggdddg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d8dAB          d0             Z,d1 Z-d2 Z.ej_        `                    d3dd8g          ej_        `                    d4dd8g          d5                         Z/d6 Z0d7 Z1d8 Z2d9 Z3d: Z4d; Z5 eHd<gdAd8 ejY                    d k    rdnd =          d>             Z6 G d? d@e?j7                  Z8 eHdAgdA ejY                    d k    rdBnd ~          dC             Z9dD Z:dE Z;dF Z<dG Z=dH Z> eHdIgd8dAB          dJ             Z?dK Z@dL ZAdM ZBdN ZCdO ZDdP ZE eIdg          dQ             ZFdR ZGdS ZHdT ZIdU ZJdV ZKdW ZLdX ZMdY ZNdZ ZOd[ ZPd\ ZQd] ZRd^ ZSd_ ZTd` ZUda ZVdb ZWej_        `                    dcd*          ej_        `                    ddde          df                         ZX eIdg          dg             ZYejj        k                    d;          dh             ZZdi Z[dj Z\dk Z]dl Z^ej_        `                    dmdn e&j_        D             g doz             ejj        k                    d;          dp                         Z`dq Zadr Zb eIdg          ds             Zc eIdg          dt             Zddu Zeej_        `                    dvg dw          dx             Zfdy Zgdz Zhd{ Zid| Zjd} Zkd~ Zld Zm eHdg          d             Znd Zod Zpej_        `                    ddddjq        g          d             Zrd Zsd Ztd Zud Zvd Zwd Zxejj        k                    d;          d             Zyd Zzd Z{ej_        `                    dd          ej_        `                    ddd ed          ig          d                         Z|d Z}d Z~d Zd Zd Zd Zd Zd Z eIdg          d             Z eHdgdAZ          d             Zd Zd Zd Zd Z eHdgd8dA ejY                    d k    rdBnd զ          d             Zejj        k                    d;          d             Z eIdg          d             Zd Zd Zd Zd Zd Z eHdgd;Z          d             Z eIdg          ej_        `                    dd*          d                         Zd ZeL eI            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)needs_usetexpng
extensionsc                 X    |                                  }|                    d           d S NF)subplotsset_visiblefig_testfig_refaxs      Z/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr$   1   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.   7   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_reprr7   ?   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cr0   Y LabeltoplocX LabelrightZ Labelr3   har2   rF   r   r;   legendr)   r(   colorbarr4   r    r!   r"   sccbars        r#   test_label_loc_verticalrN   J   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 )Nr9   r:   r;   r<   r>   bottomr@   rB   left
horizontalorientationrD   r   rE   rG   rH   rK   s        r#   test_label_loc_horizontalrU   ]   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 )NrC   r?   )zxaxis.labellocationzyaxis.labellocationr9   r:   r;   r<   r>   rB   rR   rS   rD   rE   rG   )	
matplotlibr   r   r;   rI   r)   r(   rJ   r4   rK   s        r#   test_label_loc_rcrX   p   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 labelrQ   r@   centerrC   r?   rP   )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   r9   maxlagsfullmoder3   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r    r!   Nxr2   rd   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 )
Nra   3   
   r9   rc   re   rf   r   rh   )rk   rl   rm   randro   ceilastypeint64r   rp   rq   rr   rs   rt   ru   rv   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 )Nra   i   r   rb   )    r   r:   r9   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer   )aspectxlimylimboth)rk   rl   rm   onesshufflereshaper   spyimshowr[   tick_topplotnonzerosetget_xlimget_ylimset_ticks_position)r    r!   aaxs_testaxs_refr"   s         r#   test_spyr      s   INN8
AAhwhKIa			(A  ##HQKOOAQKOOAc'O222q!!GAJahi@@@AJGAJO=RZ]]44R4(=#==="===AJNNwqz**,,71:3F3F3H3H23N  P P P , ,
##F++++, ,r%   c                      t          j                    \  } }ddidddfD ]T}t          j        t                    5   |j        t          j        dd          fi | d d d            n# 1 swxY w Y   Ud S )Nr   r   osolid)r   	linestyle   )r'   r   pytestraises	TypeErrorr   rk   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userk   rl   r   add_subplotmatshowr   r[   r   r   )r    r!   r   ry   s       r#   test_matshowr      s    IMM'
	r2A""1%%%  ""F
MM!
L
L##F+++++r%   )formatter_ticker_001formatter_ticker_002formatter_ticker_003formatter_ticker_004formatter_ticker_005arm64gX9v?)tolc                     dd l mc m                                  dt          j        d<   fdt          d          D             } fdt          d          D             }fdt          d          D             }t          j                    	                                }|
                    d           t          j                    	                                }|
                    d           |                    | |d	d
           t          j                    	                                }|
                    d           |                    | |d	d
           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           t          j                    	                                }|                    | |d	d
           |                    | |dd           |
                    d           |                                 d S )Nr      zlines.markeredgewidthc                 $    g | ]}|j         z  S  )sec).0r2   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   r3   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registerrW   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   r2   poss     r#   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    rr%   )r'   r   r   r[   isDefault_majfmtisDefault_minfmtr^   set_major_formattermtickerFuncFormatter
isinstanceget_major_formatterfunc)r   r"   targ_funcformatters      r#   !test_funcformatter_auto_formatterr     s9      
			 	 B8$$$$8$$$$8$$$$8$$$$H  +++x((((8$$$$8$$$$8$$$$ .y99bh2244+- - - - - 8'')).2D2IIIIIIIr%   c                  H   d} t          j                                                    }|j        j        sJ |j        j        sJ |j        j        sJ |j        j        sJ |j                            |            |j        j        sJ |j        j        sJ |j        j        sJ |j        j        rJ t          j	        |           }t          |j                                        t          j	                  sJ |j                                        j        |j        k    sJ d S )Nz	{x}_{pos})r'   r   r   r[   r   r   r^   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr"   targ_strformatters      r#   &test_strmethodformatter_auto_formatterr   4  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   r9      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r=   3pr   )rk   linspacesinpir'   FixedLocatorr   r   r   r^   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterr[   LinearLocatortwinytwinx)valslocsmajlminlr-   ax1s         r#   "test_twin_axis_locators_formattersr  M  s   ;q!T222D6"%$,$%%DD!!DOOO,,D
*,,C
//!Q
"
"CHHc3Z!Q   I%%%I%%%I!!#"8"C"CDDDI!!#"4 6> 6> 6> #? #? @ @ @ I 1 3 3444I 01A1A1A B BCCCI!!#"8"C"CDDDI!!#"45I5I5I"J"JKKKIIKKKIIKKKKKr%   c                  J   t          j                    \  } }|                                }|                                }t          j                     |j                                        rJ |j                                        rJ |                                 |                                 |j                                        rJ |j                                        rJ |j	                                        sJ |j                                        sJ |j                                        rJ |j	                                        rJ |j                                        sJ |j                                        sJ |j	                                        sJ d S N)
r'   r   r  r  drawr[   get_visiblepatchclar^   )r-   r"   ax2ax3s       r#   test_twinx_clar&  f  st   lnnGC
((**C
))++CHJJJy$$&&&&&y$$&&&&&GGIIIGGIIIy$$&&&&&y$$&&&&&9  """""9  """""y$$&&&&&y$$&&&&&8!!!!!8!!!!!8!!!!!!!r%   twinr2   r3   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_unitsr1  }  s    ItI	c
A	c
A
((C
,,..CHHQNNN3	""(444
!'#y
!
!
#
#C3	""(4443	""(GC,C,C,IIIIIIIr%   RQ?)r   r   c                    d| }d| d}t          j        dd          }|                     ddd          } t          ||                      } t          ||          d           |                    ||           |                     ddd          } t          ||          d            t          ||                      }|                    ||           dD ]}|                    dd|          }	 t          |	|          d           |	                    ||           t
          j        j        }
|                    t
          j	        
                     |
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j        |
j        gd
z            |	j        dt          j        d         t          j        d         d                     t!          |            t!          |           d S )Nr'  set_scaler9   r  r:   logr9   r:   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rk   rs   r   r.  r   rW   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r    r!   r'  r0  	set_scaler2   rx   ax_twiniry   rB  s              r#   test_twin_logscalerL    s&    tI"t"""I
	!SA ""1a++G)ggy))++GGGY&&&LLA ""1a++GGGY&&&)ggy))++GLLA ( ($$Q1--"	""5)))Aq #((q!fq!f!fq!f!fq!f!fq!f& k4;/!3	5 5
 !* ,'78,'78% ) 
' 
'	( 	( 	( 	( H%%%G$$$$$r%   ztwin_autoscale.pngg;On?c                     t          j        g d          } d| z  }t          j        g d          }d|z  }t          j                    }|                    ddd          }|                    | |dd	
           t          j        |          }|                    ||dd           |                    dd           |                    dd           d S )Nr   r   r9   r   r   r9   r:   r:   r   r   r9   r9   F)autoscalex_onautoscaley_onr   r   r   lwr--r   rT  r   )rk   arrayr'   r   add_axesr   r  margins)r2   r3   x2y2r-   r"   r$  s          r#   test_twinx_axis_scalesr\    s     	AaA	)))		B	
RB
*,,C	l%u	M	MBGGAq2G&&&
)B--CHHRUqH!!!JJq!KK1r%   c                     t          j                    \  } }|                                }|                    d           |                                }|                                sJ |                                rJ |                                }|                    d           |                                }|                                sJ |                                rJ d S r   )r'   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r-   r"   ax_x_onax_x_offax_y_onax_y_offs         r#   #test_twin_inherit_autoscale_settingrf    s    lnnGChhjjGxxzzH$$&&&&&))+++++hhjjGxxzzH$$&&&&&))+++++++r%   c                     t          j        d          } |                                 }|                                rJ |                                rJ t
          j                            d          }|                    |           |                                rJ |                                sJ |                                 t          j	        ddt
          j
        z  d          }|                    |t          j        |                     |                                rJ |                                rJ |                                 |                    |           t          j                     |                                rJ |                                sJ | j        D ]}|                                 t          j        d          }t          j        d|          }|j                            d           |                                sJ |                    |t          j        |                     |                                 |                                rJ |                                 |                    |           |                    |t          j        |                     |                                 |                                sJ t          j        |            d S )	Nr   )r  r  r:   r        shareyT)r'   r   gcaxaxis_invertedyaxis_invertedrk   rl   r   r#  r  r  r   cos	autoscaleaxesremovesubplotr^   set_invertedclose)r-   r"   imgr2   ax0r  s         r#   test_inverted_clarx    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  4  r  r%   r  FrP  )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  E  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   r9   )rW   r   r   r   minorticks_onr    r!   rx   ry   s       r#    test_minorticks_on_rcParams_bothr  M  s    		t7; =  = 
> 
> % %##%%aVaV$$$% % % % % % % % % % % % % % % F
KKAA
s   /AAAautoscale_tiny_rangeTremove_textc                      t          j        dd          \  } }t          |j                  D ]*\  }}dd|z
  z  }|                    ddgdd|z   g           +d S )Nr:   r   ir   r9   )r'   r   	enumerateflatr   )r-   axsrK  r"   y1s        r#   test_autoscale_tiny_ranger  X  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 )Nr9   r9   r:   r   r8  Tr2   F)enabler*  tightr3   )g333333ÿg333333	@)r         @)r  )
r'   r   r   rp  r   r   r   r_  ra  get_autoscale_onr,   s     r#   test_autoscale_tightr  a  si   l1a  GCGGLLLLL3eL444LL3dL333BKKMM=111BKKMM:... !!!!!!!!!!     LLLBKKMM=111BKKMM:...!!!!!!!!!!       r%   c                     t          j        dt                    } t          j        ddd          \  }\  }}|                    | |            |                    | |            |                    d           |                    d           t          j                     | d         | d         f}t          |
                                |           t          |                                |           t          |
                                |           t          |                                | d	         | d         f           d S )
Nr  dtyper:   r9   Tsharex)r  r   r   )rk   rs   floatr'   r   loglogsemilogxrp  r   r   r   r   )r2   r-   r  r$  limss        r#   test_autoscale_log_sharedr  y  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   r9   r:   r   r   r   )      r   Fr  r   T)
r'   r   r   r   r   r   use_sticky_edgesrp  _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   rh  ri  r  )rk   rs   r   r   
pcolormesh)r    r!   Zrw  r  s        r#   test_sticky_shared_axesr    s     		"a##A


s
#
#C


s3

/
/CNN1


c
"
"C


c#

.
.CNN1r%   zsticky_tolerance.pngr   )r  r   c                  r   t          j        dd          \  } }d}|j        d                             d|d           |j        d                             d|d           |j        d                             d| d           |j        d                             d| d           |j        d                             d| d	           |j        d                             d| d
	           |j        d                             d|d	           |j        d                             d|d
	           d S )Nr:   r   r   gffff&@)r2   heightrP   r9   gffff@gffff&)r3   widthrQ   gffffr   )r'   r   r  barbarh)r-   r  r  s      r#   test_sticky_tolerancer    s&   |Aq!!HCEHQKOOagO666HQKOOagO666HQKOOawO777HQKOOawO777HQKqX666HQKqX666HQKqH555HQKqH55555r%   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 givenrz  )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 givenrz  FirstSecondr   )r   r   r   r'   rs  rI   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 givenrz  r   r9   )r   r:   r9   r:   r   )r   r   r   r'   rs  
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rT  r   z	local maxr   r9   datar   r   zoffset points)xyxycoordsxytext
textcoords)	rk   rs   ro  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)re   rQ   rC   r   r8  r:      r   r  r   )r  length_includes_headshapehead_starts_at_zero
head_widthhead_length)r   r'   r   r  zipr  set_xlimset_ylimrk   r  arrowr  ro  )
r  r  r  kwargsr-   r  rK  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 )Nr9   )皙?皙@)r'   r   r
  r   r   r  s     r#   test_arrow_in_viewr    sa    LNNEArHHQ1a;;==J&&&&;;==J&&&&&&r%   c                      t          j                    \  } }|                    ddd          }|j        J |                    dddi           }|j        J d S )Nfoor  r:   r   )r  )r  
arrowprops)r'   r   r  arrow_patch)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  r8     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r:   degred)yunitsr   rP  )r  r  g     V@r  r-  Z   r   )r=  )r   r   r   r   Epochdatetimer7  Durationrk   rs   mdatesdate2numr'   r   r   fillautofmt_xdate)r   r  valuedayr4  dtnr-   r  r$  r%  ax4inds               r#   test_fill_unitsrG  !  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 definedrz  r   r   r2   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r9  )r   r   )r   r  UserWarningr'   r   errorbarr   r%   r#    test_plot_format_kwarg_redundantrQ  C  s   	k)H	I	I	I , ,!qc3s++++, , , , , , , , , , , , , , ,	k)K	L	L	L 0 0!qc3$////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	k)G	H	H	H . .!qc3f----. . . . . . . . . . . . . . . L!qcvV444444s5   AA
A)BBB6CC!$C!c                    g d}t          j        |          }|                                }|                                 }|                    ||t          j        |          t          j        |                    ^}}|                    ddg           |                    ||t          j        |          t          j        |          ddg           d S )Nr  xerryerrr:   )rT  rU  dashes)rk   r  rl  rP  abs
set_dashes)r    r!   r2   r3   ry   rx   r  r  s           r#   test_errorbar_dashesrY  N  s    A
q		A[[]]FllnnGq!"&))"&))DDHD1OOQFQq		q		1a&IIIIIr%   c                      d t          d          D             } t          j                    \  }}|                    |                                 |                                 |                                            d S )Nc                     i | ]}||S r   r   )r   iis     r#   
<dictcomp>z/test_errorbar_mapview_kwarg.<locals>.<dictcomp>]  s    $$$BR$$$r%   r   r2   r3   rT  )r   r'   r   rP  r%  r&  )Dr-   r"   s      r#   test_errorbar_mapview_kwargr`  \  s`    $$%))$$$AlnnGCKK!&&((ahhjjqxxzzK:::::r%   single_pointc                     dt           j        d<   dt           j        d<   t          j        d          \  } \  }}|                    dgdgd           |                    dgdgd           dgdgd}t          j        d          \  } \  }}|                    d	d	d|
           |                    ddd|
           d S )Nr   lines.markerT	axes.gridr:   r   r9   r   r-  r   r  r-  )rW   r   r'   r   r   )r-   r  r$  r  s       r#   test_single_pointrg  b  s     +.J''+J$l1ooOC#sHHaS1#sHHaS1#s A3Dl1ooOC#sHHS#sH&&&HHS#sH&&&&&r%   zsingle_date.png)r   c                     dt           j        d<   t          j        t	          j        d                    } dg}dg}t          j        dd          \  }}t          j        t          j
                  5  |d                             || z   |d	d
           d d d            n# 1 swxY w Y   |d                             ||d	d
           d S )N)   zaxes.formatter.limitsz
0000-12-31g    X&Ag(\bPr:   r9   r   r   rM  rN  )r'   r   r>  r?  rk   
datetime64r   r   r  r   MatplotlibDeprecationWarning	plot_dater   )r4  time1data1r-   r"   s        r#   test_single_daterp  t  s     -2CL()	|44	5	5BJEHEl1a  GC	c6	7	7 ; ;
1
E3c:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;qEJJueSJ,,,,,s   2#B!!B%(B%c                    t          j        d                              d          }t          j        ddd                              d          }|                     d          }|d                             |           |d                             |           |                    d          }|d                             dd	
           |d                             |                                           d S )Nr   r9   r   r   r  r   r9   r:   r9   gQQ?)r   	   r   r   )rk   rs   r   r   r   r   ravel)r    r!   rowcolr  s        r#   test_shaped_datar{    s    
)B--


(
(C
)AsB


'
'
0
0C


A

CFKKFKK


1

CFJJKfJ---FKK		r%   c                     t          j        ddgdt          fdt          fg          } t          j                                        d          }|d                             dd|            |d	                             ddd
|            d S )Nr9   r9   r:   r:   r   twosr  r:   r   rf  r9   rM  )rk   rW  r  r'   r   r   r   )ptsr  s     r#   test_structured_datar    s    
(FF#VUOfe_+M
N
N
NC *,,


"
"CFKKSK)))FKK#K.....r%   aitoff_proj)r   r  r   c                     t          j        t           j         t           j        d          } t          j        t           j         dz  t           j        dz  d          }t          j        | |          \  }}t	          j        dt          d                    \  }}|                                 |                    |j	        |j	        dd	           d
S )z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r:   )   @aitoff
projection)figsize
subplot_kwr   r8  )r   N)
rk   r  r  meshgridr'   r   dictgridr   r  )r2   r3   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   r0  r1  r9      r3     r   r         ?)r=  alphar  )r   r   r   r   r;  r<  r=  rC  convertr'   rl  axvspanr  r   t0tfr4  r"   s        r#   test_axvspan_epochr        000000000	NN 
Th/a<<	=	=B	Th/a<<	=	=B	ei//66	7	7B	BJJr2tJ444KKSVR#b&[)))))r%   axhspan_epoch{Gz?c                     dd l mc m}  |                                  |                     dt          j        ddd                    }|                     dt          j        ddd                    }|                     d| j                            d                    }t          j
                    }|                    ||d	d
           |                    |d|z  z
  |d|z  z              d S r  )r   r   r   r   r;  r<  r=  rC  r  r'   rl  axhspanr	  r  s        r#   test_axhspan_epochr    r  r%   zhexbin_extent.pngc                  0   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g d           ||d}t          j                    \  } }|                    ddg d|           d S )	N  )r:     r   r  333333?ffffff?extentr(  r2   r3   )r  r  )r'   r   rk   rs   r   hexbinr-   r"   r  r2   r3   s        r#   test_hexbin_extentr    s     lnnGCIdOOd"++I66DDAqIIa+++I,,, DlnnGCIIc3///dI;;;;;r%   c                     t          j                    \  } }t          j        d          dz                      d          }|\  }}t          j        t          d          5  |                    ||d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ||d           d d d            d S # 1 swxY w Y   d S )	Nr  )r:   r   z)In extent, xmax must be greater than xminrz  r9   r   r   r9   r  z)In extent, ymax must be greater than ymin)r   r9   r9   r   )	r'   r   rk   rs   r   r   r   
ValueErrorr  r  s        r#   test_hexbin_bad_extentsr    sQ   lnnGCIbMMB''00DDAq	z)T	U	U	U - -
		!Q|	,,,- - - - - - - - - - - - - - - 
z)T	U	U	U - -
		!Q|	,,,- - - - - - - - - - - - - - - - - -s$   !BB
B
,CCCzhexbin_empty.pngc                  (   t          j                    \  } }|                    g g            |                    g g d           |                    g g g t          j                   |                    g g t          j        d                     d S )Nr6  bins)Creduce_C_functionr   )r'   r   r  rk   maxrs   r,   s     r#   test_hexbin_emptyr    s     lnnGCIIb" IIb"5I!!!IIb"bfI555IIb"29R==I)))))r%   c                  "   t          j                    \  } }t          j        d          dz                      d          }|\  }}|                    ||g dd          }t          dd          }|                    |          d	         sJ d S )
N   r:   r  r  r   )r  picker  ,  r(  r   )r'   r   rk   rs   r   r  r   contains)r-   r"   r  r2   r3   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.snapra   順 r         @r  r:   r   r6  T)yscaler  	marginalsr  )r'   r   rk   rl   rm   standard_normalpowerr   r  sumrJ   )nr2   r3   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 )	Nra   r  r   r  r  r   r   T)gridsizer  r  )rk   rl   rm   r  r'   r   r  r  )r  r2   r3   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  r6  r:   r  )r  vminvmax)rk   rs   r   r'   r   r  get_clim)r2   r3   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  r9   )      $r   r  r   )rj  rj  )r  r  mincntr   c                      t          |           S r  )r  )vs    r#   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>F  s    CFF r%   )r  r  r  r  r  )r  lenr   r  set_facecolor)
r    r!   
datapointsr  r  r  r  r  rx   ry   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  r:   r8  )r9   r:   r  r   )r8  r  r  )r  r8  )r   r  r6  r   r9   )r   r9   )
r'   r   invert_xaxisr   r   r   ru  invert_yaxis
set_yscaler	  r,   s     r#   test_inverted_limitsr  N  s?    lnnGCOOGGNNNMMM***;;==G####;;==G####IKKKlnnGCOOGGNNNMMM***;;==G####;;==G#### lnnGCMM%KKA;;==G######r%   nonfinite_limitsc                  ^   t          j        dt           j        d          } t          j        d          5  t          j        |           }d d d            n# 1 swxY w Y   t           j        | t          |           dz  <   t          j                    \  }}|	                    | |           d S )Nr  r  ignoredivider:   )
rk   rs   eerrstater6  nanr  r'   r   r   r2   r3   r-   r"   s       r#   test_nonfinite_limitsr  h  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-01r6  r  C0rN  )rk   rs   r   r.  r   r  )r  r    r!   r2   rx   ry   r"   s          r#   test_limits_empty_datar  s  s     		,ODDDA!!GFGGXr2&&& < <Has1vvd;;;;;< <r%   r   c                  x   dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    |           d|i}t          j                    \  }}|                    d|           d S )Nr   image.interpolationr  r:   rM  rf  )rW   r   rk   indicessqrtr'   r   r   )Nr2   r3   rM  r-   r"   r  s          r#   test_imshowr    s     2;J-.AZAFQAIAAIA
1QT	!A#A lnnGCIIaLLL 8DlnnGCIIcIr%   imshow_clip)aarch64ppc64les390xgףp=
?)r   r   c                     dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    || dz  g          }t          j	        |
                                d         |                                          }|                    ||           d S )Nr   r  r  r:   r8  r   )	clip_path)rW   r   rk   r  r  r'   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r   r2   r3   rM  r-   r"   r=   r  s           r#   test_imshow_clipr    s     2;J-. 	AZAFQAIAAIA
1QT	!A#A lnnGC


1qseA+AKKMM!,<aoo>O>OPPI IIa9I%%%%%r%   c                      ddgddgg} t          j                    }t          j        t          d          5  |                    | t          j        dd          d	d
           ddd           dS # 1 swxY w Y   dS )4Parameters vmin, vmax should error if norm is given.r9   r:   r   r8  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.rz  r   r   r   )normr  r  N)r'   rq  r   r   r  r   mcolors	Normalize)r   r"   s     r#   test_imshow_norm_vminvmaxr    s    
Q!QA	B	z@
A 
A 
A F F 			!'+C4411	EEEF F F F F F F F F F F F F F F F F Fs   -A11A58A5polycollection_joinstylec                  8   t          j                    \  } }t          j        ddgddgddgddgg          }t          j                            |gd          }|                    |           |                    dd           |	                    dd           d S )Nr9   r:   (   )
linewidthsr   r   )
r'   r   rk   rW  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, y2r~  r   r  r:   )
2d_x_input2d_y1_input2d_y2_input)idsc                     t          j                    \  }}t          j        t                    5  |                    | ||           d d d            d S # 1 swxY w Y   d S r  )r'   r   r   r   r  r  r2   r  r[  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)r3   x1rZ  r-   r"   s        r#   test_fill_betweenx_inputr/    s     lnnGC	z	"	" $ $
B###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $r(  fill_between_interpolateg~jt?)r  r   c            	         t          j        ddd          } t          j        dt           j        z  | z            }dt          j        dt           j        z  | z            z  }t	          j        ddd          \  }\  }}|                    | || |d	
           |                    | ||||k    ddd           |                    | ||||k    dd           t           j        	                    |d          }t           j        j
        |d<   |                    | || |d	
           |                    | ||||k    dd           |                    | ||||k    dd           d S )Nr  r:   r  333333?r8  r9   Tr  blackrN  white/)wherer=  hatchinterpolater8  )r6  r=  r8  r   r   r   )rk   rs   r  r  r'   r   r   r  r	   masked_greatermasked)r2   r  r[  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"@rj  r  )g@gffffff@gffffff@)rv  rv  r  ztab:redkr   T皙?r6  r=  r8  r  r8  r   r      X  )rk   rW  r'   r   r   r-  r  r	  )r  r  profr-   r"   s        r#   (test_fill_between_interpolate_decreasingrE    s    	"""##A
A8OOO$$Dl6***GCGGAq)GGD!SQ4tax%4s  D D DQ4tax$$c  C C C KK2KKSr%   fill_between_interpolate_nanc                     t          j        d          } t          j        ddt           j        dddddddg
          }t          j        ddddddddt           j        t           j        g
          }t	          j                    \  }}|                    | |d	
           |                    | |d
           |                    | ||||k    ddd           |                    | ||||k    ddd           d S )Nr   r              r   r   r?  r=   r-  r   Tr   rA  r8  )rk   rs   asarrayr  r'   r   r   r  r&  s        r#   !test_fill_between_interpolate_nanrN    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   r9   r:   r8  r  rv  r  rI  )i@B i  r  r  r   r   r   r   symloglinearr   i )rk   rW  r'   r   r   r  
set_xscaler	  r  s       r#   test_symlogrS  +  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   r9   )      4@r   r   r   r  rP  )	linthreshTr   皙r   )	rk   rs   r'   r   r  r   rR  r  r	  )r2   r-   r  r"   rY  s        r#   test_symlog2r[  7  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   )r]  g      r^        r        пr   r  r         ?r         ?r   r   )rk   r  hypotr'   pcolorr$  )r2   r3   r  r  r  s        r#   test_pcolorargs_5205re  D  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  r]  r   r:   皙?r   r   r9   r   r   r?  rT  
edgecolorsr-  wgouraudshading)r'   r   rk   r  r  ro  r  rc  minptpr	   masked_whererW  r  r   r  )r  r2   r3   r  r  QxQzr  Zmr  r  r$  r%  s                r#   test_pcolormeshrt  R  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   r]  r   r:   rg  r   r   r  r   r?  rh  r-  rj  rk  rl  )rk   r  r  ro  r  rc  rn  ro  r	   rp  rW  r  r'   r   r  rq  set_axis_off)r  r2   r3   r  r  rq  rr  r  rs  Zm2r-   r  r$  r%  rE  r"   s                   r#   test_pcolormesh_smallrz  j  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  r]  r   r:   r   viridis   r   r   )r   r]  )r  r   r   r   r   )r=  zorderr   r@  r  r9   )r   r  rm  r  rk  )r   rm  r  )r'   r   rk   r  r  r  rc  rn  ro  r   	colormaps	resampledrs   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  rq  Qyr  vircolorsr   r-   r  r$  r%  rE  r"   s                  r#   test_pcolormesh_alphar    s3    ',CL"#
A;
D#q!!
D#qs## DAq 
B	
RVAYYB
AA	
QUUWWq		!A
-	
"
,
,R
0
0CS2FRVBIbMM2222F111a4L!&))D$'LA$6$6!C	!*3jsC3S   
X'sA)9)9)9!
 
 
 	 	 	 	 NN2r1SbS#2#X;S!!  - - -NN2r13c9QNOOONN2r1SbS#2#X;T6!NLLLNN2r141NEEEEEr%   z
dims,alphar  )r8  r   c                    |                                  }t          j        dd|ft                    dz  }|                    |           |                                 }|                    |d         ddd|	           d S )
Nr   r  r  r:   ).r   grayr   r9   )r   r  r  r  )r   rk   r   r  r  )r    r!   dimsr  r"   r=   s         r#   test_pcolormesh_rgbar    s}     
				B
AtE***Q.AMM!					BMM!F)&qqMFFFFFr%   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?   rP     r9   c                 @    g | ]}t          j        |           z   S daysr<  	timedeltar   dbases     r#   r   z1test_pcolormesh_datetime_axis.<locals>.<listcomp>  ,    GGG$+3333GGGr%   r  r     r      r   r*        rC   r   )r'   r   r   subplots_adjustr<  rk   rW  r   rs   r  rs  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation	r-   r2   r3   z1z2zr"   r0   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  r9   c                 @    g | ]}t          j        |           z   S r  r  r  s     r#   r   z-test_pcolor_datetime_axis.<locals>.<listcomp>  r  r%   r  r  r  r   r  r   r  r  r  rC   r   )r'   r   r  r<  rk   rW  r   rs   r  rs  rd  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  r]  r   r:   r   r   rk  rl  r   r  invalidmask)ig  r   r9   r  r   z.are not monotonically increasing or decreasingrz  auto)rk   r  r  rc  r'   r   r   r   r   r  Tr  r  r  r	   rW  zerosr  r  rO  )r  r2   r3   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          5  t          j        ddd          } t          j        ddd          }t           j                            t          |          t          |                     }t          j                    \  }}|                    | ||           ddd           dS # 1 swxY w Y   dS )z
    Test that underflow errors don't crop up in pcolormesh.  Probably
    a numpy bug (https://github.com/numpy/numpy/issues/25810).
    raise)underr   r   r   r  N)	rk   r  rs   rl   randnr  r'   r   r  r2   r3   r  r-   r"   s        r#   test_pcolormesh_underflow_errorr    s    
 
7	#	#	#  IaC  IaC  IOOCFFCFF++,..R
aA                 s   BB77B;>B;c                     t          j        d                              dd          } t          j        g d| j                  }|j        j        du sJ t           j                            | |          }t          j
        |           t          j        ddd	          } t          j        ddd	          }t          j        | |          \  }}t          j        dt           j        z  |z            t          j        dt           j        z  |z            z  }t          j        d	t"          
          }d|d<   t          j        ||j                  }|j        j        du sJ t           j                            ||          }t          j
        |||           t           j                            ||          }	t           j                            ||          }
t          j        |	|
|           d S )Nr  r:   r   FTFFr  r   r9   r   r  Tr   )rk   rs   r   broadcast_tor  flags	writeabler	   rW  r'   r  r  r  r  r  ro  r  boolrd  )r2   xmaskmasked_xr3   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   ra   r:   rv  r  rl  r   r   r   rk   rs   rl   rm   r  r  diffr    r!   r"   r2   r3   r  rZ  r[  s           r#   test_pcolornearestr  ,  s    					B
	!RA
	!QAINN8
	1AMM!Q6M***					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!YM/////r%   c                 
   |                                  }d t          d          D             }t          j        dd          }t          j                            d           t          j                            dd          }|                    |||d	           |                                 }d
 t          d          D             }|d d         t          j        |          dz  z   }|                    |||d	           d S )Nc                 R    g | ]$}t           j                             |d z            %S )  r<  fromtimestampr   r2   s     r#   r   z+test_pcolornearestunits.<locals>.<listcomp>?  s-    FFFq		(	(T	2	2FFFr%   r   r   r   ra   r:   rv  r  rl  c                 X    g | ]'}t           j                             |d z   dz            (S )r   r  r  r  s     r#   r   z+test_pcolornearestunits.<locals>.<listcomp>G  s2    	N	N	N(

)
)1s7d*:
;
;	N	N	Nr%   r   r   )	r   r   rk   rs   rl   rm   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   rv  r   ra   zDimensions of Crz  r  rl  )r'   r   rk   rs   rl   rm   r  r   r   r   r  r-   r"   r2   r3   r  s        r#   test_pcolorflaterrorr  L  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 Xrz  r  rl  )	r'   r   rk   r  rs   r   r   r   r  r  s        r#   test_samesizepcolorflaterrorr  V  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   r8  ra   r   rv  )r  r   r:   r  )	r    r!   r  r"   r2   r3   r  rZ  r[  s	            r#   test_pcolorautor  ^  s     
				B
	!RA
	!QAINN8
	1AMM!QM%%%					B	
3B3"'!**q.	 B	
3B3"'!**q.	 BMM"b!$M'''''r%   	canonicalc                  `    t          j                    \  } }|                    g d           d S )Nr  r'   r   r   r,   s     r#   test_canonicalr  q  s-    lnnGCGGIIIr%   zarc_angles.pngc                     d} d}d}d}t          j        dd          \  }}t          |j                  D ]\  }}|dz  dz  }|dz
  }	|                    t          j        || |d	                     |                    t          j        || ||	|
                     |                    |t          j
        t          j        |	                    z  |d         z   |d         |t          j
        t          j        |                    z  |d         z   g|t          j        t          j        |	                    z  |d         z   |d         |t          j        t          j        |                    z  |d         z   g           |                    | |           |                    | |           | dz  } |dz  }|d         dz  |d         dz  f}|dz  }d S )Nr:   r9   )r  r   r   h  rv  -   r  r  )theta1theta2r   r   )r'   r   r  r  r  r  EllipseArcr   rk   ro  deg2radr  r  r	  )
rj  r  centrer5  r-   r  rK  r"   r  r  s
             r#   test_arc_anglesr  w  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   rh  r  )r   r  yellowr9   )r  r=  r>  r?  r  r:   F)angler?  r@  r  ri  equalr   )r  r=  r>  r  )rk   r  rs   ro  r  rW  rr   r'   r   r   r@  r  r  r  )xcenterycenterr  r  r  r  r2   r3   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   r:   r9   rI  )r8  r   r:   )r   r8  r   )r'   r   mmarkersMarkerStyler   r;   rP  )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  r0   r  mark allr  r0   r  mark every 10+r   r  mark every 5 starting at 10rk   r  r  r  r'   r   r   rI   r  s       r#   test_markeveryr    s    
Ar3A
q		BGAbD3J'''A lnnGCGGAq#YG'''GGAq#ZG888GGAq#?G;;;GGAq#0MGNNNIIKKKKKr%   markevery_lineg{Gzt?c                     t          j        ddd          } t          j        |           t          j        | dz  dz             z  }t	          j                    \  }}|                    | |dd           |                    | |dd d	
           |                    | |ddd
           |                    | |ddd
           |                                 d S )Nr   r   r  r   z-or  r  z-dr	  r
  z-sr  z-+r  r  r  r  s       r#   test_markevery_liner    s     	Ar3A
q		BGAbD3J'''A lnnGCGGAq$iG(((GGAq$$jG999GGAq$"OG<<<GGAq$'1NGOOOIIKKKKKr%   markevery_linear_scalesrW  c                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t          |           D ]i\  }}||z  }||z  }	t          j
        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nr  r   r  r  rI  r   r   r   r  r  r   r   r  r   r  r   ?r   r9   )\(?r   r:   r   markevery=%sr   rJ  r8  lsmsr  )slicerW   gridspecGridSpecr  rk   r  r  r  r'   rs  r1   strr   
casescolsgsdeltar2   r3   rK  casery  rz  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 )Nr  r  r  r   r   r  r  r   r   r  r   r  r  r9   r  r   r:   r   r  r   rJ  r8  r  )r  g@)rg  g333333?)r   rW   r!  r"  r  rk   r  r  r  r'   rs  r1   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 )Nr  r  r  r   r   r  r  r   r   r  r   r  r  r9   r  r   r:   r   r  r6  r   rJ  r8  r  )r   rW   r!  r"  r  rk   r  r  r  r'   rs  r1   r#  xscaler  r   r$  s
             r#   test_markevery_log_scalesr1    sN   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CBE
ArAI~s++e3A
q		C%AU## ; ;4Dy$hBsCxL!!!	.3t99,---
5
5AssqT:::::; ;r%   markevery_polarc                     d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }t          j        ddd          }dt
          j        z  |z  }t          |           D ]k\  }}||z  }||z  }t          j
        |||f         d           t          j        dt          |          z             t          j        ||ddd|           ld S )Nr  r  r  r   r   r  r  r   r   r  r   r  r  r9   r  r:   Tpolarr  r   rJ  r8  r  )r   rW   r!  r"  r  rk   r  r  r  r'   rs  r1   r#  r   )	r%  r&  r'  rM  r  rK  r)  ry  rz  s	            r#   test_markevery_polarr6  5  s   \\Ar73Q#s&E D			%	%c%jjD&81&<d	C	CB
AsC  AIMEU## ? ?4Dy$hBsCxL----	.3t99,---331>>>>>? ?r%   markevery_linear_scales_nansc                  V   d ddg dddgt          ddd          d	d
dddg} d}t          j                            t	          |           |z  dz   |          }d}t          j        ddd|z  z
  d          |z   }t          j        |          dz   |z   }t
          j        x|d d<   x|dd <   |dd<   t          |           D ]i\  }}||z  }||z  }	t          j        |||	f                    t          j        dt          |          z             t          j        ||ddd|           jd S )Nr  r  r  r   r   r  r  r   r   r  r   r  r  r9   r  r   r:   r   rV  F   r  r   rJ  r8  r  )r   rW   r!  r"  r  rk   r  r  r  r  r'   rs  r1   r#  r   r$  s
             r#   !test_markevery_linear_scales_nansr;  M  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   r9   r   zy.      >@rM  )r  mewmecr   r  r:   r-  )rk   r  r'   r   r   r  r2   r-   r"   s      r#   test_marker_edgesrB  g  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   r9   edger+  )align
tick_labelre  r   r-  )rE  rF  r  )r'   rl  r  r   )r"   r  r-   s      r#   test_bar_tick_label_singlerG  p  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   r9   r8  )r'   r   r  rk   r  r,   s     r#   test_nan_bar_valuesrI  }  s5    lnnGCFFAq6BFA;r%   c                  ^    t          j                    \  } }|                    g g            d S r  )r'   r   r  r,   s     r#   test_bar_ticklabel_failrK    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 )
Nr9         @r:   r  r   r   r-  rZ   r  rF  rE  )r'   rl  r  r  s    r#   test_bar_tick_label_multiplerO    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 )NrZ   zytick.alignmentr9   rM  r:   r  r   r   r-  rN  )rW   r   r'   rl  r  r  s    r#   *test_bar_tick_label_multiple_old_alignmentrQ    s]     .6J)*	BFFAs8aVC:3*      r%   c                     |                                  }g d}g d}d |D             }d |D             }|                    ||d           |                                 }|                    ||d           d S )Nr   g @g333333@r  rg  r  gffffff
@g@c                 ,    g | ]}t          |          S r   r   r  s     r#   r   z+test_bar_decimal_center.<locals>.<listcomp>            r%   c                 ,    g | ]}t          |          S r   r   r   r3   s     r#   r   z+test_bar_decimal_center.<locals>.<listcomp>  rV  r%   rZ   rE  r   r  r    r!   r"   x0y0r2   r3   s          r#   test_bar_decimal_centerr^    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 )NrS  rT  c                 ,    g | ]}t          |          S r   r   r  s     r#   r   z,test_barh_decimal_center.<locals>.<listcomp>  rV  r%   c                 ,    g | ]}t          |          S r   r   rX  s     r#   r   z,test_barh_decimal_center.<locals>.<listcomp>  rV  r%   )r   r   r9   r9   rZ   r  rE  r   r  r[  s          r#   test_barh_decimal_centerrd    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 )NrS  rT  r  g333333?r9   r:   c                 ,    g | ]}t          |          S r   r   r   rK  s     r#   r   z*test_bar_decimal_width.<locals>.<listcomp>  rV  r%   rZ   r  rE  rZ  )r    r!   r2   r3   w0rj  r"   s          r#   test_bar_decimal_widthrk    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 )NrS  rT  rf  c                 ,    g | ]}t          |          S r   r   rh  s     r#   r   z,test_barh_decimal_height.<locals>.<listcomp>  rV  r%   rZ   rb  rc  )r    r!   r2   r3   h0r  r"   s          r#   test_barh_decimal_heightro    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 )
Nr9   r:   r8  r  r9  rM  r  r   r>  r   r   r   r   r9   r   r   r  r'   rl  r  get_facecolorget_edgecolorr"   rectsrects      r#   test_bar_color_none_alpharz    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 )
Nr9   r:   r8  r  rM  r9  rq  rs  rr  rt  rw  s      r#   test_bar_edgecolor_none_alphar|    s    	BFFAq6Aq6C6FJJE 4 4!!##~5555!!##|333334 4r%   zbarh_tick_label.pngc                  p    t          j                    } |                     ddgddgddgddgd	           d S )
Nr9   rM  r:   r  r   r   r-  rZ   )r  rF  rE  )r'   rl  r  r  s    r#   test_barh_tick_labelr~    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.  r9   r   r   hoursr  r:   )rT  r  )r  )r  rU  r   c                 8    g | ]}t          j        |           S )r  r  r   r  s     r#   r   z&test_bar_timedelta.<locals>.<listcomp>  s&    @@@AH&Q///@@@r%   r7  r   r  N)	r'   r   r  r<  r  r  rk   rW  broken_barhr,   s     r#   test_bar_timedeltar    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   r9   r   )r  rP   )r  rQ   N)rk   rW  rk  r'   r   r  r   r^   r   r>  AutoDateFormatterr  r[   )startstopr-   r"   s       r#   test_bar_datetime_startr    s,   HbmL112=3N3NmL113 4 4E8R]<00"-2M2M]<002 3 3D lnnGCFF999T%ZF666bh2244f6NOOOOOlnnGCGGIIIT%ZeG444bh2244f6NOOOOOOOr%   c                     t           j                            dd          }|                     dd|                     d                    j        }t          j                     t          j        ||           d S )Nr   r:   z1/1/2000r9   )years)periodsfreq	positions)	rk   rl   r   
date_range
DateOffsetyearr'   r   boxplot)pdr  r  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   rv  r   )r  r  r   r   )	capwidthswidthsr9   r  r:   r  r   r8  r  r  rj  r  )rk   rl   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     r9   rj  r   x   )secondsr   )pandas.plottingr  r  r'   r   r   r<  r  appendr  rk   rs   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)r  r  r  r9   r9   r9   r  )r  monthrC  rB  )r  r  rC  daterB  r   rZ   ri  oranger8  rS  )		DataFrameto_datetimegroupbyr  indexr'   r   r  r   )r  dfmonthlydatesforecastbaseliner-   r"   s           r#   test_bar_pandasr  J  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  )r2   r  r  r  r   r  )r  r'   r   r  r2   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 )	Nr9   r:   r   r2   r   r  )r   r7  r7  )r   r   r  )r    r!   rx   ry   r2   r3   hatchesrK  s           r#   test_bar_hatchesr  e  s     !!GF	
AA	
AACjG1XX = =

1Q41T
<<<<KK1GK$$$$$r%   )r2   r  r0   expected_labelscontainer_labelr2   r9   
_nolegend_r   r-  r=   )r   r  r  ABr  )r  r  r  bars)r  r  r  c                     t          j                    \  }}|                    | ||          }d |D             }||k    sJ |                                |k    sJ d S )Nr  c                 6    g | ]}|                                 S r   )r\   )r   r  s     r#   r   z#test_bar_labels.<locals>.<listcomp>  s     ;;;c#--//;;;r%   )r'   r   r  r\   )	r2   r  r0   r  r  r  r"   bar_container
bar_labelss	            r#   test_bar_labelsr  t  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 )Nr2   r3   r9   r:   )r  r  r  r  r  )r'   r   r   r   r  r  r  s     r#   test_bar_labels_lengthr    s?   LNNEAr	z	"	" : :
SzAq6999: : : : : : : : : : : : : : :LNNEAr	z	"	" 0 0
SzAq6#///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s#   AA"AC  CCc                    |                      ddgd          |                      ddgd          fD ]^}t          j        ||           t          j        |j        |           t          j        |           t          j        |j                   _|                     dg di          }t          j        |           t          j        ||           d S )Nr9   r:   float64r  Float64rz  r  )Seriesr'   r   r  r  )r  r2   r  s      r#   test_pandas_minimal_plotr    s    iiAii00iiAii002  A!	uiii(	)	)BHRLLLHRr%   hist_logc                      t          j        ddd          dz  } t          j        d| z
  d| z   g          }t          j                    \  }}|                    |dd           d S )Nr   r9   r  r   FT)r@  r6  )rk   r  concatenater'   r   hist)data0r  r-   r"   s       r#   test_hist_logr    sc    K1c""A%E>1u9a%i011DlnnGCGGDu$G'''''r%   c                    |                      dd          }|                     dd          }t          g d          D ]\  }}|d|f                             d           |d|f                             dd|           |d|f                             dd|           |d|f                             d           |d d |f         D ]}|                    ddd|	           d S )
Nr:   r   )r  step
stepfilledr   r6  r9   histtypeT)r6  r  )r   r  r  r  )r    r!   r   r   rK  r  r"   s          r#   test_hist_log_2r    s     A&&Hq!$$G !>!>!>?? 	7 	78A!!%(((AAq8444AAq8444A!!%(((!!!Q$- 	7 	7BGGAqdXG6666	7	7 	7r%   c                     t          j        d          \  } }|d                             dgddggdd           |d                             d           |d                             g ddd           |d                             d           | j                                         |d                                         |d                                         k    sJ d S )Nr:   r   r9   
barstackedr  r6  r   r   r9   )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'   rl  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 )Nra   r   r  r  sizer   r9   r   )r  r  r:   )rk   rl   rm   cliprn   r   float16r'   r  r   r  get_corners)r&  r  bcrM  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   r@  TFr:   r  r8  r  )nrowsncolsr  stackedr5  rU  rP   r  c              3   j   K   | ].}|                                 |                                k    V  /d S r  )ru  rv  )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%   )rk   rl   rm   r  r'   r   r  r  r  r5   r	  rD  all)
r2   n_binsr  typesr-   r  kg_typer"   rD  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 )Nra   r  Tdensity)rk   rl   rm   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   r9   r   T)r  r  )rk   rl   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  r9   r:   T)r  F)r<  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 )Nrk  )rk   rM  r  s    r#   r  r  	  s    rz$'E'E r%   )r?  zdatetime.datetimeznp.datetime64c           	         t          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gt          j         ddd          t          j         ddd          t          j         ddd          t          j         ddd          gg}t          j         ddd          t          j         ddd          t          j         ddd          g}t          j                    \  }}|                    | | |          d	          \  }}}t          j                            |t          j        	                    |                     |                    | | |          d
	          \  }}}t          j                            |t          j        	                    |                     d S )Ni  r9   r   rJ  r:   r   rH  T)r  r  F)
r<  r'   r   r  rk   r   r   r   r  r?  )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 )Nr9   r   )r'   r  rk   rM  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 )Nr9   r:   r  )r'   r   r   r  rD  
get_zorder)r  r  r"   r"  s       r#   test_hist_zorderr(  0	  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  r8  )	r   r   r  r  r        @      @       @      "@r   r:   r  r9   rR   )r  rT   rS   r8  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrk   rW  r   flattenstairssemilogyr  r   r  add_lineLine2Dr	  r  )r    r!   mlinesr3   r2   	test_axesr   ref_axess           r#   test_stairsrC  <	  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)r9   r:   r   r8  r:   )r   r9   r:   r   r8  r   r   r:   r   Tr@  r9   rR   )rT   r@  )r  r@  r   )r  rT   r@  r   post)r  rT  )r   r;  r<  r  rk   r  r	  r-  r  r   r  )r    r!   r  r  bsrA  rB  s          r#   test_stairs_fillrH  h	  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  r8  r  r   r8  r:   edges)r9   r:   r9   r   r9   r   r1  )	r   r<  r	  set_datark   rs   allcloseget_datar  )r    r!   r   test_axr  ref_axs         r#   test_stairs_updaterQ  	  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  rj  r1  r2  r3  r4  r8  )r   r  rj  rj  r7  r8  r   )r   r<  r   r   r	  )r    r!   rO  rP  r   s        r#   test_stairs_baseline_0rS  	  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  rt  )r'   r   r   r<  r   r   r  s    r#   test_stairs_emptyrW  	  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"rz  r9   r:   r   )r   r   r  r'   r<  rk   r  r   r%   r#   test_stairs_invalid_nanrZ  	  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 mismatchrz  r9   r:   r   )r   r   r  r'   r<  r   r%   r#   test_stairs_invalid_mismatchr]  	  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 )Nr9   r:   rO  rY  rz  rJ  )r'   r<  r   r   r  rL  rk   r  r  s    r#   test_stairs_invalid_updater`  	  s    
Aq6999%%A	z)@	A	A	A ) )	

!RVQ
((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   $A&&A*-A*c                      t          j        ddgg d          } t          j        t          d          5  |                     t          j        d                     d d d            d S # 1 swxY w Y   d S )Nr9   r:   rO  r\  rz  r   rJ  )r'   r<  r   r   r  rL  rk   rs   r_  s    r#   test_stairs_invalid_update2rb  	  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r9   r:   r   r8  r   r  r9   r   r   Tr  )r   r@  r0   r8  rR   r  )r   r@  rT   r0   r  rK  r:   r  )r   r  rT  r0   r   r_  )r  rT  r  rT   r0   r      E)r   r  rT  r  r0   r*  rK  r  F)r  r   r  rT  r0   r  r2     r   G)r  r   r  r0   r@  rJ  r3  r  //H)r   r  rT  r  r7  r0   r   r@   )rk   rW  r   r  copyr  r'   r   r<  r  r  rI   )r2   r3   ynr-   r"   s        r#   test_stairs_optionsrn  	  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<  rk   rs   rk  xticks)fr"   s     r#   test_stairs_datetimeru  	  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  r8  T)r   r@  rE  )r   r<  	set_color)r    r!   rO  rP  sts        r#   test_stairs_edge_handlingry  	  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  )rk   r  ro  r  r  )r2   r3   r  s      r#   contour_datr|  	  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 )Nrj  )r5  \rj  rJ  r  r   r   )r  r   extendr  )r|  r'   r   contourfr   r  r  s        r#   test_contour_hatchingr  	  se    mmGAq!lnnGCKK1a$:$:$:]6*S  * * * * *r%   contour_colorbargHzG?c            
          t                      \  } }}t          j                    \  }}|                    | ||t	          j        ddd          t          j        d         ddd          }|                    | ||t	          j        d	d
d          dgdd          }|                    | ||t	          j        ddd          dgd          }|	                    ||          }|
                    |           |
                    |d           d S )Ngg7A`?r  RdBug333333r  r   )levelsr   r  r  r  gg^I+r3   r   r:   )r  r  
linestylesr  r  r=   )r  r  r  r  F)erase)r|  r'   r   r  rk   rs   r   r  r  rJ   	add_lines)	r2   r3   r  r-   r"   cscs1cs2rM   s	            r#   test_contour_colorbarr  
  s    mmGAq!lnnGC	Q1RYtUC%@%@-/"	 
 
$ 
$B
 **Q1RYtVS%A%A E ' !  # #C **Q1RYsC%=%= E !  # #C <<r<""DNN3NN3eN$$$$$r%   hist2dc                     dt           j        d<   t          j                            d           t          j                            d          dz  dz   } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           | |d
}t          j                    \  }}|                    ddd|d           d S )NFr  r   r  r:   r   r   Tr  
rasterizedr(  r2   r3   )r  r  r  )r'   r   rk   rl   rm   r  r   r  )r2   r3   r-   r"   r  s        r#   test_hist2dr  
  s     ',CL"#INN1
	Qq A
	QAlnnGCIIaI--- DlnnGCIIc3RdtI<<<<<r%   hist2d_transposec                  4   dt           j        d<   t          j                            d           t          j        dgdz            } t          j                            d          dz
  }t          j                    \  }}|                    | |dd	           d S )
NFr  r   r   r  r:   r   Tr  )	r'   r   rk   rl   rm   rW  r  r   r  r  s       r#   test_hist2d_transposer  +
  s     ',CL"#INN1 	!SA
	QAlnnGCIIaI-----r%   c                      t           j                            d          \  } }t          j                                                    }|t          fD ]}|                    | |d           d S )Nr  Tr  )rk   rl   r'   r   r   r  )r2   r3   r"   objs       r#   test_hist2d_densityr  9
  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   r8  r:   r  r:   r   r:   r   rM  r3   r-  limerI  r        )0.50.60.7z0.8)r2   r3   r=   r  c2r2   r   r3   r=   r  r=   r  r  )r=   r  r  )rk   rW  r'   r   r;   )r  r  r-   r"   s       r#   test_scatter_plotzTestScatter.test_scatter_plotA
  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  )r9   r   r   r3   r-  r  )r-  rV  r  r   )r?  rM  gr-  r  )r=   r  ri  r   r   r?   	fillstyler  r   r:   r  )r'   r   r;   r  r  rk   r  r  column_stackro  r  )
r  r-   rw  r  r$  rxryarear  r  s
             r#   test_scatter_markerzTestScatter.test_scatter_markerL
  s   "|!444_c3LLL,,,333&&&333	 	 	  	  	 
 	LLL,,,333&&&333#/uEEE	 	 	G 	G 	G BBwAq25y"--!3d!:!#!3d!:!< = =LLL,,,333&&&333 	 	 	" 	" 	" 	" 	"r%   
scatter_2Dr   )r  r   c                     t          j        d          }t          j        d          }t          j        ||          \  }}||z   }t          j                    \  }}|                    |||dd           d S )Nr   r:   r  face)r=   r  ri  )rk   rs   r  r'   r   r;   )r  r2   r3   r  r-   r"   s         r#   test_scatter_2DzTestScatter.test_scatter_2De
  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 )NrS  rT  c                 ,    g | ]}t          |          S r   r   rh  s     r#   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>r
      ---Qgajj---r%   c                 ,    g | ]}t          |          S r   r   rh  s     r#   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>s
  r  r%   r  r  r  )rk   rW  r   r;   )
r  r    r!   r\  r]  r2   r3   r=   r  r"   s
             r#   test_scatter_decimalz TestScatter.test_scatter_decimaln
  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 )Nr9   r:   r   r  rN  r  )r   r   r  r'   r;   r  s    r#   test_scatter_colorzTestScatter.test_scatter_color}
  s!   ]:&& 	: 	:KAAsCj9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:]:&& 	? 	?K			999III>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s#   AAA(BBBr  r   r  r  r  r   r  c                    d}t          j        t          |          5  t          j        g g fi | d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddgddgfdg i| d d d            n# 1 swxY w Y   t          j        g g fdg i| t          j        ddgddgfdddgi| d S )	Nz"No data for colormapping provided rz  r9   r:   r   r8  r=   r   )r   r  Warningr'   r;   )r  r  
warn_matchs      r#   test_scatter_color_warningz&TestScatter.test_scatter_color_warning
  sr    :
 \'444 	* 	*KB))&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*\'444 	8 	8KAA77"7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	B++b+F+++QFQF77q!f777777s!   >AA$B

BBc           	      L   t          j        g dg dg dt          j        dd          g d          }|                                j        d	k    sJ t          |                                g d
g dg dg           t          |                                g d           d S )NrO  r9   r   r:   0.1z0.3r  r   r9  r  rg  r2  ?r=   r   r  )r   r8  r   r   r   r9   r  r  r  r9   r   r   r   r9   )	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 )
NrO  r  r  r2   r  r  r  r  r  )r'   r;   r   r  r  r  r  s     r#   test_scatter_unfillablez#TestScatter.test_scatter_unfillable
  s    {999iii3H3H3H"%&5oo7 7 7 	4..00$2E2E2G2GHHH4..003E3E3E3E3E3E3E3E3E3G 	H 	H 	H 	4..00///BBBBBr%   c                    t          j        d          }t          j        t          d          5  t          j        |||dd                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |dd          |dd          |           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr8  zsame size as x and yrz  r9   zfloat array-liker  )rk   rs   r   r   r  r'   r;   )r  r2   s     r#   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size
  s   IaLL]:-CDDD 	% 	%K1ae$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:-CDDD 	) 	)K!""qua(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)]:-?@@@ 	% 	%K1e$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s5   AA"A'B44B8;B8C>>DDc                 l   t          j        g ddt          j        t          j        gd          }t	          j        |                                d          sJ t          j        g ddt          j        t          j        dgd          }t	          j        |                                d          sJ d S )Nr  r9   r  r>  r  r  )r'   r;   rk   r  r  
same_colorrv  r  s     r#   test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB
  s    {999q"&"&&9&/1 1 1!$"4"4"6"6	BBBBB{<<<!RVRVQ)?&24 4 4!$"4"4"6"6EEEEEEEr%   c                 6   |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|d	           |                                 }t          j        d                             d          }|                    d
dgd
dgddgddg|           |                    ddgddgddgd           d S )Nr~  r  r?  r9   r8  r:   r  Tr=   r  r   plotnonfiniter   r   r=   r  r   )r  r   	r   r   r  r  set_badr;   r   rk   r  r  r    r!   r"   r   s        r#   test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color
  s     }Y'11"55S! 	

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


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


Aq6Aq6aV3
77777r%   c                    |                                 }t          j        d                             d          }|                    dd           |                    t          d          t          d          dt          j        dt          j        gg d|d	           |                                 }|                    d
dgd
dgddgddg|           d S )Nr~  r  r?  r9   r8  r:   r  Fr  r   r   r  r  r  s        r#   test_scatter_no_invalid_colorz)TestScatter.test_scatter_no_invalid_color
  s       }Y'11"55S!


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


Aq6Aq6aV1vD
AAAAAr%   c           
          g d}t          j                    }t          j        t          d          5  |                    |||t          j        dd          dd           d	d	d	           d	S # 1 swxY w Y   d	S )
r  r  r  rz  r  r   r   r   )r=   r  r  r  N)r'   rq  r   r   r  r;   r  r  )r  r2   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 )Nr9   rL  )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   r:   r   rL  )rk   rs   r   r;   r   )r  r    r!   r2   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)r8  N)r9  N)NN)rM  r  r-  r9  N)jauner  r  r8  r   r   r   r  )r  z0.4r  r  )r  r8  r  C5)r  r   r  r  r  r9   r   r   r   r8  z0.0r  r   r9   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%   r8  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  rz  r   (argument looks like a single numeric RGBr3  )r=   ri  r  xsizeget_next_color_func)r   r   r  r   r$  r  r  
contextlibnullcontextr   rq  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)r9   r   皙?)r9   r   r  r   r   rN  r8  r:   rL  )r   r;   rk   r   r   )r  r    r!   rgbrgbary   rx   s          r#   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_c9  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  r2   r  r9   )r=   r   r  r  C3lines.linewidth)rk   rs   r'   r   r   r;   re   r  r   r   r   )r  r2   r-   r"   rK  pcs         r#   test_scatter_linewidthsz#TestScatter.test_scatter_linewidthsI  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 anotherrz  r  )r   r@  r  r  )r  r?  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r  )ri  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_argumentsW  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  )ri  c                    | |||ni |fS r  r   )r=   r  ri  r  s       r#   _paramsr  m  s    zV%766RGGr%   _resultz	c, colorszparams, expected_resultr-  rP  )r=   r  rM  rL  r  rN  r  )r   r   r   r9   c                     d }t          j        j        j        | d|i\  }}}||j        k    sJ t          ||j                   d S )Nc                      dS r  r   r   r%   r#   r  z5test_parse_scatter_color_args.<locals>.get_next_color      vr%   r  )r   rq  r   r  r=   r   r  )paramsexpected_resultr  r=   r  _edgecolorss         r#   test_parse_scatter_color_argsr  r  sh       !X]D	5%35 5Av{!!!!!FO233333r%   zkwargs, expected_edgecolorsr  r  r9  )r>  ri  )r=   r>  ri  )r   r>  c                     d }|                      dd           }|                      dd           }t          j        j                            ||| d|          \  }}}||k    sJ d S )Nc                      dS r  r   r   r%   r#   r  z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color  r  r%   r=   ri  r:   )r  r  )popr   rq  r   r  )r  expected_edgecolorsr  r=   ri  r  result_edgecolorss          r#   (test_parse_scatter_color_args_edgecolorsr"    s       	

3AL$//J//z6 	0 	P 	P Aq
  3333333r%   c                      d } t          j        t          d          5  t          j        g dg dg          }t
          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r%   r#   r  z;test_parse_scatter_color_args_error.<locals>.get_next_color  r  r%   z&RGBA values should be within 0-1 rangerz  )r   r  r  )r  r@  gffffff?r:   r  r  r  )	r   r   r  rk   rW  r   rq  r   r  )r  r=   s     r#   #test_parse_scatter_color_args_errorr&    s       
zE
G 
G 
G M MHooo788//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   AA00A47A4c                  n    G d d          }  |             } |             }t           j        |_        t          j        d|          }t          |          t          u sJ t          j                     t          j        d|          }t          |          t          u sJ t          j                     d S )Nc                       e Zd Zd Zd ZdS )#test_as_mpl_axes_api.<locals>.Polarc                     d| _         d S )Nr   )theta_offsetr  s    r#   __init__z,test_as_mpl_axes_api.<locals>.Polar.__init__  s     !Dr%   c                 "    t           d| j        ifS )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)    s7        	" 	" 	"	B 	B 	B 	B 	Br%   r/  rP  r  y   )	rk   r  r+  r'   rq  typer   ru  rs  )r/  prjprj2r"   s       r#   test_as_mpl_axes_apir4    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   scarl  gcfru  )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  r6        @)r  r0  c                 J    g | ] }d  |                                 D             !S )c                 h    g | ]/}|                                 |j                                        f0S r   )get_loclabel1get_textr  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}}$)r0  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   rC  rD  rE  rF  )r'   r   r   rk   r6  r  r  r  rR  r[   r^   )r-   r"   rs  ytickss       r#   test_log_scalesrI    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 )Nr6  )r0  r  r9   r9   r   )	r'   r   r   r[   r  r   MultipleLocatorr   r   r  s     r#   test_log_scales_no_datarM    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 )Nr6  zAttempt to set non-positiverz  r   r   )	r'   r   rR  r   r  rO  r  r  r	  r,   s     r#   test_log_scales_invalidrO  	  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   r9   r  r:   r   r   r   r:  )r2   r  r[  y3r2   r  r[  rT  )r  C1C2)r  r  )	r'   r   rk   r  r   	stackplotr  r	  r   )r-   r2   r  r[  rT  r"   r  s          r#   test_stackplotrX    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   r9   r   r:   r   r   )rk   r  r   rl   exprs   )r  r  r   rK  jr2   r3   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  rV  r:   r  zeror1  r  symr9   r   wiggler}  weighted_wiggle)rk   rl   rm   r'   r   rW  r   r  )r^  r  r-   r  s       r#   test_stackplot_baselinerd  )  s    INN1   	q#AAb!!!eH|Aq!!HCIc

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

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

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

AC2CDDDDDr%   c                    t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                                }|                    ||||g dd	g
           |                    d           |                    d           t          j        t          |                    }|                                 }|                    |||dd	           |                    ||||z   dd	           |                    |||z   ||z   |z   dd	           |                    d           |                    d           d S )Nr   r   r   r   r9   r  r:   )r2   rj  \\r4  )r7  r  rR  rS  r2   )r7  r=  rj  rf  )	rk   r  r   rW  r  r	  r  r  r  )	r!   r    r2   r  r[  rT  rx   stack_baselinery   s	            r#   test_stackplot_hatchingrh  B  sX   
Ar2A	qB	q1B	q1B!!GaR+>+>+>yQQQWWXc!ff%%NF
>2SGLLL
2r"uDGDDD
2b5"R%(&GLLL
OOG
OOGr%   c                     | S r  r   )r  s    r#   r  r  X  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  rb  r   )r+  r8  )meansigmar  vertTr6  patch_artistFr  boxplot.boxprops.linewidth)rk   rl   rm   r   cbookboxplot_stats	lognormalr'   r   getr  rR  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr-   r"   s         r#   _bxp_test_helperrz  W  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  rz  r   r%   r#   test_bxp_baseliner}  i  s     r%   zbxp_rangewhis.pngc                  F    t          t          ddg                     d S )Nr   r  whisrv  rz  r  r   r%   r#   test_bxp_rangewhisr  p  s*     $QH"5"5"5666666r%   zbxp_percentilewhis.pngc                  F    t          t          ddg                     d S )Nr   _   r  r  r  r   r%   r#   test_bxp_percentilewhisr  w  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ABCDr0   r  r$  statsr  r0   s      r#   r<  z(test_bxp_with_xlabels.<locals>.transform  5    E4<<00 	 	HAuAgJJr%   )rw  r|  r<  s    r#   test_bxp_with_xlabelsr  ~  s*      
 Y//////r%   zbxp_horizontal.pngr   )r  r.  r   r   c                  B    t          t          d                     d S )NFrn  rx  r  r   r%   r#   test_bxp_horizontalr    s&     % 0 0 0111111r%   zbxp_with_ylabels.png)r.  r   r   c                  J    d } t          | t          d                     d S )Nc                 V    t          | t          d                    D ]
\  }}||d<   | S r  r  r  s      r#   r<  z(test_bxp_with_ylabels.<locals>.transform  r  r%   Fr  rw  rx  r  r  s    r#   test_bxp_with_ylabelsr    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)ro  r  r  r   r%   r#   test_bxp_patchartistr    s&    
 $ 7 7 7888888r%   zbxp_custompatchartist.pngr  c            
      d    t          t          dt          ddd                               d S )NTr  r   :)r=  r>  r  )ro  boxpropsr  r  r   r%   r#   test_bxp_custompatchartistr    sT    
 GDDD!F !F !F G G G G G Gr%   zbxp_customoutlier.pngc            	      b    t          t          t          ddd                               d S )Nr9  r  r  r   r   mfc)
flierpropsr  r  r   r%   r#   test_bxp_customoutlierr    sQ    
 &#>>>!@ !@ !@ A A A A A Ar%   zbxp_withmean_custompoint.pngc            
      d    t          t          dt          ddd                               d S )NTr9  r  r   r  )	showmeans	meanpropsr  r  r   r%   r#   test_bxp_showcustommeanr    sK    
 AAA! ! !      r%   zbxp_custombox.pngc            	      b    t          t          t          ddd                               d S )NrK  r-  r   r   r   rT  )r  r  r  r   r%   r#   test_bxp_customboxr    H    
 CA666!8 !8 !8 9 9 9 9 9 9r%   zbxp_custommedian.pngc            	      b    t          t          t          ddd                               d S )NrK  r-  r   r  medianpropsr  r  r   r%   r#   test_bxp_custommedianr    sH    
 4sq999!; !; !; < < < < < <r%   zbxp_customcap.pngc            	      b    t          t          t          ddd                               d S )NrK  r  r   r  )cappropsr  r  r   r%   r#   test_bxp_customcapr    r  r%   zbxp_customwhisker.pngc            	      b    t          t          t          ddd                               d S )NrJ  r  r   r  )whiskerpropsr  r  r   r%   r#   test_bxp_customwhiskerr    sH    
 Csq999!; !; !; < < < < < <r%   c                     t          j        d          }ddi}i |ddi}|                                                     ||           |                                                    ||           d S )Nr   r?  r  r6  r3  r  )rk   rs   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)shownotchesr  r  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)showcapsr  r  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)showboxr  r  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  )r  r  s     r#   r<  z*test_bxp_no_flier_stats.<locals>.transform  s-     	" 	"AEE(D!!!!r%   F)
showfliersr  r  r  s    r#   test_bxp_no_flier_statsr    sD    
  
 Y $ 6 6 68 8 8 8 8 8r%   zbxp_withmean_point.pngc                  D    t          t          dd                     d S )NTFr  meanliner  r  r   r%   r#   test_bxp_showmeanr    s(    
 te D D DEEEEEEr%   zbxp_withmean_line.pngc                  D    t          t          dd                     d S )NTr  r  r  r   r%   r#   test_bxp_showmeanasliner  !  s(    
 td C C CDDDDDDr%   zbxp_scalarwidth.pngc                  B    t          t          d                     d S )Nr  r  r  r  r   r%   r#   test_bxp_scalarwidthr  )  s&    
 C 0 0 0111111r%   zbxp_customwidths.pngc                  F    t          t          g d                     d S )N)r   r  g?g333333?r  r  r  r   r%   r#   test_bxp_customwidthsr  1  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)r9   r   r  rj  r  r  r  r   r%   r#   test_bxp_custompositionsr  9  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 )Nr9   r  r  r   r   r  rz  r  r   r%   r#   test_bxp_bad_widthsr  A  s    	z	"	" 6 6D$4$4$455556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6    AAAc                      t          j        t                    5  t          t	          ddg                     d d d            d S # 1 swxY w Y   d S )Nr:   r   r  r  r  r   r%   r#   test_bxp_bad_positionsr  F  s    	z	"	" < <DAq6$:$:$:;;;;< < < < < < < < < < < < < < < < < <s   !AAAzbxp_custom_capwidths.pngc                  F    t          t          g d                     d S )N)r  r   r   r   r  r  r  r   r%   r#   test_bxp_custom_capwidthsr  K  s-     /C/C/C D D DEEEEEEr%   zbxp_custom_capwidth.pngc                  B    t          t          d                     d S )Nr  r  r  r  r   r%   r#   test_bxp_custom_capwidthr  R  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 )Nr9   r  r  r  r   r%   r#   test_bxp_bad_capwidthsr  Y  s    	z	"	" 9 9DA3$7$7$788889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9r  r  g{Gz?)r   r   c                     t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdd	           |                    d
           d| | gi}t          j                    \  }}|                    ddd|           |                    d
           d S )Nrk  ri  rj     rh  '  r9   	bootstrapnotchr  r   r2   )r  r  r  	rk   rl   rm   r  hstackr'   r   r  r	  )r2   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%   c                 .   t          j        ddd          }|                                 }||dk             }|                    |           t           j                            |d          }|                                }|                    |           d S )Nr   r9   r  r   )rk   r  r   r  r	   masked_less)r    r!   x_origr"   r2   s        r#   test_boxplot_maskedr  q  s     [Q$$F					Bv{AJJqMMM
&!$$A					BJJqMMMMMr%   zboxplot_custom_capwidths.pngc                      t          j        ddd          } t          j        d| dg          } t          j                    \  }}|                    | | gdddg	           d S )
Nri  rj  r  r  rh  r9   r  r  )r  r  )rk   r  r  r'   r   r  rA  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 )Nrk  ri  rj  r  r  rh  r9   r:   r  ^)r  r`  r  r  r  )r2   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 )	Nri  rj  r  r  rh  r'  r`  r  )rk   r  r  r'   r   r  r	  rA  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 )Nrk  r  r   r:   r  r9   r  )r  r   T)r  r  	autorange)	rk   rl   rm   r   r  r'   r   r  r	  )r2   r8  r  r9  r$  s        r#   test_boxplot_autorange_whiskersr    s    
 INN3
A
	1a)AID#KKA%qK111LLID#KKA%qDKAAALLr%   c                     t          j        ddd          }t          j        d|dg          }t          j        |          5  |                     ||g           d d d            n# 1 swxY w Y   | S )Nri  rj  r  r  rh  )rk   r  r  rW   r   r  )r"   rc_dictr2   s      r#   _rc_test_bxp_helperr    s    
B3A
	32,A		w	'	'  


Aq6              Is   A&&A*-A*boxplot_rc_parameters)r.  r  r   r   c                     t           j                            d           t          j        d          \  } }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"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 ))Nrk  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstrapr  zboxplot.flierprops.colorr-  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylerK  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrM  rp  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   )r1  r  s     r#   r   z.test_boxplot_rc_parameters.<locals>.<listcomp>   s    333T!WW333r%   r9   )rk   rl   rm   r'   r   r  r  rW   rD  rE  get_children)r-   r"   rc_axis0rc_axis1rc_axis2	dict_listr*  rc_axiss           r#   test_boxplot_rc_parametersr	    s   
 INN3l1ooGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/  H6 "H# H  ! #! #&'*'+&)*-*. H  8X.IR++ + +gD'****(33be00223334 4 4 4 4 4r%   zboxplot_with_CIarray.pngc                  d   t           j                            d           t          j        ddd          } t          j        d| dg          } t          j                    \  }}t          j        ddgd	d
gg          }|                    | | gdd dg|d           |	                    d           d S )Nrk  ri  rj  r  r  rh  r]  r  r^        @r  r   r9   )r  usermediansconf_intervalsr  r  )
rk   rl   rm   r  r  r'   r   rW  r  r	  )r2   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(#  r{  X   i^  i@ ix  i  r  r6  Fminorwhich)
rk   rW  r  r'   rq  r  r  r^   r  r[   )r2   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 )	Nri  rj  r  r  rh  r9   r:   )r  	rk   r  r  r'   r   r   r   r  r  rA  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 )	Nri  rj  r  r  rh  r9   r:   )r  r  rA  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   r:   r  )rk   rs   r'   r   r  r'  )r2   r  r"   s      r#   test_boxplot_zorderr  5  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  rc  r   r   r  zboxplot.meanprops.markerr  r{  r   T)r  )whiskerscapsr  mediansr   r  r   means)r'   r   r   rk   rs   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  ru  ru  Q?gQ?gQr   r  r   )r'   r   r  rw  )r2   r-   r"   bpkeyr  s         r#   &test_boxplot_mod_artist_after_plottingr.  N  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  rk   rl   rn   r   r  s     r#   r   z1test_vert_violinplot_baseline.<locals>.<listcomp>^  +    9991BI#&&999r%   r8  Fr  r  showextremashowmediansr  )r  r  r6  r7  r  )rk   rl   rm   r   r'   rq  
violinplotr   )r  r"   r-   s      r#   test_vert_violinplot_baseliner9  Y  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 r1  r2  r3  s     r#   r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>o  r4  r%   r8  TFr5  r'   rq  rk   rl   rm   r   r8  r"   r  s     r#   test_vert_violinplot_showmeansr>  j  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 r1  r2  r3  s     r#   r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>y  r4  r%   r8  FTr5  r<  r=  s     r#    test_vert_violinplot_showextremarA  t  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 r1  r2  r3  s     r#   r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>  r4  r%   r8  FTr5  r<  r=  s     r#    test_vert_violinplot_showmediansrD  ~  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 r1  r2  r3  s     r#   r   z0test_vert_violinplot_showall.<locals>.<listcomp>  r4  r%   r8  Tr   ?r  r  r  r  r@  r  )r  r  r6  r7  	quantilesr<  r=  s     r#   test_vert_violinplot_showallrI    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 r1  r2  r3  s     r#   r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>  r4  r%   r8  Fr   r  r  r6  r7  pointsr<  r=  s     r#   $test_vert_violinplot_custompoints_10rN    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 r1  r2  r3  s     r#   r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>  r4  r%   r8  Fr  rL  r<  r=  s     r#   %test_vert_violinplot_custompoints_200rQ    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 r1  r2  r3  s     r#   r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>  r4  r%   r8  Fr  rn  r  r6  r7  r<  r=  s     r#   test_horiz_violinplot_baselinerU    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 r1  r2  r3  s     r#   r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>  r4  r%   r8  FTrT  r<  r=  s     r#   !test_horiz_violinplot_showmediansrX    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 r1  r2  r3  s     r#   r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>  r4  r%   r8  FTrT  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 r1  r2  r3  s     r#   r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>  r4  r%   r8  FTrT  r<  r=  s     r#   !test_horiz_violinplot_showextremar^    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 r1  r2  r3  s     r#   r   z1test_horiz_violinplot_showall.<locals>.<listcomp>  r4  r%   r8  FTr   rG  r  r  r  r  r@  r  )r  rn  r  r6  r7  rH  r<  r=  s     r#   test_horiz_violinplot_showallra    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 r1  r2  r3  s     r#   r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>  r4  r%   r8  Fr   r  rn  r  r6  r7  rM  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 r1  r2  r3  s     r#   r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>  r4  r%   r8  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%   zviolinplot_sides.pngc            
         t          j                    } t          j                            d           t          j                            d          g}t          g dg d          D ]"\  }}|                     ||gdddd|           #t          g d	g d          D ]"\  }}|                     ||gdddd|           #d S )
Nra   r  r  )r   r  r   )r   lowhighFT)r  rn  r  r6  r7  side)r8  r        @)r'   rq  rk   rl   rm   rn   r  r8  )r"   r  r   rl  s       r#   test_violinplot_sidesrn    s   	BINN8I#&&'D)@)@)@AA E E	T
dse%5"&Dt 	 	E 	E 	E 	E (?(?(?@@ E E	T
dse$%"&Dt 	 	E 	E 	E 	EE Er%   c                  H   t          j                    } t          j                            d           d t          d          D             }t          j        t                    5  | 	                    |t          d                     d d d            d S # 1 swxY w Y   d S )Ni@ 3c                 N    g | ]"}t           j                            d           #S r1  r2  r3  s     r#   r   z1test_violinplot_bad_positions.<locals>.<listcomp>  r4  r%   r8  r   r  
r'   rq  rk   rl   rm   r   r   r   r  r8  r=  s     r#   test_violinplot_bad_positionsrr    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 r1  r2  r3  s     r#   r   z.test_violinplot_bad_widths.<locals>.<listcomp>
  r4  r%   r8  r  )r  r  rq  r=  s     r#   test_violinplot_bad_widthsru    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  rH  
r'   rq  rk   rl   rm   rn   r   r   r  r8  r=  s     r#   test_violinplot_bad_quantilesry    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  ?rw  )皙r  r  ra  rx  r=  s     r#   $test_violinplot_outofrange_quantilesr}    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  rG  rw  )rk   rl   rm   rn   r   r8  )r    r!   r  r"   s       r#   %test_violinplot_single_list_quantilesr  )  s     INN9I#&&'D 
				BMM$///M222 
				BMM$???"3M44444r%   c                 b   t           j                            d           |                    t           j                            d          g d          }|                    t           j                            d          t          d                    }|                    t           j                            d                    }|                                                     |||g           |                                                    |j        |j        |j        g           d S )	Nr  rj  r  )rv  r  rj  r  r   r8  r   r  rv  	ABCDEFGHIrJ  )	rk   rl   rm   r  rn   r$  r   r8  r&  )r    r!   r  s1s2s3s         r#   test_violinplot_pandas_seriesr  9  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   r8  r   r   r  r9   r:   F)r  manage_ticks)
r'   r   r  r   rk   rl   rm   rn   r  r   )r  r"   old_xlimr  r[  new_xlims         r#   test_manage_xticksr  C  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   )rM  r<  c                 6    g | ]}|                                 S r   rA  r  s     r#   r   z+test_boxplot_not_single.<locals>.<listcomp>V  s     777QAJJLL777r%   r  5)r'   r   r  rk   rl   r   r  r   r   r$  
get_xticksr  r,   s     r#   test_boxplot_not_singler  O  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   r9   z	font.sizeP   raw)r,  format)r'   r   rW   r   updateioBytesIOsavefigr-  s    r#   test_tick_space_size_0r  Y  sb     HaVaVQ/000

AKr%((((((r%   )errorbar_basicerrorbar_mixedr  c            	         t          j        dddt           j                  } t          j        |            }ddt          j        |           z  z   }d|z   }t          j                    }|                                }|                    | |dd           |	                    d           t          j
        d	d	d
          \  }}|d         }|                    | ||d           |	                    d           |                    d           |d         }|                    | ||dd           |	                    d           |d         }|                    | ||d	|z  g|d	|z  gd           |	                    d           |d         }|                    d           t          j        d||z
            }||z
  }|                    | ||d	|z  g|ddd	           |	                    d           |                    dd           |                    d           | |d }	t          j                    }|                                }|                    d!d"dd|	#           |	                    d           d S )$Nr   r8  r   r  r  r@  rS  z&Simplest errorbars, 0.2 in x, 0.4 in yr:   T)r  r   r  r  r   rU  r   zVert. symmetricnbinsr  )rT  r   r  zHor. symmetric w/ alphara  z--orU  rT  r   zH, V asymmetricr}  r6  r  r  )rU  rT  r   ecolorcapthickzMixed sym., log yr5  zVariable errorbarsr(  r2   r3   rT  rU  r  )rk   rs   
longdoubler\  r  r'   r   rl  rP  r5   r   locator_paramsr  maximumr	  suptitle)
r2   r3   rU  rT  r-   r"   r  ylower
yerr_lowerr  s
             r#   test_errorbarr  b  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  r5  r  r  rG  r   ffffff?r  r   rT  rU  r   r:   r   g?r  r  r  r8  r   rg  )r  r  r  )r  r  r  )r  r   r   )r   r  r    @@r   N)r'   r   rs  rP  rk   r  )r-   r"   th_symr_symth_longr_longth_asymr_asymrT  rU  th_overr_overs               r#   test_mixed_errorbar_polar_capsr    sM    *,,C	SW	-	-	-B YYFE!GEKKDsK<<< uQw|RURZ(G3ZFKKcBEk#KFFF wqy2~qwqy2~qws{;GU1WFLL,,,'DMM===)DKKd3K??? eGUFKKbrsK;;;;;r%   c                     t          j                    \  } }t          j        d          }d|z  }|                    ||d           \  }}}|                    |d|z  d           \  }}}|                    |d|z            \  }t          j        |                                          t          j        d          k    sJ t          j        |                                          t          j        d          k    sJ t          j        |                                          t          j        d          k    sJ d S )Nr   r:   rL  r8  r  rU  rV  )	r'   r   rk   rs   rP  r   r  to_rgba	get_color)rt  r"   r2   r3   r  r  r  ln1s           r#   test_errorbar_colorcycler    s	   LNNEAr
	"A	!A{{1a4{((HB1{{1acT{**HB1771ac??DC?2<<>>**god.C.CCCCC?2<<>>**god.C.CCCCC?3==??++wt/D/DDDDDDDr%   c           
      d   t          j        ddd          fdt          d          D             }|                                 }|                                }t	          |g d          D ]B\  }}|                    ||dz  ddd	
           |                    ||dz  dd|d	           Cd S )Nr   r8  r   c                 @    g | ]}t          j         |z             S r   )rk   r\  )r   r  r2   s     r#   r   z.test_errorbar_cycle_ecolor.<locals>.<listcomp>  s'    (((!1(((r%   )r  rU  rV  r  r  rJ  r   r3  )rU  r   r   r  )rU  r   r   r   r  )rk   rs   r   r   r  rP  )r    r!   r3   axtaxryir   r2   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   r8  r   r  r:   r   r  )rT  r   r  )r'   r   rl  rk   rs   r\  r  vstackr  r   r   r  rP  )r-   r"   r2   r3   yerr1rU  rT  s          r#   test_errorbar_shaper    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   )rT  rU  r  r   T)r9   r   rv  r   )rT  rU  uplimsr  r   )r:   r8  r  r   r8  )rT  rU  lolimsr  r   r   r   r  magenta)r   r  rT  rU  r  r  r  r   r  r   r  r  r9  r   cyan)r   r  rT  rU  xlolimsxuplimsr  r  r  r@  capsizer   )r   r<  zErrorbar upper and lower limits)
rk   rs   r\  r'   r   rP  
zeros_like	full_liker  r5   )r2   r3   rT  rU  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   r9   r9  r  r  )rk   rs   r'   rP  r  r  r  r  )r2   r3   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   r9   Noner  re   z	steps-midroundr2  r3  bevel)
rT  rU  r  r   r  r7  dash_capstyledash_joinstyler6  r5  )rk   rs   r'   rP  get_fillstyleget_drawstyle)r2   r3   r  r  s       r#   "test_errorbar_line_specific_kwargsr  &  s     		!A
	!A\!QQQ6),,707181729; ; ;NHa !!##v----!!##{222222r%   c           	      z   |                                 }|                    g dg ddddd           |                    g dg ddd	d
dd           |                    g dg dddddd           |                    dd           t          g dg dg dg d          }t	          j        d|           |                                  }|                    g dg dd           |                    g dg ddd	           |                    g dg ddd           |                    dd           d S )N)r:   r8  r   rO  r   rK  r  r?  )r2   r3   rU  r  r   r  r:   r   r8  z	tab:greenr  r3   )r2   r3   rU  r   r  r   r  r8  r   r  ztab:bluer  r   r=   )r2   r3   rU  r   r  r   r  r9   rJ  )rK  r  r  )r  r  r   )r?  r3   r=   )r-  r  rM  )r  r   r  r   rq  )
prop_cycler2   r3   rU  )r2   r3   rU  r   )r2   r3   rU  r   )r   rP  r  r
   r'   rc)r    r!   r"   _cycles       r#   test_errorbar_with_prop_cycler  7  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   r9   r  r  znot a tuple of two integersrz  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rk   r  r'   r   r   r   r   r  rP  )r2   r3   rU  r"   s       r#   test_errorbar_every_invalidr  L  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 valuesrz  r   r  r9   r2   r3   rT  rU  r^  z''yerr' must not contain negative valuesr  r   c                 F    g | ]}t          j         d d|dz  dz             S )r  rv  r:   r9   r<  rh  s     r#   r   z/test_xerr_yerr_not_negative.<locals>.<listcomp>l  s/    >>>qXtQA	22>>>r%   r  r  )r'   r   r   r   r   r  rP  rk   rs   r<  r  )r"   r2   r3   s      r#   test_xerr_yerr_not_negativer  ]  s   				 	 B	zF
H 
H 
H J J
qcaS}TFQC=IIIJ J J J J J J J J J J J J J J 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
zF
H 
H 
H 7 7IaLL>>A>>>
a!+555 	 	7 	7 	7	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sI   $A11A58A5CC	C(DDD9AFFFc                  B   t          j                                                    } t          j        t
          d          5  |                     dgdgd gdggd gdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgd gdgg           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     dgdgd gdgg           d d d            d S # 1 swxY w Y   d S )	Nz'xerr' must not contain Nonerz  r   r9   r  r^  z'yerr' must not contain Noner  )r'   r   r   r   r   r  rP  r  s    r#   test_xerr_yerr_not_noner  r  s   				 	 B	z;
= 
= 
= J J
qcaS}TFQC=IIIJ J J J J J J J J J J J J J J 
z;
= 
= 
= 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
z;
= 
= 
= 6 6
qcaS}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s6   $A11A58A5CC	C(DDDc                    t          j        ddd          }|d|z
  z  }|dz  }|                                }|                                 }t          dg d          D ]v\  }}|dz  }|                    ||||dfd|	           |                    |||d
           |                    ||d d         ||d d         ||d d         d|d           w|                    ||dz   |ddd           |                    |dd d         |dd d         dz   dd
           |                    ||dz   |dd           |                    ||dz   |t          dd d          t          dd d          ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           |                    ||dz   |g ddz  g ddz  ddd           |                    |dd d         |dd d         dz   ddd
           |                    |dd d         |dd d         dz   |dd d         ddd           d S )Nr   r9   r  r  rgbk)r   r   r:   rj  r  r8  )r  r  r=   r  )r=   r  r9  )r  r=   r   r   )r9   r8  r   )r  r  r   r  )r  r   r  r:   r   r  )r  r  r  r=   r   r  r   rU  )rk   r  r   r  rP  r   r   )	r    r!   r2   r3   rU  ry   rx   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  )rU  r  )r'   rP  )r  s    r#   test_errorbar_linewidth_typer    s/     LIIIIII*MMMMMMr%   c                    |                                  }t          d          }t          j        ddt          j        t          j        dg          }t          j        ddt          j        t          j        dg          }|                    |||           |                                 }|                    ddgddgddg           |                    dgdgdgd	           d S )
Nr   r9   r:   r   r8  r  r   r  r   )r   r   rk   rW  r  rP  )r    r!   r"   xsysess         r#   test_errorbar_nanr    s    					B	qB	1a+	,	,B	1a+	,	,BKKB					BKKAAA'''KKaS1#4K(((((r%   hist_stacked_stepfilledc                  (   t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | |fdd	           d
| |fi}t          j                    \  }}|                    d
dd|           d S )Nr9   r   r  r   r   rV  r  Tr  r2   )r  r  r  rk   r  r'   r   r  )d1d2r-   r"   r  s        r#   test_hist_stacked_stepfilledr    s     
Q2		B	QB		BlnnGCGGRH|TG::: "b?DlnnGCGGC,4G@@@@@r%   hist_offsetc                      t          j        ddd          } t          j        ddd          }t          j                    \  }}|                    | d           |                    |d	           d S )
Nr   r   rV  r9   r   r  r   r  r  r  r	  r
  r-   r"   s       r#   test_hist_offsetr    sk     
QB		B	Q2		BlnnGCGGBqGGGBrGr%   zhist_step.pngc                      t          j        ddd          } t          j                    \  }}|                    | d           |                    dd           |                    dd	           d S )
Nr9   r   r  r  r  r   r   r   r   )rk   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   rV  r9   r   r  r  rR   )r  rT   r  r  s       r#   test_hist_step_horizr    s[     
QB		B	Q2		BlnnGCGGRHv<G@@@@@r%   hist_stacked_weightsc                     t          j        ddd          } t          j        ddd          }t          j        ddd          }t          j        d	d
d          }t          j                    \  }}|                    | |f||fdd           d S )Nr   r   rV  r9   r   r  r  r  r  r   r  T)weightsr  r  r  )r	  r
  w1w2r-   r"   s         r#   test_hist_stacked_weightedr    s     
QB		B	Q2		B	T3	#	#B	T2r	"	"BlnnGCGGRHr2htGLLLLLr%   zstem.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           |                                 d S )	Nr   r:   r  C2-.zk+C1-. )linefmt	markerfmtbasefmtr0   )rk   r  r  r'   r   r  ro  rI   rA  s      r#   	test_stemr"    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   r9   )mapr$  
markerlinerN  )stem_containerexpectedr2   r3   s       r#   _assert_equalz%test_stem_args.<locals>._assert_equal  sT    42;;==>>1HQKHQKr%   r9   r   r   rv  r  rj  rO  )r)  rU  r  zb--)r  r!  Nr'   r   r  r*  r-   r"   r2   r3   s        r#   test_stem_argsr0    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   )r6  r   r2   )r   r  rM  )r5  r6  r   r  gxr  r  r   r-  )r  r   )NNNr.  r/  s        r#   test_stem_markerfmtr8    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 )Nr9   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=  X  sd    l1a  GC
/

 4
5
5
/

 4
5
5
7B
sBGGBOOOOOr%   zstem_orientation.pngc                      t          j        ddt           j        z  d          } t          j                    \  }}|                    | t          j        |           dddd           d S )	Nr   r:   rV  r  kxr  rR   )r  r   r!  rT   )rk   r  r  r'   r   r  ro  rA  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 )Nr9   r   r  r   r   rV  r  Tr   )r  r  r  r  r  s       r#   "test_hist_stacked_stepfilled_alpharC  j  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 )
Nr9   r   r  r   r   rV  r  Tr  r  r  s       r#   test_hist_stacked_steprF  s  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 )	Nr9   r   r  r   r   rV  T)r  r  r  r  s       r#   test_hist_stacked_densityrI  |  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 )Nr9   r   r  r   r  )rP   r  )rk   r  r'   r   r  rs   r  s      r#   test_hist_step_bottomrK    sL     
Q2		BlnnGCGGBry}}|G<<<<<r%   c            	         g d} g d}ddgddgddgddgddgddgddgddgg}ddgddgddgddgddgg}d|fd||z   ffD ]D\  }}t          j        || |	          \  }}\  }t          |                                |           Ed S )
Nr   r9   r:   r   r   r   r9   r9   r9   r:   r   r:   r9   r   r  r  )r  r  r'   r  r   get_xyr  r  r?   rP   r  r  r  polygons           r#   test_hist_step_geometryrS    s    <<DDq6Aq6Aq6Aq6Aq6Aq6Aq6Aq6
JC!fq!fq!fq!fq!f5F #sV|(DE 1 1"HTxHHH1kw7>>++R00001 1r%   c            	         g d} g d}ddgddgddgddgddgddgddgdd	gg}dd	gddgddgddgddgg}d
|fd||z   ffD ]G\  }}t          j        || g d|          \  }}\  }t          |                                |           Hd S )NrM  rN  r   r9   r   r   r:   rM  r   r  r  r9   r:   r   )r  rP   r  rO  rQ  s           r#   test_hist_step_bottom_geometryrV    s    <<DDq6Aq6Aq6Aq6Aq6As8aX3x
PC#hAAAA7F #sV|(DE 1 1"HT[[[.68 8 81kw7>>++R00001 1r%   c            
      H   g d} g d}g d}ddgddgddgddgddgddgddgddggddgddgddgddgddgddgddgddggg}ddgddgddgddgddggddgddgddgddgddggg}d	 t          ||          D             }d
|fd|ffD ]\  }}t          j        ||g| d|          \  }}}	t          |	          dk    sJ |	d         \  }
t	          |
                                |d                    |	d         \  }
t	          |
                                |d                    d S )NrM  rN  rO  r   r:   r9   r   r8  c                     g | ]
\  }}||z   S r   r   r   r  r-  s      r#   r   z3test_hist_stacked_step_geometry.<locals>.<listcomp>       555$!QA555r%   r  r  T)r  r  r  r  r'   r  r  r   rP  r  data_1data_2topsbottomscombinedr  r  r  rD  rR  s              r#   test_hist_stacked_step_geometryrb    s   <<DFYYF
Q!Q!Q!Q!Q!Q!Q!QH
Q!Q!Q!Q!Q!Q!Q!QHD
 Q!Q!Q!Q!Q0
Q!Q!Q!Q!Q0G 65#dG"4"4555H $,)AB 4 4"&&!1d*24 4 41g7||q    1:7>>++RU3331:7>>++RU33334 4r%   c            
      N   g d} g d}g d}ddgddgddgddgddgdd	gdd	gdd
ggddgddgddgddgddgddgddgdd	ggg}dd
gddgddgddgddggdd	gddgddgddgddggg}d t          ||          D             }d|fd|ffD ]\  }}t          j        ||g| dg d|          \  }}}	t          |	          dk    sJ |	d         \  }
t	          |
                                |d                    |	d         \  }
t	          |
                                |d                    d S )NrM  rN  rO  r   r9   r   r   r:   rM  r   r8  r  r  c                     g | ]
\  }}||z   S r   r   rY  s      r#   r   z:test_hist_stacked_step_bottom_geometry.<locals>.<listcomp>  rZ  r%   r  r  TrU  )r  r  rP   r  r[  r\  s              r#   &test_hist_stacked_step_bottom_geometryre    s   <<DFYYF
Q!Q!Q!Q!Q!SAs8aXN
Q!Q!Q!Q!Q!SAs8aXND
 SAq6Aq6Aq6Aq62
SAq6Aq6Aq6Aq62G 65#dG"4"4555H $,)AB 4 4"&&!1d(3hH H H1g7||q    1:7>>++RU3331:7>>++RU33334 4r%   hist_stacked_barc                      g dg dg dg dg dg dg} g d}g d}t          j                    \  }}|                    | d	d
d||           |                    ddd           d S )N)r  r  r  r  r  @  i  r  r  rC  6  rB  )r     rV  rJ  r  i  )r  r  r  r  r  r{     )r-  r-  r-  r-  r  r  r   r   r   r   r   r  )+  rl  rl  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  r3  r   r  mid)r  r  rE  r   r0   zupper right)r   r   r9   )rA   bbox_to_anchorr   )r'   r   r  rI   )r  r  labelsr-   r"   s        r#   test_hist_stacked_barrp    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   r  r   r9   r:   r  )r  rP   )rk   rW  r'   r  tolistr  s    r#   %test_hist_barstacked_bottom_unchangedrs    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_emptydataru    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   r9   r  r+  r  00)r'   r   r  r\   )r-   r"   r  r  s       r#   test_hist_labelsrx    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   rV  r_  r9  r  )r  r   rk   rl   rm   r'   r   r   r  s      r#   test_transparent_markersr|     sZ    INN19BDlnnGCGGD#6cG22222r%   rgba_markersc            
         t          j        d          \  } }ddg}ddg}d dg}t          dd	
          }t          |          D ]n\  }}t          |          D ]Y\  }}	t          |          D ]D\  }
} ||         j        |dz   |
dz   df||	|d|  ||         j        |dz   |
dz   df|	|d| EZo|D ]}|                    g d           d S )Nr:   r  r  r  rP  )r   r   r9   r   r  r  r  )r  r?  r9   r   )r  r@  r  r   r2   )r@  r  )r   r8  r   r   )r'   r   r  r  r   r*  )r-   r  rcolorsbcolorsalphaskwrK  r  r]  rcolorr?  bcolorr"   s                r#   test_rgba_markersr  	  sS   |!$$$HC^,G^,GC[F	"			Bf%% J J5"7++ 	J 	JIAv&w// J J	6AAaC1c /v6"'/ /+-/ / /AAaC1cIvUIIbIIIIJ	J
   
 r%   mollweide_gridc                      t          j                    } |                     d          }|                                 d S )N	mollweider  )r'   r   r   r  r,   s     r#   test_mollweide_gridr    s3     *,,C	K	0	0BGGIIIIIr%   c                     t          j                    } |                     d          }t          j        t          j         t          j        d          }t          j        t          j         dz  t          j        dz  d          dd         }t          j        ||          \  }}t          j        |                                |                                f          j	        }|j
                            |          }|j
                                                            |          }t          j                            ||d           d S )	Nr  r  r  r   rk  r9   r   r   )r'   r   r   rk   r  r  r  r  r;  r  transProjectionr<  invertedr   r   )r-   r"   lonlatllr  ll2s          r#   &test_mollweide_forward_inverse_closurer  #  s    *,,C	K	0	0B +rufbeS
)
)C
+rufslBECK
5
5ad
;C{3$$HC	CKKMM3;;==1	2	2	4B 
		%	%b	)	)B 

%
%
'
'
1
1"
5
5C J((S!44444r%   c                      t          j                    } |                     d          }t          j        ddd          }t          j        ||          \  }}t          j        |                                |                                f          j        }|j	        
                                                    |          }|j	                            |          }t          j                            ||d           d S )Nr  r  r   r9     r   )r'   r   r   rk   r  r  r  r;  r  r  r  r<  r   r   )r-   r"   r2   r3   r  r  xy2s          r#   &test_mollweide_inverse_forward_closurer  :  s     *,,C	K	0	0B 	Aq#A;q!DAq	AIIKK-	.	.	0B 
		$	$	&	&	0	0	4	4B 

&
&r
*
*C J((S!44444r%   
test_alphac            	          t           j                            d           t           j                            d          } t          j                    \  }}|                    | dg dg ddd           |                    | d	z   dg dg dddd
           |                    | dz   dg dg dddd           |                    | dz   dg dg ddd           |                    | dz   dg dg ddd           d S )Nr   rV  z-Dr  r  r  r   )r   r  r   rT  r:   r9   )r   r  r   rT  r  r8  r   r  r  r{  r  s      r#   r  r  O  sT   INN19BDlnnGC GGD$iii]]]b  " " " GGD1Hd---]]]b    
 GGD1Hd)))b    
 GGD1Hd---]]]b  " " " GGD1Hd---YYYb  " " " " "r%   	eventplotc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          |          }g dgt	          |           z  }g dg dg dg d	g d
g dg}||z   }dt          j        dt	          |                     dz  z   }g d}|                                |z   }	dgt	          |           z  }
g d}|
|z   }t          j                    }|                                }|	                    |||	|          }t	          |          }||k    sJ |||	|d}t          j                    }|                                }|	                    dddd|          }t	          |          }||k    sJ d S )Nr   r   r  r  )r   r9   r  r  r  r  )r9   ra  r   )r9   r   r9   )r   r9   r9   r  Q?)ir  r9   r   r  r   )r   r:   r9   r9   r   r   )r  lineoffsetslinelengths)r   r=   lor  r   r=   r  r  )r  r  r  r  )
rk   rl   rm   rr  r  rs   r'   r   r   r  )ro  data2r  num_datasetscolors1colors2r  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r-   axobjcollsnum_collectionss                    r#   test_eventplotr  m  s   INN1Ib"X&&--//EIaW%%,,..E5=Dt99LzzlSZZ'Gyyyyyy{{yyyyG wF	!SZZ00366L+++L%%'',6K53u::%L'''L-K
*,,COOEOOD[(3  5 5E %jjOl**** fK{KKD
*,,COOEOOE#4(,4  9 9E%jjOl******r%   ztest_eventplot_defaults.pngc                     t           j                            d           t           j                            ddg                                          } t           j                            ddg                                          }| |z   }t	          j                    }|                                }|                    |           dS )zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r   r  r  N)rk   rl   rm   rr  r'   r   r   r  )ro  r  r  r-   r  s        r#   test_eventplot_defaultsr    s     INN1Ib"X&&--//EIaW%%,,..E5=D
*,,COOE	OODr%   r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)r8  r  N)r9   r   r9   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   r9   r:   r   c                     g | ]}||nd	S )Nr  r   r   r=   s     r#   r   z)test_eventplot_colors.<locals>.<listcomp>  s     ===Q]===r%   r8  r  N)r  rk   r  r  to_rgba_arrayr'   r   r  r  r   r  )r  r  r)  r-   r"   r  r  r   s           r#   test_eventplot_colorsr    s     C!qcA3D >=f===H 8}}A;w4X>>TAOOHlnnGC
6{{a,,tF,33K;11 1 1e((%00001 1r%   c                     t          j                    \  } }|                    g dg dgd          }|d                                         dk    sJ |d                                         dk    sJ |                    g dg dgddg          }|d                                         dk    sJ |d                                         dk    sJ t	          j        t          d	          5  |                    g dg dgg d
           d d d            n# 1 swxY w Y   t	          j        t          d	          5  |                    g dddg           d d d            d S # 1 swxY w Y   d S )N)r   r:   r8  )r9   r   r   rj  r  r  r   r9   r   zalpha and positions are unequalrz  )r   r  rG  )r'   r   r  	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   r  r   rM  r-  r=   r  r:   r9   r   dasheddashdotr  )r  r   r  r?  r  r   r   c              3   T   K   | ]#}t          |j        t          j                  V  $d S r  )
issubclasscategoryr   rl  )r   wis     r#   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  sE       " " "+s'GHH " " " " " "r%   N)
rk   rl   rm   rr  r'   r   r   r  r  r  )recwarnro  r  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 )Nr9   )r  r  r  r  r  r'   r   r  r   r,   s     r#   test_empty_eventplotr    sB    l1a  GCLL"34L555HJJJJJr%   r  rT   )NverticalrR   c                     |i nd|i}t          j        dd          \  }} |j        | fi | t          j                     dS )z#Introduced when fixing issue #6412.NrT   r9   r  )r  rT   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  r9   r:   r   r  r  r   )r  )r<  r   r  )r    r!   ts_1ts_2r"   s        r#   test_eventplot_units_listr    s     dAq))8+<T1a+H+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#  r1  r2   s    r#   r  z$test_marker_styles.<locals>.<lambda>  s    3tAww<<A#6 r%   )r-  r9  r:   r   r   r   )r   r   r   r0   )r'   r   sortedrW   markersr  rr  r  r   rk   rs   r   )r-   r"   r  r3   r   s        r#   test_marker_stylesr    s    lnnGC
 Z'3;668 8 8GNN6  Gw'' @ @	6
Q	BIbMM",,bgbkk"nQ.>""QqS& 	 	@ 	@ 	@ 	@@ @r%   zrc_markerfill.pnggl?c                      t          j                    \  } }t          j        d          }t	          g d          D ]1\  }\  }}|t
          j        d<   |                    ||z   |           2d S )Nrj  ))r?   r  )rP   r   )r9  r  zmarkers.fillstylerI  )r'   r   rk   rs   r  rW   r   r   )r-   r"   r2   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   rr  r}  rs  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_64g9v?c                  ~   t          t          d                    } t          j                    }|                                }|                    | dd           |                    dddd           |                    dddd           |                    dd	dd           |                    d
ddd           |                    d           t          j                    }|                                }t          t          d                    } t          j
        d          }t          t          d                    }|                    | ||ddd           t          d          D ]5}|                    |dd|           |                    | dd|           6|                    d           d S )Nr   r   )rT  r  r9   r8  )r   rT  r  r   rj  r  r:   r?  r   zaxvline and axhline zorder testrM  )rU  r  rT  r   )rT  r   r  zerrorbar zorder test)r$  r   r'   r   rl  r   ru   axvliner5   rk   r  rP  )r2   r-   r"   r3   rU  r]  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   )rW  r9   rw  r  r  z.-)r9   rW  )r   r  r?  rL  r9   r   rW  r  )r   r   r  axliner   s      r#   test_axline_loglogr  Y  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 )Nrs  rw  r  r}  ra  rU  rN  )r   r   r9   r   rV  )gffffffr  r   r  )sloper   )r9   r  r  C4)r  r9   infr  r   r9   r   )r   r   r  r  r   ru   r  r   s      r#   test_axliner  f  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 )Nrs  rw  r  r9   r  r<  r  rU  r  r   r<  r   r   r   rV  )r   r   )r   r9   r  )r   r<  r   rN  )r   r   r  rH  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 )Nrs  rw  r  r9   r  r  r:   rU  r  r   rV  )r   r   rR  r   r   r   rN  )r   r   r  rH  set_size_inchesr   r   s      r#   test_axline_transaxes_panzoomr    sH    
				BFFgF&&&IIfAI666IIjIFFFIIjIFFFFFWF%%%Q"""					BFFWF%%%Aq!!!GGQFQFGGQFQG4G(((GGQFQF$G'''''r%   c                     t          j                    \  } }t          j        t                    5  |                    d           ddd           n# 1 swxY w Y   t          j        t                    5  |                    ddd           ddd           n# 1 swxY w Y   |                    d           t          j        t                    5  |                    dd           ddd           n# 1 swxY w Y   |                    d           |                    d           t          j        t                    5  |                    dd           ddd           n# 1 swxY w Y   |                    d           t          j        t                    5  |                    dd           t          j	                     ddd           dS # 1 swxY w Y   dS )z3Exactly one of *xy2* and *slope* must be specified.r  Nr}  r9   )r  r6  rQ  )
r'   r   r   r   r   r  rR  r  r  r   r,   s     r#   test_axline_argsr    s   lnnGC	y	!	!  
		&              	y	!	! + +
		&&	***+ + + + + + + + + + + + + + +MM%	y	!	! # #
		&	"""# # # # # # # # # # # # # # #MM(MM%	y	!	! # #
		&	"""# # # # # # # # # # # # # # #MM(	z	"	"  
		&&!!!


                 sY   AAA6BB"BC88C<?C<E**E.1E.#*GG!G)vlines_basicvlines_with_nanvlines_maskedc                     g d} g d}t          j                    \  }}|                    | d|dd           g d}dd	d
dt          j        dg}t          j        d
d          \  }\  }}}	|                    |d|dd           g d}
t          j        dd	d
ddg}|                    |
d|dd
d           g d}t          j        dd	d
dt          j        g}|	                    |d|dd           ||||	fD ]}|                    dd           |                                |                                k    sJ |                                |                                k    sJ |                                |	                                k    sJ t          j                    \  }}t          j                            g dd          }t          j                            g dd          }t          j                            g dd          }|                    |||dd           |                    dd           d S N)r:   r   r8  r   rj  )r:   r   r  r:   r   r  r   r  r?  )r:   r   r8  r   r  rj  r:   r  r   r  )r8  r  )r  r  rM  rK  )r  r?  r   r?  r   )r:   r8  r  r  r   r  )r   r9   r   r   r:   r9   )re  r*  r  r     rH  rH  r  )	r'   r   rt   rk   r  r  r   r	   masked_equal)r.  r  r8  r  rZ  r[  r9  r$  r%  rE  x3rT  x4y4r"   fig3ax5x5ymin5ymax5s                       r#   test_vlinesr	    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.colorr8  r   r   r9   )r'   r   r   r   rt   r  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   hlinesrk   r  r	  r   r	   r  )r  r.  r8  r  r[  rZ  r9  r$  r%  rE  rT  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	  r  r  r  r	  s      r#   test_hlines_defaultr	    r	  r	  r   rd  r8  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)r8  r   r   r  r  r:   r9   r   r   r  )r9   r:   r   r   )r8  r   r   r  )r   rt   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  r5  r   r:   r   r9   r  r  r>  r  rv  r   r   rM  )ri   rj   r<  r  r  rj  r  )yminymaxr<  r  )rk   rs   r\  r  r  r'   r   r   r	  get_yaxis_transformrt   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   r:   )rJ  rK  r  r  r   pre)rT  r   r6  r9   rm  rF  r   rj  )r  Y0Y1Y2r  r&	  )rT  r   r6  r  r'	  r(	  )	rk   rs   r'   r   r;  r  r  r  r	  )r2   r3   r-   ax_lst	ln_stylesr"   r  r  s           r#   test_step_linestyler+	  4  s   
 IbMMA ,q!$$KC^^F&&&Ifi((  B
1b666
1q5Q"E:::
1q5Q"F;;;
RG
RG !1Q3ac22D,q!$$KC^^F&&&Ifi((  B
Ta2UFFF
Ta2UFFF
Ta2V$GGG
RG
RG r%   mixed_collectionc                     t          j                    \  } }t          j        dddd          }t          j                            |gd          }|                    ddgd	d	gg           |                    d
dg           t          j                            |gd          }|                    ddgddgg           |                    d
dg           |	                    g dg dg           |j
                            d           |                    |           |                    |           |                    dd           |                    dd           d S )Nr  r  r8  r9  r   radiusr=  r>  T)match_originalr   rI  r9   r   r,  ii)r   r   r   r   )r   r   r   r   r  r  )r'   r   r  Circler   r  PatchCollectionset_offsetsset_linewidthsset_edgecolorsr"  rw  r  r  r	  )r-   r"   r=   r)  r*  s        r#   test_mixed_collectionr7	  U  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   r9   )r   r9   r   r   )r'   rs  rk   int32r   r  get_subplotspecget_geometryr  s    r#   test_subplot_key_hashr<	  o  sa    	RXa[["(1++q	1	1BHHJJJ,,..,>>>>>>r%   )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r   r   c                     dt           j        d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t          d|z  t          j        |          z            }t          j        d| d|z            }t          j        t          j        dt          j        z  t          j	        
                    ||          z                                d                    }t          d|z  dz            }t          j                            d           t          j        t          j                            |           t          j                            |           g          }g d}||f||ffD ]	\  }	}
|
dz  }t          dt          j        t          j        |
                    z            }t%          t'          j                                        d          |          D ] \  }}|                    |	|
||||           !t%          t'          j                                        d          |          D ]>\  }}|                    |	|
||||dt           j                                                   ?dS )z)Test axes.specgram in default (psd) mode.r   r  r  r5  r8  r   rJ  @ffffff@'@r   r   r9   r:   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesrQ  )rE	  rF	  rG	  rH	  rI	  r5  r  N)rW   r   intrk   rn  rs   r  r  r  multiplyouterr  rl   rm   r  r   r   log2r  r'   r   r   specgramr  LogNorm)r  rF	  fstims
NFFT_freqsr2   y_freqs
NFFT_noisey_noise	all_sidesr3   rE	  rG	  rH	  r"   rI	  s                  r#   test_specgramrV	  u  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  r5  r8  r   rJ  r?	  r@	  rA	  r  r   r9   r:   r  Nr   r   rB	  r   	magnituderE	  rF	  rG	  rH	  rI	  rg   rQ  )rE	  rF	  rG	  rH	  rI	  rg   r5  r  )rW   r   rJ	  rk   rn  rs   r  r  rK	  rL	  r  r  rl   rm   r  r  r   r   rM	  r  r'   r   r   rN	  r  rO	  )r  rF	  rP	  rQ	  r2   r3   rR	  rS	  rT	  rU	  rE	  rG	  rH	  r"   rI	  s                  r#   test_specgram_magnituderZ	    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  r5  r8  r   rJ  r?	  r@	  rA	  r   r   r9   r:   r  Nr   rB	  )r  phaser   rY	  dB)rE	  rF	  rG	  rH	  rI	  rg   r5  )rW   r   rJ	  rk   rn  rs   r  r  rK	  rL	  r  r  rl   rm   r  r  r   r   rM	  r  r'   r   r   rN	  r   r   r  )r  rF	  rP	  rQ	  r2   r3   rR	  rS	  rT	  rU	  rE	  rG	  rH	  rg   r"   rI	  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  NrQ  )rF	  r5  r   `   )r'   rN	  rk   r   
get_extent)specfreqsr  r  ri   rj   freq0freq1s           r#   test_specgram_fs_nonerf	    sX    bgcllt8LLLD%B!}}D$u2::$"******r%   c                 .   t          j        d          }t          j        |          }dt          j        d<   |                                                    |           dt          j        d<   |                                                     |           dS )zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r  upperzimage.originr   N)rk   rs   r  r'   r   r   rN	  )r    r!   r  signals       r#   test_specgram_origin_rcparamrj	    s     		#AVAYYF#*CL  ''' $+CL    (((((r%   c                      t          j        d          } t          j        |           }t          j        t
                    5  t          j        |d           ddd           dS # 1 swxY w Y   dS )z4Ensure passing origin as a kwarg raises a TypeError.r  r   r  N)rk   rs   r  r   r   r   r'   rN	  )r  ri	  s     r#   test_specgram_origin_kwargrl	    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@r8  r   rJ  r?	  r@	  rA	  r  r   r9   r:   r  rI	  r  rC	  F)rI	  return_linerD	  Tr   )rE	  rF	  rG	  rH	  ro	  r   xlabelylabel)rJ	  rk   rn  rs   r  r  rK	  rL	  r  rl   rm   r  r   r   rM	  r  r'   r   r   psdr  r  rt  r   csd)r  rF	  rP	  rQ	  r2   ys_freqsrS	  ys_noise
all_kwargsr  rE	  rG	  rH	  r"   r  rets                   r#   test_psd_csdry	    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  rn	  r8  r   rJ  r  r:   r   r9   r   r   r  r   rB	  )rF	  rH	  rI	  r   rp	  r5  r]	  )rJ	  rn  rk   r   rM	  rs   r  r  rL	  r  rl   rm   r  r  r   r  r'   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  rF	  fstims1rE	  rH	  r2   rR	  rT	  rU	  r  r3   r"   rI	  rb	  rc	  r  s                   r#   test_spectrumr	  (  s/    	A	B!tRT2b5!Gtby3w<<'((Dbgbgdmm,,,--F
	!Q"Aq25y28Aw#7#77882ry||;KK INN1i22155ry~~a7H7HIJJROG333I&))Fw ) )SZ\\22155yAA 	) 	)IB 5 5a O Ou O O OD%FF"RF((((SZ\\22155yAA 	) 	)IB 5 5a !B !Bu !B !B !B<@!B !B !BD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((SZ\\22155yAA 	) 	)IB 1 1! K K5 KF K KD%FF"RF((((	)) )r%   c                     t          j                                        d          } | D ]}|j                            d           t          j        d          5  | d                             t          j        d                     | d         	                    t          j        d          t          j        d                     d d d            d S # 1 swxY w Y   d S )	Nr:   T)r  r  r  r   r   r9   )
r'   r   r   r^   r   rk   r  rs	  r  rt	  r  r"   s     r#   test_psd_csd_edge_casesr	  R  s    
*,,


"
"C $ $
d####	H	%	%	% - -A

28A;;A

28A;;,,,- - - - - - - - - - - - - - - - - -s   A.CCCc                 Z   |                                  }|                                }|                                }|                                 |                                 |                                 }|j                                         |j                                         d S r  )r   r  r  rr  r[   tick_bottomr^   	tick_left)r    r!   rx   ax_twinxax_twinyry   s         r#   test_twin_remover	  \  s    ""$$G}}H}}HOOOO  ""F L
Lr%   ztwin_spines.pnggI+?c                     d } t          j        d          }|                    d           |                                }|                                }|                                }|j        j                            d            | |           |j        j                            d           |	                    g dg dd	          \  }|	                    g dg d
d          \  }|	                    g dg dd          \  }|
                    dd           |                    dd           |                    dd           |                    dd           |j        j                            |                                           |j        j                            |                                           |j        j                            |                                           t!          dd          } |j        dd|                                d|  |j        dd|                                d|  |j        dd|                                d|  |j        dddi| d S )Nc                     |                      d           | j                            d           | j        d d                              d           d S )NTF)set_frame_onr"  r   spinesr  s    r#   make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisibleo  sN    

U###
	!!!  '''''r%   )r8  r   r>  ra  )rC   )rq  r2  TrO  zb-)r   r   r:   zr-)rV  r   r  zg-r   r:   r8  r9   A   r   )r  r  r3   )r*  r  r*  r2   r   )r'   r   r  r   r  r	  rC   set_positionr   r   r  r	  r^   r0   rw  r  r  tick_params)	r	  r-   hostpar1par2r)  r*  p3tkws	            r#   test_twin_spinesr	  k  sj   ( ( (
 *V
$
$
$Cd###??D::<<D::<<D 	K""=111  %%%K!!$'''
))IIIyyy$
/
/CB
))IIIyyy$
/
/CB
))III|||T
2
2CBMM!QMM!QMM!QMM!RJr||~~...Jr||~~...Jr||~~...
AS
!
!
!CD<#bllnn<<<<<D<#bllnn<<<<<D<#bllnn<<<<<D%%#%%%%%%r%   ztwin_spines_on_top.pngc                     dt           j        d<   dt           j        d<   t          j                    } |                     ddd          }t          j        g dg dg          }|                                }|                    |d         |d         dz  d	
           |	                    |d         |d         dz  d	d           |                    |d         |d         dz  d
           |	                    |d         |d         dz  dd           |d         |d         dz  d}t          j                    } |                     ddd          }|                                }|                    ddd	|           |	                    ddd	d|           |                    ddd|           |	                    dddd|           d S )Ng      H@r:  r  r9   )r  iL  i  i  )ri  i-  r  r  r   g     @@z#BEAED4rN  r  )r   r  z#7FC97Fr   )rK  r]  rK  r]  )r   r  )r   r  r  )
rW   r   r'   r   r   rk   rW  r  r   r  )r-   r  r  r$  s       r#   test_twin_spines_on_topr	    s    -1J()-1J)*
*,,C
//!Q
"
"C8---)))+ , ,D ))++CHHT!Wd1gckH333T!Wd1gck"EEEHHT!Wd1gckH333T!Wd1gck"EEE atAws{++D
*,,C
//!Q
"
"C
))++CHHS#YTH222S#YbtDDDHHS#YTH222S#YbtDDDDDr%   z(grid_which, major_visible, minor_visible))r   TT)majorTF)r  FTc                 H   t           j                            d| d           t          j                    \  }}|j                                         t          fd|j        j	        D                       sJ t          fd|j        j
        D                       sJ d S )NT)rd  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  r	  )r   r	  minor_visibles     r#   r  z*test_rcparam_grid_minor.<locals>.<genexpr>  r	  r%   )r   r   r  r'   r   r  r   r  r[   
majorTicks
minorTicks)
grid_whichr	  r	  r-   r"   s    ``  r#   test_rcparam_grid_minorr	    s     LdzJJKKKlnnGCJOO 0 0 0 08.0 0 0 0 0 0 0 0 0 0 0 08.0 0 0 0 0 0 0 0 0 0r%   c                     t          j                    \  } }|                                 | j                                         |j        j        d         j                                        sJ |                    d           | j                                         |j        j        d         j                                        rJ |                    d           | j                                         |j        j        d         j                                        sJ |                                 | j                                         |j        j        d         j                                        rJ d S )Nr   FvisibleT)	r'   r   r  r  r   r[   r	  r	  r!  r,   s     r#   	test_gridr	    s5   lnnGCGGIIIJOO8q!*6688888GGEGJOOx"1%.::<<<<<GGDGJOO8q!*6688888GGIIIJOOx"1%.::<<<<<<<r%   c                  H   t          j                    \  } }|                    ddd           |j        j        d         j                                        rJ |                    d           |j        j        d         j                                        sJ t          j        ddi          5  |	                                 |                    ddd           |j        j        d         j                                        sJ 	 d d d            d S # 1 swxY w Y   d S )	NTr	  r   )resetr  	labelsizer   r8  rN  rd  )
r'   r   r	  r[   r	  r	  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*  rU  r  rV  r  r   rK  )	directionlengthr  r   padr	  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r	  draw_without_renderingrq  r[   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   )rZ  r   r  r   )rZ  r  )r'   r   rl  r  r   r   r   r,   s     r#   test_vline_limitr	    s`    
*,,C	BJJsOOOGG   BKKMM9-----r%   zfv, fh, args)r9   r}  c                 &   t           j                            d          }t          j        t
          d          5   | ||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   | |d|d d d d            n# 1 swxY w Y   t          j        t
          d          5   |||dd d d d            n# 1 swxY w Y   t          j        t
          d          5   ||d|d d d d            d S # 1 swxY w Y   d S )	Nr9   z"ymin must be a single scalar valuerz  r	  r	  z"ymax must be a single scalar valuez"xmin must be a single scalar value)ri   rj   z"xmax must be a single scalar value)rW   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 )
Nr9   r:   T)r  r   r  rk  r   r  )r:   r8  r  r   r  )r'   r   r   r   r   )r-   r  r\  r.  r]  r  s         r#   test_empty_shared_subplotsr	    s    |!1T$GGGHCFKK			999%%%V__FBV__FB777777777777777777r%   c                     dD ]} t          j        dd          \  }}|d                             d| d           |d                                         dk    sJ |d                                         | k    sJ t          j        dd          \  }}|d                             d|            |d                                         d	k    sJ d S )
Nboxdatalimr:   T)r  r  r   )
adjustablesharer9   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 )	Nr:   T)r  r  rk  r   )r	  r9   r   r8  )r'   r   r	  r   r   r   r   r  s     r#   test_shared_with_aspect_2r	  )  s    |!D>>>HCFat$$$FKKAAFKKAAHJJJq6??A 1 11111q6??A 1 1111111r%   c                  p   dD ]} t          j        dd          \  }}|d                             d|            |d                             d|            |d                             ddgd	d
g           |d                             d	d
gddg           t          j                     |d                                         |d                                         k    sJ |d                                         |d                                         k    sJ |j        j        |j        j	        z  }|D ]|}|
                                }|j        |j	        z  }|j        j        |j        j	        z  }||z  |z  }t          |d
          t          |                                d
          k    sJ }d S )Nr	  r:   T)r  rk  r   r	  r9   r   r   r8  )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	  4  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 )	Nr9   r:   Tr  rk  r   r  zset_aspect\(..., adjustable=rz  )r'   r   r*  r   r   RuntimeErrorr	  )r-   rq  s     r#   test_shared_aspect_errorr	  H  s    Q$t<<<ICGLL	|+J	K	K	K % %""$$$% % % % % % % % % % % % % % % % % %s   A44A8;A8zerr, args, kwargs, matchr7  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 Nrz  )r   r   r'   r*  errr	  r  r{  s       r#   test_axis_errorsr	  O  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'rz  r  z!Cannot supply both positional andr  r  zargument must be amongzscilimits must be a sequencer9   )	scilimitszSpecifying 'loc' is disallowedrQ   )rA   r2   r?   )rA   r3   zCannot pass both 'left'r   )rQ   ri   zCannot pass both 'right')rC   rj   zCannot pass both 'bottom')rP   r	  zCannot pass both 'top')r?   r	  )r'   rl  r   r   r  r	  r	  r   set_prop_cycle
set_anchorticklabel_formatr(   r)   r  r	  r  s    r#   test_axis_method_errorsr	  a  s   	B	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	z)I	J	J	J & &
u%%%& & & & & & & & & & & & & & &	y(K	L	L	L . .
%u---. . . . . . . . . . . . . . .	z)A	B	B	B  
e              	z)G	H	H	H ) )
a((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	y(H	I	I	I . .
e1---. . . . . . . . . . . . . . .	y(H	I	I	I - -
e!,,,- - - - - - - - - - - - - - -	y(A	B	B	B $ $
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	y(B	C	C	C % %
!!$$$% % % % % % % % % % % % % % %	y(C	D	D	D & &
11%%%& & & & & & & & & & & & & & &	y(@	A	A	A # #
"""# # # # # # # # # # # # # # # # # #s   AAA7BB B?C##C'*C'	D++D/2D/E44E8;E8F??GG%H

HH0III:JJ"%J"K((K,/K,L33L7:L7c                    t          j                    \  }} t          |d|                        }|                    d           |                    d           t	          |j        j        |j        j                   d S )Nr'  r   r:   )r'   r   r.  r	  r   bboxextents)r'  r-   r"   rJ  s       r#   test_twin_with_aspectr	  {  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  r5  )r  rX  )r  r>  FT)visible_only)
rW   r   r   r   r   r   r   r   relimr   )r.  r  rZ  r[  r-   r"   r  s          r#   test_relim_visible_onlyr	    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   rl  r	  r,   s     r#   test_text_labelsizer	    sJ     *,,C	BNNWN%%%NNUN#####r%   zpie_default.pngr  c            	          d} g d}g d}d}t          j        d          \  }}|                    ||| |ddd	
           d S )NFrogsHogsDogsLogsr  r   r  r   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  r  r>  %1.1f%%Tr:  )explodero  r  autopctshadow
startangler'   r   pie)ro  sizesr  r	
  r8  r  s         r#   test_pie_defaultr
    sn     -FEBBBFGV,,,ID#GGE76&dr  ; ; ; ; ;r%   )pie_linewidth_0r
  r
  )r   r   r   c                     d} g d}g d}d}t          j        ||| |ddddd	i
           t          j        d           | |||d}t          j                    }|                                }|                    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
  Tr:  r?  r   r	
  ro  r  r

  r
  r
  
wedgepropsr  )lr  r=   exr  r
  r
  r=   )r	
  ro  r  r

  r
  r
  r
  r  )r'   r
  r*  r   rl  )ro  r
  r  r	
  r  r-   r"   s          r#   test_pie_linewidth_0r
    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
  Tr:  r?  r   r7  r   )	r	
  ro  r  r

  r
  r
  r
  rZ   r0	  zCenter point)r9   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler=  )r  r  r  r	  r  )r'   r
  r  r  r*  ro  r
  r  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
  Tr:  r?  r:   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
  Tr:  )r	
  ro  r  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
  Tr:  r?  r   r~  )	r	
  ro  r  r

  r
  r
  r
  framerZ   r   )r   r:   )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
  Tr:  )r	
  ro  r  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
  Tr:  )r	
  ro  r  r

  r
  r
  labeldistancer-
  r  g333333r2  )r'   r
  r*  r   rI   r 
  s       r#   test_pie_nolabel_but_legendr1
  7  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
  r:   r   Tr:  r?  )r	
  r  r
  r
  r
  r9   Fr|  rG  r9  )oxoyshader>  r  r  )r3
  r?  r5
  r
  )r
  r  r	
  r  rq  s        r#   test_pie_shadowr6
  E  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)rj  "   r  )zLong name 1zLong name 2zLong name 3rZ   r?   r:  anchorr  r8  )horizontalalignmentverticalalignmentrr  rotation_moder  r   %.2f)ro  r

  	textpropsr:
  r;
  rr  r<
  r  r   )
r  r'   rl  r
  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  ro  r>
  r  textsr

  txs          r#   test_pie_textpropsrF
  ]  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_valuesrH
  s  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)r2   	normalizer   r   g     v@rW  F)r'   r   r
  rW  r  )r-   r"   r2   t1t2s        r#   test_normalize_kwarg_pierN
  z  s    lnnGCA	!t	$	$Br!uRy$&''$....	!u	%	%Br!uRy$&''$......r%   c                     g d}d|                                                      |           |                                                     |          \  }}fd|D              d S )NrJ
  r  r  c                 :    g | ]}|                               S r   	set_hatch)r   rj  r7  s     r#   r   z)test_pie_hatch_single.<locals>.<listcomp>  s%    (((AQ[[(((r%   r   r
  )r    r!   r2   wedgesr  r7  s        @r#   test_pie_hatch_singlerU
    sy    AEAU+++  ""&&q))IFA((((((((((r%   c                     g d}g d}|                                                      ||           |                                                     |          \  }}d t          ||          D              d S )NrJ
  )r5  r  r   r  c                 >    g | ]\  }}|                     |          S r   rQ
  )r   rj  hps      r#   r   z(test_pie_hatch_multi.<locals>.<listcomp>  s&    555BQ[[__555r%   )r   r
  r  )r    r!   r2   r7  rT
  r  s         r#   test_pie_hatch_multirY
    s    AOOEAU+++  ""&&q))IFA55#fe"4"4555555r%   zset_get_ticklabels.pngg?c                  <   t          j        d          \  } }ddg}|d                             t          j        d                     |d                             |d                    |d                             t          j        d                     |d                             |d                    |d                             t          d                     |d                             t          d                     |d         	                    g ddd	gz  z              |d         
                    g d
dd	gz  z              |d                             |d                                                    |d                             |d                                                    |d         	                    |d                                                    |d         
                    |d                                                    d S )Nr:   rn   zset_x/yticklabelsr   r   r9   r   r-  r=   r  r  r   )11121314)r'   r   r   rk   rs   r5   
set_xticksr   
set_yticksset_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r-   r"   rF   s      r#   test_set_get_ticklabelsrf
    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'rz  r   r  N)r'   r   r   r   r  r[   	set_ticks)r-   r"   tickss      r#   0test_set_ticks_kwargs_raise_error_without_labelsrj
    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)

    )r9   r:   r8  r  r[
  bold)
fontweightr+  r:   r8  T)r  r  r  N)r   r`
  rb
  ra
  rc
  r   s      r#   test_set_ticks_with_labelsrn
    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 sequencerz  r:   rv  r  z
must be 1Dr8  rs  rr  ro  )r'   r   r   r   r   r   r`
  r  rs  rk   rs   r   r   r  s    r#   test_xticks_bad_argsrq
    s&   		!	!	#	#B	y(<	=	=	= # #
q!fc"""# # # # # # # # # # # # # # #	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 2 2
29Q<<''001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C	z	6	6	6 C C
29Q<<''00qBBBBC C C C C C C C C C C C C C C C C Cs\   A&&A*-A*:CCC8:D>>EE$A	F99F= F=A	H55H9<H9c                     t          j                    \  } }|                    t          j        d                     |j                            t          j        d          dz              |                    d           |j                            d dD                        t          j	                     d |j        
                                D             }|g dk    sJ d S )	Nr   r   r   r  c                     g | ]}|S r   r   r  s     r#   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s    5551Q555r%   
bcdefghijkc                 6    g | ]}|                                 S r   r  r  s     r#   r   z.test_subsampled_ticklabels.<locals>.<listcomp>  s     >>>qajjll>>>r%   )r-  r  rt  r  r]  )r'   r   r   rk   rs   r[   rh
  r  set_ticklabelsr   get_ticklabels)r-   r"   ro  s      r#   test_subsampled_ticklabelsrx
    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   rM  r  )r'   r   r   rk   rs   r[   rh
  r   r   r  rv
  r,   s     r#   test_mismatched_ticklabelsrz
    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 )Nr9   r:   )r'   r   r  r`
  rb
  r,   s     r#   test_empty_ticks_fixed_locr|
    s]    lnnGCFFAq6Aq6MM1a&rr%   zretain_tick_visibility.pngc                      t          j                    \  } }t          j        g dg d           t          j        |                                d           |                    ddd           d S )	NrO  )r   r   r8  Fr	  r3   r   r   r*  r  r	  )r'   r   r   setpre
  r	  r,   s     r#   test_retain_tick_visibilityr
    sj    lnnGCHYYY


###HR!!51111NN6!N44444r%   c                     t          j                    \  } }t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j                    \  } }|                    g d           t          j        t          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nz:set_ticklabels\(\) should only be used with a fixed numberrz  r+  r  rN  z$The number of FixedLocator locations)	r'   r   r   r  rO  rb
  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 )Nr9   
unit valuer   r   r   s     r#   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Avv||2-r%   )r   r   r9   r:   r   r  rM  c                 6    g | ]}|                                 S r   r  )r   r	  s     r#   r   z*test_tick_label_update.<locals>.<listcomp>!  s     HHHd$--//HHHr%   )r   r   r
  r   r   )r'   r   r[   r   r   r`
  r  r   r  r   rw
  )r-   r"   r
  
tick_textss       r#   test_tick_label_updater
    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   r9   r  r:   r   )r  r   rh  r   r8  )r'   r   rY  r   r   rk   r   r  )r-   r"   r  s      r#   test_o_marker_path_snapr
  %  s    lnnGCJJrNNNArll 7 7
A"'!**r/326666k!R$$ 7 7
A"'!**r/3266667 7r%   c                     ddg} d}t          |           dz
  }t          |           }t          |           }t          j        dd          \  }}|                    |            |                    d           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }}|                    |            |                    dd           |                                dk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ |                                |||z
  dz  z
  |||z
  dz  z   fk    sJ t          j        dd          \  }	}
|
                    |            |
                    d	d
           |
                                dk    sJ |
                                |||z
  d	z  z
  |||z
  d	z  z   fk    sJ |
                                |||z
  dz  z
  |||z
  dz  z   fk    sJ d S )Nr9   r   r  r   r}  r   r:   )r   r:   皙ɿr(  )r
  r   )	r  rn  r  r'   r   r   rY  r   r   )r  ri   rj   r	  r	  r8  r  r9  r$  r  r%  s              r#   test_marginsr
  0  s   r7DDt99s?Dt99Dt99DQ""ID#HHTNNNKKNNN;;==F""""<<>>ddTkQ%66"dTkQ%668 8 8 8 8<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKKQ;;==H$$$$<<>>ddTkS%88"dTkS%88: : : : :<<>>ddTkQ%66"dTkQ%668 8 8 8 8 Q""ID#HHTNNNKK$#K;;==K''''<<>>ddTkT%99"dTkT%99; ; ; ; ;<<>>ddTkS%88"dTkS%88: : : : : : :r%   c                      t          j                    } |                                 }|                    dd           |                                dk    sJ |                                dk    sJ d S )Nr  r  )r'   r   r   rY  get_xmarginget_ymarginr,   s     r#   test_margin_gettersr
  T  sl    
*,,C			BJJsC>>s"""">>s""""""r%   c                     t           j                            d           t          j                    \  } }|                    ddgddg           |                    dd           |                                dk    sJ d S )Nr  r9   r:   r6  r   )r0  xmarginr7  )r   r   r   r'   r   r   r   r   r,   s     r#   test_set_margin_updates_limitsr
  \  sv    IMM)lnnGCGGQFQFFF%F###;;==F""""""r%   )r   z!margin must be greater than -0\.5rr  r   r3   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   rY  )r	  r	  r  r{  r-   r"   s         r#   test_margins_errorsr
  d  s     
s%	(	(	( $ $jll__
D#F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   5AA Ac                      t          j                    \  } }|                    d           |                    dg           d S Nr9   )r'   r   r  r,   s     r#   test_length_one_histr
  v  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  )rh	  )r   r  )r   )r  r  )	r'   r   r   r  
get_xboundr   r  
get_yboundr   r,   s     r#   test_set_xy_boundr
  |  s   
*,,C			BMM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MM#s==??j((((;;==J&&&&MMM==??j((((;;==J&&&&MMM==??j((((;;==J&&&&&&r%   c                      dgdz  } t          j        dd          \  }}|                    | |            |                    t	          j                               d S )Nr   r  r9   )r'   r   r  r  r  r  )mylistr-   r"   s      r#   test_pathological_hexbinr
    sT    TCZFl1a  GCIIffKK
r%   c                  j    t          j                    \  } }|                    ddgddgd            d S )Nr9   r:   rN  r  r,   s     r#   test_color_Noner
    s7    lnnGCGGQFQF$G'''''r%   c                      t          j                    \  } }|                    ddgd          d         }d|                                k    sJ d S )Nr   r9   r  rL  )r'   r   r   r  r-   r"   r  s      r#   test_color_aliasr
    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   rI   r,   s     r#   test_numerical_hist_labelr
    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   rI   )r-   r"   r   r-  ro  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^;rQ   r   r9   rC   r?   rP   )rk   rl   r'   r   r   r  r   r^   
offsetTextr	  r]   
tick_rightr[   get_verticalalignmentr   )r  r-   r"   beforeafters        r#   test_move_offsetlabelr
    s   9B%'DlnnGCGGDMMMJOOX --//F86688FBBBBHJOOH,,..E8fQiE!Hq	$9$9$9$986688GCCCClnnGCGGDMMMJOOX --//F84466%????HJOOH,,..E8vay  U1Xq	%9%9%9%984466(BBBBBBr%   zrc_spines.pngc                      ddddd} t          j        |           5  t          j                     d d d            d S # 1 swxY w Y   d S )NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rW   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   )rd  zaxes.grid.axisr2   r3   r9   r   )r'   r   r  rW   r   r   )r-   rc_dict0rc_dict1rc_dict2r  rK  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  r9   tick1Ontick2Onr'   r   r   r   r[   r^   _major_tick_kw_minor_tick_kwr  r-   r  xaxyaxs        r#   test_rc_tickr
    s`   TE	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
  r9   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 )Nr8  )r   r  r  r.  mor
  r9   T)originalg      ?r   rG  rG  F)g333333?r   g      ?rG  )rk   rs   rW  r'   r   r   r*  r   r   r  r	  r   r	  r	  )r2   r3   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 )Nr~  r  r   rr  r   r9   )	r   r   r  r'   r   rk   r  rs   r   r   r%   r#   test_bad_plot_argsr
  2  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   rj  )r:   r  )r9   r:   r8  r  r  rM  )r8  r   r  )r   r8  c                 v    t          j                    \  }}t           |j        g | |R            |k    sJ d S r  )r'   r   r1  r  )r  r  clsr-   r"   s        r#   test_pcolorfastr
  =  sI     lnnGC(r(4((())S000000r%   c                  4   t          j                    \  } }t          j        t          d          5  |                    t          j        d          t          j        d          t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz)the given X was 1D and the given Y was 2Drz  r  )r8  rj  r.	  )r'   r   r   r   r   r  rk   emptyr,   s     r#   test_pcolorfast_bad_dimsr
  P  s    lnnGC	I
L 
L 
L G G
bhqkk28F#3#3RXf5E5EFFFG G G G G G G G G G G G G G G G G Gs   ABBBc                     t          j        dddd          \  } }|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7|d                             d           |d                             d           |j        D ]6}|                                dk    sJ |                                dk    sJ 7d S )Nr:   Tr	  r  r6  r}  rQ  )r'   r   rR  r  r  
get_yscale
get_xscaler-   r  r"   s      r#   test_shared_scaler
  W  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  rj  )r   r   r   r'   rs  r   r%   r#   test_shared_boolr
  i  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'   r8  rk   rW  r   r%   r#   test_violin_point_massr
  p  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 )
Nr2   r   r3   r	  r9   )r9   r9   r9   r9   r9   )r:   r   rT  rU  )r
   rk   rs   r   )base_xy
err_cyclerxerr_cyyerr_cyr
  	xerr_only	yerr_onlyboth_errs           r#   generate_errorbar_inputsr
  u  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'   rl  rP  rr  )r  r"   ebs      r#   test_errorbar_inputs_shotgunr
    s5    	B			v		BIIKKKKKr%   dash_offsetc                      t          j                    \  } }t          j        dd          }t          j        |          }t          ddd          D ]!}|                    |||z  |dfdd           "d S )	Nr   r   r  r:   r   r   r   r?  )r  rT  r   )r'   r   rk   r  	ones_liker   r   )r-   r"   r2   r3   r]  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	  rr  g?r  zaxes.titlepadrG  )r'   r   r5   titleOffsetTrans
get_matrixr,  rW   r   )r-   r"   r  s      r#   test_title_padr
    s     lnnGCLLL%%%
&&((AU8	CG+,,,,LLL$$$
&&((AU8r>>>>LLL&&&
&&((AU8
+O<sBSWLMMMMMMr%   c                     t          j                    \  } }dt           j        d<   |                    d           |                    dd           |                    dd           d|                    d          k    sJ d|                    d          k    sJ d|                    d          k    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dd           d d d            d S # 1 swxY w Y   d S )	NrZ   zaxes.titlelocationr
  rQ   r@   rC   r  fail)r'   r   r   r5   	get_titler   r   r  r,   s     r#   test_title_location_roundtripr
    s   lnnGC)1CL%&LLLLVL$$$LLgL&&&R\\f\------bllwl//////(333333	z	"	"    
                             	z	"	" ( (
V'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   C99C= C=EE	Er  c                    t          j        dd|           \  }}|d                             dd           |d                             dd           |                                 |d         j                                        \  }}|d         j                                        \  }}||cxk    rd	k    sn J d S )
Nr:   r9   r  r   r  ir
  r  r   )r'   r   r5   r	  r1   r	  )r  r-   r  r2   r  r[  s         r#   test_title_location_sharedr
    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 )Nr9   rJ  r   r   rV  rh  r:   )r	  r  r  r  )r	  r  r  )r'   r   rk   rs   r  r	  )r-   r"   r2   s      r#   test_loglogr     sr    lnnGC
	!RAIIaA!INN"AN&&&NN"AWN55555r%   ztest_loglog_nonpos.pnggV-?)r  r   r   c                     t          j        dd          \  } }t          j        dd          }|dz  }d|d<   d|d<   t	          t          g dd	
          |j                  D ]\  \  }}}||k    r;|r|                    ||dz  d	|           -|                    ||dz  d	           I|                    ||dz  d	           |r|                    d|           |r|	                    d|           d S )Nr   r9   rJ  g      rj  r  r8  )r  r  r   r:   )r  )rT  nonpositiverV  r6  )r  )
r'   r   rk   rs   r  r   r  r  rR  r  )r-   r  r2   r3   mcymcxr"   s          r#   test_loglog_nonposr    s5    |Aq!!HC
	!RA	1AAaDAaDg&:&:&:1EEE!h( ( 6 6
cB#:: )		!QTaS	9999		!QTa	((((IIaA!I$$$ 6e555 6e5556 6r%   c                  @   t          j                    \  } }|                    g d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    g dg d           |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|
                    t          j	        d                     |                                dk    sJ |                                dk    sJ t          j                    \  } }|                    t          j        d                     |                                d         dk    sJ t          j                    \  } }|                    t          j	        d                     |                                dk    sJ |                                dk    sJ d S )NrM  r   )r9   r9   r9   r9   r
  rR  r   )r  g      #@)r'   r   r   r
  r  r  r
  rd  rk   r  r  r  rs   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  rr  r  r[   get_major_locatorr"   r$  rM  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  rr  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%   )rl  r   subplots_sharedrX  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 )
Nrl  r   r  r:   r  r	  r   rX  r   r   r  r  )r  r'   r   rl  r   rX  )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 )Nr:   r  r	  r   r9   r   )r'   r   r   rr  r  r   )r-   r)	  r"   	orig_xlims       r#   test_remove_shared_axes_relimr  4  s    ,q!E%@@@KC	1Bq	!%%''IIIKKKKK1vay|,,..	:::::r%   c                     t          j        ddd          } t           j                            | j        | j        f          }t          j        dddd          \  }\  }}|                    dd	           |                    dd	           |	                    | | |           |	                    | | |           |
                                s|
                                rJ |                                s|                                rJ |                                |                                cxk    rd
k    sn J |                                |                                cxk    rd
k    sn J d S )Nir:  r  r:   r9   Tr	  r  )r  r  )rk   rs   rl   random_sampler  r'   r   r  r	  r  r_  ra  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  r  r   r  r  r:   )r'   r   r^   r  
set_paramsr  r	  r  r   r  r	  r,   s     r#   test_adjust_numtick_aspectr#  N  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 )Nr8  rN  )r'   r   r   r  r  rd
  r	  s     r#   test_auto_numticksr%  Z  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   irH  r8  r9  r   )r'   r   r   r   r  rk   log10r  rs   r  rd
  r,   s     r#   test_auto_numticks_logr+  a  s     lnnGC*9CL&'IIuclUBK(((HR]]__%%3A)>)>>CCEEEEEHR]]__%%3A)>)>>CCEEEEEEEr%   c                  ^    t          j                    \  } }|                    g d           d S )N)r   r   )r'   r   r  r,   s     r#   test_broken_barh_emptyr-  k  s+    lnnGCNN2x     r%   c                     t          j                    \  } }t          j        dddddd          }|                    |t          j        d          fgddg          }|                                d         j        d         t          j        |          k    sJ |                                d         j        d	         t          j        |          d
z   k    sJ dS )z9Check that timedelta works as x, dx pair for this method.r  rJ  rv  r   r9   r  r:   r  r:   r   gUUUUUU?N)	r'   r   r<  r  r  r  verticesr>  r?  )r-   r"   d0pps       r#   test_broken_barh_timedeltar3  p  s    lnnGC		4Q1a	0	0B	"h0q999:;aV	D	DB<<>>!%d+vr/B/BBBBB<<>>!%d+vr/B/BV/KKKKKKKr%   c                     |                      dd          }t          j        d          }t          j                            dd          }t          j                    \  }}|                    |||           d S )Nz
2000-01-01r   )r  r  r  rv  )r  rk   rs   rl   r   r'   r   r  )r  timedepthr  r-   r"   s         r#   test_pandas_pcolormeshr7  y  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-03r6  r  )r  r&  r:   r9   r  r&  rf  )rk   rs   r  r   r  r  r'   rl  rW  r  rl  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   r8  r  )r2   r3   xeyerd  )columnsr  r2   r3   r<  r=  r  )r  rk   rl   uniformr'   r   rP  r  s       r#   test_pandas_errorbar_indexingr@    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  )rj  r9   r:   )XXYYrC  )r  r'   r   r   r  r  s       r#   test_pandas_index_shaperD    sR    	YYYiii88	9	9BlnnGCGGBHbhr%   c                     |                      g d          }|j        dd          }t          j                    \  }}|                    |           d S )N)
r9   r:   r:   r   r   r8  r8  r8  r8  r   rf  r9   )r  ilocr'   r   r  )r  ser_1ser_2r-   r"   s        r#   test_pandas_indexing_histrI    sM    II999I::EJqrrNElnnGCGGENNNNNr%   c                 V   |                      t          d          t          d          d          }t          j        d          \  }}|                    |j        |d         dk    df         |j        |d         dk    df         d           |j                                         d S )Nr:   re  r9   r   r-  rZ   rY  )r  r   r'   r   r  rA   r  r   r  s       r#   test_pandas_bar_align_centerrK    s    	E!HH58844	5	5Bl1ooGCFF26"S'Q,#$6"S'Q,#$     JOOr%   c                  `   t          j                    j        } i |                     d          }i |                     d          }|                     | j        d          }|                     | j        d          }||k    sJ ||k    sJ |                     dddd	
           i |                     d          }i |                     d          }|                     |          }|                     |          }||k    sJ | j        |k    sJ ||k    sJ | j        |k    sJ d S )Nr	  r  r  T)reverser   r8  r	  r   )r	  r	  r	  r  )r'   rs  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_paramsrY    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   r8  r	  )r	  r	  r	  r   r  r?  r>  )
r'   rs  r^   rP  r	  _size	tick1liner  r@  rC
  )axis_1s    r#   .test_axis_set_tick_params_labelsize_labelcolorr^    s    []]F
L  2%+0 ! 2 2 2 <"1%+s2222<"1%/99;;sBBBB<"1%,55774????<"1%,6688EAAAAAAr%   c                     t          j                    } |                     dddd           | j        | j        fD ]}|j        d         j                                        dk    sJ |j        d         j                                        dk    sJ |j        d         j        	                                dk    sJ |j        d         j        
                                dk    sJ d S )Nr-  r   r   r  )r	  r	  r	  r	  r   r  )r'   rs  r	  r[   r^   r	  r	  r  get_linewidthr  r4  )r"   r*  s     r#   test_axes_tick_params_gridlinesra    s    	BNNc!"+  - - -"(" C Cq!*4466#====q!*88::a????q!*4466#====q!*88::dBBBBB	C Cr%   c                     t          j                    } |                     ddd           |                     ddd           | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ d S )NFTr	  )	labelleft
labelrightr  r  r   )	r'   rs  r	  r^   r	  r@  r!  label2r	  r  s    r#    test_axes_tick_params_ylabelsiderf    s   	BNNUt   " " "NNUt   " " " 8q!(4466%????8q!(4466$>>>>8q!(4466%????8q!(4466$>>>>>>r%   c                     t          j                    } |                     ddd           |                     ddd           | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ | j        j        d         j                                        du sJ d S )NTFr	  )labeltoplabelbottomr  r  r   )	r'   rs  r	  r[   r	  r@  r!  re  r	  r  s    r#    test_axes_tick_params_xlabelsiderj    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   rL  rJ  )r'   r   r   r   r   r4  )r"   lns     r#   test_none_kwargsrm    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 )NrM  r  )r:   r   r8  r   rD  rY  r   )r'   r  rk   rW  uint8r  rD  r  )r  r-  r"  r2   s       r#   test_bar_uint8rp    sy    	B28,,,lll&IIIA!)R((    
x{a   r%   zdate_timezone_x.pngr   c                      d t          d          D             } t          j        d           t          j        ddd           t	          j        t          j                  5  t          j        | dgdz  d           d d d            n# 1 swxY w Y   t          j        ddd           t	          j        t          j                  5  t          j        | dgdz  d	           d d d            d S # 1 swxY w Y   d S )
Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S   r:   r  Canada/Easternr   tzinfor<  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   r  r  r>  r:   r9   ru  )ry  UTC	r   r'   r   rs  r   r  r   rl  rm  
time_indexs    r#   test_date_timezone_xr    s   % % 88% % %J
 Jx    K1a	c6	7	7 @ @j1#'.>????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ K1a	c6	7	7 5 5j1#'e44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   #BBB
C33C7:C7zdate_timezone_y.pngc                     d t          d          D             } t          j        d           t          j        ddd           t	          j        t          j                  5  t          j        dgdz  | ddd	
           d d d            n# 1 swxY w Y   t          j        ddd           t	          j        t          j                  5  t          j        dgdz  | ddd	
           d d d            d S # 1 swxY w Y   d S )Nc                 z    g | ]8}t          j         d dd|t          j                            d                    9S rs  rx  r  s     r#   r   z(test_date_timezone_y.<locals>.<listcomp>$  r{  r%   r   r|  r>  r:   r9   ru  FT)ry  xdateydater}  r~  r  s    r#   test_date_timezone_yr  !  s   % % 88% % %J
 Jx    K1a	c6	7	7 Y YqcAgz.>eSWXXXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y K1a	c6	7	7 N NqcAgze5MMMMN N N N N N N N N N N N N N N N N Ns$   #BBBC77C;>C;zdate_timezone_x_and_y.pngc                     t           j        j        fdt          d          D             } t	          j        d           t	          j        ddd           t          j        t          j
                  5  t	          j        | | dd	           d d d            n# 1 swxY w Y   t	          j        ddd           t          j        t          j
                  5  t	          j        | | d
d	           d d d            d S # 1 swxY w Y   d S )Nc           	      B    g | ]}t          j         d dd|          S )rt  r:   r  rv  r  )r   r2   r}  s     r#   r   z.test_date_timezone_x_and_y.<locals>.<listcomp>8  s?     % % % #D!RaDDD % % %r%   r   r|  r>  r:   r9   r}  T)ry  r  z
US/Eastern)r<  timezoneutcr   r'   r   rs  r   r  r   rl  rm  )r  r}  s    @r#   test_date_timezone_x_and_yr  4  s    

C% % % % 88% % %J Jx    K1a	c6	7	7 D Dj*dCCCCD D D D D D D D D D D D D D D K1a	c6	7	7 K Kj*TJJJJK K K K K K K K K K K K K K K K K Ks$   7BB #B DDDzaxisbelow.pngc                     t          j                                        ddd          } d}t          | |          D ]\  }}|                    dddd           t          j        d	d
          }|                    |           |                    ddd           |	                    dddd           |j
        d d                              d           |                    |           |                                |k    sJ d S )Nr   T)r   r  rk  )Fr  TrR  r   r  r  r  rM  rN  r=   rJ  )r   r   r?  F)r?   rP   rQ   rC   )r'   r   r   r  r   r  r2	  r  r  r	  r	  r   set_axisbelowget_axisbelow)r  settingsr"   settingcircs        r#   test_axisbelowr  G  s   
 *,,

aT

B
BC$H3)) 	- 	-G
Rs333vS111
T
cSA666
5! 	 	0 	0 	0
	!!!  '''
!!!!!W,,,,,	- 	-r%   c                     t           j                            d           t          j        d          \  } }|                                }|                    d          }|                    d          }| j                                         | j        	                                }|
                    |          j        }|
                    |          j        }||z
  }t          j        |d          sJ d S )Nr   r
  )r,  Xlabel2Titler   )r'   r   r   r   r  r(   r5   r  r   get_rendererget_window_extentr]  r  rk   isclose)	r-   r"   r$  xlabel2r1   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r#   test_titletwinyr  [  s    IMM'lr"""GC
((**CnnY''GLL!!EJOOz&&((H++H558M//99<O_,F:fa       r%   c                     t          j                    \  } }|                     d           |                                }|                    d           |                    d           |                    d           d}|j                            |           | j        	                                }|
                    |           |j                                        |k    sJ d S )Nr  )r?   Xlabelr  r  )r   g(\?)r'   r   r  r  r(   r5   r1   r	  r  r  _update_title_positionr	  )r-   r"   r$  r   r  s        r#   test_titlesetposr  j  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 topr9   p=
ף?)r   r   r'   r   r[   r   r5   r  r   r1   r	  r,   s     r#   test_title_xticks_topr  y  s    "&CLlnnGCH&&&LLJOO8  ""1%,,,,,,r%   c                  *   d t           j        d<   t          j                    \  } }|                    ddddd           |                    d           | j                                         |j        	                                d         dk    sJ d S )Nr  r2   Tr*  rP   r?   ri  rh  r  r9   r  )
r   r   r'   r   r	  r5   r  r   r1   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))rQ   r   )r   rZ   )rQ   rZ   )zleft title movedzcenter title keptzboth titles alignedc                 B   d t           j        d<   t          j                    \  }}|                    d           |                    | d           |                    |           |                                 | r)|s'|j                                        d         dk    sJ d S | s)|r'|j	                                        d         dk    sJ d S |j                                        d         }|j	                                        d         }|dk    sJ ||k    sJ d S )Nr  g   vH7BrQ   r@   r9   r   )
r   r   r'   r   r	  r5   r	  _left_titler	  r1   )rQ   rZ   r-   r"   yleftr  s         r#   test_title_above_offsetr    s1    #'CLlnnGCKKLL6L"""LL     F  ~**,,Q/#555555  f  x$$&&q)S000000++--a0(''))!,s{{{{%r%   c                  H   d t           j        d<   t          j                    } |                     g d          }|                    ddddd           |                    d          }| j                                         |	                                d         dk    sJ d S )	Nr  )r   r  r  r  r2   Tr  Boor9   r   )
r   r   r'   r   rX  r	  r5   r  r   r	  )r-   r"   tts      r#   test_title_no_move_off_pager    s     #'CL
*,,C	+++	,	,BNNDdT  K K K	e		BJOO??Q3&&&&&&r%   c                      t          j                    \  } }|                    g d           |j                            d           |j                                                                        dk    sJ d S )Ng   @Ag   eAg   FAr8  )r	  )r'   r   r   r^   rP  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^   rP  r  r!  r,   s     r#   test_offset_text_visibler    s    lnnGCGG$$$%%%Hed;;;8##%%1133333He,,,x''))557777777r%   c                      t          j                    \  } }|                    dt          j        ddg          z   dz             | j                                         d S )Nr9   r   g-q=gqىE)r'   r   r   rk   rW  r  r   r,   s     r#   test_large_offsetr    sS    lnnGCGGQ1f+&&&%/000JOOr%   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r  rj  r  rH  r  rh  s     r#   r   z#test_barb_units.<locals>.<listcomp>  +    MMMqXtQB22MMMr%   r   r-  r   r   rV  )r'   r   r   rk   r  r  barbsr-   r"   r  r3   ur  s         r#   test_barb_unitsr    s    lnnGCMME!R<L<LMMME
Aq#e**%%AK2s5zz***AHHUAq!r%   c                  (   t          j                    \  } }d t          ddd          D             }t          j        ddt          |                    }t          j        ddt          |                    x}}|                    ||||           d S )Nc           	      >    g | ]}t          j         d ddd|          S r  r  rh  s     r#   r   z%test_quiver_units.<locals>.<listcomp>  r  r%   r   r-  r   r   rV  )r'   r   r   rk   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  ru  )r  r-   r"   r]  rl  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 )Nr9   r:   r   r   r
  )r  rr  r:  r  r2   5   )r*  r	  r3   r  )r*  rr  r	  )
r'   r   r   r[   rP  r^   r  rA
  re
  r	  )r  r"   r$  texts       r#   test_tick_param_label_rotationr    s   \!Q''NC"cGGQFQFHHaVaVH6B777H6B777"""00 ) )  ""b((((("""00 ) )  ""b(((((OOBO///OOrO***##'#22 ) )  ""b(((((##'#22 ) )  ""b((((() )r%   c                     t          j                    \  } }t          d          D ]}|                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t          dd          D ]}|	                    t          d          t          d                    }t	          j        d|           }t          |                                                                          t          |          k    sJ t	          j        d          }dD ]s} |j        t          d          t          d          fi |di}t          |                                                                          t          |          k    sJ tt	          j        d          }t          ddgd          D ]\  }} |j        t          d          t          d          fi |di}t	          j        d|           }t          |                                                                          t          |          k    sJ t          |                                                                          t          |          k    sJ d S )	Nr   r  r  r?  )r=  r  r   r>  ri  )r  )r'   r   r   r  r  r  tupler  squeezer-  r  r  )	r-   r"   r]  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   r[   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   r9   rL  r  rz  )r   r   r   )	rk   rs   r'   r   r   r   r  r;   r  )r   r2   r3   r  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'   r  rI   r   r%   r#   test_eventplot_legendr  3  s(    M3%w''''JLLLLLr%   r  zlineoffsets cannot be emptyr  zlinelengths cannot be emptyr  zlinewidths cannot be emptyr  zlinestyles cannot be emptyr  zalpha cannot be emptyz!positions must be one-dimensionalz5lineoffsets and positions are unequal sized sequencesz5linelengths and positions are unequal sized sequencesz4linewidths and positions are unequal sized sequencesz4linestyles and positions are unequal sized sequencesz/alpha and positions are unequal sized sequencesz0colors and positions are unequal sized sequencesc                     t          j        | |          5  t          j        |i | d d d            d S # 1 swxY w Y   d S r	  )r   r   r'   r  r	  s       r#   test_eventplot_errorsr  8  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 )Nr8  r9   r   )rQ   r  )r   r  r  r@  r  )r'   r   r  r   r  rv  )r-   r"   rect1rect2s       r#   test_bar_broadcast_argsr  Q  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   rk   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r0  rP  r6  r  c                     t          j                    }|                    g d           |                    |            |                    |           |                                 d S )Nr  )r'   rs  r   rR  r  r  )r0  r  r"   s      r#   test_minorticks_onr  i  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 )Nr9   r:   r   r   )r'   r   r  r  r   r   r	  	intervalx)r-   r"   xtwinr9  r$  s        r#   test_twinx_knows_limitsr  s  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   r9   rK  )r  rT  )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)rT  r0   zempty x)rU  r0   )r'   r   rP  rI   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  r:   g\(\@rm  r   r  s     r#   r   z%test_plot_decimal.<locals>.<listcomp>  s;    	C	C	C1#Q,qAv
%q
03
6	C	C	Cr%   c                 ,    g | ]}t          |          S r   r   rh  s     r#   r   z%test_plot_decimal.<locals>.<listcomp>  rV  r%   c                 ,    g | ]}t          |          S r   r   rh  s     r#   r   z%test_plot_decimal.<locals>.<listcomp>  rV  r%   )rk   rs   r   r   )r    r!   r\  r]  r2   r3   s         r#   test_plot_decimalr    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   r9  r   )r  r  rj  )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  r  r*  r\  r]  r-   r"   bbbb2s       r#   test_tick_padding_tightbboxr
    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  r9   r   r   Nr   r   r   333333@r:   rM  r   )boundsr   )rk   mgridr   r  ro  r'   r   r  r	  apply_aspectindicate_insetr  r   rW  r  get_bbox
get_points)dxdyr3   r2   r  r-   r"   r   r   ry  rec
connectorsxxs                r#   
test_insetr    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  r9   r   r   r   r   )r  r  r  r  r   r  r:   rM  r8  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rk   r  r   r  ro  r'   r   r  r	  r  
inset_axesr  r	  r	  indicate_inset_zoomr  r  r   rW  r  r  r  r   r   r	  )r  r  r3   r2   r  r-   r"   axin1r  r  r  s              r#   test_zoom_insetr     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  Tr4  r   r:   r  )	r'   r   r  r   r   rk   rs   r  r   )r  r"   axinsrM  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  hammerr  )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.
    r9   r:   r   r   )r:   r:   r   r8  r   r   N)	r'   r   rk   rs   r   r  r  r  r  )r,  r-  r-   r  r$  r2   ry  r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                 r#   test_indicate_inset_invertedr5    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	  r	  rk   rM  r	  r  r,   s     r#   test_set_positionr8    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)rh  rh  r  r  r	  Fgư>r  )r'   r   r	  rP   r  r  r  _set_view_from_bboxrk   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   r:   r   r9   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:  rk   r   r   r   r   )r-   r"   r   r   r  new_ylimres_xlimres_ylims           r#   test_limits_after_scroll_zoomrC  5  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 )Nr9   r  i  )r'   r   r   r  rk   r  r  r  r   r   r  r  )r-   r"   r  s      r#   test_gettightbbox_ignore_nanrE  Y  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   rH  r  r  r  )r9   r9   r9   r9   r9   r   r   r   )r   r  rk   rl   r?  r'   r;   )r  r$  r2   r3   r=   s        r#   "test_scatter_series_non_zero_indexrG  a  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_datarI  j  s3    KBKB"######r%   zannotate_across_transforms.png)r   r  r   c            
      $   t          j        ddd          } t          j        |            t          j        |           z  }t	          j        d          \  }}|                    | |           |                    g d          }|                    d           |j	        
                    d           |j        
                    d           |                    d	| d
         |d
         f|j        d|j        t          d                     d S )Nr   r   r  )gQ@r   r>  )r@  r   r  r  r  Fr   r{  ra  r
  )r
  )r  r  r  r  r  )rk   r  r\  r  r'   r   r   r  r	  r[   r   r^   r  	transDatarH  r  )r2   r3   r-   r"   r"  s        r#   test_annotate_across_transformsrL  p  s    	Ar3A
r

RVAYYAl9---GCGGAqMMMMM...//E	S	KE"""	KE"""KK##'",%/4000  2 2 2 2 2r%   c                   (    e Zd ZdZdZd Zd Zd ZdS )_Translationr9   c                     || _         d S r  r  )r  r  s     r#   r,  z_Translation.__init__  s    r%   c                     || j         z   S r  rP  )r  r&  s     r#   r<  z_Translation.transform  s    r%   c                 ,    t          | j                   S r  )rN  r  r  s    r#   r  z_Translation.inverted  s    TWH%%%r%   N)r  r  r  
input_dimsoutput_dimsr,  r<  r  r   r%   r#   rN  rN    sK        JK       & & & & &r%   rN  zsecondary_xy.pnggS㥛?c                     t          j        dddd          \  } }d }t          |          D ]\  }}|                    t	          j        dd          t	          j        dd                     |dk    r|j        }n|j        } |d	||f
            |dd d f
            |dd d f
            |d            ||dk    rdndt          d          
            |d|j	                   d S )Nr9   r:   r  T)r  rp  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S Nr  r  r9   rk   r  r  s    r#   invertz!test_secondary_xy.<locals>.invert      [))) 	 	q5	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   (,,rJ  r   r  	functionsr@  c                     d| z  S Nr:   r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    A r%   c                     | dz  S r_  r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    Q r%   r  c                     | dz  S r_  r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    1 r%   c                     | dz  S )Nr   r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    C r%   r  r?   rC   g      @r  )
r'   r   r  r   rk   rs   secondary_xaxissecondary_yaxisrN  rK  )r-   r  rY  nnr"   secaxs         r#   test_secondary_xyrg    sA    |Aq'dKKKHC   C.. , ,B
	!R  ")Ar"2"233377&EE&Ecff-....coo?@@@@cnn.@.@ABBBBc


rQwweeG|AGGGGdbl+++++, ,r%   c                     t          j                    \  } }|                    t          j        dd          t          j        dd                     t          j        t                    5  |                    dd            d d d            n# 1 swxY w Y   t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Nr:   rJ  r  c                     d| z  S r
  r   r  s    r#   r  z%test_secondary_fail.<locals>.<lambda>  s
    QU r%   r\  rC   rP   errorr  )r'   r   r   rk   rs   r   r   r  rc  rd  r   r,   s     r#   test_secondary_failrk    s<   lnnGCGGBIabi2..///	z	"	" = =
3??<<<= = = = = = = = = = = = = = =	z	"	" $ $
7###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	z	"	" % %
8$$$% % % % % % % % % % % % % % %	y	!	! 3 3
3'2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sH   ,BBB5CCC;DD!$D!E&&E*-E*c                     t          j        d          \  } }|                    t          j        dd          t          j        dd                     d }|                    d||f           | j                                         |                     d           t          |
                                j        g d	           d S )
Nr  r>  r:   rJ  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S rW  rX  r  s    r#   rY  z%test_secondary_resize.<locals>.invert  rZ  r[  r?   r\  )rj  r8  r
  )r'   r   r   rk   rs   rc  r  r   r  r   r	  r	  )r-   r"   rY  s      r#   test_secondary_resizern    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>  r:   rJ  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S rW  rX  r  s    r#   rY  z'test_secondary_minorloc.<locals>.invert  rZ  r[  r?   r\  r6  rQ  )r'   r   r   rk   rs   rc  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorrR  r   
LogLocator)r-   r"   rY  rf  s       r#   test_secondary_minorlocrv    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 )Nr6  r?   )r'   r   rR  rc  r[   r   r   ScalarFormatterr  r   r   r   r-   r"   rf  s      r#   test_secondary_formatterrz    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   rc  r6   ry  s      r#   test_secondary_reprr|    sB    lnnGCu%%E;;-------r%   zaxis_options.pngc            	         t          j        dd          \  } }t          d          D ]\  }}|d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     |d|f                             dd           |d|f                             |           |d|f                             t          j        ddd	d
                     d S )Nr:   r   )scaledr  imager   r7  )r9   g	@)r   r   r   r9  r?  r/	  r9   )r9   g      @)r9   r   )r   rb  r  )r'   r   r  r   r*  rC  r  r2	  )r-   rq  rK  options       r#   test_axis_optionsr    s;   Q""IC;<< P P	6 	QT
)))QT
QT
hoj8>#O O O 	P 	P 	P 	QT
	9---QT
QT
hok$8>#O O O 	P 	P 	P 	PP Pr%   c                    | j                                          | j                                         }g }t          |j        |j        g          D ]i\  }}|                    |          }|rGt          j        |j	        |j
        f|j        |j        ddddd          }|                     |           ||gz  }jg }t          g d          D ]r\  }}	|j        |	                             |          }t          j        |j	        |j
        f|j        |j        ddddd          }
|                     |
           ||gz  }s|                                }t          j        |j	        |j
        f|j        |j        d	d
ddd          }|                     |           |}|                    |          }t          j        |j	        |j
        f|j        |j        ddddd          }|                     |           |}||||fS )zS
    Helper for the tests below that test the extents of various Axes elements
    r  r3   r9  Nr   )r  r  r?  r>  r=  r<  r  )rP   r?   rQ   rC   r   r   r  r:   r8  r9   )r  r   r  r  r[   r^   r  r  r  r\  r]  r  r  rC  r	  r  )r-   r"   r  bbaxisre  axxr  axisrbbspinesr   spinerr  bbaxr	  bbtbs                  r#   color_boxesr    s.    JOOz&&((HFbh122  Cx(( 	"&bhry$  E NN5!!!2$H===>>  AYq\++H55#UBEN"(29W$   	vRD					B	bhryf  E NN5D


8
$
$C		#*u$  E NN5D8T4''r%   c                     t          ddi          5  t          j        dd          \  } }| j                                         t          j        |            t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d
g dg dg dg}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d	           ;g d}t          j	        j
        | }	t          |j        |	j        d	           g d}t          j	        j
        | }	t          |j        |	j        d	           |                                                    | j                  j        }
t          |
|                                j        d	           d S )N_internal.classic_modeFr  r	  r,  r  )g     ^@g8R@g     @g     @@)g8`U@gX@g     J@g     @r:   )decimal     b@-]@     @F8&@r  g     @r  r  r  Nё\]@r        @gR!@r  r  r  r  g]@r  r  )g+e`U@gbhR@g{G@g{Gȏ@)r   r'   r   r  r   ru  r  r  r	  Bboxfrom_boundsr   r  r	  transformedtransFigurer  )r-   r"   r  r  r  r  r  re  r-  targetbbaxbbs              r#   test_normal_axesr  *  sV   	-u5	6	6 < <,3777R
	#'23';';$$	< < < < < < < < < < < < < < < 	322===F 6"" H HA#/<!!(HOQGGGGG 	(''###(((,,,	F 8$$ H HA#/<!!(HOQGGGGG666F+V4Hdk8?AFFFF222F+V4Hdk8?AFFFF ??((99@DdB$8$8$:$:$A1MMMMMMs   AA::A>A>c                     t          ddi          5  t          j        dd          \  } }| j                                         |                    g g            t          | |          \  }}}}d d d            n# 1 swxY w Y   t          |          D ]	\  }}|J 
g dg dg d	g d
g}t          |          D ]:\  }}t          j	        j
        ||          }	t          |j        |	j        d           ;g d}t          j	        j
        | }	t          |j        |	j        d           g d}t          j	        j
        | }	t          |j        |	j        d           d S )Nr  Fr  r	  r  xticklabelsyticklabelsr  r  r  r  r  r>  r  )r        ^@r  r  )r   r'   r   r  r   r   r  r  r	  r  r  r   r  )
r-   r"   r  r  r  r  re  r-  r  r  s
             r#   test_nodecoratorr  Q  s   	-u5	6	6 < <,3777R

22...'23';';$$	< < < < < < < < < < < < < < < 6""  Ayyyy 	(''###(((,,,	F 8$$ > >A#/<(/=====666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   AA==BBc                     t          ddi          5  t          j        dd          \  } }|                    g g            |j        j                            d           | j                                         t          | |          \  }}}}d d d            n# 1 swxY w Y   g dg d	g d
g dg}t          ||          D ]4\  }}t          j        j        | }	t          |j        |	j        d           5g d}t          j        j        | }	t          |j        |	j        d           g d}t          j        j        | }	t          |j        |	j        d           d S )Nr  Fr  r	  r  r  )rq  rZ  )r        8@r  gs~8&@r  r  r  r  r>  r  )r  r  r  g     @)r   r'   r   r   r	  rP   r	  r  r   r  r  r	  r  r  r   r  )
r-   r"   r  r  r  r  targetsr  bbspiner  s
             r#   test_displaced_spiner  o  s   	-u5	6	6 < <,3777R
22...
	%%n555
'23';';$$< < < < < < < < < < < < < < < 	%$$###(((,,,	G w11 D D#/8dCCCCC666F+V4HDKt<<<<%%%F+V4HDKt<<<<<<s   A>BB #B c                      g dg dgg dg dgg dg dgg} t          g d          D ]\  }}t          dd	i          5  t          j        d
d          \  }}|                    |           |j                                         t          ||          \  }}}}t          ddg          D ]F\  }	}
t          j	        j
        | |         |	          }t          ||
         j        |j        d           G	 ddd           n# 1 swxY w Y   dS )zG
    Switch the tickdirs and make sure the bboxes switch with them
    )r  r  r  +e8&@)r  r  r  r  )r  gZӼ8[@r  88&@)g r\a@r  r  r  )r  gqq\@r  r  )g88b@r  r  r  )r	  r	  inoutr  Fr  r	  r  r	  r   r:   r  r>  N)r  r   r'   r   r	  r  r   r  r	  r  r  r   r  )r  dnumdirsr-   r"   r  r  r  r  re  r   r  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 )Nr  Fr  r	  r  r   r	  )r  r	  )r  g88[@r  r  )gCiq\a@r  r  r  r:   r  r>  r  r   r~
  )r  gPUUUUUB@r  gVUUUUT@)gz6P@r  goTT@r  )r   r'   r   r  r   r	  r  r   r	  r  r  r   r  r  )	r-   r"   r  r  r  r  r  r  r  s	            r#   test_minor_accountedforr    s   	-u5	6	6 D D,3777R

Vu555'23';';$$'23';';$$III7779q 	D 	DA"'3WQZ@HQ&dD D D D D ,3777R

Vu555

F'"===
'23';';$$GGG3335 q 	D 	DA"'3WQZ@HQ&dD D D D D	D1D D D D D D D D D D D D D D D D D Ds   GG''G+.G+c                 t   |                      d                              d           |                     d                              d           |                      d          }|                    d           |                    d           |                     d                              d           d S )Nrh  Fr  ri  Ton)r   r*  r   s      r#   test_axis_bool_argumentsr    s     ""5)))!!%(((			c	"	"BGGENNNGGDMMM!!$'''''r%   c                     t          j                    \  } }d}d}d}d}|                    ||||g          }t          |          ||||fk    sJ ||f|                                k    sJ ||f|                                k    sJ d S )Nr   r   r  r  r'   r   r*  r  r   r   r-   r"   ri   rj   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  r  )ri   rj   r	  r	  r  r  s          r#   test_axis_extent_arg2r    s    lnnGCDDDDWW$T4W@@F ==T4t44444 $<2;;==(((($<2;;==((((((r%   c                  ~    t          j        g dg dgd          \  } }} |d         dk    sJ |d         dk    sJ d S )	Nr  )r   r8  r   r  r  r  r   r9   r   r  )r'   r  r  r  s     r#   test_hist_auto_binsr    sO    999lll3&AAAJAtQ7a<<<<8q======r%   c                     t          j        d          \  } \  }}g d}|t          j        gz   }|                    |          \  }}}t          j        d          5  |                    |          \  }}	}d d d            n# 1 swxY w Y   t          j                            ||           t          j                            ||	           d S )Nr:   r  r  r  )r'   r   rk   r  r  r  r   r   )
r-   r  r$  r  nan_datar  rK  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   r9   )r'   r  rk   rl   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   )r2   r  rU  r  r  )r'   r   r  rP  r:  rD  r  )
r-   r"   r2   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  ra  r   rr  )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  r6  rK  logit)F]tE?g'^P?r9   r	  r0  r   r  r   r   r	  r   r:   )r'   r   r   r   r   rY  r  transform_bboxr	  r  r  r   approx)r-   r"   r   s      r#   $test_aspect_nonlinear_adjustable_boxr    s    
*X
&
&
&C			BGGRHr2hFF%g  ' ' ' 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  r6  )r9   r  r  )gbeF?r  r9   r	  r  r   gS[:XL	@g'In?@)r'   r   rX  r   r   rY  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  r9   r   r   r:   r  r  r  r	  r	  )r'   r   r  r   set_box_aspectget_box_aspectrY  r	  r  r   r	  r   r	  )r8  r  axtwinr9  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   rG  r  r   )	r'   r   r	  r  r   r  r	  r   r	  )r8  r  r9  r$  r  r	  s         r#   test_box_aspect_custom_positionr  V  s    ID#)))***KrID#rK)))***KK




C




Cs{CK00000r%   c                  l   t          j        ddt          d          d          \  } }| j                                         | j                                        }g }|j        D ]8}|                    |          }|                    |j	        |j
        g           9t          ||d                    d S )Nr:   r   r9   )r	  T)r  rp  r   )r'   r   r  r  r   r  r  r  r  r  r  r   )r-   r  r  r
  r"   r  s         r#   test_bbox_aspect_axes_initr  m  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 positiverz  r   r   )r'   r   r   r   r  r	  rk   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 )Nr9   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 Nr4  zlines.markeredgecolor)r'   r   rq  r[   get_major_ticksr\  get_markeredgecolorr"   ri
  r	  s      r#   "test_xtickcolor_is_not_markercolorr    h    ,3CL()	BH$$&&E ? ?~1133w>>>>>? ?r%   c                      dt           j        d<   t          j                    } | j                                        }|D ]!}|j                                        dk    sJ "d S r  )r'   r   rq  r^   r  r\  r  r  s      r#   "test_ytickcolor_is_not_markercolorr    r  r%   r*  r  )TFNc                    t          j                    \  }}t          j        d          }t          j        ddd          }|                    ||           t          |d|  d          }t          |d|  d          }t          |d|  d          }|
 |            n|}	 |d	|
           |	 |            k    sJ |j                                         t           |            d	           d S )Nr  rZ  r   get_autoscale_onr4  limget_r=  )r  )
r'   r   rk   rs   r  r;   r.  r  r   r   )
r*  r  r-   r"   r2   r3   r  set_limget_lim	post_autos
             r#   test_unautoscaler    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 )Nr5  r  r   r:   r9   r  e   )r   r   rk   r  get_path_interpolation_stepsr  )r    r!   r
  s      r#   )test_polar_interpolation_steps_variable_rr    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    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   rq  r[   r  r\  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   rq  r^   r  r\  r  r@  r  s      r#   &test_ytickcolor_is_not_yticklabelcolorr    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   rq  r[   r
  r  r  s    r#   test_xaxis_offsetText_colorr    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  r8  r  r  )r'   r   rq  r^   r
  r  r  s    r#   test_yaxis_offsetText_colorr    s    '.CL#$	B8((**g5555"'CL'0CL#$	B8((**e333333r%   r  c                     g | ]}||S r  r   )r   r  s     r#   r   r     s'     "7 "7 "74%)%5 #'%5%5%5r%   )r  r   r  c                 z   | t           j        d<   | t           j        d<   t          j                    \  }}|j                                         t          ddg|j        |j        g          D ]N\  }}|	                                D ]4}|j
                                        |                    |          k    sJ 5Od S )Nzxtick.labelsizezytick.labelsizer2   r3   )r   r   r'   r   r  r   r  r[   r^   r  r@  rC
  _get_tick_label_size)r  r-   r"   namer*  r	  s         r#   test_relative_ticklabel_sizesr    s     '+CL"#&*CL"#lnnGCJOO3*rx&:;; M M
d((** 	M 	MD;''))T-F-Ft-L-LLLLLL	MM Mr%   c                     t          j                    } |                     ddd          \  }}|                    g dg d           |                    dd           |                                }t          j        |d	d
g          sJ d S )Nr:   r9   r  r  )PF  iJG  iDH  i>I  )r:   r   r:   r   r  r   r  ipI  )r'   r   r   r   r  r   rk   rM  )r-   r  r$  r   s       r#   test_multiplot_autoscaler     s    
*,,C||Aq|//HCHH)))<<<888KKA<<>>D;teU^,,,,,,,r%   c                  |   t          j                    } |                     d          }|                     g d|          }|                                }|                     d           |                                                                |                                k                                    sJ d S )Nr  )r  r  r  r  r  r   rQ   )r'   r   r   rX  r	  r  r  r  )r-   rw  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   r9   r:   r   rL  r  rz  r   r   rN  r8  rr  )rk   rW  r   r   r   r   r  r;   r  r  rs   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  r:   r  Tr	  )rk   rs   r  r  r   r  r   r  )r    r!   r2   r3   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 )	Nr:   r  r	  r   zo-r  )r  r   r9   r   )r  r   r:   rM  )r'   r   r  r   r`
  r   ra
  r   r
  s      r#   test_shared_axes_retickr&  8   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%   rF   )rQ   rZ   rC   c                    t                      }|                                }|                    dd|            |j                            d           |j                                                                        | k    sJ d S )Ntestr9   rE   rC   )r   r   r)   r^   set_label_positionr\   r?
  )rF   r-   r"   s      r#   test_ylabel_ha_with_positionr*  G   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 )	Nr9   r:   r   r   rZ   rP   r?   r'   rl  r  	bar_labelr  r]   r
  r"   r  heightsrx  ro  s        r#    test_bar_label_location_verticalr1  P   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 )	Nr9   r:   r   r,  r   rZ   r?   rP   )r'   rl  r  r  r.  r  r]   r
  r/  s        r#   *test_bar_label_location_vertical_yinvertedr3  ]   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 	Nr9   r:   r   r,  r   rQ   rZ   rC   r'   rl  r  r.  r  r]   r
  r"   r  r  rx  ro  s        r#   "test_bar_label_location_horizontalr8  k   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 r5  )r'   rl  r  r  r.  r  r]   r
  r7  s        r#   ,test_bar_label_location_horizontal_yinvertedr:  x   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 	Nr9   r:   r   r,  r   rC   rZ   rQ   )r'   rl  r  r  r.  r  r]   r
  r7  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'   rl  r  r  r  r.  r  r]   r
  r7  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 )	Nr9   r:   r   r,  rZ   
label_typer   r  r6  r7  s        r#   test_bar_label_location_centerrC     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  r6  r9   rZ   rA  )r'   r   r  rR  r  r.  rx  )r  r"   r  s      r#   !test_centered_bar_label_nonlinearrE     s    LNNEArGGOOO-B-B-BCCMMM%KK4LL8L444OOr%   c                  (   t          j                    \  } }d}t          g dg d          D ]:\  }}|                    d|||          }|                    |d           ||z  };|                    d d           |                                  d S )	Nr   r  )r   r  rV  rz  )r0   rQ   rZ   rA  r  )r'   r   r  r  r.  r  r	  )r-   r"   lastr0   rB  r  s         r#   +test_centered_bar_label_label_beyond_limitsrH     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 )
Nr9   r:   r   r,  rU  r   rZ   rP   r?   r-  r/  s        r#   !test_bar_label_location_errorbarsrK     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 )	Nr9   r:   r   r,  r  r   z3.00z-4.00r'   rl  r  r.  rA  )r   r"   rx  ro  s       r#   test_bar_label_fmtrN     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 )	Nr9   r:   r   r,  zstr or callablerz  r   r  )r'   rl  r  r   r   r   r.  )r"   rx  r  s      r#   test_bar_label_fmt_errorrP     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 )	Nr9   r:   r   r,  r  r  rp
  r   rM  )r"   rx  ro  s      r#   test_bar_label_labelsrR     s    	BFFAq6Ar7##E\\%c
\33F!93&&&&!93&&&&&&r%   c                  ,   t          j                    } |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr:   r   r9   c                 6    g | ]}|                                 S r   r  r   r
  s     r#   r   z,test_bar_label_nan_ydata.<locals>.<listcomp>        )))QAJJLL)))r%   r   r,  r   r/  rP   )r'   rl  r  rk   r  r.  r  r
  r"   r  ro  s      r#   test_bar_label_nan_ydatarX     s    	B661a&261+&&D\\$F))&)))b#Y6666!9<6!!!!!9**,,888888r%   c                  T   t          j                    } |                                  |                     ddgt          j        dg          }|                     |          }d |D             ddgk    sJ |d         j        dk    sJ |d                                         d	k    sJ d S )
Nr:   r   r9   c                 6    g | ]}|                                 S r   r  rU  s     r#   r   z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>   rV  r%   r   r,  r   r/  rP   )	r'   rl  rn  r  rk   r  r.  r  r
  rW  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  r9   r:   r  rJ  c                 6    g | ]}|                                 S r   r  rU  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>!  rV  r%   )r   r,  2)r  r  rO  r  r  c                 6    g | ]}|                                 S r   r  rU  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>!  rV  r%   )r+  r,  r^  )r  r  c                 6    g | ]}|                                 S r   r  rU  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>!  rV  r%   )r'   r   r  rk   r  r.  rM  r   )r-   r"   r  ro  s       r#   test_nan_barlabelsra  !  s   lnnGC66)))bfa^///6BBD\\$F))&)))^^^;;;;;r{{}}j11111lnnGC66)))YYYc263-?6@@D\\$F))&)))___<<<<;r{{}}k22222lnnGC66)))bfa^262632G6HHD\\$F))&)))^^^;;;;;r{{}}j1111111r%   c            	      n   t          j                    \  } }|                    t          j        ddddd                     dt          j        dt
          j        z  d	z            d
z  z  }t
          j        	                    t          j
        d|dz    d|dz   f          |j        j        d           d S )N)r   r   r{  r-  r  r   r  gffffff?r  rk  r:   gr  r  )r'   r   r  r  Wedgerk   r  r  r   assert_array_almost_equal_nulprW  dataLimr  )r-   r"   bots      r#   test_patch_boundsrg  !  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/edgecolorsrz  r   r  r  rM  r-  )r   r  r=  r>  )r   r  rO  r'   r;   r   r%   r#    test_warn_ignored_scatter_kwargsri  !  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   rk   rs   )r   rK  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 rangerz  r9   r  r:   r   )r'   r   r   r;   rk   rs   r   r  r  r  r  r  r$  r  imagesr:  rD  tablesrD
  r   r   
IndexErrorr  rr  )r-   r:  rz  r  r"  r  rl  r"   s          @r#   test_artist_sublistsro  $!  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   r9   )rk   r   r'   r   r   r  )r2   r3   r  r"   r  s        r#   test_empty_line_plotsrq  R!  s    
A
ALNNEAr771a==Dt99>>>> LNNEAr772r??Dt99>>>>>>r%   z
fmt, match))rt  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\))r  zE'C' is not a valid format string \('C' must be followed by a number\))z.CzF'.C' is not a valid format string \('C' must be followed by a number\)stringc                    t          j                    \  }}||                    dd          }t          j        t
          d|z   dz             5  |                    d| |           d d d            d S # 1 swxY w Y   d S )Nnotzneither a data key norz\Az\Zrz  rs  rf  )r'   r   replacer   r   r  r   )r   r{  r  r-   r"   s        r#   test_plot_format_errorsrw  `!  s     lnnGCe%=>>	z)>	?	?	? * *
#D)))* * * * * * * * * * * * * * * * * *s   A66A:=A:c                     t          j                    \  } }|                    g dd          }|d                                         dk    sJ |d                                         dk    sJ t          j                    \  } }|                    g dd          }|d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    ddgddgdd          }| j                                         |d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    g dd	          }|d                                         d
k    sJ |d                                         dk    sJ t          j                    \  } }|                    g dd          }|d                                         dk    sJ |d                                         t          j
        d          k    sJ |d                                         dk    sJ d S )Nr  z1.0r   )r   r   r   r   r  r,  r9   r:   k3r  r?  z.C12:r   C12r  )r'   r   r   r  r$  r  r   re
  rA  r  r  r4  r
  s      r#   test_plot_formatr{  r!  s   lnnGC77999e$$D7"6666676))))lnnGC77999c""D73&&&&lnnGC77Aq6Aq65#..DJOO7"66666"++--4444lnnGC77Aq6Aq63..DJOO73&&&&"++--6666lnnGC77999d##D73&&&&7#%%%%lnnGC77999g&&D73&&&&7'/%"8"888887  ""c))))))r%   c                  p   t          j                    \  } }|                    ddddi           |                                }| j                                         |                                d                                         dk    sJ |                                d                                         dk    sJ t          j                    \  } }|                    dddddi           |                                }| j                                         |                                d                                         dk    sJ |	                                d                                         dk    sJ |                                d                                         dk    sJ d S )Nr   r-  r  r:   rf  r   r=   )
r'   r   r   rI   r  r   	get_textsrA  re
  r  )r-   r"   legs      r#   test_automatic_legendr  !  s|   lnnGCGGCC8G$$$
))++CJOO==??1&&((C////"++--4444lnnGCGGCcaG)))
))++CJOO==??1&&((C////"++--4444"++--444444r%   c            	      .   t          j        t          d          5  t          j        g dd           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g dg dg dg ddd	g
           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        g ddg           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        t          j        d                     d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        ddddddi           d d d            d S # 1 swxY w Y   d S )Nz"plot\(\) got an unexpected keywordrz  r  r9   r  zplot\(\) with multiple groupsr  r,  r^  r  zx and y must have same firstzx and y can be no greater than)r:   r:   r:   zUsing arbitrary long args withr   r-  r=   r  r:   rf  )r   r   r   r'   r   r  rk   r   r   r%   r#   test_plot_errorsr  !  s   	y(M	N	N	N ! !a    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J O OIIIyyy)))C:NNNNO O O O O O O O O O O O O O O	z)G	H	H	H ! !QC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)I	J	J	J % %##$$$% % % % % % % % % % % % % % %	z)I	J	J	J 4 4c33(33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4sY   AAA'$BBB=C""C&)C&'D;;D?D?!F

FFc            
         t          j                                                    } t          | j        t          d          t          d          t          d                    t          | j        ddgddgg          t          | j        ddgddgg          t          | j        ddgddgg          t          | j	        ddgddgg          fD ])}d} ||          j
        }|j        |j        f|k    sJ *d S )Nr   rL  r   r9   r:   )rj  r  )clim)r'   r   r   r   r;   r   r   rd  r  r  r  r  r  )r"   plot_methodr  r  s       r#   	test_climr  !  s   		!	!	#	#BBJa%((eAhh???BIAA/00BI!Q!Q 011BMQFQF#344BMQFQF#344 	. 	. {%%%*	49%-----	. 	.r%   c                     ddgddgddgddgg} t           j        j        t           j        j        t           j        j        t           j        j        g}t          j        | |          }t          j                    \  }}|                    t          j	        |                     |
                                 |                                d         dk    sJ d S )Nr   r   r9   r  )mpathrB  rF  CURVE3	CLOSEPOLYr'   r   r  r  rE  rp  r   )r  codesr  r-   r"   s        r#   test_bezier_autoscaler  !  s     !WWVVE ZZZZ!#E 	
5%  AlnnGCLL#A&&'''LLNNN ;;==t######r%   c                     t          j        g ddgddgddgddgddgddgddgddgddgddgddgddgddgddgd	dgd	dgd
dgd
dgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd gd!d gd!d"gd#d"gd#d$gd%d$gd%d&gd'd&gd'd(gd)d(gd)d*gd+d*gd+d,gd-d,gd-d.gd/d.gd/d0gd1d0gd1d2gd3d2gd3d4gd5d4gd5d2gd6d2gd6d4gd.d4gd.d7gd8d7gd8d0gd9d0gd9d:gd;d:gd;d*gd<d*gd<d(gd=d(gd=d&gd>d&gd>d$gd?d$gd?d@gdAd@gdAd gdBd gdBdgdCdgdCdgdDdgdDdEgdFdEgdFdGgdHdGgdHdgdIdgdIdgdJdgdJdgdKdgdKdgdLdgdLdgdMdgdMdgdNdgdNdgdOdgdOdgdPdgdPdgdQdgdQdgdRdgdRdgdSdgdSdgdTdgdTdgdUdgdUdgdVdgdVdgdWdgdWdgdXdgdXdg          } t          j        | d d dYf                   }t          j        | d d dZf                   }t          j        | d d dYf                   }t          j        | d d dZf                   }t	          j        |           }t          j                    \  }}|                    t          j
        |                     |                                 |                                dY         |k    sJ |                                dZ         |k    sJ |                                dY         |k    sJ |                                dZ         |k    sJ d S )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r  gffffffgQgףp=
r  g(\g{Gz?gHzGg      ru  gQ g{Gz?gzGr   gRQr+  g(\gQ?g333333g(\?gr2  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r  g(\տg{Gz?g
ףp=
ǿr  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?rb  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   r9   )rk   rW  rn  r  r  rB  r'   r   r  r  rE  rp  r   r   )r  minxminymaxxmaxyr  r-   r"   s           r#   test_small_autoscaler  !  s   H 	t}',dm6;T]	t}',dm6;T] 
 t} (-dm 7<T] 
	 t}	 (-dm	 7<T]	
 

 t}
 (-dm
 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T]  
!  t}!  (-dm!  7<T]!" 
#" t}#" (-dm#" 7<T]#$ 
%$ t}%$ (,Tl%$ 6:4L%$ DH,%& 
t'& Tl'& &*4L'& 48,'& BFt'( 
t)( Tl)( &*4L)( 48,)( BFt)* 
t+* Tl+* &*4L+* 48,+* BFt+, 
t-, Tl-, &*4L-, 48,-, BFt-. 
t/. Tl/. &*4L/. 48,/. BFt/0 
t10 Tl10 &*4L10 48,10 BFt12 
t32 Tl32 &*4L32 48,32 BFt34 
t54 Tl54 &*4L54 48,54 BFt56 
t76 Tl76 &*4L76 48,76 BFt78 
t98 Tl98 &*4L98 48,98 BFt9: 
t;: Tl;: &*4L;: 48,;: BFt;< 
t=< Tl=< &*4L=< 48,=  EB 6%1+D6%1+D6%1+D6%1+D
5AlnnGCLL#A&&'''LLNNN;;==t####;;==t####;;==t####;;==t######r%   c                  p   t          j                    \  } }|                    t          j        d                     t          d          D ]h}|                                |                                         | k    sJ |                                |                                         | k    sJ id S )Nr   )	r'   r   r   rk   rs   r   r  rA  re
  )r-   r"   rF  s      r#   test_get_xticklabelr  "  s    lnnGCGGBIbMMRyy @ @!!##C(1133#x????!!##C(1133#x?????@ @r%   c                     t          j        dt                    } t          j        g d          }t          j        dgdz            }t           j        | d<   t          j                    \  }}|                    | ||          }|                    | ||          }||fD ]}|^}}	t          j	        |j
                                                   sJ t          j	        |                                          sJ |	D ]W}
t          j	        |
j
                                                  sJ t          j	        |
                                          sJ Xd S )Nr   r  )r   r   r   r  r   r  r  )rk   rs   r  rW  r  r'   r   r  r  isfiniter  any	get_widthr  )barx
barheights	barstartsr-   r"   r  hbarsbar_setnanfulrestr-  s              r#   test_bar_leading_nanr  "  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   r9   )r   r   r   r   r  rk   r  rr  r  s       r#   test_bar_all_nanr  $"  s    IMM'!!GFKK26(###KKaS
JJsQC!!!
JJsQCr%   zextent_units.pngc                  "   t          j        dd          \  } }t          j        dd          }t          j        dd          }d t	          d          D             }|d                             d           |d                             |d	d
d||gt          j        d                   }|d                             d           |d                             |d	||d
dgt          j        d                   }|d         j	        
                    t          j        d                     |d                             |d	||||gt          j        d                   }|d         j	        
                    t          j        d                     |d                             d           |d                             |d	t          j        d                   }|                    ||||g           |d         j	        
                    t          j        d                     |d                             d           t          j        t"          d          5  |                    dd||gd           d d d            d S # 1 swxY w Y   d S )Nr:   z
2020-01-01r_  z
2020-01-11c                 F    g | ]fd t          d          D             S )c                     g | ]}|z   S r   r   )r   rK  r]  s     r#   r   z0test_extent_units.<locals>.<listcomp>.<listcomp>6"  s    ###AAaC###r%   r   )r   )r   r]  s    @r#   r   z%test_extent_units.<locals>.<listcomp>6"  s4    
7
7
7####r###
7
7
7r%   r   r  zDate extents on y axisr   r9   rJ  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%dra  zDay of Jan 2020)rq	  r}  )r   r   z set_extent\(\) got an unexpectedrz  r  Fr  )r'   r   rk   rk  r   r5   r   r   r  r[   r   r>  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastarrr  s         r#   test_extent_unitsr  1"  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 r
  )r'   r   r   r   rq  r   r  )r-   r"   r:  rv  arts        r#   %test_cla_clears_children_axes_and_figr  T"  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)r9   r   r   r9   rj  rs  r  rw  )r'   r   r  r  rr  r   )r-   r"   marginalmarginal_twins       r#   test_child_axes_removalr  a"  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_colork"  r  r%   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'rz  zred
r:   r%  )r   r   r  r   rq  r   r  )r  msgr=   s      r#   test_scatter_color_repr_errorr  i"  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   Tr9   )r  r  r|  )r  )r'   r   set_rasterization_zorderr   r   r  r  r  )r-   r"   rl  r-  s       r#   &test_zorder_and_explicit_rasterizationr  w"  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 )Nr9   r   r   z#ddffddz#00ff00r:   r   )r=  r>  r?  r  rs  r  T)clip_onr  )r  r  rM  )r   r  r  r`  z#beefc0r  z#faded0)r=  r  r>  r?  r  r  r#  )r_  r_  )r   ra  r   r?  )r  r  r  r  r  r3   )r=  r>  r?  r  r  r  r  )r'   r   r   rD  Polygonr  r:  r?  set_path_effectsr   withTickedStrokerC  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 )Nr8  zaxes.labelcolorr  zaxes.labelsizerl
  zaxes.labelweight)	r   r   r'   rq  r[   r0   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   r9   r:   r  rR   rS   r  rj  )r  rj  Tr  )r  rT   complementarycompressr  r  rj  r8  )ds)r  r  rH  r*  r   r   r  z	steps-pre)r  r  )rk   rW  r  r   r  r   r  ecdfr	   	get_xdataisnanr  r   rs   )
r    r!   r  r  r   r"   rT   l0l1r   s
             r#   	test_ecdfr  "  s   8Q"&"&!Q:;;DCIIG  A&&Hx*l)CDD H HKWWT{W33WWS#"%++d*;*;'$J$J!,#'$3  @ @ 2<<>>""&;&;&=&=&AAAAA2<<>>""c*BD"(4..,A*B&C&Ca&GGGGGGq!$$GAJOObfWrvgw1aBFCIaLL1$  7 7 7AJOObfWaArvrv6H33344r9"s  , , , AJOOBIaLL1$fWrvgw1aBFC"  $ $ $ AJOOBH33344r9fWaArvrv6#  - - - - -r%   c                  z   t          j        t                    5  t          j        dt
          j        g           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t
          j                            ddgddg                     d d d            d S # 1 swxY w Y   d S )Nr9   r:   TFr  )	r   r   r  r'   r  rk   r  r	   rW  r   r%   r#   test_ecdf_invalidr  "  s   	z	"	"  !RV              	z	"	" : :aV4-88999: : : : : : : : : : : : : : : : : :s#   !AAA+8B00B47B4c            
         t          j                    \  } }t          j        ddt          j        z  d          }dt          j        |          z  }d}|                    ||d           |                                |                                f}|	                    |dd	d
           |
                    |dd||k    dd|                                           |                                |                                f|k    sJ d S )Nr   r8  r  r   g333333?r3  rN  r   r:   r  )r   rT  r  r9   r   )r6  r   r  r<  )r'   r   rk   rs   r  r  r   r   r   ru   r  r	  )r-   r"   r2   r3   	thresholdoriginal_limss         r#   test_fill_between_axes_limitsr  "  s    lnnGC
	!QY%%ABF1IIAIGGAqG   [[]]BKKMM2MJJyASJ999OOAq!1y=!8N8N8P8P  R R R KKMM2;;==)]::::::r%   c                     t          j                    \  } }|                    g dg d           |                    dd           |                    dd           |                    dd	           t          j        d
           |                                D ]"}|                                d         dk    sJ #d S )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptrM  	monospace)r   labelfontfamilyzTitle in sans-serifr   )	r'   r   r   r(   r)   r	  r1   r  get_fontfamily)r-   r"   r  s      r#   test_tick_param_labelfontr  "  s    lnnGCGGLLL,,,'''MM*XM>>>MM*]MCCCNNkN:::I#$$$""$$ 7 7""$$Q';666667 7r%   c                  f   t          j                    \  } }|                    dd          }t          j        |j        d                                         d          sJ t          j        |j        d                                         d          sJ t          j        |j                                        d         d          sJ t          j        |j                                        d         d          sJ t          j        |j        j	        
                                d          sJ d S )Nr?   r8  rN  rP   r   r	  )r'   r   rc  r  r  r	  rv  r[   rN  r0   r  )r-   r"   saxs      r#   test_set_secondary_axis_colorr  "  s   lnnGC


U%

0
0Ccj2@@BBEJJJJJcj/==??GGGGGci7799'BEJJJJJci7799,GOOOOOcio77995AAAAAAAr%   c                  D   t          j        ddd          \  } }g }|d         j                            d|j                   |d         j                            d|j                   |d                             ddgdd	g
           ||d         |d         gk    sJ d S )Nr:   Tr	  r9   xlim_changedylim_changedr   r   r8  rw  )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%   zaxhvlinespan_interpolation.pngc                     t          j                                        d          } |                                  |                     dd           |                     ddd	           |                     d
dddd	           |                     ddd           |                     dddd           |                     dddddd           d S )Nr5  r  r   r  rL  r  r  rU  )fcr@  r   rV  r9   )r=   r  r  rG  )r  r  r  r  )r'   r   r   rx  r  r  ru   r  r  s    r#   test_axhvlinespan_interpolationr   #  s    		!	!W	!	5	5BOOJJrTJJJr2$JJJr2r2$J'''JJqDJ###JJr2$bJ)))JJr2r2$bJ11111r%   r  c                    |                                 }|                                  }i dddddddddd	d
dddddddddddddddddddddddddddd } |j        d#d!|i|  |j        d#d!|i| |                                 |                    d           |                    d           d"S )$z<Test that the given tick params are not reset by ax.clear().r	  r	  r	  r   r  r   zxkcd:wine redr	  r   r  serifr  rj  r	  r  r	  zxkcd:shocking pinkr	  zxkcd:fluorescent greenr	  r   r	  r   r	  r  rP   Fr?   TrQ   rC   )ri  rh  rc  rd  r*  Nr   )r   r	  r  r  )r!   r    r  rx   ry   r  s         r#   test_axes_clear_behaviorr  #  s    !!GFT" 	 		
 	q 	7 	! 	 	* 	. 	c 	! 	#  	%!" 	t#$ 	%& 	'( /  F4 F,,E,V,,,G--U-f---MMOOO
KKLLr%   c                  R   t           j                            d           t           j                            d          } t          j        ddd          \  }}t          j        t          j        d          5  |d	         	                    | g d
           d d d            n# 1 swxY w Y   d |d	         
                                D             g d
k    sJ |d         	                    | g d
           d |d         
                                D             g d
k    sJ d S )Nra   )r   r   r9   r:   T)r  r   rk  zhas been renamed 'tick_labels'rz  r   r  rp
  c                 6    g | ]}|                                 S r   r  rU  s     r#   r   z,test_boxplot_tick_labels.<locals>.<listcomp>B#       ;;;QAJJLL;;;r%   )tick_labelsc                 6    g | ]}|                                 S r   r  rU  s     r#   r   z,test_boxplot_tick_labels.<locals>.<listcomp>F#  r  r%   )rk   rl   rm   r'   r   r   r  r   rl  r  r  r  s      r#   test_boxplot_tick_labelsr  7#  sj    INN89G$$D|!1T:::HC	c6>
@ 
@ 
@ 5 5AtOOO4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 <;#a&"8"8":":;;;NNNN FNN4___N555;;#a&"8"8":":;;;NNNNNNs   9 B%%B),B)c                     g d}|                                  }|                    |dddi           |                                 }|                    |dddi           d S )N)r  r   r:  z%1.0f%%usetexT)r

  r>
  z%1.0f\%%rS
  )r    r!   r  r"   r  s        r#   test_latex_pie_percentr  I#  so     <<D					BFF4x.>F???




CGGD+(D1AGBBBBBr%   r_  (  r  r  r   r<  r  r   	functoolsr   r  r  	itertoolsr   platformr  r   dateutil.tzr:  numpyrk   r	   r
   r   rW   r   r   r   matplotlib.colorsr  r  matplotlib.datesr  r>  matplotlib.figurer   matplotlib.axesr   matplotlib.font_managerfont_managermfont_managermatplotlib.markersr  r  matplotlib.patchesrD  r  matplotlib.pathrA  r  matplotlib.projections.geor   matplotlib.projections.polarr   matplotlib.pyplotpyplotr'   matplotlib.textr  r"  matplotlib.tickertickerr   matplotlib.transforms
transformsr	  mpl_toolkits.axisartist
axisartistr*  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   matplotlib.testing._markersr   r$   r.   r7   rN   rU   rX   r_   r|   r   r   r   r   machiner   r   r   r  r&  r  r  r1  rL  r\  rf  rx  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  rG  rQ  rY  r`  rg  rp  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rs   r'  r/  r;  rE  rN  rS  r[  re  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r-  r1  r6  r;  rB  rG  rI  rK  rO  rQ  r^  rd  rk  ro  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r?  r   r%  Patchr  r:  r?  r(  rC  rH  rQ  rS  rW  rZ  r]  r`  rb  rn  ru  ry  r|  r  r  r  r  r  r  r  r  rW  r  r  r"  r&  r4  r:  rI  rM  rO  rX  rd  rh  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r)  r.  r9  r>  rA  rD  rI  rN  rQ  rU  rX  r[  r^  ra  re  rh  rn  rr  ru  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"  r0  r8  r=  r@  rC  rF  rI  rK  rS  rV  rb  re  rp  rs  ru  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r	  r  r  r	  r"	  r+	  r7	  r<	  rV	  rZ	  r^	  rf	  rj	  rl	  ry	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r  ru   r  r  r	  r	  r	  r	  r	  r	  r   r  r  r	  r	  r	  r	  r	  r
  r
  r!
  r$
  r'
  r*
  r.
  r1
  r6
  rF
  rH
  rN
  rU
  rY
  rf
  rj
  rn
  rq
  rx
  rz
  r|
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  	AxesImager   PcolorImagerl   QuadMeshr   r   r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   r  r  fixturer  r  r  r  r   r#  r%  r+  r-  r3  r7  r:  r@  rD  rI  rK  rY  r^  ra  rf  rj  rm  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r   r#  r(  r+  r5  r8  r;  rC  rE  rG  rI  rL  	TransformrN  rg  rk  rn  rv  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  font_scalingsr  r  r   r"  r$  r&  r*  r1  r3  r8  r:  r=  r?  rC  rE  rH  rK  r  rN  rP  rR  rX  r[  ra  rg  ri  ro  rq  rw  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r%   r#   <module>r     sLV       " " " " " "               				        ! ! ! ! ! !                              . . . . . . . . # # # # # # ! ! ! ! ! ! $ $ $ $ $ $             / / / / / / % % % % % % % % % % % %       1 1 1 1 1 1 2 2 2 2 2 2             # # # # # # + + + + + + $ $ $ $ $ $D D D D D D D D D DD D D D D D D D D D 4 4 4 4 4 4 (((  )(
( ( (M M M / / /$ . . .$ / / /(F F F, (((( ( )(($ (((( ( )((( (((, , )(,*3 3 3 (((, , )(,      0x/11W<<ee!E E E$ $E E$NJ J J4G G G2 2344  540" " ". ,,J J -,J  ,,T222'% '% 32 -,'%T '(/x/11W<<ee!E E E E E", , ,"1 1 1h0 0 0f/ / / (((  )( )*===% % >=% 9! ! !. 93 3 3" 90 0 0$ (((  )( )*GLLL6 6 ML6$  , , ,@ @ @ ?#666; ; 76; %&D999) ) :9)4( ( (' ' '' ' '   #$UBK@@@  A@B5 5 5 (((
J 
J )(
J; ; ; >>233' ' 43'" $%W555- - 65- (((  )(/ / / =/ug"'3 3 3/ /3 3/ ?#$$* * %$* ?#...* * /.* &(;<$OOO< < PO<	- 	- 	- %&D999
* 
* :9
*' ' ' #$G444  54$ &'wDIII	( 	( JI	($ $ $ (((## ## )(##L$ $ $4 %&''  (' 9<<<> >(((
< 
< )(> > 
< 8X&DHHH  IH( O7  ""&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/x/11W<<ee!E E E' 'E E'. 89T3 3 3 3 3& 12EEE1 1 FE1& <.!!  "! =/t444	  	  54	 ( ( ( <.d3332 2 432. %&E7;;;  <;2 %&E5>"$ $ $F F$ $FB '9::(((G G )( ;:G 12'BBB# # CB#6 -.g>>># # ?>#0/ / /B
 
 
- - -. (((0 0 )(0 (((0 0 )(0/ / // / / %//(((( ( )( 0/(" ;--=X-=-?-?7-J-JTTPQRRR  SR
 #$$iHHH  IHB =/t444! ! 54!H0 0 0 ;-T222
 
 32
 #$$EBBB  CB" ,-4UKKK; ; LK;0 34$GGG  HG4 )*===; ; >=;4 $%YDIII? ? JI?. 12EEE; ; FE;2 >"555= = 65= .0KLMM	> 	> NM	>     
  
 0122  32 DEFF  GF (((
# 
# )(
# (((
= 
= )(
= (((
+ 
+ )(
+ (((
- 
- )(
-6 6 64 4 4 ()**  +*  4P P P ' ' '  "+ + +<3 3 3&% % % 9
% 
%  
% A	a|nc*	,,,	,	(	,,,(@(@(@	!	!	!<	1	,,,	3	3	3V	= 8 8 80 0 0
 
 
 :,D111( ( 21( (((7 7 )(72 2 2 '(d;;;    <; + + + ()t<<<! ! =<! )*===H H >=H$ %&''    (' - - -! ! ! *),++EEG/ / /	  0 0E E0 0E" 9q'4)8Q-)* *: :	* *: + #+"3":;!39#3#:;'):)ABDE E, ,	E E, (((( ( )((V (((# # )(#2 (((  )(. (((	 	 )(	* * *+ + +
# # #
) ) )' ' ' ,-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/x/11W<<ee!E E E E E( ,-4@@@E E A@E0   * 4 4 4 4$ %&!&!# # # # # &'!&!# # #7 7# #7 +,!&!# # #6 6# #6 )*!&!# # #0 0# #0 '("!&!	  
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 )*GLLLE E MLE0 0 0B B B@ @ @A A A (((5 5 )(5 (((E E )(E	+ 	+ 	+F F F) ) ) HHHII3; 3; JI3;l ./UG"$ $ $< <$ $<BE E E > > >9 9 9$ $%&&+4 +4 '&+4\C C C3 3 3" (((  )((5 5 5"7 7 7*6 6 6 (3 (3 (3V 			(0(;(;()(+ , ,N N, ,N ((() ) )() ,.GHII
A 
A JI
A =/""  #" ?#666  76 ()**A A +*A )*++M M ,+M :,g4@@@  A@> > >,>4 >4 >4B   )*'tLLL& & ML& 2344F F 54F &'((5 5 )(5 ()**2 2 +*2 )*==== = >==1 1 1	1 	1 	14 4 404 4 40 %&''E E ('E"" " "9 9 9
' ' ' ()t<<<3 3 =<3 >"555  65  #$$777  875 5 5.5 5 5* <.d333" " 43": ;,$???(+ (+ @?(+V 01tDDD  ED  ( & & &  
1 1 
1*2 2 2( 67TJJJ" " KJ"8   2$aV1vrl!CDD(H(H(HII  JI ED (((  )( &'T:::@ @ ;:@ &'/x/11W<<ee!E E E& &E E& '(d;;;  <; '):;+8+--99aauF F F) )F F)8 	, 	, 	, ! ! !, ) ) )  ( ( (&  ( FFF#W& & &# #& &#L? ? ? FFF#W& & &# #& &#L? ? ? 1aBFA"6"$%"4"4___a"H"H"J K K(((J J )(K KJ 45#WG5 5 5	 	5 5	 #%56D    > %&D999  :92? ? ? 8 8 8$i1 1 1J J	1 1J@ L L L$i1 1 1J J	1 1JB = = =$i1 1 1, ,	1 1,D% % % ((() ) )()"- - - HHH%! ! !) )! !)> ! ! ! 	 	 	) )	 	)@- - - (((  )( $%4/x/11W<<ee!E E E)& )&E E)&X +-EF"$ $ $E E$ $E: C F F F  
0 0 
0= = = 
= 
= 
= (((  )(&. . . 3;T*J+.;V*L*N O O( (O O(	 	 	
- 
- 
-2 2 2C C C(% % % 3$fb./ &y"#$ %1vj"8:$eeggt}#$ " " "
# # #4 ,,- - -,-  2$ $ $ $%4000; ; 10; KKK#WG? ? ? ? ?> *+7EEE  FE& ()dCCC  DC %&g4@@@  A@ '(UCCC  DC4 ./wEJJJ  KJ %&D111
 
 21
 #$G???? ? @??.8 8 8,0 0 0/ / / ) ) ) 6 6 6 +,/x/11W<<ee!E E E3 3E E32- - - (((2 2 )(2*C C C	/ 	/ 	/1 1 1   /0115 5 215) ) )8 8 8& +,UBKHHH7 7 IH7!: !: !:H# # ## # # 3	UB DE	Wb"FG	UUWWsBi)MN	UUWWsBi)MN	E++	K	M	EC8	K	M	Ir#KL
6 
 
$ $
 
$  ' ' '0  ( ( (& & &    C C C4 ?#E2;???  @? =/%===% % >=%*1 1 1(- - -.M M MO O O 	SY !	39./
%((EE!HH	sy23


LLL	)			 
)

6
"
"BI$4$4V$<$<	=		!	#
 
 
YRYr]]""6**BINN1a,C,CD 1 1 
 
1
G G G+ + +$! ! !% % %
7 7 7, #;#;#=#=>>  ?> =/t444; ; 54;N N N ( ( ($ D%=11  21 <.d===6 6 >=6 +,$g/x/11W<<ee!E E E6 6E E6* 9* * *B Sz"""; ; #";$ IIIJJJ  KJ   ; ; ;= = ="	3 	3 	3 9G G G 9F F F! ! !
L L L% % %8 8 89 9 9       
 
 
2 2 26
B 
B 
B	C 	C 	C? ? ?? ? ? % % %      ()s3335 5 435$ ()**N N +*N$ ./S999K K :9K$ ?#666- - 76-&! ! !* * *- - -- - -        
 
   
 
 &
' 
' 
'; ; ;8 8 8      H H H) ) )& 9J J J6B B B	. 	. 	.  
 3	qcU]B/1NO	qcU]B/1NO	qcU\2.0LM	qcU\2.0LM	qcUWbM+BC	aS"AB	qcU]QF3	@	B	qcU]QF3	@	B	qcU\Aq62	?	A	qcU\Aq62	?	A	qcUWq!f-	:	<	qcUX1v.	;	=#6  (' ') ('
N N N	 	 	 He#455He#455  65 65G G G, , ,
   ((($ $ )($ (((7 7 )(7
	 	 	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4GQU/x/11W<<ee!E E E2 2E E2& & & & &;( & & & %&g/x/11W<<ee!E E E, ,E E,,
3 
3 
3G G G+ + +0D D D. . . %&DHHHP P IHP"+( +( +(\$N $N $NN= = =<= = =6F F F,D D D> (((( ( )(() ) ) ) ) )"  0 0 0  2 2 2$ $ $
6 
6 
6. . .1 1 161 1 1.% % %	 	 	  1 1 1? ? ?? ? ? ,,!455/ / 65 -,/$ (((> > )(> 9) ) )1 1 11 1 17 7 74 4 4  "7 "7=3N "7 "7 "79D"E F F9M M F FM- - -L L L (((K K )(K& (((  )(5 5 5 :::;;/ / <;/
6 
6 
69 9 9
9 
9 
99 9 99 9 99 9 9
9 
9 
9 :;<<  =<
! 
! 
!
6 
6 
6 
Hho!  + + +( ( (' ' '9 9 99 9 92 2 2(O O O 9O O O+ + +\    (   $5588(<!=>>* * ?> ** * *:5 5 5"
4 
4 
4. . .$ $ $*1$ 1$ 1$h@ @ @. . .0 (((	 	 )(	 %&g666B B 76BD
" 
" 
"( ( (M M M% % % *+W/x/11W<<ee!E E E! !E E!H 95 5 5 (((- - )(-2: : :; ; ; 7 7 7B B B& & & 34IFFF2 2 GF2 (((*--& & .- )(&RO O O$ C C  C C Cr%   