
    Ng                    ,Y   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             Zp eHdDgd8dAB          dE             ZqdF ZrdG ZsdH Zt eHdIgd89          dJ             Zu eHdKgd89          dL             ZvdM ZwdN ZxdO ZydP Zz eHdQgdRdSiT          dU             Z{dV Z| eIdg          dW             Z}dX Z~ eHdYdYg          dZ             Z eHd[gdA\          d]             Z eIdg          d^             Zd_ Z eHd`gdgd8dAa          db             Z eHdcg          dd             Z eHdegdf"          dg             Z eHdhdhgd89          di             Zdj Z eHdkgd89          dl             Zdm Z eHdngdA\          do             Z eHdpgdAd8q          dr             Zds Z eIdg          dt             Zdu Z eHdvg          dw             Zejj        k                    d;          ej_        `                    dxg dy           eIdg          dz                                     Z eHd{d{gd8dAB          d|             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        dddf           ej        d          df ej        dddf          d ej        d          fgg d          d             Zej_        `                    d ej        d          ddf ej        dddf           ej        d          df ej        dddf          d ej        d          fgg d          d             Z eHdgd8 ejY                    d k    rdnd           d             Z eHdgdAd8q          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dA\          d             Z eHdgdA\          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dfn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;d8q          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 eHdg          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_        `                    d0 e             ed1 ej        g d2g          3          f ed45           ed4 ej        g d6g          3          f ed4d13           ed4 ej        g d6g          3          f ed17           ed1 ej        g d2g          3          f ed1d8g7           ed1d8g ej        g d2g d9g          3          fg          d:             Z[[ej_        `                    d; e            df ed15          df ed4,          d4f ed4d8g,          d4d8gf ed4<          d4f ed=,          d=f ed>,          d>f ed4d8?          d4f ed1d4d8@          d4f ed47          d4f ed4d8A          d8fg          dB             ZdC ZdD ZdE ZdF ZdG ZdH Z  eHdIdIg ejY                    d k    rd!nd "          dJ             Z eHdKgd89          dL             Z eI            dM             Zi dN i fdOZ eHdPgdRdQid;R          dS             Z eHdTgdRdQid;R          dU             Z eHdVgdRdQid;R          dW             Z eHdXgdRdQid;R          dY             Z eHdZgd8dRdQid;d[\          d]             Z	 eHd^gdRdQid;d[_          d`             Z
 eHdagd8dRdQid;b          dc             Z eHddgd8dRdeid;b          df             Z eHdggd8dRdQid;b          dh             Z eHdigd8dRdQid;b          dj             Z eHdkgd8dRdQid;b          dl             Z eHdmgd8dRdQid;b          dn             Z eHdogd8dRdQid;b          dp             Z eHdqgd8dRdQid;b          dr             Z eI            ds             Z eHdtgd8dRdQid;b          du             Z eHdvgd8dRdQid;b          dw             Z eHdxgd8dRdQid;b          dy             Z eHdzgd8dRdQid;b          d{             Z eHd|gd8dRdQid;b          d}             Z eHd~gd8dRdQid;b          d             Z eHdgd8dRdQid;b          d             Z eHdgd8dRdQid;b          d             Z eHdgd8dRdQid;b          d             Zd Zd Z eHdgdRdQid;R          d             Z eHdgdRdQid;R          d             Z d Z! eHddgdd;          d             Z" eIdg          d             Z# eHdgdRdQid;R          d             Z$ eHdgd8d;B          d             Z% eHdgd8dRdQid;b          d             Z& eHddgd;\          d             Z'd Z( eHdgdRdeid8dd;          d             Z) eHdgd8dRdQid;b          d             Z* eHdgd8dRdQid;b          d             Z+d Z,d Z-d Z.d Z/ eHdgd8dRdQid;b          d             Z0 eHd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          dĄ             Z> eHdgd8dAB          dƄ             Z?dǄ Z@dȄ ZAdɄ ZBdʄ ZC eIdg          d˄             ZD eIdg          d̄             ZEd̈́ ZFd΄ ZGdτ ZH eHg dТ          dф             ZI eHdgdgd8          dӄ             ZJdԄ ZK eI            dՄ             ZLdք ZM eHdg          d؄             ZNdل ZOdڄ ZP eIdg          dۄ             ZQd܄ ZRd݄ ZSdބ ZT eI            d߄             ZUej_        `                    dg d ej        g d          dg          d             ZV eIdg          d             ZW eHddg          d             ZX eHdg          d             ZY eHdgd89          d             ZZ eHdg          d             Z[ eHdg          d             Z\ eHdgdAd8q          d             Z]d Z^d Z_d Z` eHdgdAd8q          d             Za eHdg          d             Zb eHdg          d             Zc eHdg          d             Zd eHdgd89          d             Zed Zfd Zgd Zhd  Zi eHdg          d             Zjd Zkd Zld Zm eHdgd89          d             Zn eHdgd89          d	             Zo eHd
gd89          d             Zpd Zqd Zr eHdgd89          d             Zs eHddgd89          d             Zt eHdgd89          d             Zuej_        `                    dg d          d             Zvd Zw eHdgd89          d             Zxd Zyej_        `                    dg gg d dggd dgg gg          ej_        `                    dg d          d                         Zz eIdg          d             Z{ 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d0 Z eHg d1dg          d2             Zd3 Z eHg d4dg          d5             Zd6 Zej_        `                    ddddej        d7gej                            g d8d9          g           eIdg          d:                         Z eHd;gdgdA<          d=             Z eHd>d>gd8d?          d@             Z eHdAgd89          dB             ZdC Z eHg dDd8dEd;F          dG             Z eHg dHd8dEd;F          dI             Z eHg dJd8dEd;F          dK             ZdL Z eIdg          dM             ZdN Z eHg dOd8dP          dQ             Z eHg dRd89          dS             ZdT Z eIdg          dU             Z eHdVgd8 ejY                    d k    rdWnd           dX             Z eHdYdYgd89          dZ             Zej_        `                    d[g d\          d]             Zd^ Zd_ Z eIdg          d`             Zejj        k                    dA          da             Zdb Zej_        `                    dce6j        e6j        ddge6j        e6j        degg          df             Zdg Zdh Zdi Zdj Zdk Zej_        `                    dledmi dnfedoi dpfeddgfi dqfe e            drdidsff          dt             Zdu Zej_        `                    d)d*          dv             Zdw Zdx Z eHdygdz"          d{             Z eHg d|dgdAdz}          d~             Z eHdgdAdz          d             Z eHdgdAdz          d             Z eHdgdAdz          d             Z eHdgdAdP          d             Z eHdgdAd0          d             Z eHdgdz"          d             Z eHdgdAdP          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dRdiT          d             Z̐d Z͐d Zΐd Zej_        `                    dledi dfedi dfe e            ddidfe e            ddidfeddddd*dfeddddi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dRdQiT          d             Z eHdgdRdQiT          d             Zڐd Zېd Zܐd Zݐd Zej_        `                    ddej        j        fdej        j        f ed7           ed9          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d9d          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d8df          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_        `                    dg 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_        `                    dl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+d0 Z,d1 Z- eHd2gd8dAB          d3             Z.d4 Z/d5 Z0ej_        `                    d6dd8g          ej_        `                    d7dd8g          d8                         Z1d9 Z2d: Z3d; Z4d< Z5d= Z6d> Z7 eHd?gdAd8 ejY                    d k    rdnd @          dA             Z8 G dB dCe?j9                  Z: eHdDgdA ejY                    d k    rdEnd           dF             Z;dG Z<dH Z=dI Z>dJ Z?dK Z@ eHdLgd8dAB          dM             ZAdN ZBdO ZCdP ZDdQ ZEdR ZFdS ZG eIdg          dT             ZHdU ZIdV ZJdW ZKdX ZLdY ZMdZ ZNd[ ZOd\ ZPd] ZQd^ ZRd_ ZSd` ZTda ZUdb ZVdc ZWdd ZXde ZYej_        `                    dfd*          ej_        `                    dgdh          di                         ZZ eIdg          dj             Z[ejj        k                    d;          dk             Z\dl Z]dm Z^dn Z_do Z`ej_        `                    dpdq e&ja        D             g drz             ejj        k                    d;          ds                         Zbdt Zcdu Zd eIdg          dv             Ze eIdg          dw             Zfdx Zgej_        `                    dyg dz          d{             Zhd| Zid} Zjd~ Zkd Zld Zmd Znd Zo eHdg          d             Zpd Zqd Zrej_        `                    ddddjs        g          d             Ztd Zud Zvd Zwd Zxd Zyd Zzejj        k                    d;          d             Z{d Z|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dA\          d             Zd Zd Zd Zd Z eHdgd8dA ejY                    d k    rdEn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;\          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      V/var/www/html/ai-engine/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%   zsticky_tolerance_cf.pngc                  |    t          j                    \  } }ddgx}}ddgddgg}|                    |||           d S )NgGZP@g    `P@r   r9   r:   r   )r'   r   contourf)r-   r"   r2   r3   datas        r#   test_sticky_tolerance_contourfr    sN    lnnGCx  AFQFDKK1dr%   c                      t          j        t          d          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nz0 were 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   r  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datetimer:  Durationrk   rs   mdatesdate2numr'   r   r   fillautofmt_xdate)r   r  valuedayr7  dtnr-   r  r$  r%  ax4inds               r#   test_fill_unitsrJ  +  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_redundantrT  M  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:   )rW  rX  dashes)rk   r  rl  rS  abs
set_dashes)r    r!   r2   r3   ry   rx   r   r  s           r#   test_errorbar_dashesr\  X  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>g  s    $$$BR$$$r%   r   r2   r3   rW  )r   r'   r   rS  r(  r)  )Dr-   r"   s      r#   test_errorbar_mapview_kwargrc  f  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_pointrj  l  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   rP  rQ  )r'   r   rA  rB  rk   
datetime64r   r   r  r   MatplotlibDeprecationWarning	plot_dater   )r7  time1data1r-   r"   s        r#   test_single_daters  ~  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   ri  r9   rP  )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   r3  r4  r9      r6     r   r         ?)r=  alphar  )r   r   r   r   r>  r?  r@  rF  convertr'   rl  axvspanr  r   t0tfr7  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@  rF  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   )rm  rm  )r  r  mincntr   c                      t          |           S r  )r  )vs    r#   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>P  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  1  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  X  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  r  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-01r9  r  C0rQ  )rk   rs   r   r.  r   r  )r  r    r!   r2   rx   ry   r"   s          r#   test_limits_empty_datar  }  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:   rP  ri  )rW   r   rk   indicessqrtr'   r   r   )Nr2   r3   rP  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)aarch64r   ppc64les390xgףp=
?)r   r   c                     dt           j        d<   d} t          j        | | f          \  }}|| dz  z  }|| dz  z  }t          j        |dz  |dz  z   ||z  z
            }t          j                    \  }}|                    || 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   rP  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_inputr2    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  blackrQ  white/)wherer=  hatchinterpolater;  )r9  r=  r;  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"@rm  r  )g@gffffff@gffffff@)ry  ry  r  ztab:redkr   T皙?r9  r=  r;  r  r;  r   r      X  )rk   rW  r'   r   r   r0  r  r  )r  r  profr-   r"   s        r#   (test_fill_between_interpolate_decreasingrH    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   rB  r=   r-  r   Tr   rD  r;  )rk   rs   asarrayr  r'   r   r   r  r)  s        r#   !test_fill_between_interpolate_nanrQ  !  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  ry  r  rL  )i@B i  r  r  r   r   r   r   symloglinearr   i )rk   rW  r'   r   r   r  
set_xscaler  r  s       r#   test_symlogrV  5  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  rS  )	linthreshTr   皙r   )	rk   rs   r'   r   r
  r   rU  r  r  )r2   r-   r  r"   r\  s        r#   test_symlog2r^  A  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      ra        r        пr   r  r         ?r         ?r   r   )rk   r  hypotr'   pcolorr'  )r2   r3   r  r  r  s        r#   test_pcolorargs_5205rh  N  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   rB  rT  
edgecolorsr-  wgouraudshading)r'   r   rk   r  r  ro  r  rf  minptpr	   masked_whererZ  r  r   r  )r  r2   r3   r  r  QxQzr  Zmr  r  r$  r%  s                r#   test_pcolormeshrw  \  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:   rj  r   r   r  r   rB  rk  r-  rm  rn  ro  )rk   r  r  ro  r  rf  rq  rr  r	   rs  rZ  r  r'   r   r  rq  set_axis_off)r  r2   r3   r  r  rt  ru  r  rv  Zm2r-   r  r$  r%  rH  r"   s                   r#   test_pcolormesh_smallr}  t  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   rC  r  r9   )r   r  rp  r  rn  )r   rp  r  )r'   r   rk   r  r  r  rf  rq  rr  r   	colormaps	resampledrs   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  rt  Qyr  vircolorsr   r-   r  r$  r%  rH  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  rC  \(\?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 )NrC  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  rg  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   rn  ro  r   r  invalidmask)ig  r   r9   r  r   z.are not monotonically increasing or decreasingrz  auto)rk   r  r  rf  r'   r   r   r   r   r  Tr  r  r  r	   rW  zerosr  r  rR  )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  boolrg  )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:   ry  r  ro  r   r   r   rk   rs   rl   rm   r  r  diffr    r!   r"   r2   r3   r  rZ  r[  s           r#   test_pcolornearestr  6  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>I  s-    FFFq		(	(T	2	2FFFr%   r   r   r   ra   r:   ry  r  ro  c                 X    g | ]'}t           j                             |d z   dz            (S )r   r  r  r  s     r#   r   z+test_pcolornearestunits.<locals>.<listcomp>Q  s2    	N	N	N(

)
)1s7d*:
;
;	N	N	Nr%   r   r   )	r   r   rk   rs   rl   rm   r  r  r  r  s           r#   test_pcolornearestunitsr  F  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   ry  r   ra   zDimensions of Crz  r  ro  )r'   r   rk   rs   rl   rm   r  r   r   r   r  r-   r"   r2   r3   r  s        r#   test_pcolorflaterrorr  V  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  ro  )	r'   r   rk   r  rs   r   r   r   r  r  s        r#   test_samesizepcolorflaterrorr  `  s    lnnGC;ry||RYq\\22DAq	AA	y(?	@	@	@ / /
aAv.../ / / / / / / / / / / / / / / / / /s   3BB!BsnapFc                    |                                  }t          j        dd          }t          j        dd          }t          j                            d           t          j                            dd          }|                    ||||           |                                 }|d d         t          j        |          d	z  z   }|d d         t          j        |          d	z  z   }|                    ||||           d S )
Nr   r   r8  ra   r   ry  )r  r   r:   r  )	r    r!   r  r"   r2   r3   r  rZ  r[  s	            r#   test_pcolorautor  h  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  {  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  ry  -   r  r  )theta1theta2r   r   )r'   r   r  r  r  r  EllipseArcr   rk   ro  deg2radr  r  r  )
rm  r  centrer5  r-   r  rK  r"   r  r  s
             r#   test_arc_anglesr    s    	
A	AFE|Aq!!HC38$$  2S1"
X%fa#>>>???
X\&!QvfMMMNNN

6 2 2333fQi?
6 2 2333fQi?A 
6 2 2333fQi?
6 2 2333fQi?A	B 	B 	B 	UFE"""
UFE""" 	
R	R)b.&)b.1- r%   arc_ellipsec            	         d\  } }d\  }}d}t          j        t          j        d                    }|dz  t          j        |          z  }|dz  t          j        |          z  }t          j        |          }t          j        t          j        |          t          j        |           gt          j        |          t          j        |          gg          }	t          j        |	||g          \  }}|| z  }||z  }t          j                    }
|
	                    dd          }|
                    ||d	d
d
dd           t          j        | |f|||ddd          }|                    |           |
	                    dd          }|
                    ||d	ddd           t          j        | |f|||ddd          }|                    |           d S )N)gRQ?gp=
ף?)r   r  r  r   rh  r  )r   r  yellowr9   )r  r=  r>  r?  r  r:   F)angler?  rC  r  ri  equalr   )r  r=  r>  r  )rk   r  rs   ro  r  rW  rr   r'   r   r   rC  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   rL  )r8  r   r:   )r   r8  r   )r'   r   mmarkersMarkerStyler   r;   rS  )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_scalesrZ  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  rL  r   r   r   r  r  r   r   r  r   r  r   ?r   r9   )\(?r   r:   r   markevery=%sr   rM  r8  lsmsr	  )slicerW   gridspecGridSpecr  rk   r  r  r  r'   rs  r1   strr   
casescolsgsdeltar2   r3   rK  caser|  r}  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   rM  r8  r   )r  g@)rj  g333333?)r#  rW   r$  r%  r  rk   r  r  r  r'   rs  r1   r&  r   r   r   r'  s
             r#   #test_markevery_linear_scales_zoomedr0  	  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   rM  r8  r   )r#  rW   r$  r%  r  rk   r  r  r  r'   rs  r1   r&  xscaler  r   r'  s
             r#   test_markevery_log_scalesr4  $  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   rM  r8  r   )r#  rW   r$  r%  r  rk   r  r  r  r'   rs  r1   r&  r   )	r(  r)  r*  rP  r  rK  r,  r|  r}  s	            r#   test_markevery_polarr9  ?  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   rY  F   r  r   rM  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>  W  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.      >@rP  )r"  mewmecr   r  r:   r-  )rk   r  r'   r   r   r  r2   r-   r"   s      r#   test_marker_edgesrE  q  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_labelrh  r   r-  )rH  rI  r  )r'   rl  r  r   )r"   r  r-   s      r#   test_bar_tick_label_singlerJ  z  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_valuesrL    s5    lnnGCFFAq6BFA;r%   c                  ^    t          j                    \  } }|                    g g            d S r  )r'   r   r  r,   s     r#   test_bar_ticklabel_failrN    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  rI  rH  )r'   rl  r  r  s    r#   test_bar_tick_label_multiplerR    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   rP  r:   r  r   r   r-  rQ  )rW   r   r'   rl  r  r  s    r#   *test_bar_tick_label_multiple_old_alignmentrT    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  rj  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>  rY  r%   rZ   rH  r   r  r    r!   r"   x0y0r2   r3   s          r#   test_bar_decimal_centerra    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 )NrV  rW  c                 ,    g | ]}t          |          S r   r   r  s     r#   r   z,test_barh_decimal_center.<locals>.<listcomp>  rY  r%   c                 ,    g | ]}t          |          S r   r   r[  s     r#   r   z,test_barh_decimal_center.<locals>.<listcomp>  rY  r%   )r   r   r9   r9   rZ   r  rH  r   r  r^  s          r#   test_barh_decimal_centerrg    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 )NrV  rW  r  g333333?r9   r:   c                 ,    g | ]}t          |          S r   r   r   rK  s     r#   r   z*test_bar_decimal_width.<locals>.<listcomp>  rY  r%   rZ   r  rH  r]  )r    r!   r2   r3   w0rm  r"   s          r#   test_bar_decimal_widthrn    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 )NrV  rW  ri  c                 ,    g | ]}t          |          S r   r   rk  s     r#   r   z,test_barh_decimal_height.<locals>.<listcomp>  rY  r%   rZ   re  rf  )r    r!   r2   r3   h0r  r"   s          r#   test_barh_decimal_heightrr    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  rP  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_alphar}    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  rP  r9  rt  rv  ru  rw  rz  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   rP  r:   r  r   r   r-  rZ   )r  rI  rH  )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:   )rW  r  )r  )r  rX  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  rn  r'   r   r  r   r^   r   rA  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   ry  r   )r  r  r   r   )	capwidthswidthsr9   r  r:   r  r   r8  r  r  rm  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   rm  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  6  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  monthrF  rE  )r  r  rF  daterE  r   rZ   rl  oranger8  rS  )		DataFrameto_datetimegroupbyr  indexr'   r   r  r   )r  dfmonthlydatesforecastbaseliner-   r"   s           r#   test_bar_pandasr  T  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  rC  r  )r2   r  r  r  r   r  )r  r'   r   r  r2   r  r  r  r-   r"   s       r#   test_bar_pandas_indexedr  g  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   r:  r:  )r   r   r  )r    r!   rx   ry   r2   r3   hatchesrK  s           r#   test_bar_hatchesr  o  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  ~  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  Float64r}  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)rC  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  bcrP  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   rC  TFr:   r  r8  r  )nrowsncolsr  stackedr8  rX  rP   r  c              3   j   K   | ].}|                                 |                                k    V  /d S r  )rx  ry  )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 )Nrn  )rk   rP  r  s    r#   r  r  	  s    rz$'E'E r%   )rB  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   rM  r:   r   rK  T)r  r  F)
r?  r'   r   r  rk   r   r   r   r  rB  )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   rP  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+  :	  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_stairsrF  F	  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rC  r9   rR   )rT   rC  )r  rC  r   )r  rT   rC  r   post)r  rT  )r   r>  r?  r  rk   r  r  r0  r  r   r  )r    r!   r  r  bsrD  rE  s          r#   test_stairs_fillrK  r	  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  r4  )	r   r?  r  set_datark   rs   allcloseget_datar  )r    r!   r   test_axr  ref_axs         r#   test_stairs_updaterT  	  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  rm  r4  r5  r6  r7  r8  )r   r  rm  rm  r:  r;  r   )r   r?  r   r   r  )r    r!   rR  rS  r   s        r#   test_stairs_baseline_0rV  	  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  rw  )r'   r   r   r?  r   r   r  s    r#   test_stairs_emptyrZ  	  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_nanr]  	  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  r\  rz  rM  )r'   r?  r   r   r  rO  rk   r  r  s    r#   test_stairs_invalid_updaterc  	  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   rM  )r'   r?  r   r   r  rO  rk   rs   rb  s    r#   test_stairs_invalid_update2re  	  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   rC  r0   r;  rR   r  )r   rC  rT   r0   r  rN  r:   r  )r   r!  rT  r0   r   rb  )r!  rT  r  rT   r0   r      E)r   r!  rT  r  r0   r-  rN  r  F)r  r   r!  rT  r0   r  r5     r   G)r  r   r!  r0   rC  rM  r6  r  //H)r   r!  rT  r  r:  r0   r   r@   )rk   rW  r   r  copyr  r'   r   r?  r  r  rI   )r2   r3   ynr-   r"   s        r#   test_stairs_optionsrq  	  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   rn  xticks)fr"   s     r#   test_stairs_datetimerx  	  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  r;  T)r   rC  rH  )r   r?  	set_color)r    r!   rR  rS  sts        r#   test_stairs_edge_handlingr|  	  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 )Nrm  )r8  \rm  rM  r  r   r   )r  r   extendr  )r  r'   r   r  r   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  5
  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  C
  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   rP  r3   r-  limerL  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_plotK
  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  )r0  rY  r  r   )rB  rP  gr-  r  )r=   r  rl  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_markerV
  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  rl  )rk   rs   r  r'   r   r;   )r  r2   r3   r  r-   r"   s         r#   test_scatter_2DzTestScatter.test_scatter_2Do
  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 )NrV  rW  c                 ,    g | ]}t          |          S r   r   rk  s     r#   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>|
      ---Qgajj---r%   c                 ,    g | ]}t          |          S r   r   rk  s     r#   r   z4TestScatter.test_scatter_decimal.<locals>.<listcomp>}
  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_decimalx
  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  rQ  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  rj  r5  ?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_colorry  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  rB  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  rB  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   rO  )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   rO  )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)r;  N)r9  N)NN)rP  r  r-  r9  N)jauner  r  r8  r   r   r   r  )r  z0.4r  r  )r  r;  r  C5)r  r   r  r  r  r9   r   r   r   r;  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 RGBr6  )r=   rl  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   rQ  r8  r:   rO  )r   r;   rk   r   r   )r  r    r!   rgbrgbary   rx   s          r#   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_cC  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_linewidthsS  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   rC  r  r  )r  r?  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r  )rl  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_argumentsa  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  J
  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  )rl  c                    | |||ni |fS r  r   )r=   r  rl  r  s       r#   _paramsr  w  s    zV%766RGGr%   _resultz	c, colorszparams, expected_resultr-  rP  )r=   r  rP  rO  r  rQ  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  |  sh       !X]D	5%35 5Av{!!!!!FO233333r%   zkwargs, expected_edgecolorsr  r  r9  )r>  rl  )r=   r>  rl  )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=   rl  r:   )r  r  )popr   rq  r   r  )r  expected_edgecolorsr  r=   rl  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  rC  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.  r0  r   r%   r#   Polarr+    s7        	" 	" 	"	B 	B 	B 	B 	Br%   r1  rP  r  y   )	rk   r  r-  r'   rq  typer   ru  rs  )r1  prjprj2r"   s       r#   test_as_mpl_axes_apir6    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  r3  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}}$)r3  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   r  r   r  r   r  r   )r0  r   )r1  r   )r2  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   rE  rF  rG  rH  )r'   r   r   rk   r6  r  r  r  rU  r[   r^   )r-   r"   rv  ytickss       r#   test_log_scalesrK    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  )r3  r  r9   r9   r   )	r'   r   r   r[   r  r   MultipleLocatorr   r   r  s     r#   test_log_scales_no_datarO    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   rU  r   r  rR  r  r  r  r,   s     r#   test_log_scales_invalidrQ    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[  rV  )r  C1C2)r  r  )	r'   r   rk   r  r   	stackplotr  r  r   )r-   r2   r  r[  rV  r"   r  s          r#   test_stackplotrZ    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>.layers7  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  rY  r:   r  zeror4  r  symr9   r   wiggler  weighted_wiggle)rk   rl   rm   r'   r   rY  r   r  )r`  r  r-   r  s       r#   test_stackplot_baselinerf  3  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   rm  \\r7  )r:  r  rT  rU  r2   )r:  r=  rm  rh  )	rk   r  r   rY  r  r  r  r  r  )	r!   r    r2   r  r[  rV  rx   stack_baselinery   s	            r#   test_stackplot_hatchingrj  L  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  b  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  re  r   )r.  r8  )meansigmar  vertTr6  patch_artistFr
  boxplot.boxprops.linewidth)rk   rl   rm   r   cbookboxplot_stats	lognormalr'   r   getr  rU  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr-   r"   s         r#   _bxp_test_helperr|  a  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  )r1  r   c                  "    t                       d S r  r|  r   r%   r#   test_bxp_baseliner  s  s     r%   zbxp_rangewhis.pngc                  F    t          t          ddg                     d S )Nr   r  whisrx  r|  r  r   r%   r#   test_bxp_rangewhisr  z  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    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%   )ry  r~  r<  s    r#   test_bxp_with_xlabelsr    s*      
 Y//////r%   zbxp_horizontal.pngr   )r  r1  r   r   c                  B    t          t          d                     d S )NFrp  rz  r  r   r%   r#   test_bxp_horizontalr    s&     % 0 0 0111111r%   zbxp_with_ylabels.png)r1  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  ry  rz  r  r  s    r#   test_bxp_with_ylabelsr    s7    
  
 Y4U;K;K;KLLLLLLr%   zbxp_patchartist.png)r  r1  r   c                  B    t          t          d                     d S )NT)rq  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!  )rq  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 )NrN  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 )NrN  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 )NrN  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 )NrM  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  r9  r6  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  3  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  ;  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  rm  r  r  r  r   r%   r#   test_bxp_custompositionsr  C  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  r|  r  r   r%   r#   test_bxp_bad_widthsr  K  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  P  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  U  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  \  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  c  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 )Nrm  rl  rm     rk  '  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  h  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  {  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 )
Nrl  rm  r  r  rk  r9   r  r  )r  r  )rk   r  r  r'   r   r  rD  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 )Nrm  rl  rm  r  r  rk  r9   r:   r  ^)r  rb  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 )	Nrl  rm  r  r  rk  r*  rb  r  )rk   r  r  r'   r   r  r  rD  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 )Nrm  r  r   r:   r  r9   r  )r  r   T)r  r  	autorange)	rk   rl   rm   r   r  r'   r   r  r  )r2   r:  r  r;  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 )Nrl  rm  r  r  rk  )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)r1  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 ))Nrm  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.linestylerN  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrP  rr  zboxplot.boxprops.linestylezboxplot.capprops.colorr=   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrB  )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   )r3  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 )Nrm  rl  rm  r  r  rk  r`  r  ra        @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 )	Nrl  rm  r  r  rk  r9   r:   )r  	rk   r  r  r'   r   r   r   r  r  rD  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 )	Nrl  rm  r  r  rk  r9   r:   )r  r  rD  s      r#   test_boxplot_bad_cir  5  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   ?  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  rf  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+  F  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  rx  rx  Q?gQ?gQr   r  r   )r'   r   r  rz  )r2   r-   r"   bpkeyr  s         r#   &test_boxplot_mod_artist_after_plottingr0  X  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>h  +    9991BI#&&999r%   r8  Fr  r  showextremashowmediansr  )r  r  r8  r9  r  )rk   rl   rm   r   r'   rq  
violinplotr   )r  r"   r-   s      r#   test_vert_violinplot_baseliner;  c  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 r3  r4  r5  s     r#   r   z2test_vert_violinplot_showmeans.<locals>.<listcomp>y  r6  r%   r8  TFr7  r'   rq  rk   rl   rm   r   r:  r"   r  s     r#   test_vert_violinplot_showmeansr@  t  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 r3  r4  r5  s     r#   r   z4test_vert_violinplot_showextrema.<locals>.<listcomp>  r6  r%   r8  FTr7  r>  r?  s     r#    test_vert_violinplot_showextremarC  ~  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 r3  r4  r5  s     r#   r   z4test_vert_violinplot_showmedians.<locals>.<listcomp>  r6  r%   r8  FTr7  r>  r?  s     r#    test_vert_violinplot_showmediansrF    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 r3  r4  r5  s     r#   r   z0test_vert_violinplot_showall.<locals>.<listcomp>  r6  r%   r8  Tr   ?r  r  r  r  rC  r  )r  r  r8  r9  	quantilesr>  r?  s     r#   test_vert_violinplot_showallrK    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 r3  r4  r5  s     r#   r   z8test_vert_violinplot_custompoints_10.<locals>.<listcomp>  r6  r%   r8  Fr   r  r  r8  r9  pointsr>  r?  s     r#   $test_vert_violinplot_custompoints_10rP    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 r3  r4  r5  s     r#   r   z9test_vert_violinplot_custompoints_200.<locals>.<listcomp>  r6  r%   r8  Fr  rN  r>  r?  s     r#   %test_vert_violinplot_custompoints_200rS    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 r3  r4  r5  s     r#   r   z2test_horiz_violinplot_baseline.<locals>.<listcomp>  r6  r%   r8  Fr  rp  r  r8  r9  r>  r?  s     r#   test_horiz_violinplot_baselinerW    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 r3  r4  r5  s     r#   r   z5test_horiz_violinplot_showmedians.<locals>.<listcomp>  r6  r%   r8  FTrV  r>  r?  s     r#   !test_horiz_violinplot_showmediansrZ    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 r3  r4  r5  s     r#   r   z3test_horiz_violinplot_showmeans.<locals>.<listcomp>  r6  r%   r8  FTrV  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 r3  r4  r5  s     r#   r   z5test_horiz_violinplot_showextrema.<locals>.<listcomp>  r6  r%   r8  FTrV  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 r3  r4  r5  s     r#   r   z1test_horiz_violinplot_showall.<locals>.<listcomp>  r6  r%   r8  FTr   rI  r  r  r  r  rC  r  )r  rp  r  r8  r9  rJ  r>  r?  s     r#   test_horiz_violinplot_showallrc    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 r3  r4  r5  s     r#   r   z9test_horiz_violinplot_custompoints_10.<locals>.<listcomp>  r6  r%   r8  Fr   r  rp  r  r8  r9  rO  r>  r?  s     r#   %test_horiz_violinplot_custompoints_10rg    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 r3  r4  r5  s     r#   r   z:test_horiz_violinplot_custompoints_200.<locals>.<listcomp>  r6  r%   r8  Fr  rf  r>  r?  s     r#   &test_horiz_violinplot_custompoints_200rj    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  rp  r  r8  r9  side)r8  r        @)r'   rq  rk   rl   rm   rn   r
  r:  )r"   r  r   rn  s       r#   test_violinplot_sidesrp    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 r3  r4  r5  s     r#   r   z1test_violinplot_bad_positions.<locals>.<listcomp>  r6  r%   r8  r   r  
r'   rq  rk   rl   rm   r   r   r   r  r:  r?  s     r#   test_violinplot_bad_positionsrt    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 r3  r4  r5  s     r#   r   z.test_violinplot_bad_widths.<locals>.<listcomp>  r6  r%   r8  r  )r  r  rs  r?  s     r#   test_violinplot_bad_widthsrw    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  rJ  
r'   rq  rk   rl   rm   rn   r   r   r  r:  r?  s     r#   test_violinplot_bad_quantilesr{    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  ?ry  )皙r  r  rd  rz  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  rI  ry  )rk   rl   rm   rn   r   r:  )r    r!   r  r"   s       r#   %test_violinplot_single_list_quantilesr  3  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  rm  r  )ry  r  rm  r  r   r8  r   r  ry  	ABCDEFGHIrM  )	rk   rl   rm   r  rn   r'  r   r:  r)  )r    r!   r  s1s2s3s         r#   test_violinplot_pandas_seriesr  C  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  M  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   )rP  r>  c                 6    g | ]}|                                 S r   rC  r  s     r#   r   z+test_boxplot_not_single.<locals>.<listcomp>`  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  Y  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  c  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  rC  rV  z&Simplest errorbars, 0.2 in x, 0.4 in yr:   T)r  r  r  r  r   rX  r   zVert. symmetricnbinsr  )rW  r   r  zHor. symmetric w/ alpharc  z--orX  rW  r   zH, V asymmetricr  r6  r  r  )rX  rW  r   ecolorcapthickzMixed sym., log yr8  zVariable errorbarsr(  r2   r3   rW  rX  r  )rk   rs   
longdoubler^  r  r'   r   rl  rS  r5   r   locator_paramsr  maximumr  suptitle)
r2   r3   rX  rW  r-   r"   r  ylower
yerr_lowerr  s
             r#   test_errorbarr  l  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  r8  r  r  rI  r   ffffff?r  r   rW  rX  r   r:   r   g?r  r  r  r8  r   rj  )r  r  r  )r  r  r  )r  r   r   )r   r  r    @@r   N)r'   r   rs  rS  rk   r  )r-   r"   th_symr_symth_longr_longth_asymr_asymrW  rX  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:   rO  r8  r  rW  rX  )	r'   r   rk   rs   rS  r   r  to_rgba	get_color)rw  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  rW  rX  r	  r  rM  r   r6  )rX  r   r   r  )rX  r   r   r   r  )rk   rs   r   r   r
  rS  )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  )rW  r   r  )r'   r   rl  rk   rs   r^  r  vstackr  r   r   r  rS  )r-   r"   r2   r3   yerr1rX  rW  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   )rW  rX  r!  r   T)r9   r   ry  r   )rW  rX  uplimsr!  r   )r:   r8  r  r   r;  )rW  rX  lolimsr!  r   r   r   r  magenta)r   r"  rW  rX  r  r  r!  r   r  r   r  r  r9  r   cyan)r   r"  rW  rX  xlolimsxuplimsr  r  r!  rC  capsizer   )r   r>  zErrorbar upper and lower limits)
rk   rs   r^  r'   r   rS  
zeros_like	full_liker  r5   )r2   r3   rW  rX  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'   rS  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roundr5  r6  bevel)
rW  rX  r!  r   r  r:  dash_capstyledash_joinstyler9  r8  )rk   rs   r'   rS  get_fillstyleget_drawstyle)r2   r3   r  r  s       r#   "test_errorbar_line_specific_kwargsr  0  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   rN  r  rB  )r2   r3   rX  r!  r   r  r:   r   r8  z	tab:greenr  r3   )r2   r3   rX  r   r!  r   r  r8  r   r  ztab:bluer  r   r=   )r2   r3   rX  r   r!  r   r  r9   rM  )rN  r  r  )r  r  r   )rB  r3   r=   )r-  r  rP  )r!  r   r  r   rq  )
prop_cycler2   r3   rX  )r2   r3   rX  r   )r2   r3   rX  r   )r   rS  r  r
   r'   rc)r    r!   r"   _cycles       r#   test_errorbar_with_prop_cycler  A  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  rS  )r2   r3   rX  r"   s       r#   test_errorbar_every_invalidr  V  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   rW  rX  ra  z''yerr' must not contain negative valuesr  r   c                 F    g | ]}t          j         d d|dz  dz             S )r  ry  r:   r9   r?  rk  s     r#   r   z/test_xerr_yerr_not_negative.<locals>.<listcomp>v  s/    >>>qXtQA	22>>>r%   r  r  )r'   r   r   r   r   r  rS  rk   rs   r?  r  )r"   r2   r3   s      r#   test_xerr_yerr_not_negativer  g  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  ra  z'yerr' must not contain Noner  )r'   r   r   r   r   r  rS  r  s    r#   test_xerr_yerr_not_noner  |  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:   rm  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   rW  )rk   r  r   r
  rS  r   r#  )	r    r!   r2   r3   rX  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  )rX  r  )r'   rS  )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  rS  )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   rY  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   rY  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   rY  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   rY  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   rD  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'  
markerlinerQ  )stem_containerexpectedr2   r3   s       r#   _assert_equalz%test_stem_args.<locals>._assert_equal  sT    42;;==>>1HQKHQKr%   r9   r   r   ry  r  rm  rO  )r+  rU  r!  zb--)r!  r#  Nr'   r   r  r,  r-   r"   r2   r3   s        r#   test_stem_argsr2    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   )r8  r   r2   )r"  r  rP  )r7  r8  r   r  gxr   r  r   r/  )r!  r"  )NNNr0  r1  s        r#   test_stem_markerfmtr:  !  s   BF!C C C C$ lnnGC		A		A M"''!Q--T#>>>>M"''!Q#'..DMMMMM"''!Q$'//SMMMM M
1c3s4 4 4 4 M
1d3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cS))3s4 4 4 4 M
1cT**3s4 4 4 4 M
1cS))3v7 7 7 7 M
1cR((3v7 7 7 7
 M
1c""3s4 4 4 4 M
1cS113s4 4 4 4 M
1cT223s4 4 4 4 4 4r%   c                      t          j        dd          \  } }t          j                            d          t          j                            d          g}ddg}|                    ||           d S )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?  b  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:   rY  r  kxr  rR   )r!  r"  r#  rT   )rk   r  r  r'   r   r  ro  rD  s      r#   test_stem_orientationrB  j  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   rY  r  Tr   )r  r  r  r
  r  s       r#   "test_hist_stacked_stepfilled_alpharE  t  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   rY  r  Tr  r
  r  s       r#   test_hist_stacked_steprH  }  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   rY  T)r  r  r
  r  s       r#   test_hist_stacked_densityrK    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_bottomrM    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_geometryrU    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 )NrO  rP  r   r9   r   r   r:   rP  r   r  r  r9   r:   r   )r  rP   r  rQ  rS  s           r#   test_hist_step_bottom_geometryrX    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 )NrO  rP  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   rR  r  data_1data_2topsbottomscombinedr  r  r  rD  rT  s              r#   test_hist_stacked_step_geometryrd    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 )NrO  rP  rO  r   r9   r   r   r:   rP  r   r8  r  r  c                     g | ]
\  }}||z   S r   r   r[  s      r#   r   z:test_hist_stacked_step_bottom_geometry.<locals>.<listcomp>  r\  r%   r  r  TrW  )r  r  rP   r  r]  r^  s              r#   &test_hist_stacked_step_bottom_geometryrg    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  rF  6  rE  )r     rY  rM  r  i  )r  r  r  r  r  r~     )r0  r0  r0  r0  r  r  r   r   r   r   r   r  )+  rn  rn  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  r6  r   r  mid)r  r  rH  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_barrr    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_unchangedru    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_emptydatarw    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_labelsrz    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   rY  rb  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"  rB  r9   r   )r  rC  r  r   r2   )rC  r  )r   r8  r   r   )r'   r   r  r  r   r*  )r-   r  rcolorsbcolorsalphaskwrK  r  r_  rcolorrB  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   rm  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  D  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   rY  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  Y  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   rd  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   rt  r  rs   r'   r   r   r  )rr  data2r  num_datasetscolors1colors2r  lineoffsets1lineoffsets2r  linelengths1linelengths2r  r-   axobjcollsnum_collectionss                    r#   test_eventplotr  w  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   rt  r'   r   r   r  )rr  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)r;  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   rm  r  r  r   r9   r   zalpha and positions are unequalrz  )r   r  rI  )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   rP  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   ro  )r   wis     r#   r  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  sE       " " "+s'GHH " " " " " "r%   N)
rk   rl   rm   rt  r'   r   r   r  r  r	  )recwarnrr  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&  r3  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 )Nrm  ))r?   r  )rP   r   )r9  r  zmarkers.fillstylerL  )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   ru  r  rv  r   rB  r  r   r-  )r'  r   r'   r   r   r  r  )r  marker_as_tuplemarker_as_listr-   r"   s        r#   test_vertex_markersr  9  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   r;  )r   rT  r  r   rm  r  r:   rB  r   zaxvline and axhline zorder testrP  )rX  r  rT  r   )rT  r   r  zerrorbar zorder test)r'  r   r'   r   rl  r   ru   axvliner5   rk   r  rS  )r2   r-   r"   r3   rX  r_  s         r#   test_eb_line_zorderr  E  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   )rZ  r9   rz  r  r  z.-)r9   rZ  )r   r  rB  rO  r9   r   rZ  r  )r   r   r  axliner   s      r#   test_axline_loglogr  c  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 )Nrv  rz  r  r  rc  rW  rQ  )r   r   r9   r   rX  )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  p  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 )Nrv  rz  r  r9   r  r<  r  rW  r  r   r<  r   r   r   rX  )r   r   )r   r9   r	  )r   r<  r   rQ  )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 )Nrv  rz  r  r9   r  r  r:   rW  r  r   rX  )r   r   rT  r   r   r   rQ  )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  rT  )
r'   r   r   r   r   r  rU  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   rm  )r:   r   r  r:   r   r  r   r  r?  )r:   r   r8  r   r  rm  r:   r  r   r  )r8  r  )r  r  rP  rN  )r  r?  r   rB  r   )r:   r8  r  r  r   r  )r   r9   r   r   r:   r9   )rh  r-  r  r     rK  rK  r  )	r'   r   rt   rk   r  r  r   r	   masked_equal)r1  r  r:  r  rZ  r[  r;  r$  r%  rH  x3rV  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.colorr;  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  r1  r:  r  r[  rZ  r;  r$  r%  rH  rV  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   rg  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)r;  r   r   r  r  r:   r9   r   r   r  )r9   r:   r   r   )r;  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  r8  r   r:   r   r9   r  r  rA  r  ry  r   r   rP  )ri   rj   r<  r  r  rm  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$	  0  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:   )rM  rN  r  r  r   pre)rT  r   r9  r9   ro  rI  r   rm  )r  Y0Y1Y2r  r(	  )rT  r   r9  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-	  >  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   rL  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"  rz  r  r  r  )r-   r"   r=   r,  r-  s        r#   test_mixed_collectionr9	  _  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>	  y  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  r8  r8  r   rM  @ffffff@'@r   r   r9   r:   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesrT  )rG	  rH	  rI	  rJ	  rK	  r5  r  N)rW   r   intrk   rq  rs   r  r  r  multiplyouterr  rl   rm   r  r   r   log2r
  r'   r   r   specgramr  LogNorm)r  rH	  fstims
NFFT_freqsr2   y_freqs
NFFT_noisey_noise	all_sidesr3   rG	  rI	  rJ	  r"   rK	  s                  r#   test_specgramrX	    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  r8  r8  r   rM  rA	  rB	  rC	  r  r   r9   r:   r  Nr   r   rD	  r   	magnituderG	  rH	  rI	  rJ	  rK	  rg   rT  )rG	  rH	  rI	  rJ	  rK	  rg   r5  r  )rW   r   rL	  rk   rq  rs   r  r  rM	  rN	  r  r  rl   rm   r  r  r   r   rO	  r
  r'   r   r   rP	  r  rQ	  )r  rH	  rR	  rS	  r2   r3   rT	  rU	  rV	  rW	  rG	  rI	  rJ	  r"   rK	  s                  r#   test_specgram_magnituder\	    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  r8  r8  r   rM  rA	  rB	  rC	  r   r   r9   r:   r  Nr   rD	  )r  phaser   r[	  dB)rG	  rH	  rI	  rJ	  rK	  rg   r5  )rW   r   rL	  rk   rq  rs   r  r  rM	  rN	  r  r  rl   rm   r  r  r   r   rO	  r
  r'   r   r   rP	  r   r   r  )r  rH	  rR	  rS	  r2   r3   rT	  rU	  rV	  rW	  rG	  rI	  rJ	  rg   r"   rK	  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  NrT  )rH	  r5  r   `   )r'   rP	  rk   r   
get_extent)specfreqsr  r  ri   rj   freq0freq1s           r#   test_specgram_fs_nonerh	    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   rP	  )r    r!   r  signals       r#   test_specgram_origin_rcparamrl	    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'   rP	  )r  rk	  s     r#   test_specgram_origin_kwargrn	    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   rM  rA	  rB	  rC	  r  r   r9   r:   r  rK	  r  rE	  F)rK	  return_linerF	  Tr   )rG	  rH	  rI	  rJ	  rq	  r   xlabelylabel)rL	  rk   rq  rs   r  r  rM	  rN	  r  rl   rm   r  r   r   rO	  r
  r'   r   r   psdr  r  rv  r   csd)r  rH	  rR	  rS	  r2   ys_freqsrU	  ys_noise
all_kwargsr  rG	  rI	  rJ	  r"   r  rets                   r#   test_psd_csdr{	    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  rp	  r8  r   rM  r  r:   r   r9   r   r   r  r   rD	  )rH	  rJ	  rK	  r   rr	  r5  r_	  )rL	  rq  rk   r   rO	  rs   r  r  rN	  r  rl   rm   r  r  r   r
  r'   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  rH	  fstims1rG	  rJ	  r2   rT	  rV	  rW	  r  r3   r"   rK	  rd	  re	  r   s                   r#   test_spectrumr	  2  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  ru	  r  rv	  r  r"   s     r#   test_psd_csd_edge_casesr	  \  s    
*,,


"
"C $ $
d####	H	%	%	% - -A

28A;;A

28A;;,,,- - - - - - - - - - - - - - - - - -s   A.CCCc                 Z   |                                  }|                                }|                                }|                                 |                                 |                                 }|j                                         |j                                         d S r  )r   r  r  rr  r[   tick_bottomr^   	tick_left)r    r!   rx   ax_twinxax_twinyry   s         r#   test_twin_remover	  f  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_invisibley  sN    

U###
	!!!  '''''r%   )r8  r   rA  rd  )rC   )rq  r5  TrO  zb-)r   r   r:   zr-)rY  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   rz  r  r  tick_params)	r	  r-   hostpar1par2r,  r-  p3tkws	            r#   test_twin_spinesr	  u  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  )rk  i-  r  r  r   g     @@z#BEAED4rQ  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)rg  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   r;  rQ  rg  )
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-  rW  r  rX  r  r   rN  )	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ddddddddd		          5  t          j                    \  } }d d d            n# 1 swxY w Y   |                                  |j        j        d
         }|j        j        dd          D ]n}|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j	        |j	        k    sJ |j
        |j
        k    sJ |j        |j        k    sJ od S )Nr	  r   r   r  r  Tr-  rW  )	xtick.directionzxtick.major.sizezxtick.major.widthxtick.colorzxtick.major.padxtick.bottom	xtick.topxtick.labelsizextick.labelcolorr   r9   )r'   r   r   r	  r[   r	  _size_width	_base_pad_labelrotation_zorder_tickdir)r-   r"   
first_tickr	  s       r#   test_context_ticksr	    sm   	#RSB t!t	= = 
> 
> ! !
 ,..R! ! ! ! ! ! ! ! ! ! ! ! ! ! !    $Q'J#ABB' 4 4zZ-----{j/////~!55555"j&?????|z11111}
 3333334 4s   AA	Ac                      t          j                    } |                                 }|                    d           |                    g d           t          |                                d           d S )Nr   )r]  r   r  r   )r]  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_  r1  r`  r  s         r#   test_empty_shared_subplotsr	  0  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	  I  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	  T  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	    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  r8  )r  r[  )r  rA  FT)visible_only)
rW   r   r   r   r   r   r   r   relimr   )r1  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  rA  %1.1f%%Tr=  )exploderq  r  autopctshadow
startangler'   r   pie)rq  sizesr  r
  r:  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
  rq  r  r
  r
  r
  
wedgepropsr  )lr  r=   exr  r'
  r&
  r=   )r
  rq  r  r
  r
  r
  r%
  r  )r'   r
  r*  r   rl  )rq  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
  rq  r  r
  r
  r
  r%
  rZ   r2	  zCenter point)r9   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler=  )r  r  r  r 
  r  )r'   r
  r  r  r*  rq  r 
  r  r
  s       r#   test_pie_center_radiusr2
    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*  r1
  s       r#   test_pie_linewidth_2r5
    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
  rq  r  r
  r
  r
  counterclockr  r4
  r1
  s       r#   test_pie_ccw_truer8
    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
  rq  r  r
  r
  r
  r%
  framerZ   r   )r   r:   )r   r   r  r4
  r1
  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
  rq  r  r
  r
  r
  rotatelabelsr  r4
  r1
  s       r#   test_pie_rotatelabels_truer?
  H  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
  rq  r  r
  r
  r
  labeldistancer>
  r  g333333r5  )r'   r
  r*  r   rI   r1
  s       r#   test_pie_nolabel_but_legendrB
  W  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~  rI  r9  )oxoyshader>  r  r  )rD
  r?  rF
  r
  )r 
  r  r
  r  rq  s        r#   test_pie_shadowrG
  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)rl  "   r  )zLong name 1zLong name 2zLong name 3rZ   r?   r=  anchorr  r;  )horizontalalignmentverticalalignmentru  rotation_moder  r   %.2f)rq  r
  	textpropsrK
  rL
  ru  rM
  r  r   )
r  r'   rl  r
  get_haget_vaget_rotationget_rotation_modeget_sizer  )r  rq  rO
  r  textsr
  txs          r#   test_pie_textpropsrW
  }  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_valuesrY
    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@rZ  F)r'   r   r
  rZ  r  )r-   r"   r2   t1t2s        r#   test_normalize_kwarg_pier_
    s    lnnGCA	!t	$	$Br!uRy$&''$....	!u	%	%Br!uRy$&''$......r%   c                     g d}d|                                                      |           |                                                     |          \  }}fd|D              d S )Nr[
  r  r  c                 :    g | ]}|                               S r   	set_hatch)r   rm  r:  s     r#   r   z)test_pie_hatch_single.<locals>.<listcomp>  s%    (((AQ[[(((r%   r   r
  )r    r!   r2   wedgesr  r:  s        @r#   test_pie_hatch_singlerf
    sy    AEAU+++  ""&&q))IFA((((((((((r%   c                     g d}g d}|                                                      ||           |                                                     |          \  }}d t          ||          D              d S )Nr[
  )r8  r  r   r  c                 >    g | ]\  }}|                     |          S r   rb
  )r   rm  hps      r#   r   z(test_pie_hatch_multi.<locals>.<listcomp>  s&    555BQ[[__555r%   )r   r
  r
  )r    r!   r2   r:  re
  r  s         r#   test_pie_hatch_multirj
    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_ticklabelsrw
    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_labelsr{
    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  rl
  bold)
fontweightr-  r:   r8  T)r  r  r  N)r   rq
  rs
  rr
  rt
  r   s      r#   test_set_ticks_with_labelsr
    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:   ry  r  z
must be 1Dr8  rv  ru  rq  )r'   r   r   r   r   r   rq
  r  rv  rk   rs   r   r   r  s    r#   test_xticks_bad_argsr
    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  rw  r  r_  )r'   r   r   rk   rs   r[   ry
  r  set_ticklabelsr   get_ticklabels)r-   r"   rq  s      r#   test_subsampled_ticklabelsr
    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   rP  r  )r'   r   r   rk   rs   r[   ry
  r   r   r  r
  r,   s     r#   test_mismatched_ticklabelsr
    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  rq
  rs
  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   setprv
  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  rR  rs
  rq
  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_func8  s     Avv||2-r%   )r   r   r9   r:   r   r  rP  c                 6    g | ]}|                                 S r   r  )r   r	  s     r#   r   z*test_tick_label_update.<locals>.<listcomp>A  s     HHHd$--//HHHr%   )r   r   r
  r   r   )r'   r   r[   r   r   rq
  r  r   r  r   r
  )r-   r"   r
  
tick_textss       r#   test_tick_label_updater
  2  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   rk  r   r8  )r'   r   rY  r   r   rk   r   r  )r-   r"   r"  s      r#   test_o_marker_path_snapr
  E  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  rq  r  r'   r   r   rY  r   r   )r  ri   rj   r	  r	  r:  r  r;  r$  r  r%  s              r#   test_marginsr
  P  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   )r3  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\.5ru  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
    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
    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  )rj	  )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:   rQ  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  rO  )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-  rq  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   )rg  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)r	  r	  
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  r1  mor.
  r9   T)originalg      ?r   rI  rI  F)g333333?r   g      ?rI  )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
  C  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   ru  r   r9   )	r   r   r  r'   r   rk   r  rs   r   r   r%   r#   test_bad_plot_argsr
  R  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   rm  )r:   r  )r9   r:   r8  r  r  rO  )r8  r   r  )r   r8  c                 v    t          j                    \  }}t           |j        g | |R            |k    sJ d S r  )r'   r   r3  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  rm  r0	  )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  rT  )r'   r   rU  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
    s   	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	y	!	! ! !4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s!   <A A  BB
Bc                  V    t          j        t          j        ddg                     dS )z4Violin plot should handle point mass pdf gracefully.r   N)r'   r:  rk   rW  r   r%   r#   test_violin_point_massr
    s&    N28QF##$$$$$r%   c            
         t          dt          j        d          g          t          dt          j        d          g          z   } t          ddg dg dg dgt          j        d          t          j        d          d g          }t          d|          }t          d	|          }t          dg g          t          dg g          z   t          dg d g          z  t          d	g d g          z  }| |z  }| |z  }| |z  |z  }g ||||S )
Nr2   r   r3   r	  r9   )r9   r9   r9   r9   r9   )r:   r   rW  rX  )r
   rk   rs   r   )base_xy
err_cyclerxerr_cyyerr_cyr
  	xerr_only	yerr_onlyboth_errs           r#   generate_errorbar_inputsr
    s+   S29Q<<.))F3,E,EEG /!0!0!2 "

 " $ " # #J VZ((GVZ((GS2$&rd"3"33FRJ''(*0"d*D*DEE'!I'!I 7*H6Y66X666r%   r  c                 n    t          j                    } |j        di | }|                                 d S )Nr   )r'   rl  rS  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   rB  )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aardvarkrA  r	  ru  g?r  zaxes.titlepadrI  )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   rM  r   r   rV  rk  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   rM  g      rm  r  r8  )r  r  r   r:   )r  )rT  nonpositiverV  r6  )r  )
r'   r   rk   rs   r
  r   r  r  rU  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 )NrO  r   )r9   r9   r9   r9   r
  rT  r   )r  g      #@)r'   r   r   r
  r  r  r
  rg  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$  rP  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_y3  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(  N  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+  T  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_aspectr2  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  ru
  r	  s     r#   test_auto_numticksr4  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   irK  r8  r<  r   )r'   r   r   r   r  rk   log10r  rs   r	  ru
  r,   s     r#   test_auto_numticks_logr:    s     lnnGC*9CL&'IIuclUBK(((HR]]__%%3A)>)>>CCEEEEEHR]]__%%3A)>)>>CCEEEEEEEr%   c                  ^    t          j                    \  } }|                    g d           d S )N)r   r   )r'   r   r  r,   s     r#   test_broken_barh_emptyr<    s+    lnnGCNN2x     r%   c                     t          j                    \  } }t          j        dddddd          }|                    |t          j        d          fgddg          }|                                d         j        d         t          j        |          k    sJ |                                d         j        d	         t          j        |          d
z   k    sJ dS )z9Check that timedelta works as x, dx pair for this method.r  rM  ry  r   r9   r  r:   r  r:   r   gUUUUUU?N)	r'   r   r?  r  r  r  verticesrA  rB  )r-   r"   d0pps       r#   test_broken_barh_timedeltarB    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  ry  )r  rk   rs   rl   r   r'   r   r  )r  timedepthr  r-   r"   s         r#   test_pandas_pcolormeshrF    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-03r9  r  )r  r)  r:   r9   r  r)  ri  )rk   rs   r  r   r  r  r'   rl  rW  r  ro  r   )r  r  r)  r  r"   without_zero_indexs         r#   test_pandas_indexing_datesrI    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yerg  )columnsr  r2   r3   rK  rL  r  )r  rk   rl   uniformr'   r   rS  r  s       r#   test_pandas_errorbar_indexingrO    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  )rm  r9   r:   )XXYYrR  )r  r'   r   r   r  r  s       r#   test_pandas_index_shaperS    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   ri  r9   )r  ilocr'   r   r  )r  ser_1ser_2r-   r"   s        r#   test_pandas_indexing_histrX    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:   rh  r9   r   r-  rZ   r\  )r  r   r'   r   r  rA   r  r   r  s       r#   test_pandas_bar_align_centerrZ    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   r;  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_paramsrh    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   r;  r	
  )r	  r	  r	  r   r  rB  rA  )
r'   rs  r^   r_  r	  r	  	tick1liner  rB  rT
  )axis_1s    r#   .test_axis_set_tick_params_labelsize_labelcolorrl    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  r6  )r"   r*  s     r#   test_axes_tick_params_gridlinesro    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	  rB  r!  label2r	  r  s    r#    test_axes_tick_params_ylabelsidert    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	  rB  r!  rs  r	  r  s    r#    test_axes_tick_params_xlabelsiderx    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   rO  rM  )r'   r   r   r   r   r6  )r"   lns     r#   test_none_kwargsr{  !  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 )NrO  r  )r:   r   r8  r   rG  r\  r   )r'   r  rk   rW  uint8r
  rD  r  )r  r-  r"  r2   s       r#   test_bar_uint8r~  '  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>1  Y     % % % #D!Ra+3;+<+<=M+N+NP P P % % %r%   r   r  r  rA  r:   r9   r  )r  UTC	r   r'   r   rs  r   r  r   ro  rp  
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 r  r  r  s     r#   r   z(test_date_timezone_y.<locals>.<listcomp>D  r  r%   r   r  rA  r:   r9   r  FT)r  xdateydater  r  r  s    r#   test_date_timezone_yr  A  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 )r  r:   r  r  r  )r   r2   r  s     r#   r   z.test_date_timezone_x_and_y.<locals>.<listcomp>X  s?     % % % #D!RaDDD % % %r%   r   r  rA  r:   r9   r  T)r  r  z
US/Eastern)r?  timezoneutcr   r'   r   rs  r   r  r   ro  rp  )r  r  s    @r#   test_date_timezone_x_and_yr  T  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   TrT  r   r  r  r  rP  rQ  r=   rM  )r   r   r?  F)r?   rP   rQ   rC   )r'   r   r   r
  r   r  r4	  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    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    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?   rw  rv  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   FAr;  )r	  )r'   r   r   r^   r_  get_offset_textr  r,   s     r#   test_offset_label_colorr    st    lnnGCGG$$$%%%H...8##%%//11U::::::r%   c                     t          j                    \  } }|                    g d           |j                            dd           |j                                                                        sJ |j                            d           |j                                                                        rJ d S )Nr  FT)label1Onlabel2On)r  )r'   r   r   r^   r_  r  r!  r,   s     r#   test_offset_text_visibler    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  rm  r  rK  r  rk  s     r#   r   z#test_barb_units.<locals>.<listcomp>  +    MMMqXtQB22MMMr%   r   r0  r   r   rY  )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  rk  s     r#   r   z%test_quiver_units.<locals>.<listcomp>  r  r%   r   r0  r   r   rY  )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  rx  )r  r-   r"   r_  rz  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  ru  r=  r  r2   5   )r*  r	  r3   r  )r*  ru  r	  )
r'   r   r   r[   r_  r^   r  rR
  rv
  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  rB  )r=  r  r   r>  rl  )r  )r'   r   r   r  r  r  tupler  squeezer0  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  r7  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  9  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   rO  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  G  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  S  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  X  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  rC  r  )r'   r   r  r   r  ry  )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r3  rS  r6  r  c                     t          j                    }|                    g d           |                    |            |                    |           |                                 d S )Nr  )r'   rs  r   rU  r  r  )r3  r  r"   s      r#   test_minorticks_onr    sa     
BGGLLLMM&MM&r%   c                     t          j                    \  } }|                    dd           |                                }|                    ddgddg           t          j                    \  }}|                    dd           |                    ddgddg           t          |j        j        |j        j                   d S )Nr9   r:   r   r   )r'   r   r  r  r   r   r	  	intervalx)r-   r"   xtwinr;  r$  s        r#   test_twinx_knows_limitsr    s    lnnGCJJq!HHJJE	JJ3x!Q   ID#KK1HHaX1vu}.0EFFFFFr%   c                  >    t          j        ddgddgdd           d S )Nr   r9   rN  )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)rW  r0   zempty x)rX  r0   )r'   r   rS  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\(\@ro  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   rk  s     r#   r   z%test_plot_decimal.<locals>.<listcomp>  rY  r%   c                 ,    g | ]}t          |          S r   r   rk  s     r#   r   z%test_plot_decimal.<locals>.<listcomp>  rY  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  rm  )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	
  r	  z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:   rP  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   r|  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:   rP  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  Tr7  r   r:   r  )	r'   r   r+  r   r   rk   rs   r  r   )r  r"   axinsrP  r  s        r#   test_inset_polarr1    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"   r0  s      r#   test_inset_projectionr6    sI    LNNEArMM...8MDDEeZ(((((((r%   c                      t          j                    \  } }|                    g dt          j                  }t          |t          j                  sJ d S )Nr3  )r  )r'   r   r+  AAr   r   r5  s      r#   test_inset_subclassr9    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   r|  r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                 r#   test_indicate_inset_invertedrC  $  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   rC  rC  r   r  r   r   r
  r  active)r'   r   r	  r	  rk   rP  r	  r  r,   s     r#   test_set_positionrF  >  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)rj  rj  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_zoomrI  K  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   r8  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r'   r   r  r  rH  rk   r   r   r   r   )r-   r"   r   r   r  new_ylimres_xlimres_ylims           r#   test_limits_after_scroll_zoomrQ  U  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_nanrS  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   rK  r  r  r  )r9   r9   r9   r9   r9   r   r   r   )r   r  rk   rl   rN  r'   r;   )r  r'  r2   r3   r=   s        r#   "test_scatter_series_non_zero_indexrU    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_datarW    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   rA  )rC  r   r  r  r  Fr   r~  rc  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"   r0  s        r#   test_annotate_across_transformsrZ    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  r^  )r  r)  s     r#   r<  z_Translation.transform  s    r%   c                 ,    t          | j                   S r  )r\  r"  r  s    r#   r  z_Translation.inverted  s    TWH%%%r%   N)r  r  r  
input_dimsoutput_dimsr.  r<  r  r   r%   r#   r\  r\    sK        JK       & & & & &r%   r\  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  rs  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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   (,,rM  r   r  	functionsrC  c                     d| z  S Nr:   r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    A r%   c                     | dz  S rm  r   r  s    r#   r  z#test_secondary_xy.<locals>.<lambda>  s
    Q r%   r  c                     | dz  S rm  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_yaxisr\  rY  )r-   r  rg  nnr"   secaxs         r#   test_secondary_xyru    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:   rM  r  c                     d| z  S r
  r   r  s    r#   r  z%test_secondary_fail.<locals>.<lambda>  s
    QU r%   rj  rC   rP   errorr  )r'   r   r   rk   rs   r   r   r  rq  rr  r   r,   s     r#   test_secondary_failry    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  rA  r:   rM  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S re  rf  r  s    r#   rg  z%test_secondary_resize.<locals>.invert  rh  ri  r?   rj  )rm  r8  r
  )r'   r   r   rk   rs   rq  r  r   r  r   r	  r
  )r-   r"   rg  s      r#   test_secondary_resizer|    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  rA  r:   rM  c                 j    t          j        d          5  d| z  cd d d            S # 1 swxY w Y   d S re  rf  r  s    r#   rg  z'test_secondary_minorloc.<locals>.invert  rh  ri  r?   rj  r6  rT  )r'   r   r   rk   rs   rq  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorrU  r   
LogLocator)r-   r"   rg  rt  s       r#   test_secondary_minorlocr    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   rU  rq  r[   r   r   ScalarFormatterr  r   r   r   r-   r"   rt  s      r#   test_secondary_formatterr    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   rq  r6   r  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  rB  r1	  r9   )r9   g      @)r9   r   )r   re  r  )r'   r   r  r   r*  rC  r  r4	  )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:   r;  r9   )r  r   r  r  r[   r^   r  r  r  r_  r`  r  r  rC  r	  r  )r-   r"   r  bbaxisrs  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  rs  r-  targetbbaxbbs              r#   test_normal_axesr  J  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  rL  r  )r        ^@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  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  r]  )r        8@r  gs~8&@r  r  r  r  rL  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    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  rL  N)r  r   r'   r   r	  r  r   r  r  r  r  r   r  )r  dnumdirsr-   r"   r  r  r  r  rs  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  rL  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  rN  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  rX  r  r  )r'   r   r  rS  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  rc  r   ru  )r'   r   r  rq
  r   r,   s     r#   test_set_ticks_invertedr  6  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
  rA  rC  r  r6  rM  logit)F]tE?g'^P?r9   r	  r3  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
  rA  r%  rC  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  L  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
  )r:  r  axtwinr;  r$  bb1bbtr  s           r#   test_box_aspectr  [  s@    ID#YY[[F
KKS	q3&&&&ID#KKNNNHHaVaVNN7uN---KK




C




C




Cs{CK000s{CK00000r%   c                  Z   t          j                    \  } }|                    g d           | j                                         |                    d           t          j                    \  }}|                    d           |j                                         |                    g d           | j                                         |j                                         |                                }|                                }t          |j        |j                   d S )N)r   r   rI  r  r   )	r'   r   r	  r  r   r  r	  r   r
  )r:  r  r;  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  rs  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    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 Nr7  zlines.markeredgecolor)r'   r   rq  r[   get_major_ticksrj  get_markeredgecolorr"   rz
  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  rj  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  r]  r   get_autoscale_onr4  limget_rK  )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 )Nr8  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  r	  r   r	  )r'   r   rq  r[   r  rj  r  rB  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  rj  r  rB  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  r;  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 )Nr	  zytick.labelsizer2   r3   )r   r   r'   r   r  r   r
  r[   r^   r  rB  rT
  _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   rP  )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   rO  r  rz  r   r   rQ  r8  ru  )rk   rW  r   r   r   r   r  r;   r  r  rs   r  )r    r!   r   r  s       r#   test_2dcolor_plotr.  5   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_clearr0  I   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:   rP  )r'   r   r  r   rq
  r   rr
  r   r
  s      r#   test_shared_axes_retickr2  X   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\   rP
  )rF   r-   r"   s      r#   test_ylabel_ha_with_positionr6  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  heightsr{  rq  s        r#    test_bar_label_location_verticalr=  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   r8  r   rZ   r?   rP   )r'   rl  r  r  r:  r  r]   r
  r;  s        r#   *test_bar_label_location_vertical_yinvertedr?  }   s$   	BOOa&1b'BFF2wE\\%  F!9<BqE71:.....!9,,..(::::!9**,,5555!9<BqE71:.....!9,,..(::::!9**,,888888r%   c                     t          j                    } ddgddg}}|                     ||          }|                     |          }|d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ |d         j        |d         |d         fk    sJ |d                                         dk    sJ |d                                         dk    sJ d S 	Nr9   r:   r   r8  r   rQ   rZ   rC   r'   rl  r  r:  r  r]   r
  r"   r  r  r{  rq  s        r#   "test_bar_label_location_horizontalrD     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 rA  )r'   rl  r  r  r:  r  r]   r
  rC  s        r#   ,test_bar_label_location_horizontal_yinvertedrF     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   r8  r   rC   rZ   rQ   )r'   rl  r  r  r:  r  r]   r
  rC  s        r#   ,test_bar_label_location_horizontal_xinvertedrI     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 rH  )	r'   rl  r  r  r  r:  r  r]   r
  rC  s        r#   -test_bar_label_location_horizontal_xyinvertedrK     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   r8  rZ   
label_typer   r  rB  rC  s        r#   test_bar_label_location_centerrO     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   rM  )r'   r   r  rU  r  r:  r{  )r  r"   r  s      r#   !test_centered_bar_label_nonlinearrQ     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  rY  r}  )r0   rQ   rZ   rM  r  )r'   r   r
  r  r:  r  r	  )r-   r"   lastr0   rE  r  s         r#   +test_centered_bar_label_label_beyond_limitsrT     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   r8  rX  r   rZ   rP   r?   r9  r;  s        r#   !test_bar_label_location_errorbarsrW     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   rN
  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   r8  r  r   z3.00z-4.00r'   rl  r  r:  rC  )r   r"   r{  rq  s       r#   test_bar_label_fmtrZ     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   r8  zstr or callablerz  r   r  )r'   rl  r  r   r   r   r:  )r"   r{  r  s      r#   test_bar_label_fmt_errorr\     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   r8  r  r  r
  r   rY  )r"   r{  rq  s      r#   test_bar_label_labelsr^  !  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  rq  s      r#   test_bar_label_nan_ydatard  !  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  ra  s     r#   r   z5test_bar_label_nan_ydata_inverted.<locals>.<listcomp>!  rb  r%   r   r,  r   r>  rP   )	r'   rl  rn  r  rk   r  r:  r  r
  rc  s      r#   !test_bar_label_nan_ydata_invertedrg  !  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  rV  c                 6    g | ]}|                                 S r   r  ra  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>%!  rb  r%   )r   r,  2)r  r  rO  r  r  c                 6    g | ]}|                                 S r   r  ra  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>+!  rb  r%   )r+  r,  rj  )r  r  c                 6    g | ]}|                                 S r   r  ra  s     r#   r   z&test_nan_barlabels.<locals>.<listcomp>1!  rb  r%   )r'   r   r  rk   r  r:  rP  r   )r-   r"   r  rq  s       r#   test_nan_barlabelsrm  !!  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}  r0  r  r   r  gffffff?r  rm  r:   gr  r  )r'   r   r  r  Wedgerk   r  r  r   assert_array_almost_equal_nulprW  dataLimr  )r-   r"   bots      r#   test_patch_boundsrs  5!  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  rP  r-  )r   r  r=  r>  )r   r  rR  r'   r;   r   r%   r#    test_warn_ignored_scatter_kwargsru  =!  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>F!  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  tablesrU
  r   r   
IndexErrorr  rr  )r-   r=  r}  r  r"  r  rz  r"   s          @r#   test_artist_sublistsr{  D!  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_plotsr}  r!  s    
A
ALNNEAr771a==Dt99>>>> LNNEAr772r??Dt99>>>>>>r%   z
fmt, match))rw  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  r  ri  )r'   r   replacer   r   r  r   )r   r{  r  r-   r"   s        r#   test_plot_format_errorsr  !  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  rB  z.C12:r   C12r  )r'   r   r   r  r&  r  r   rv
  rC  r  r  r6  r
  s      r#   test_plot_formatr  !  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:   ri  r   r=   )
r'   r   r   rI   r  r   	get_textsrC  rv
  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,  rj  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:   ri  )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   rO  r   r9   r:   )rm  r  )clim)r'   r   r   r   r;   r   r   rg  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      rx  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?re  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  rq  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  rC  rv
  )r-   r"   rI  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  D"  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-01rb  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>V"  s    ###AAaC###r%   r   )r   )r   r_  s    @r#   r   z%test_extent_units.<locals>.<listcomp>V"  s4    
7
7
7####r###
7
7
7r%   r   r  zDate extents on y axisr   r9   rM  plasma)r   r  r   r  z(Date extents on x axis (Day of Jan 2020)z%drc  zDay of Jan 2020)rs	  r  )r   r   z set_extent\(\) got an unexpectedrz  r  Fr  )r'   r   rk   rn  r   r5   r   r   r  r[   r   rA  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastarrr  s         r#   test_extent_unitsr  Q"  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  rv  r  rz  )r'   r   r+  r  rr  r   )r-   r"   marginalmarginal_twins       r#   test_child_axes_removalr  "  se    lnnGC}}]]]2}66HNN$$MOOFFhF'''''r%   c                      d } d}t          j        t          |          5  d}t          j        j                            |d i d|            d d d            d S # 1 swxY w Y   d S )Nc                      dS r  r   r   r%   r#   r  z5test_scatter_color_repr_error.<locals>.get_next_color"  r  r%   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'rz  zred
r:   r'  )r   r   r  r   rq  r   r  )r  msgr=   s      r#   test_scatter_color_repr_errorr  "  s      8  
z	-	-	- M M//tBa^ 	0 	M 	M 	MM M M M M M M M M M M M M M M M M Ms   ,AA!Ac                  0   t          j                    \  } }|                    d           |                    t	          d          dd          \  }t          j                    5 }|                     |d           d d d            d S # 1 swxY w Y   d S )Nr   Tr9   )r  r  r  )r  )r'   r   set_rasterization_zorderr   r   r  r  r  )r-   r"   rz  r-  s       r#   &test_zorder_and_explicit_rasterizationr  "  s    lnnGC"""
''%((tA'
6
6CB	 %Ae$$$% % % % % % % % % % % % % % % % % %s   &BBBzpreset_clip_paths.pngc            	         t          j                    \  } }t          j                            ddgddgddgddggdddd          }|                    |           t          j                            d	d
d|          }|                    t          j
                    g           |                    |           t          j                            d	ddd|          }|                    |           t          j                            ddgddgddggddddd|          }|                    |           |                    dddddid|           t          j                            ddgddgddgddggddddd|          }|                     |d           |                    dd           |                    dd           d S )Nr9   r   r   z#ddffddz#00ff00r:   r   )r=  r>  r?  r  rv  r  T)clip_onr
  )r  r  rP  )r   r  r
  rc  z#beefc0r  z#faded0)r=  r  r>  r?  r  r
  r&  )rb  rb  )r   rd  r   rB  )r  r  r  r
  r  r3   )r=  r>  r?  r  r  r
  r  )r'   r   r   rD  Polygonr  r=  rB  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 )Nr;  zaxes.labelcolorr  zaxes.labelsizer}
  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  rm  )r  rm  Tr  )r  rT   complementarycompressr!  r  rm  r;  )ds)r  r  rK  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?r6  rQ  r   r:   r  )r   rT  r  r9   r   )r9  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 scriptrP  	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?   r;  rQ  rP   r   r	  )r'   r   rq  r  r  r	  ry  r[   r]  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  rz  )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 )Nr8  r  r   r  rO  r  r  rW  )fcrC  r   rX  r9   )r=   r  r  rI  )r  r  r  r  )r'   r   r   r{  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  rm  r	  r  r	  zxkcd:shocking pinkr	  zxkcd:fluorescent greenr	  r   r	  r   r	  r  rP   Fr?   TrQ   rC   )rw  rv  rq  rr  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  r
  c                 6    g | ]}|                                 S r   r  ra  s     r#   r   z,test_boxplot_tick_labels.<locals>.<listcomp>b#       ;;;QAJJLL;;;r%   )tick_labelsc                 6    g | ]}|                                 S r   r  ra  s     r#   r   z,test_boxplot_tick_labels.<locals>.<listcomp>f#  r  r%   )rk   rl   rm   r'   r   r   r  r   ro  r  r  r  s      r#   test_boxplot_tick_labelsr  W#  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
  rO
  z%1.0f\%%rd
  )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%   rm  (  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  rA  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
axisartistr8  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   r.  rJ  rT  r\  rc  rj  rs  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r  rs   r*  r2  r>  rH  rQ  rV  r^  rh  rw  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r0  r4  r9  r>  rE  rJ  rL  rN  rR  rT  ra  rg  rn  rr  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  rB  r#  r(  Patchr  r=  rB  r+  rF  rK  rT  rV  rZ  r]  r`  rc  re  rq  rx  r|  r  r  r  r  r  r  r  r  r  rW  r  r  r$  r(  r6  r<  rK  rO  rQ  rZ  rf  rj  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r+  r0  r;  r@  rC  rF  rK  rP  rS  rW  rZ  r]  r`  rc  rg  rj  rp  rt  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$  r2  r:  r?  rB  rE  rH  rK  rM  rU  rX  rd  rg  rr  ru  rw  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-	  r9	  r>	  rX	  r\	  r`	  rh	  rl	  rn	  r{	  r	  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(
  r2
  r5
  r8
  r;
  r?
  rB
  rG
  rW
  rY
  r_
  rf
  rj
  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  	AxesImager   PcolorImagerl   QuadMeshr   r   r
  r
  r
  r
  r
  r
  r
  r  r  r  r  r  r  r  fixturer"  r&  r(  r+  r/  r2  r4  r:  r<  rB  rF  rI  rO  rS  rX  rZ  rh  rl  ro  rt  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r
  r  r  r  r'  r.  r1  r6  r9  rC  rF  rI  rQ  rS  rU  rW  rZ  	Transformr\  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  r  r  r  r  r  r  r  r  r   font_scalingsr%  r(  r,  r.  r0  r2  r6  r=  r?  rD  rF  rI  rK  rO  rQ  rT  rW  r  rZ  r\  r^  rd  rg  rm  rs  ru  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r%   r#   <module>r*     sV       " " " " " "               				        ! ! ! ! ! !                              . . . . . . . . # # # # # # ! ! ! ! ! ! $ $ $ $ $ $             / / / / / / % % % % % % % % % % % %       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$ ,-4wOOO  PO  , , ,@ @ @ ?#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  ""&NNNTUW W W& &W W&,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*   ""&NNNTUW W W% %W W%* 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= = = 
= 
= 
= (((  )(& 74 4 4*. . . 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%   